diff --git a/avm-transpiler/src/transpile.rs b/avm-transpiler/src/transpile.rs index 40e3a6f0bb4f..ba8ac036d23b 100644 --- a/avm-transpiler/src/transpile.rs +++ b/avm-transpiler/src/transpile.rs @@ -1634,6 +1634,7 @@ fn handle_get_contract_instance( DEPLOYER, CLASS_ID, INIT_HASH, + IMMUTABLES_HASH, } assert_eq!(inputs.len(), 1); @@ -1643,6 +1644,7 @@ fn handle_get_contract_instance( "aztec_avm_getContractInstanceDeployer" => ContractInstanceMember::DEPLOYER, "aztec_avm_getContractInstanceClassId" => ContractInstanceMember::CLASS_ID, "aztec_avm_getContractInstanceInitializationHash" => ContractInstanceMember::INIT_HASH, + "aztec_avm_getContractInstanceImmutablesHash" => ContractInstanceMember::IMMUTABLES_HASH, _ => panic!("Transpiler doesn't know how to process function {:?}", function), }; diff --git a/barretenberg/cpp/pil/vm2/bytecode/address_derivation.pil b/barretenberg/cpp/pil/vm2/bytecode/address_derivation.pil index 6de6947d69a4..d3249f35c138 100644 --- a/barretenberg/cpp/pil/vm2/bytecode/address_derivation.pil +++ b/barretenberg/cpp/pil/vm2/bytecode/address_derivation.pil @@ -9,14 +9,14 @@ include "../scalar_mul.pil"; * during contract instance retrieval (contract_instance_retrieval.pil) in our execution flow. * The address is defined by the following flow, where the hash function H() is Poseidon2, and G1 * is the Grumpkin curve's generator point: - * 1. salted_init_hash = H(DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash, deployer_addr) + * 1. salted_init_hash = H(DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash, deployer_addr, immutables_hash) * 2. partial_address = H(DOM_SEP__PARTIAL_ADDRESS, class_id, salted_init_hash) * 3. public_keys_hash = H(DOM_SEP__PUBLIC_KEYS_HASH, * nullifier_key_x, nullifier_key_y, nullifier_key_is_infinity, * incoming_viewing_key_x, incoming_viewing_key_y, incoming_viewing_key_is_infinity, * outgoing_viewing_key_x, outgoing_viewing_key_y, outgoing_viewing_key_is_infinity, * tagging_key_x, tagging_key_y, tagging_key_is_infinity) - * 4. preaddress = H(DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address) + * 4. preaddress = H(DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address) * 5. preaddress_public_key = preaddress * G1 * 6. address = (preaddress_public_key + incoming_viewing_key).x * @@ -101,6 +101,7 @@ namespace address_derivation; pol commit deployer_addr; pol commit class_id; // = original_contract_class_id pol commit init_hash; + pol commit immutables_hash; // Public keys, all Grumpkin curve points (see PublicKeys in barretenberg/cpp/src/barretenberg/vm2/common/aztec_types.hpp). pol commit nullifier_key_x; pol commit nullifier_key_y; @@ -117,14 +118,14 @@ namespace address_derivation; /////////////////////////////// // // This trace constrains the result of four Poseidon2 hashes: - // 1. salted_init_hash = H(DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash, deployer_addr) + // 1. salted_init_hash = H(DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash, deployer_addr, immutables_hash) // 2. partial_address = H(DOM_SEP__PARTIAL_ADDRESS, class_id, salted_init_hash) // 3. public_keys_hash = H(DOM_SEP__PUBLIC_KEYS_HASH, // nullifier_key_x, nullifier_key_y, 0, // incoming_viewing_key_x, incoming_viewing_key_y, 0, // outgoing_viewing_key_x, outgoing_viewing_key_y, 0, // tagging_key_x, tagging_key_y, 0) - // 4. preaddress = H(DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address) + // 4. preaddress = H(DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address) // // Lookup constant support: Can be removed when we support constants in lookups. @@ -134,6 +135,8 @@ namespace address_derivation; sel * (const_three - 3) = 0; pol commit const_four; sel * (const_four - 4) = 0; + pol commit const_five; // Used for the salted initialization hash + sel * (const_five - 5) = 0; pol commit const_thirteen; sel * (const_thirteen - 13) = 0; pol commit salted_init_hash_domain_separator; @@ -143,25 +146,25 @@ namespace address_derivation; pol commit public_keys_hash_domain_separator; sel * (public_keys_hash_domain_separator - constants.DOM_SEP__PUBLIC_KEYS_HASH) = 0; pol commit preaddress_domain_separator; - sel * (preaddress_domain_separator - constants.DOM_SEP__CONTRACT_ADDRESS_V1) = 0; + sel * (preaddress_domain_separator - constants.DOM_SEP__CONTRACT_ADDRESS_V2) = 0; // 1. Computation of salted initialization hash pol commit salted_init_hash; - // Since Poseidon2 processes inputs in chunks of 3, we need 2 permutation rounds to cover our 4 inputs: - // salted_init_hash = H(DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash, deployer_addr) - // Round 1 (start, input_len=4): (DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash) - // Round 2 (end): (deployer_addr, 0, 0) + // Since Poseidon2 processes inputs in chunks of 3, we need 2 permutation rounds to cover our 5 inputs: + // salted_init_hash = H(DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash, deployer_addr, immutables_hash) + // Round 1 (start, input_len=5): (DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash) + // Round 2 (end): (deployer_addr, immutables_hash, 0) - // Enforces the first round of salted_init_hash. Note that we must lookup poseidon2_hash.input_len == 4 + // Enforces the first round of salted_init_hash. Note that we must lookup poseidon2_hash.input_len == 5 // here since it is constrained in the poseidon trace on the start row. #[SALTED_INITIALIZATION_HASH_POSEIDON2_0] - sel { salted_init_hash_domain_separator, salt, init_hash, salted_init_hash, const_four } + sel { salted_init_hash_domain_separator, salt, init_hash, salted_init_hash, const_five } in poseidon2_hash.start { poseidon2_hash.input_0, poseidon2_hash.input_1, poseidon2_hash.input_2, poseidon2_hash.output, poseidon2_hash.input_len }; // Enforces the second and final round of salted_init_hash. Note that we must enforce the padded values are zero here. #[SALTED_INITIALIZATION_HASH_POSEIDON2_1] - sel { deployer_addr, precomputed.zero, precomputed.zero, salted_init_hash } + sel { deployer_addr, immutables_hash, precomputed.zero, salted_init_hash } in poseidon2_hash.end { poseidon2_hash.input_0, poseidon2_hash.input_1, poseidon2_hash.input_2, poseidon2_hash.output }; // 2. Computation of partial address @@ -234,8 +237,8 @@ namespace address_derivation; pol commit preaddress; // We have 3 inputs, hence a single Poseidon2 round: - // preaddress = H(DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address) - // Round 1 (start, input_len=3): (DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address) + // preaddress = H(DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address) + // Round 1 (start, input_len=3): (DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address) // Enforces the single round of preaddress. Since input_len=3 fills exactly one permutation, // this start lookup is also the final round and no separate end lookup is needed (the poseidon trace diff --git a/barretenberg/cpp/pil/vm2/bytecode/contract_instance_retrieval.pil b/barretenberg/cpp/pil/vm2/bytecode/contract_instance_retrieval.pil index 9b13fed54cd7..17d10b220c76 100644 --- a/barretenberg/cpp/pil/vm2/bytecode/contract_instance_retrieval.pil +++ b/barretenberg/cpp/pil/vm2/bytecode/contract_instance_retrieval.pil @@ -53,7 +53,8 @@ include "update_check.pil"; * caller.exists, * caller.deployer_addr, // situational - only if caller needs it * caller.current_class_id, - * caller.init_hash // situational - only if caller needs it + * caller.init_hash, // situational - only if caller needs it + * caller.immutables_hash // situational - only if caller needs it * } in contract_instance_retrieval.sel { * contract_instance_retrieval.address, * contract_instance_retrieval.nullifier_tree_root, @@ -61,10 +62,11 @@ include "update_check.pil"; * contract_instance_retrieval.exists, * contract_instance_retrieval.deployer_addr, * contract_instance_retrieval.current_class_id, - * contract_instance_retrieval.init_hash + * contract_instance_retrieval.init_hash, + * contract_instance_retrieval.immutables_hash * }; * - * Situational columns (deployer_addr, init_hash) can be omitted if the caller doesn't need + * Situational columns (deployer_addr, init_hash, immutables_hash) can be omitted if the caller doesn't need * them. When omitted, they are only hinted for address derivation. This is secure because * incorrect values would break derivation of the given address. * @@ -103,6 +105,7 @@ namespace contract_instance_retrieval; pol commit current_class_id; pol commit original_class_id; // HINTED! pol commit init_hash; + pol commit immutables_hash; // Current state — these should be looked up and constrained by the caller. pol commit nullifier_tree_root; @@ -242,6 +245,8 @@ namespace contract_instance_retrieval; sel * (1 - exists) * original_class_id = 0; // technically not needed since original_class_id is hinted, but good for consistency #[INSTANCE_MEMBER_INIT_HASH_IS_ZERO_IF_DNE] sel * (1 - exists) * init_hash = 0; + #[INSTANCE_MEMBER_IMMUTABLES_HASH_IS_ZERO_IF_DNE] + sel * (1 - exists) * immutables_hash = 0; // Address derivation lookup (only if the nullifier exists or for protocol contract instances). #[ADDRESS_DERIVATION] @@ -251,6 +256,7 @@ namespace contract_instance_retrieval; deployer_addr, original_class_id, init_hash, + immutables_hash, nullifier_key_x, nullifier_key_y, incoming_viewing_key_x, @@ -265,6 +271,7 @@ namespace contract_instance_retrieval; address_derivation.deployer_addr, address_derivation.class_id, address_derivation.init_hash, + address_derivation.immutables_hash, address_derivation.nullifier_key_x, address_derivation.nullifier_key_y, address_derivation.incoming_viewing_key_x, diff --git a/barretenberg/cpp/pil/vm2/constants_gen.pil b/barretenberg/cpp/pil/vm2/constants_gen.pil index c23b524936ef..aa22b33d2b9a 100644 --- a/barretenberg/cpp/pil/vm2/constants_gen.pil +++ b/barretenberg/cpp/pil/vm2/constants_gen.pil @@ -181,6 +181,6 @@ namespace constants; pol DOM_SEP__SALTED_INITIALIZATION_HASH = 2763052992; pol DOM_SEP__PUBLIC_KEYS_HASH = 777457226; pol DOM_SEP__PARTIAL_ADDRESS = 2103633018; - pol DOM_SEP__CONTRACT_ADDRESS_V1 = 1788365517; + pol DOM_SEP__CONTRACT_ADDRESS_V2 = 4099338721; pol DOM_SEP__PUBLIC_CALLDATA = 2760353947; diff --git a/barretenberg/cpp/pil/vm2/opcodes/get_contract_instance.pil b/barretenberg/cpp/pil/vm2/opcodes/get_contract_instance.pil index 0cea9409ff82..38bbbad882bb 100644 --- a/barretenberg/cpp/pil/vm2/opcodes/get_contract_instance.pil +++ b/barretenberg/cpp/pil/vm2/opcodes/get_contract_instance.pil @@ -11,16 +11,17 @@ include "../precomputed.pil"; * - Bounds-check dst_offset+1 via #[WRITE_OUT_OF_BOUNDS_CHECK]. If dst_offset is the * maximum valid address, dst_offset+1 would be out of bounds. * - Look up member_enum in the precomputed table (#[PRECOMPUTED_INFO]) to determine - * validity and which member is selected (deployer, class_id, or init_hash). + * validity and which member is selected (deployer, class_id, init_hash or immutables_hash). * The precomputed table covers the full 8-bit range: - * +-------+----------------------+-------------+-------------+--------------+ - * | idx | is_valid_member_enum | is_deployer | is_class_id | is_init_hash | - * +-------+----------------------+-------------+-------------+--------------+ - * | 0 | 1 | 1 | 0 | 0 | - * | 1 | 1 | 0 | 1 | 0 | - * | 2 | 1 | 0 | 0 | 1 | - * | 3+ | 0 | 0 | 0 | 0 | - * +-------+----------------------+-------------+-------------+--------------+ + * +-------+----------------------+-------------+-------------+--------------+--------------------+ + * | idx | is_valid_member_enum | is_deployer | is_class_id | is_init_hash | is_immutables_hash | + * +-------+----------------------+-------------+-------------+--------------+--------------------+ + * | 0 | 1 | 1 | 0 | 0 | 0 | + * | 1 | 1 | 0 | 1 | 0 | 0 | + * | 2 | 1 | 0 | 0 | 1 | 0 | + * | 3 | 1 | 0 | 0 | 0 | 1 | + * | 4+ | 0 | 0 | 0 | 0 | 0 | + * +-------+----------------------+-------------+-------------+--------------+--------------------+ * - Aggregate errors via #[ERROR_AGGREGATION]. sel_error is set when either * is_valid_writes_in_bounds or is_valid_member_enum is false. * - [no error only] Retrieve contract instance via the ContractInstanceRetrieval gadget @@ -72,7 +73,7 @@ include "../precomputed.pil"; * ERROR HANDLING: * Two error conditions, which are NOT mutually exclusive: * - Write out-of-bounds: dst_offset == AVM_HIGHEST_MEM_ADDRESS (dst_offset+1 overflows). - * - Invalid member enum: member_enum >= 3 (precomputed table returns is_valid_member_enum=0). + * - Invalid member enum: member_enum >= 4 (precomputed table returns is_valid_member_enum=0). * On error, the row has sel_error=1. The contract instance retrieval lookup and memory * write permutations are disabled (their selectors is_valid_member_enum / is_valid_writes_in_bounds * are 0), so no destination interactions fire for error rows. @@ -121,13 +122,14 @@ namespace get_contract_instance; // (from precomputed.pil's GETCONTRACTINSTANCE opcode precomputed columns) // These are constrained only via the #[PRECOMPUTED_INFO] lookup when is_valid_writes_in_bounds == 1. // When the lookup is disabled (writes out of bounds), is_valid_member_enum is forced to 0 by - // #[IS_VALID_MEMBER_ENUM_ONLY_SET_BY_PRECOMPUTED_LOOKUP]. is_deployer/is_class_id/is_init_hash + // #[IS_VALID_MEMBER_ENUM_ONLY_SET_BY_PRECOMPUTED_LOOKUP]. is_deployer/is_class_id/is_init_hash/is_immutables_hash // are free in that case, but safe: they are only consumed in #[SELECTED_MEMBER] and the memory // write permutations, all of which are gated on is_valid_member_enum (which is 0). pol commit is_valid_member_enum; // @boolean (by lookup when is_valid_writes_in_bounds == 1) pol commit is_deployer; // @boolean (by lookup when is_valid_writes_in_bounds == 1) pol commit is_class_id; // @boolean (by lookup when is_valid_writes_in_bounds == 1) pol commit is_init_hash; // @boolean (by lookup when is_valid_writes_in_bounds == 1) + pol commit is_immutables_hash; // @boolean (by lookup when is_valid_writes_in_bounds == 1) // Note: member_enum is guaranteed to be 8 bits by execution (as a U8 immediate operand), // and the precomputed table is populated for the entire 8-bit range (256 rows). #[PRECOMPUTED_INFO] @@ -138,7 +140,8 @@ namespace get_contract_instance; is_valid_member_enum, is_deployer, is_class_id, - is_init_hash + is_init_hash, + is_immutables_hash } in precomputed.sel_range_8 { // inputs precomputed.idx, @@ -146,7 +149,8 @@ namespace get_contract_instance; precomputed.is_valid_member_enum, precomputed.is_deployer, precomputed.is_class_id, - precomputed.is_init_hash + precomputed.is_init_hash, + precomputed.is_immutables_hash }; // Do not allow is_valid_member_enum to be 1 if the precomputed lookup is disabled. #[IS_VALID_MEMBER_ENUM_ONLY_SET_BY_PRECOMPUTED_LOOKUP] @@ -171,6 +175,7 @@ namespace get_contract_instance; pol commit retrieved_deployer_addr; pol commit retrieved_class_id; pol commit retrieved_init_hash; + pol commit retrieved_immutables_hash; #[CONTRACT_INSTANCE_RETRIEVAL] is_valid_member_enum { @@ -182,7 +187,8 @@ namespace get_contract_instance; instance_exists, retrieved_deployer_addr, retrieved_class_id, - retrieved_init_hash + retrieved_init_hash, + retrieved_immutables_hash } in contract_instance_retrieval.sel { // inputs contract_instance_retrieval.address, @@ -192,14 +198,15 @@ namespace get_contract_instance; contract_instance_retrieval.exists, contract_instance_retrieval.deployer_addr, contract_instance_retrieval.current_class_id, - contract_instance_retrieval.init_hash + contract_instance_retrieval.init_hash, + contract_instance_retrieval.immutables_hash }; // Select the member indicated by the enum for writing to memory // Note: is_* selectors are guaranteed to be mutually exclusive booleans by the precomputed table. pol commit selected_member; #[SELECTED_MEMBER] - selected_member = is_deployer * retrieved_deployer_addr + is_class_id * retrieved_class_id + is_init_hash * retrieved_init_hash; + selected_member = is_deployer * retrieved_deployer_addr + is_class_id * retrieved_class_id + is_init_hash * retrieved_init_hash + is_immutables_hash * retrieved_immutables_hash; // Compute memory offsets for writing to pol commit member_write_offset; diff --git a/barretenberg/cpp/pil/vm2/precomputed.pil b/barretenberg/cpp/pil/vm2/precomputed.pil index 734d6b761e46..0e03550ddc90 100644 --- a/barretenberg/cpp/pil/vm2/precomputed.pil +++ b/barretenberg/cpp/pil/vm2/precomputed.pil @@ -435,7 +435,7 @@ pol constant out_tag; // ===== Section 14: GETCONTRACTINSTANCE opcode columns ===== // Maps contract instance member enum values to selectors indicating which field -// (deployer, class_id, init_hash) is being accessed. +// (deployer, class_id, init_hash, immutables_hash) is being accessed. // Used by the GETCONTRACTINSTANCE opcode. // // see opcodes/get_contract_instance.pil for ascii table @@ -444,3 +444,4 @@ pol constant is_valid_member_enum; pol constant is_deployer; pol constant is_class_id; pol constant is_init_hash; +pol constant is_immutables_hash; diff --git a/barretenberg/cpp/src/barretenberg/aztec/aztec_constants.hpp b/barretenberg/cpp/src/barretenberg/aztec/aztec_constants.hpp index 070d5bbc80ef..37f0b6da63e6 100644 --- a/barretenberg/cpp/src/barretenberg/aztec/aztec_constants.hpp +++ b/barretenberg/cpp/src/barretenberg/aztec/aztec_constants.hpp @@ -273,6 +273,6 @@ #define DOM_SEP__SALTED_INITIALIZATION_HASH 2763052992UL #define DOM_SEP__PUBLIC_KEYS_HASH 777457226UL #define DOM_SEP__PARTIAL_ADDRESS 2103633018UL -#define DOM_SEP__CONTRACT_ADDRESS_V1 1788365517UL +#define DOM_SEP__CONTRACT_ADDRESS_V2 4099338721UL #define DOM_SEP__BLOCK_HEADER_HASH 4195546849UL #define DOM_SEP__PUBLIC_CALLDATA 2760353947UL diff --git a/barretenberg/cpp/src/barretenberg/vm2/common/avm_io.hpp b/barretenberg/cpp/src/barretenberg/vm2/common/avm_io.hpp index b503c573f12c..b9fb05dbd15d 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/common/avm_io.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/common/avm_io.hpp @@ -135,6 +135,7 @@ struct ContractInstanceHint { ContractClassId current_contract_class_id; ContractClassId original_contract_class_id; FF initialization_hash; + FF immutables_hash; PublicKeysHint public_keys; bool operator==(const ContractInstanceHint& other) const = default; @@ -146,6 +147,7 @@ struct ContractInstanceHint { current_contract_class_id, original_contract_class_id, initialization_hash, + immutables_hash, public_keys); }; diff --git a/barretenberg/cpp/src/barretenberg/vm2/common/aztec_types.hpp b/barretenberg/cpp/src/barretenberg/vm2/common/aztec_types.hpp index 4f8ec3dc8a11..af4053176395 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/common/aztec_types.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/common/aztec_types.hpp @@ -77,7 +77,8 @@ enum class ContractInstanceMember : uint8_t { DEPLOYER = 0, CLASS_ID = 1, INIT_HASH = 2, - MAX = INIT_HASH, + IMMUTABLES_HASH = 3, + MAX = IMMUTABLES_HASH, }; //////////////////////////////////////////////////////////////////////////// @@ -119,7 +120,8 @@ struct ContractInstance { ContractClassId current_contract_class_id = 0; ContractClassId original_contract_class_id = 0; FF initialization_hash = 0; - PublicKeys public_keys; + FF immutables_hash = 0; + PublicKeys public_keys{}; bool operator==(const ContractInstance& other) const = default; @@ -136,6 +138,8 @@ struct ContractInstance { original_contract_class_id, "initializationHash", initialization_hash, + "immutablesHash", + immutables_hash, "publicKeys", public_keys); } diff --git a/barretenberg/cpp/src/barretenberg/vm2/constraining/avm_fixed_vk.hpp b/barretenberg/cpp/src/barretenberg/vm2/constraining/avm_fixed_vk.hpp index c060244f6965..67efd8ca9e9c 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/constraining/avm_fixed_vk.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/constraining/avm_fixed_vk.hpp @@ -17,7 +17,7 @@ class AvmHardCodedVKAndHash { using FF = bb::curve::BN254::ScalarField; // Precomputed VK hash (hash of all commitments below). - static FF vk_hash() { return FF(uint256_t("0x23a03c6f87c465dbecc386b091e8123a8936597b5b0749f276d042a8964bd390")); } + static FF vk_hash() { return FF(uint256_t("0x153c7fcc6b4d41c6e66f43b95aeea43979a734a1fc25edbc27ad30bf8462a192")); } static constexpr std::array get_all() { @@ -134,6 +134,10 @@ class AvmHardCodedVKAndHash { uint256_t("0x0000000000000000000000000000000000000000000000000000000000000001"), uint256_t( "0x0000000000000000000000000000000000000000000000000000000000000002")), // precomputed_is_deployer + Commitment( + uint256_t("0x210bedcbb97a2e72905c082dd087be36c29c67e85b47de07b639e28a7dd78c76"), + uint256_t( + "0x18d1e431b83aa3ab2f6904bbbc452fee3472c01c0ceaf6d2fe6e37c4ff79e265")), // precomputed_is_immutables_hash Commitment( uint256_t("0x020ad6e43ccd48a6a39e43897cc85187bd364919be8a3b82d4809715cfe489db"), uint256_t( @@ -171,9 +175,9 @@ class AvmHardCodedVKAndHash { uint256_t( "0x23268ad7678b97fba97cc3e75da6cff9a3659c3b8a49046cce4062820e5c1116")), // precomputed_is_tree_padding Commitment( - uint256_t("0x210cdba7d0dae8d84cdd77a912060188657a0628905c0531fa63138ec3cbc9ea"), + uint256_t("0x00c43726f75b6fda0de22ce0e0dfab6bcc7a05ff95a96b289424c5f733670d96"), uint256_t( - "0x264f0d3eab260e5a20bdc5324e1ddcb3a0c0d811bb4a23b983417fd8c280486a")), // precomputed_is_valid_member_enum + "0x2f9b6e0b4e2c01968de5c32482aa7d1d0a09d7178ec93bad7858f96e64f0b48d")), // precomputed_is_valid_member_enum Commitment( uint256_t("0x057e5478fbad129bb84bfb618f6e7a747812510b4f6f70bd84d4688f760ecb62"), uint256_t( diff --git a/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/address_derivation.test.cpp b/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/address_derivation.test.cpp index 8720e12efd4e..252c8793a4a2 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/address_derivation.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/address_derivation.test.cpp @@ -72,14 +72,17 @@ TEST(AddressDerivationConstrainingTest, Basic) auto instance = testing::random_contract_instance(); - FF salted_initialization_hash = poseidon2::hash( - { DOM_SEP__SALTED_INITIALIZATION_HASH, instance.salt, instance.initialization_hash, instance.deployer }); + FF salted_initialization_hash = poseidon2::hash({ DOM_SEP__SALTED_INITIALIZATION_HASH, + instance.salt, + instance.initialization_hash, + instance.deployer, + instance.immutables_hash }); FF partial_address = poseidon2::hash({ DOM_SEP__PARTIAL_ADDRESS, instance.original_contract_class_id, salted_initialization_hash }); FF public_keys_hash = hash_public_keys(instance.public_keys); - FF preaddress = poseidon2::hash({ DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address }); + FF preaddress = poseidon2::hash({ DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address }); EmbeddedCurvePoint g1 = EmbeddedCurvePoint::one(); EmbeddedCurvePoint preaddress_public_key = g1 * Fq(preaddress); @@ -215,6 +218,62 @@ TEST(AddressDerivationConstrainingTest, NegativeWithInteractions) "Failed.*PREADDRESS_SCALAR_MUL. Could not find tuple in destination."); } +TEST(AddressDerivationConstrainingTest, NegativeMutateImmutablesHash) +{ + EventEmitter ecadd_event_emitter; + EventEmitter scalar_mul_event_emitter; + NoopEventEmitter ecc_add_memory_event_emitter; + EventEmitter hash_event_emitter; + NoopEventEmitter perm_event_emitter; + NoopEventEmitter perm_mem_event_emitter; + EventEmitter address_derivation_event_emitter; + + StrictMock mock_exec_id_manager; + EXPECT_CALL(mock_exec_id_manager, get_execution_id).WillRepeatedly(Return(0)); + StrictMock mock_gt; + Poseidon2 poseidon2_simulator( + mock_exec_id_manager, mock_gt, hash_event_emitter, perm_event_emitter, perm_mem_event_emitter); + + PureToRadix to_radix_simulator; + Ecc ecc_simulator(mock_exec_id_manager, + mock_gt, + to_radix_simulator, + ecadd_event_emitter, + scalar_mul_event_emitter, + ecc_add_memory_event_emitter); + + AddressDerivation address_derivation(poseidon2_simulator, ecc_simulator, address_derivation_event_emitter); + + TestTraceContainer trace({ + { { C::precomputed_first_row, 1 } }, + }); + + AddressDerivationTraceBuilder builder; + Poseidon2TraceBuilder poseidon2_builder; + EccTraceBuilder ecc_builder; + + ContractInstance instance = testing::random_contract_instance(); + AztecAddress address = compute_contract_address(instance); + address_derivation.assert_derivation(address, instance); + + builder.process(address_derivation_event_emitter.dump_events(), trace); + poseidon2_builder.process_hash(hash_event_emitter.dump_events(), trace); + ecc_builder.process_add(ecadd_event_emitter.dump_events(), trace); + ecc_builder.process_scalar_mul(scalar_mul_event_emitter.dump_events(), trace); + + check_all_interactions(trace); + check_relation(trace); + + // Mutate immutables_hash (the second input of the second poseidon2 round). The salted-init-hash + // round-2 lookup into poseidon2 should now fail because (deployer, mutated_immutables_hash, 0, + // salted_init_hash) no longer exists in the poseidon2 trace. + trace.set(C::address_derivation_immutables_hash, 0, instance.immutables_hash + 1); + EXPECT_THROW_WITH_MESSAGE( + (check_interaction(trace)), + "Failed.*SALTED_INITIALIZATION_HASH_POSEIDON2_1. Could not find tuple in destination."); +} + TEST(AddressDerivationConstrainingTest, NegativeIVKNotOnCurve) { TestTraceContainer trace; @@ -232,7 +291,7 @@ TEST(AddressDerivationConstrainingTest, NegativeIVKNotOnCurve) poseidon2::hash({ DOM_SEP__PARTIAL_ADDRESS, instance.original_contract_class_id, salted_initialization_hash }); FF public_keys_hash = hash_public_keys(instance.public_keys); - FF preaddress = poseidon2::hash({ DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address }); + FF preaddress = poseidon2::hash({ DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address }); EmbeddedCurvePoint g1 = EmbeddedCurvePoint::one(); EmbeddedCurvePoint preaddress_public_key = g1 * Fq(preaddress); diff --git a/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/contract_instance_retrieval.test.cpp b/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/contract_instance_retrieval.test.cpp index 793b2edc1488..e61e0a7c6a76 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/contract_instance_retrieval.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/contract_instance_retrieval.test.cpp @@ -45,6 +45,7 @@ ContractInstance create_test_contract_instance(uint32_t salt_value = 123) .current_contract_class_id = FF(0xdeadbeefULL), .original_contract_class_id = FF(0xcafebabeULL), .initialization_hash = FF(0x11111111ULL), + .immutables_hash = FF(0x22222222ULL), .public_keys = PublicKeys{ .nullifier_key = { FF(0x100), FF(0x101) }, @@ -72,6 +73,7 @@ TEST(ContractInstanceRetrievalConstrainingTest, CompleteValidTrace) const auto current_class_id = FF(0xdeadbeefULL); const auto original_class_id = FF(0xcafebabeULL); const auto init_hash = FF(0x11111111ULL); + const auto immutables_hash = FF(0x22222222ULL); const auto nullifier_key_x = FF(0x100); const auto nullifier_key_y = FF(0x101); const auto incoming_viewing_key_x = FF(0x200); @@ -92,6 +94,7 @@ TEST(ContractInstanceRetrievalConstrainingTest, CompleteValidTrace) { C::contract_instance_retrieval_current_class_id, current_class_id }, { C::contract_instance_retrieval_original_class_id, original_class_id }, { C::contract_instance_retrieval_init_hash, init_hash }, + { C::contract_instance_retrieval_immutables_hash, immutables_hash }, { C::contract_instance_retrieval_public_data_tree_root, public_data_tree_root }, { C::contract_instance_retrieval_nullifier_tree_root, nullifier_tree_root }, { C::contract_instance_retrieval_nullifier_tree_height, NULLIFIER_TREE_HEIGHT }, @@ -147,6 +150,7 @@ TEST(ContractInstanceRetrievalConstrainingTest, MultipleInstancesTrace) { C::contract_instance_retrieval_current_class_id, contract_instance.current_contract_class_id }, { C::contract_instance_retrieval_original_class_id, contract_instance.original_contract_class_id }, { C::contract_instance_retrieval_init_hash, contract_instance.initialization_hash }, + { C::contract_instance_retrieval_immutables_hash, contract_instance.immutables_hash }, { C::contract_instance_retrieval_public_data_tree_root, FF(base_public_data_tree_root + i) }, { C::contract_instance_retrieval_nullifier_tree_root, FF(base_nullifier_tree_root + i) }, { C::contract_instance_retrieval_nullifier_tree_height, NULLIFIER_TREE_HEIGHT }, @@ -199,6 +203,7 @@ TEST(ContractInstanceRetrievalConstrainingTest, NonExistentInstanceTrace) { C::contract_instance_retrieval_current_class_id, 0 }, { C::contract_instance_retrieval_original_class_id, 0 }, { C::contract_instance_retrieval_init_hash, 0 }, + { C::contract_instance_retrieval_immutables_hash, 0 }, { C::contract_instance_retrieval_public_data_tree_root, public_data_tree_root }, { C::contract_instance_retrieval_nullifier_tree_root, nullifier_tree_root }, { C::contract_instance_retrieval_nullifier_tree_height, NULLIFIER_TREE_HEIGHT }, @@ -242,6 +247,12 @@ TEST(ContractInstanceRetrievalConstrainingTest, NonExistentInstanceTrace) "INSTANCE_MEMBER_INIT_HASH_IS_ZERO_IF_DNE"); // reset trace.set(C::contract_instance_retrieval_init_hash, 1, 0); + // mutate immutables_hash + trace.set(C::contract_instance_retrieval_immutables_hash, 1, 1); + EXPECT_THROW_WITH_MESSAGE(check_relation(trace), + "INSTANCE_MEMBER_IMMUTABLES_HASH_IS_ZERO_IF_DNE"); + // reset + trace.set(C::contract_instance_retrieval_immutables_hash, 1, 0); } TEST(ContractInstanceRetrievalConstrainingTest, MaximumFieldValuesTrace) @@ -260,6 +271,7 @@ TEST(ContractInstanceRetrievalConstrainingTest, MaximumFieldValuesTrace) { C::contract_instance_retrieval_current_class_id, max_field }, { C::contract_instance_retrieval_original_class_id, max_field }, { C::contract_instance_retrieval_init_hash, max_field }, + { C::contract_instance_retrieval_immutables_hash, max_field }, { C::contract_instance_retrieval_public_data_tree_root, max_field }, { C::contract_instance_retrieval_nullifier_tree_root, max_field }, { C::contract_instance_retrieval_nullifier_tree_height, NULLIFIER_TREE_HEIGHT }, @@ -460,6 +472,7 @@ TEST(ContractInstanceRetrievalConstrainingTest, IntegrationTracegenValidInstance { C::address_derivation_deployer_addr, contract_instance_data.deployer }, { C::address_derivation_class_id, contract_instance_data.original_contract_class_id }, { C::address_derivation_init_hash, contract_instance_data.initialization_hash }, + { C::address_derivation_immutables_hash, contract_instance_data.immutables_hash }, { C::address_derivation_nullifier_key_x, contract_instance_data.public_keys.nullifier_key.x }, { C::address_derivation_nullifier_key_y, contract_instance_data.public_keys.nullifier_key.y }, { C::address_derivation_incoming_viewing_key_x, contract_instance_data.public_keys.incoming_viewing_key.x }, @@ -535,10 +548,11 @@ TEST(ContractInstanceRetrievalConstrainingTest, IntegrationTracegenNonExistentIn // For address derivation lookup { C::address_derivation_sel, 0 }, // Not selected since nullifier doesn't exist { C::address_derivation_address, contract_address }, - { C::address_derivation_salt, 0 }, // zero since nullifier doesn't exist - { C::address_derivation_deployer_addr, 0 }, // zero since nullifier doesn't exist - { C::address_derivation_class_id, 0 }, // zero since nullifier doesn't exist - { C::address_derivation_init_hash, 0 }, // zero since nullifier doesn't exist + { C::address_derivation_salt, 0 }, // zero since nullifier doesn't exist + { C::address_derivation_deployer_addr, 0 }, // zero since nullifier doesn't exist + { C::address_derivation_class_id, 0 }, // zero since nullifier doesn't exist + { C::address_derivation_init_hash, 0 }, // zero since nullifier doesn't exist + { C::address_derivation_immutables_hash, 0 }, // zero since nullifier doesn't exist { C::address_derivation_nullifier_key_x, 0 }, { C::address_derivation_nullifier_key_y, 0 }, { C::address_derivation_incoming_viewing_key_x, 0 }, @@ -616,10 +630,11 @@ TEST(ContractInstanceRetrievalConstrainingTest, IntegrationTracegenAddressZero) // For address derivation lookup { C::address_derivation_sel, 0 }, // Not selected since nullifier doesn't exist { C::address_derivation_address, contract_address }, - { C::address_derivation_salt, 0 }, // zero since nullifier doesn't exist - { C::address_derivation_deployer_addr, 0 }, // zero since nullifier doesn't exist - { C::address_derivation_class_id, 0 }, // zero since nullifier doesn't exist - { C::address_derivation_init_hash, 0 }, // zero since nullifier doesn't exist + { C::address_derivation_salt, 0 }, // zero since nullifier doesn't exist + { C::address_derivation_deployer_addr, 0 }, // zero since nullifier doesn't exist + { C::address_derivation_class_id, 0 }, // zero since nullifier doesn't exist + { C::address_derivation_init_hash, 0 }, // zero since nullifier doesn't exist + { C::address_derivation_immutables_hash, 0 }, // zero since nullifier doesn't exist { C::address_derivation_nullifier_key_x, 0 }, { C::address_derivation_nullifier_key_y, 0 }, { C::address_derivation_incoming_viewing_key_x, 0 }, @@ -710,6 +725,7 @@ TEST(ContractInstanceRetrievalConstrainingTest, IntegrationTracegenMultipleInsta { C::address_derivation_deployer_addr, contract_instance_data.deployer }, { C::address_derivation_class_id, contract_instance_data.original_contract_class_id }, { C::address_derivation_init_hash, contract_instance_data.initialization_hash }, + { C::address_derivation_immutables_hash, contract_instance_data.immutables_hash }, { C::address_derivation_nullifier_key_x, contract_instance_data.public_keys.nullifier_key.x }, { C::address_derivation_nullifier_key_y, contract_instance_data.public_keys.nullifier_key.y }, { C::address_derivation_incoming_viewing_key_x, diff --git a/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/get_contract_instance.test.cpp b/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/get_contract_instance.test.cpp index 30337347c8de..3ac442fe3116 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/get_contract_instance.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/get_contract_instance.test.cpp @@ -141,6 +141,7 @@ TEST(GetContractInstanceConstrainingTest, SelectedMemberConstraint) const FF deployer_addr = 0x1234; const FF class_id = 0x5678; const FF init_hash = 0x9ABC; + const FF immutables_hash = 0xCAFE; const FF wrong_value = 0x1111; // Test selected member subrelation @@ -152,9 +153,11 @@ TEST(GetContractInstanceConstrainingTest, SelectedMemberConstraint) { C::get_contract_instance_is_deployer, 1 }, { C::get_contract_instance_is_class_id, 0 }, { C::get_contract_instance_is_init_hash, 0 }, + { C::get_contract_instance_is_immutables_hash, 0 }, { C::get_contract_instance_retrieved_deployer_addr, deployer_addr }, { C::get_contract_instance_retrieved_class_id, class_id }, - { C::get_contract_instance_retrieved_init_hash, init_hash } }, + { C::get_contract_instance_retrieved_init_hash, init_hash }, + { C::get_contract_instance_retrieved_immutables_hash, immutables_hash } }, }); check_relation(trace, get_contract_instance::SR_SELECTED_MEMBER); @@ -171,6 +174,12 @@ TEST(GetContractInstanceConstrainingTest, SelectedMemberConstraint) trace.set(C::get_contract_instance_is_init_hash, 1, 1); check_relation(trace, get_contract_instance::SR_SELECTED_MEMBER); + // Test IMMUTABLES_HASH selection + trace.set(C::get_contract_instance_selected_member, 1, immutables_hash); + trace.set(C::get_contract_instance_is_init_hash, 1, 0); + trace.set(C::get_contract_instance_is_immutables_hash, 1, 1); + check_relation(trace, get_contract_instance::SR_SELECTED_MEMBER); + // Negative test: wrong selected member trace.set(C::get_contract_instance_selected_member, 1, wrong_value); // Wrong value EXPECT_THROW_WITH_MESSAGE(check_relation(trace, get_contract_instance::SR_SELECTED_MEMBER), diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp index 3d1bfac00e40..b9071a0b6b21 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp @@ -7,8 +7,8 @@ namespace bb::avm2 { // clang-format off -#define AVM2_PRECOMPUTED_ENTITIES_E(e) e precomputed_addressing_gas, e precomputed_bitwise_input_a, e precomputed_bitwise_input_b, e precomputed_bitwise_output_and, e precomputed_bitwise_output_or, e precomputed_bitwise_output_xor, e precomputed_dyn_gas_id, e precomputed_envvar_pi_row_idx, e precomputed_exec_opcode, e precomputed_exec_opcode_base_da_gas, e precomputed_exec_opcode_dynamic_da_gas, e precomputed_exec_opcode_dynamic_l2_gas, e precomputed_exec_opcode_opcode_gas, e precomputed_expected_tag_reg_0_, e precomputed_expected_tag_reg_1_, e precomputed_expected_tag_reg_2_, e precomputed_expected_tag_reg_3_, e precomputed_expected_tag_reg_4_, e precomputed_expected_tag_reg_5_, e precomputed_first_row, e precomputed_idx, e precomputed_instr_size, e precomputed_invalid_envvar_enum, e precomputed_is_address, e precomputed_is_class_id, e precomputed_is_cleanup, e precomputed_is_collect_fee, e precomputed_is_dagasleft, e precomputed_is_deployer, e precomputed_is_init_hash, e precomputed_is_isstaticcall, e precomputed_is_l2gasleft, e precomputed_is_public_call_request, e precomputed_is_revertible, e precomputed_is_sender, e precomputed_is_teardown, e precomputed_is_transactionfee, e precomputed_is_tree_padding, e precomputed_is_valid_member_enum, e precomputed_keccak_round_constant, e precomputed_next_phase_on_revert, e precomputed_opcode_out_of_range, e precomputed_out_tag, e precomputed_p_decomposition_limb, e precomputed_p_decomposition_limb_index, e precomputed_p_decomposition_radix, e precomputed_power_of_2, e precomputed_read_pi_length_offset, e precomputed_read_pi_start_offset, e precomputed_rw_reg_0_, e precomputed_rw_reg_1_, e precomputed_rw_reg_2_, e precomputed_rw_reg_3_, e precomputed_rw_reg_4_, e precomputed_rw_reg_5_, e precomputed_sel_addressing_gas, e precomputed_sel_append_l2_l1_msg, e precomputed_sel_append_note_hash, e precomputed_sel_append_nullifier, e precomputed_sel_envvar_pi_lookup_col0, e precomputed_sel_envvar_pi_lookup_col1, e precomputed_sel_exec_spec, e precomputed_sel_has_tag, e precomputed_sel_keccak, e precomputed_sel_mem_op_reg_0_, e precomputed_sel_mem_op_reg_1_, e precomputed_sel_mem_op_reg_2_, e precomputed_sel_mem_op_reg_3_, e precomputed_sel_mem_op_reg_4_, e precomputed_sel_mem_op_reg_5_, e precomputed_sel_mem_tag_out_of_range, e precomputed_sel_op_dc_0, e precomputed_sel_op_dc_1, e precomputed_sel_op_dc_10, e precomputed_sel_op_dc_11, e precomputed_sel_op_dc_12, e precomputed_sel_op_dc_13, e precomputed_sel_op_dc_14, e precomputed_sel_op_dc_15, e precomputed_sel_op_dc_16, e precomputed_sel_op_dc_2, e precomputed_sel_op_dc_3, e precomputed_sel_op_dc_4, e precomputed_sel_op_dc_5, e precomputed_sel_op_dc_6, e precomputed_sel_op_dc_7, e precomputed_sel_op_dc_8, e precomputed_sel_op_dc_9, e precomputed_sel_op_is_address_0_, e precomputed_sel_op_is_address_1_, e precomputed_sel_op_is_address_2_, e precomputed_sel_op_is_address_3_, e precomputed_sel_op_is_address_4_, e precomputed_sel_op_is_address_5_, e precomputed_sel_op_is_address_6_, e precomputed_sel_p_decomposition, e precomputed_sel_phase, e precomputed_sel_range_16, e precomputed_sel_range_8, e precomputed_sel_sha256_compression, e precomputed_sel_tag_check_reg_0_, e precomputed_sel_tag_check_reg_1_, e precomputed_sel_tag_check_reg_2_, e precomputed_sel_tag_check_reg_3_, e precomputed_sel_tag_check_reg_4_, e precomputed_sel_tag_check_reg_5_, e precomputed_sel_tag_is_op2, e precomputed_sel_tag_parameters, e precomputed_sel_to_radix_p_limb_counts, e precomputed_sha256_compression_round_constant, e precomputed_subtrace_id, e precomputed_subtrace_operation_id, e precomputed_tag_byte_length, e precomputed_tag_max_bits, e precomputed_tag_max_value, e precomputed_to_radix_num_limbs_for_p, e precomputed_to_radix_safe_limbs, e precomputed_zero, e public_inputs_sel -#define AVM2_WIRE_ENTITIES_E(e) e public_inputs_cols_0_, e public_inputs_cols_1_, e public_inputs_cols_2_, e public_inputs_cols_3_, e address_derivation_address, e address_derivation_address_y, e address_derivation_class_id, e address_derivation_const_four, e address_derivation_const_thirteen, e address_derivation_const_three, e address_derivation_const_two, e address_derivation_deployer_addr, e address_derivation_g1_x, e address_derivation_g1_y, e address_derivation_incoming_viewing_key_x, e address_derivation_incoming_viewing_key_y, e address_derivation_init_hash, e address_derivation_nullifier_key_x, e address_derivation_nullifier_key_y, e address_derivation_outgoing_viewing_key_x, e address_derivation_outgoing_viewing_key_y, e address_derivation_partial_address, e address_derivation_partial_address_domain_separator, e address_derivation_preaddress, e address_derivation_preaddress_domain_separator, e address_derivation_preaddress_public_key_x, e address_derivation_preaddress_public_key_y, e address_derivation_public_keys_hash, e address_derivation_public_keys_hash_domain_separator, e address_derivation_salt, e address_derivation_salted_init_hash, e address_derivation_salted_init_hash_domain_separator, e address_derivation_sel, e address_derivation_tagging_key_x, e address_derivation_tagging_key_y, e alu_a_hi, e alu_a_hi_bits, e alu_a_lo, e alu_a_lo_bits, e alu_ab_diff_inv, e alu_ab_tags_diff_inv, e alu_b_hi, e alu_b_inv, e alu_b_lo, e alu_c_hi, e alu_cf, e alu_constant_64, e alu_gt_input_a, e alu_gt_input_b, e alu_gt_result_c, e alu_helper1, e alu_ia, e alu_ia_tag, e alu_ib, e alu_ib_tag, e alu_ic, e alu_ic_tag, e alu_max_bits, e alu_max_value, e alu_mid, e alu_mid_bits, e alu_op_id, e alu_sel, e alu_sel_ab_tag_mismatch, e alu_sel_decompose_a, e alu_sel_div_0_err, e alu_sel_div_no_err, e alu_sel_err, e alu_sel_ff_gt, e alu_sel_int_gt, e alu_sel_is_ff, e alu_sel_is_u128, e alu_sel_mul_div_u128, e alu_sel_mul_no_err_non_ff, e alu_sel_op_add, e alu_sel_op_div, e alu_sel_op_eq, e alu_sel_op_fdiv, e alu_sel_op_lt, e alu_sel_op_lte, e alu_sel_op_mul, e alu_sel_op_not, e alu_sel_op_shl, e alu_sel_op_shr, e alu_sel_op_sub, e alu_sel_op_truncate, e alu_sel_shift_ops_no_overflow, e alu_sel_tag_err, e alu_sel_trunc_gte_128, e alu_sel_trunc_lt_128, e alu_sel_trunc_non_trivial, e alu_sel_trunc_trivial, e alu_shift_lo_bits, e alu_tag_ff_diff_inv, e alu_tag_u128_diff_inv, e alu_two_pow_shift_lo_bits, e bc_decomposition_bytes_pc_plus_36, e bc_decomposition_bytes_rem_inv, e bc_decomposition_bytes_rem_min_one_inv, e bc_decomposition_bytes_to_read, e bc_decomposition_last_of_contract, e bc_decomposition_next_packed_pc_min_pc_inv, e bc_decomposition_packed_field, e bc_decomposition_sel_packed, e bc_decomposition_sel_packed_read_0_, e bc_decomposition_sel_packed_read_1_, e bc_decomposition_sel_packed_read_2_, e bc_decomposition_sel_windows_eq_remaining, e bc_decomposition_windows_min_remaining_inv, e bc_hashing_end, e bc_hashing_input_len, e bc_hashing_packed_fields_0, e bc_hashing_packed_fields_1, e bc_hashing_packed_fields_2, e bc_hashing_pc_index, e bc_hashing_pc_index_2, e bc_hashing_sel_not_padding_1, e bc_hashing_sel_not_padding_2, e bc_hashing_size_in_bytes, e bc_retrieval_address, e bc_retrieval_artifact_hash, e bc_retrieval_bytecode_id, e bc_retrieval_current_class_id, e bc_retrieval_error, e bc_retrieval_instance_exists, e bc_retrieval_is_new_class, e bc_retrieval_next_retrieved_bytecodes_tree_root, e bc_retrieval_next_retrieved_bytecodes_tree_size, e bc_retrieval_no_remaining_bytecodes, e bc_retrieval_nullifier_tree_root, e bc_retrieval_prev_retrieved_bytecodes_tree_root, e bc_retrieval_prev_retrieved_bytecodes_tree_size, e bc_retrieval_private_functions_root, e bc_retrieval_public_data_tree_root, e bc_retrieval_remaining_bytecodes_inv, e bc_retrieval_retrieved_bytecodes_merkle_separator, e bc_retrieval_retrieved_bytecodes_tree_height, e bc_retrieval_sel, e bc_retrieval_should_retrieve, e bitwise_ctr_min_one_inv, e bitwise_end, e bitwise_err, e bitwise_ia_byte, e bitwise_ib_byte, e bitwise_ic_byte, e bitwise_output_and, e bitwise_output_or, e bitwise_output_xor, e bitwise_sel_and, e bitwise_sel_compute, e bitwise_sel_get_ctr, e bitwise_sel_or, e bitwise_sel_tag_ff_err, e bitwise_sel_tag_mismatch_err, e bitwise_sel_xor, e bitwise_start_keccak, e bitwise_start_sha256, e bitwise_tag_a, e bitwise_tag_a_inv, e bitwise_tag_ab_diff_inv, e bitwise_tag_b, e bitwise_tag_c, e calldata_end, e calldata_hashing_end, e calldata_hashing_index_1_, e calldata_hashing_index_2_, e calldata_hashing_input_0_, e calldata_hashing_input_1_, e calldata_hashing_input_2_, e calldata_hashing_input_len, e calldata_hashing_sel_end_not_empty, e calldata_hashing_sel_not_padding_1, e calldata_hashing_sel_not_padding_2, e calldata_hashing_sel_not_start, e calldata_value, e class_id_derivation_artifact_hash, e class_id_derivation_class_id, e class_id_derivation_const_four, e class_id_derivation_gen_index_contract_class_id, e class_id_derivation_private_functions_root, e class_id_derivation_public_bytecode_commitment, e class_id_derivation_sel, e context_stack_bytecode_id, e context_stack_context_id, e context_stack_contract_address, e context_stack_entered_context_id, e context_stack_internal_call_id, e context_stack_internal_call_return_id, e context_stack_is_static, e context_stack_msg_sender, e context_stack_next_internal_call_id, e context_stack_next_pc, e context_stack_note_hash_tree_root, e context_stack_note_hash_tree_size, e context_stack_nullifier_tree_root, e context_stack_nullifier_tree_size, e context_stack_num_l2_to_l1_messages, e context_stack_num_note_hashes_emitted, e context_stack_num_nullifiers_emitted, e context_stack_num_public_log_fields, e context_stack_parent_calldata_addr, e context_stack_parent_calldata_size, e context_stack_parent_da_gas_limit, e context_stack_parent_da_gas_used, e context_stack_parent_id, e context_stack_parent_l2_gas_limit, e context_stack_parent_l2_gas_used, e context_stack_public_data_tree_root, e context_stack_public_data_tree_size, e context_stack_sel, e context_stack_written_public_data_slots_tree_root, e context_stack_written_public_data_slots_tree_size, e contract_instance_retrieval_address, e contract_instance_retrieval_address_sub_one, e contract_instance_retrieval_current_class_id, e contract_instance_retrieval_deployer_addr, e contract_instance_retrieval_deployer_protocol_contract_address, e contract_instance_retrieval_derived_address, e contract_instance_retrieval_derived_address_pi_index, e contract_instance_retrieval_exists, e contract_instance_retrieval_incoming_viewing_key_x, e contract_instance_retrieval_incoming_viewing_key_y, e contract_instance_retrieval_init_hash, e contract_instance_retrieval_is_protocol_contract, e contract_instance_retrieval_max_protocol_contracts, e contract_instance_retrieval_nullifier_key_x, e contract_instance_retrieval_nullifier_key_y, e contract_instance_retrieval_nullifier_merkle_separator, e contract_instance_retrieval_nullifier_tree_height, e contract_instance_retrieval_nullifier_tree_root, e contract_instance_retrieval_original_class_id, e contract_instance_retrieval_outgoing_viewing_key_x, e contract_instance_retrieval_outgoing_viewing_key_y, e contract_instance_retrieval_protocol_contract_derived_address_inv, e contract_instance_retrieval_public_data_tree_root, e contract_instance_retrieval_salt, e contract_instance_retrieval_sel, e contract_instance_retrieval_should_check_for_update, e contract_instance_retrieval_should_check_nullifier, e contract_instance_retrieval_siloing_separator, e contract_instance_retrieval_tagging_key_x, e contract_instance_retrieval_tagging_key_y, e data_copy_cd_copy_col_read, e data_copy_clamped_read_index_upper_bound, e data_copy_dst_out_of_range_err, e data_copy_end, e data_copy_is_top_level, e data_copy_mem_size, e data_copy_offset, e data_copy_offset_plus_size, e data_copy_offset_plus_size_is_gt, e data_copy_parent_id_inv, e data_copy_read_addr_plus_one, e data_copy_read_addr_upper_bound, e data_copy_reads_left_inv, e data_copy_sel_cd_copy_start, e data_copy_sel_has_reads, e data_copy_sel_mem_read, e data_copy_sel_mem_write, e data_copy_sel_rd_copy_start, e data_copy_sel_write_count_is_zero, e data_copy_src_addr, e data_copy_src_data_size, e data_copy_src_reads_exceed_mem, e data_copy_start_no_err, e data_copy_tag, e data_copy_value, e data_copy_write_addr_upper_bound, e data_copy_write_count_minus_one_inv, e data_copy_write_count_zero_inv, e ecc_add_mem_dst_addr_0_, e ecc_add_mem_dst_addr_1_, e ecc_add_mem_dst_addr_2_, e ecc_add_mem_err, e ecc_add_mem_execution_clk, e ecc_add_mem_max_mem_addr, e ecc_add_mem_p_is_inf, e ecc_add_mem_p_is_on_curve_eqn, e ecc_add_mem_p_is_on_curve_eqn_inv, e ecc_add_mem_p_x, e ecc_add_mem_p_x_n, e ecc_add_mem_p_y, e ecc_add_mem_p_y_n, e ecc_add_mem_q_is_inf, e ecc_add_mem_q_is_on_curve_eqn, e ecc_add_mem_q_is_on_curve_eqn_inv, e ecc_add_mem_q_x, e ecc_add_mem_q_x_n, e ecc_add_mem_q_y, e ecc_add_mem_q_y_n, e ecc_add_mem_res_is_inf, e ecc_add_mem_res_x, e ecc_add_mem_res_y, e ecc_add_mem_sel, e ecc_add_mem_sel_dst_out_of_range_err, e ecc_add_mem_sel_p_not_on_curve_err, e ecc_add_mem_sel_q_not_on_curve_err, e ecc_add_mem_sel_should_exec, e ecc_add_mem_space_id, e ecc_add_op, e ecc_double_op, e ecc_inv_2_p_y, e ecc_inv_x_diff, e ecc_inv_y_diff, e ecc_lambda, e ecc_p_is_inf, e ecc_p_x, e ecc_p_y, e ecc_q_is_inf, e ecc_q_x, e ecc_q_y, e ecc_r_is_inf, e ecc_r_x, e ecc_r_y, e ecc_result_infinity, e ecc_sel, e ecc_use_computed_result, e ecc_x_match, e ecc_y_match, e emit_public_log_discard, e emit_public_log_end, e emit_public_log_end_log_address_upper_bound, e emit_public_log_error, e emit_public_log_error_too_many_log_fields, e emit_public_log_expected_next_log_fields, e emit_public_log_is_static, e emit_public_log_log_size, e emit_public_log_max_mem_size, e emit_public_log_max_public_logs_payload_length, e emit_public_log_next_num_public_log_fields, e emit_public_log_prev_num_public_log_fields, e emit_public_log_public_inputs_value, e emit_public_log_remaining_rows_inv, e emit_public_log_sel_read_memory, e emit_public_log_tag, e emit_public_log_tag_inv, e emit_public_log_value, e execution_addressing_error_collection_inv, e execution_addressing_gas, e execution_addressing_mode, e execution_base_address_tag, e execution_base_address_tag_diff_inv, e execution_base_address_val, e execution_base_da_gas, e execution_batched_tags_diff_inv, e execution_batched_tags_diff_inv_reg, e execution_da_gas_left, e execution_da_gas_used, e execution_dying_context_diff_inv, e execution_dying_context_id_inv, e execution_dyn_gas_id, e execution_dynamic_da_gas, e execution_dynamic_da_gas_factor, e execution_dynamic_l2_gas, e execution_dynamic_l2_gas_factor, e execution_enqueued_call_end, e execution_envvar_pi_row_idx, e execution_exec_opcode, e execution_expected_tag_reg_0_, e execution_expected_tag_reg_1_, e execution_expected_tag_reg_2_, e execution_expected_tag_reg_3_, e execution_expected_tag_reg_4_, e execution_expected_tag_reg_5_, e execution_has_parent_ctx, e execution_highest_address, e execution_instr_size, e execution_internal_call_return_id_inv, e execution_is_address, e execution_is_da_gas_left_gt_allocated, e execution_is_dagasleft, e execution_is_dying_context, e execution_is_isstaticcall, e execution_is_l2_gas_left_gt_allocated, e execution_is_l2gasleft, e execution_is_parent_id_inv, e execution_is_sender, e execution_is_transactionfee, e execution_l1_to_l2_msg_leaf_in_range, e execution_l1_to_l2_msg_tree_leaf_count, e execution_l2_gas_left, e execution_l2_gas_used, e execution_max_data_writes_reached, e execution_max_eth_address_value, e execution_mem_tag_reg_0_, e execution_mem_tag_reg_1_, e execution_mem_tag_reg_2_, e execution_mem_tag_reg_3_, e execution_mem_tag_reg_4_, e execution_mem_tag_reg_5_, e execution_nested_failure, e execution_nested_return, e execution_next_pc, e execution_note_hash_leaf_in_range, e execution_note_hash_tree_leaf_count, e execution_note_hash_tree_root, e execution_note_hash_tree_size, e execution_nullifier_merkle_separator, e execution_nullifier_pi_offset, e execution_nullifier_siloing_separator, e execution_nullifier_tree_height, e execution_nullifier_tree_root, e execution_nullifier_tree_size, e execution_num_l2_to_l1_messages, e execution_num_note_hashes_emitted, e execution_num_nullifiers_emitted, e execution_num_p_limbs, e execution_num_public_log_fields, e execution_num_relative_operands_inv, e execution_op_0_, e execution_op_1_, e execution_op_2_, e execution_op_3_, e execution_op_4_, e execution_op_5_, e execution_op_6_, e execution_op_after_relative_0_, e execution_op_after_relative_1_, e execution_op_after_relative_2_, e execution_op_after_relative_3_, e execution_op_after_relative_4_, e execution_op_after_relative_5_, e execution_op_after_relative_6_, e execution_opcode_gas, e execution_out_of_gas_da, e execution_out_of_gas_l2, e execution_public_data_tree_root, e execution_public_data_tree_size, e execution_public_inputs_index, e execution_register_0_, e execution_register_1_, e execution_register_2_, e execution_register_3_, e execution_register_4_, e execution_register_5_, e execution_remaining_data_writes_inv, e execution_remaining_l2_to_l1_msgs_inv, e execution_remaining_note_hashes_inv, e execution_remaining_nullifiers_inv, e execution_retrieved_bytecodes_tree_root, e execution_retrieved_bytecodes_tree_size, e execution_rop_0_, e execution_rop_1_, e execution_rop_2_, e execution_rop_3_, e execution_rop_4_, e execution_rop_5_, e execution_rop_6_, e execution_rop_tag_0_, e execution_rop_tag_1_, e execution_rop_tag_2_, e execution_rop_tag_3_, e execution_rop_tag_4_, e execution_rop_tag_5_, e execution_rop_tag_6_, e execution_rw_reg_0_, e execution_rw_reg_1_, e execution_rw_reg_2_, e execution_rw_reg_3_, e execution_rw_reg_4_, e execution_rw_reg_5_, e execution_sel_addressing_error, e execution_sel_apply_indirection_0_, e execution_sel_apply_indirection_1_, e execution_sel_apply_indirection_2_, e execution_sel_apply_indirection_3_, e execution_sel_apply_indirection_4_, e execution_sel_apply_indirection_5_, e execution_sel_apply_indirection_6_, e execution_sel_base_address_failure, e execution_sel_bytecode_retrieval_failure, e execution_sel_bytecode_retrieval_success, e execution_sel_check_gas, e execution_sel_do_base_check, e execution_sel_enter_call, e execution_sel_envvar_pi_lookup_col0, e execution_sel_envvar_pi_lookup_col1, e execution_sel_error, e execution_sel_exec_dispatch_alu, e execution_sel_exec_dispatch_bitwise, e execution_sel_exec_dispatch_calldata_copy, e execution_sel_exec_dispatch_cast, e execution_sel_exec_dispatch_ecc_add, e execution_sel_exec_dispatch_emit_public_log, e execution_sel_exec_dispatch_execution, e execution_sel_exec_dispatch_get_contract_instance, e execution_sel_exec_dispatch_keccakf1600, e execution_sel_exec_dispatch_poseidon2_perm, e execution_sel_exec_dispatch_returndata_copy, e execution_sel_exec_dispatch_set, e execution_sel_exec_dispatch_sha256_compression, e execution_sel_exec_dispatch_to_radix, e execution_sel_execute_call, e execution_sel_execute_debug_log, e execution_sel_execute_emit_notehash, e execution_sel_execute_emit_nullifier, e execution_sel_execute_get_env_var, e execution_sel_execute_internal_call, e execution_sel_execute_internal_return, e execution_sel_execute_jump, e execution_sel_execute_jumpi, e execution_sel_execute_l1_to_l2_message_exists, e execution_sel_execute_mov, e execution_sel_execute_notehash_exists, e execution_sel_execute_nullifier_exists, e execution_sel_execute_opcode, e execution_sel_execute_return, e execution_sel_execute_returndata_size, e execution_sel_execute_revert, e execution_sel_execute_send_l2_to_l1_msg, e execution_sel_execute_sload, e execution_sel_execute_sstore, e execution_sel_execute_static_call, e execution_sel_execute_success_copy, e execution_sel_exit_call, e execution_sel_failure, e execution_sel_gas_bitwise, e execution_sel_gas_calldata_copy, e execution_sel_gas_emit_public_log, e execution_sel_gas_returndata_copy, e execution_sel_gas_sstore, e execution_sel_gas_to_radix, e execution_sel_instruction_fetching_failure, e execution_sel_instruction_fetching_success, e execution_sel_l2_to_l1_msg_limit_error, e execution_sel_lookup_num_p_limbs, e execution_sel_mem_op_reg_0_, e execution_sel_mem_op_reg_1_, e execution_sel_mem_op_reg_2_, e execution_sel_mem_op_reg_3_, e execution_sel_mem_op_reg_4_, e execution_sel_mem_op_reg_5_, e execution_sel_op_do_overflow_check_0_, e execution_sel_op_do_overflow_check_1_, e execution_sel_op_do_overflow_check_2_, e execution_sel_op_do_overflow_check_3_, e execution_sel_op_do_overflow_check_4_, e execution_sel_op_do_overflow_check_5_, e execution_sel_op_do_overflow_check_6_, e execution_sel_op_is_address_0_, e execution_sel_op_is_address_1_, e execution_sel_op_is_address_2_, e execution_sel_op_is_address_3_, e execution_sel_op_is_address_4_, e execution_sel_op_is_address_5_, e execution_sel_op_is_address_6_, e execution_sel_op_is_indirect_wire_0_, e execution_sel_op_is_indirect_wire_1_, e execution_sel_op_is_indirect_wire_2_, e execution_sel_op_is_indirect_wire_3_, e execution_sel_op_is_indirect_wire_4_, e execution_sel_op_is_indirect_wire_5_, e execution_sel_op_is_indirect_wire_6_, e execution_sel_op_is_indirect_wire_7_, e execution_sel_op_is_relative_wire_0_, e execution_sel_op_is_relative_wire_1_, e execution_sel_op_is_relative_wire_2_, e execution_sel_op_is_relative_wire_3_, e execution_sel_op_is_relative_wire_4_, e execution_sel_op_is_relative_wire_5_, e execution_sel_op_is_relative_wire_6_, e execution_sel_op_is_relative_wire_7_, e execution_sel_op_reg_effective_0_, e execution_sel_op_reg_effective_1_, e execution_sel_op_reg_effective_2_, e execution_sel_op_reg_effective_3_, e execution_sel_op_reg_effective_4_, e execution_sel_op_reg_effective_5_, e execution_sel_opcode_error, e execution_sel_out_of_gas, e execution_sel_radix_gt_256, e execution_sel_reached_max_note_hashes, e execution_sel_reached_max_nullifiers, e execution_sel_read_registers, e execution_sel_read_unwind_call_stack, e execution_sel_register_read_error, e execution_sel_relative_overflow_0_, e execution_sel_relative_overflow_1_, e execution_sel_relative_overflow_2_, e execution_sel_relative_overflow_3_, e execution_sel_relative_overflow_4_, e execution_sel_relative_overflow_5_, e execution_sel_relative_overflow_6_, e execution_sel_some_final_check_failed, e execution_sel_tag_check_reg_0_, e execution_sel_tag_check_reg_1_, e execution_sel_tag_check_reg_2_, e execution_sel_tag_check_reg_3_, e execution_sel_tag_check_reg_4_, e execution_sel_tag_check_reg_5_, e execution_sel_too_large_recipient_error, e execution_sel_use_num_limbs, e execution_sel_write_l2_to_l1_msg, e execution_sel_write_note_hash, e execution_sel_write_nullifier, e execution_sel_write_public_data, e execution_sel_write_registers, e execution_subtrace_id, e execution_subtrace_operation_id, e execution_total_gas_da, e execution_total_gas_l2, e execution_two_five_six, e execution_value_from_pi, e execution_written_public_data_slots_tree_root, e execution_written_public_data_slots_tree_size, e execution_written_slots_merkle_separator, e execution_written_slots_tree_height, e execution_written_slots_tree_siloing_separator, e ff_gt_a, e ff_gt_b, e ff_gt_borrow, e ff_gt_constant_128, e ff_gt_end, e ff_gt_p_a_borrow, e ff_gt_p_b_borrow, e ff_gt_res_hi, e ff_gt_res_lo, e ff_gt_result, e get_contract_instance_clk, e get_contract_instance_contract_address, e get_contract_instance_dst_offset, e get_contract_instance_dst_offset_diff_max_inv, e get_contract_instance_exists_tag, e get_contract_instance_instance_exists, e get_contract_instance_is_class_id, e get_contract_instance_is_deployer, e get_contract_instance_is_init_hash, e get_contract_instance_is_valid_member_enum, e get_contract_instance_is_valid_writes_in_bounds, e get_contract_instance_member_enum, e get_contract_instance_member_tag, e get_contract_instance_member_write_offset, e get_contract_instance_nullifier_tree_root, e get_contract_instance_public_data_tree_root, e get_contract_instance_retrieved_class_id, e get_contract_instance_retrieved_deployer_addr, e get_contract_instance_retrieved_init_hash, e get_contract_instance_sel, e get_contract_instance_sel_error, e get_contract_instance_selected_member, e get_contract_instance_space_id, e gt_abs_diff, e gt_input_a, e gt_input_b, e gt_num_bits, e gt_res, e gt_sel, e gt_sel_addressing, e gt_sel_alu, e gt_sel_gas, e gt_sel_others, e gt_sel_sha256, e indexed_tree_check_address, e indexed_tree_check_const_three, e indexed_tree_check_discard, e indexed_tree_check_exists, e indexed_tree_check_intermediate_root, e indexed_tree_check_low_leaf_hash, e indexed_tree_check_low_leaf_index, e indexed_tree_check_low_leaf_next_index, e indexed_tree_check_low_leaf_next_value, e indexed_tree_check_low_leaf_value, e indexed_tree_check_merkle_hash_separator, e indexed_tree_check_new_leaf_hash, e indexed_tree_check_next_value_inv, e indexed_tree_check_next_value_is_nonzero, e indexed_tree_check_not_exists, e indexed_tree_check_public_inputs_index, e indexed_tree_check_root, e indexed_tree_check_sel, e indexed_tree_check_sel_insert, e indexed_tree_check_sel_silo, e indexed_tree_check_sel_write_to_public_inputs, e indexed_tree_check_siloed_value, e indexed_tree_check_siloing_separator, e indexed_tree_check_tree_height, e indexed_tree_check_tree_size_after_write, e indexed_tree_check_tree_size_before_write, e indexed_tree_check_updated_low_leaf_hash, e indexed_tree_check_updated_low_leaf_next_index, e indexed_tree_check_updated_low_leaf_next_value, e indexed_tree_check_value, e indexed_tree_check_value_low_leaf_value_diff_inv, e indexed_tree_check_write, e indexed_tree_check_write_root, e instr_fetching_addressing_mode, e instr_fetching_bd0, e instr_fetching_bd1, e instr_fetching_bd10, e instr_fetching_bd11, e instr_fetching_bd12, e instr_fetching_bd13, e instr_fetching_bd14, e instr_fetching_bd15, e instr_fetching_bd16, e instr_fetching_bd17, e instr_fetching_bd18, e instr_fetching_bd19, e instr_fetching_bd2, e instr_fetching_bd20, e instr_fetching_bd21, e instr_fetching_bd22, e instr_fetching_bd23, e instr_fetching_bd24, e instr_fetching_bd25, e instr_fetching_bd26, e instr_fetching_bd27, e instr_fetching_bd28, e instr_fetching_bd29, e instr_fetching_bd3, e instr_fetching_bd30, e instr_fetching_bd31, e instr_fetching_bd32, e instr_fetching_bd33, e instr_fetching_bd34, e instr_fetching_bd35, e instr_fetching_bd36, e instr_fetching_bd4, e instr_fetching_bd5, e instr_fetching_bd6, e instr_fetching_bd7, e instr_fetching_bd8, e instr_fetching_bd9, e instr_fetching_bytecode_id, e instr_fetching_bytecode_size, e instr_fetching_bytes_to_read, e instr_fetching_exec_opcode, e instr_fetching_instr_abs_diff, e instr_fetching_instr_out_of_range, e instr_fetching_instr_size, e instr_fetching_op1, e instr_fetching_op2, e instr_fetching_op3, e instr_fetching_op4, e instr_fetching_op5, e instr_fetching_op6, e instr_fetching_op7, e instr_fetching_opcode_out_of_range, e instr_fetching_pc, e instr_fetching_pc_abs_diff, e instr_fetching_pc_out_of_range, e instr_fetching_pc_size_in_bits, e instr_fetching_sel, e instr_fetching_sel_has_tag, e instr_fetching_sel_op_dc_0, e instr_fetching_sel_op_dc_1, e instr_fetching_sel_op_dc_10, e instr_fetching_sel_op_dc_11, e instr_fetching_sel_op_dc_12, e instr_fetching_sel_op_dc_13, e instr_fetching_sel_op_dc_14, e instr_fetching_sel_op_dc_15, e instr_fetching_sel_op_dc_16, e instr_fetching_sel_op_dc_2, e instr_fetching_sel_op_dc_3, e instr_fetching_sel_op_dc_4, e instr_fetching_sel_op_dc_5, e instr_fetching_sel_op_dc_6, e instr_fetching_sel_op_dc_7, e instr_fetching_sel_op_dc_8, e instr_fetching_sel_op_dc_9, e instr_fetching_sel_parsing_err, e instr_fetching_sel_pc_in_range, e instr_fetching_sel_tag_is_op2, e instr_fetching_tag_out_of_range, e instr_fetching_tag_value, e internal_call_stack_call_id, e internal_call_stack_context_id, e internal_call_stack_entered_call_id, e internal_call_stack_return_call_id, e internal_call_stack_return_pc, e internal_call_stack_sel, e keccak_memory_ctr_end, e keccak_memory_end, e keccak_memory_single_tag_error, e keccak_memory_state_size_min_ctr_inv, e keccak_memory_tag, e keccak_memory_tag_min_u64_inv, e keccak_memory_val_24_, e keccakf1600_bitwise_and_op_id, e keccakf1600_bitwise_xor_op_id, e keccakf1600_dst_out_of_range_error, e keccakf1600_end, e keccakf1600_error, e keccakf1600_highest_slice_address, e keccakf1600_rot_64_min_len_01, e keccakf1600_rot_64_min_len_03, e keccakf1600_rot_64_min_len_11, e keccakf1600_rot_64_min_len_13, e keccakf1600_rot_64_min_len_20, e keccakf1600_rot_64_min_len_22, e keccakf1600_rot_64_min_len_24, e keccakf1600_rot_64_min_len_31, e keccakf1600_rot_64_min_len_34, e keccakf1600_rot_64_min_len_42, e keccakf1600_rot_len_02, e keccakf1600_rot_len_04, e keccakf1600_rot_len_10, e keccakf1600_rot_len_12, e keccakf1600_rot_len_14, e keccakf1600_rot_len_21, e keccakf1600_rot_len_23, e keccakf1600_rot_len_30, e keccakf1600_rot_len_32, e keccakf1600_rot_len_33, e keccakf1600_rot_len_40, e keccakf1600_rot_len_41, e keccakf1600_rot_len_43, e keccakf1600_rot_len_44, e keccakf1600_round_cst, e keccakf1600_sel_slice_read, e keccakf1600_sel_slice_write, e keccakf1600_src_addr, e keccakf1600_src_out_of_range_error, e keccakf1600_state_chi_00, e keccakf1600_state_chi_01, e keccakf1600_state_chi_02, e keccakf1600_state_chi_03, e keccakf1600_state_chi_04, e keccakf1600_state_chi_10, e keccakf1600_state_chi_11, e keccakf1600_state_chi_12, e keccakf1600_state_chi_13, e keccakf1600_state_chi_14, e keccakf1600_state_chi_20, e keccakf1600_state_chi_21, e keccakf1600_state_chi_22, e keccakf1600_state_chi_23, e keccakf1600_state_chi_24, e keccakf1600_state_chi_30, e keccakf1600_state_chi_31, e keccakf1600_state_chi_32, e keccakf1600_state_chi_33, e keccakf1600_state_chi_34, e keccakf1600_state_chi_40, e keccakf1600_state_chi_41, e keccakf1600_state_chi_42, e keccakf1600_state_chi_43, e keccakf1600_state_chi_44, e keccakf1600_state_iota_00, e keccakf1600_state_pi_and_00, e keccakf1600_state_pi_and_01, e keccakf1600_state_pi_and_02, e keccakf1600_state_pi_and_03, e keccakf1600_state_pi_and_04, e keccakf1600_state_pi_and_10, e keccakf1600_state_pi_and_11, e keccakf1600_state_pi_and_12, e keccakf1600_state_pi_and_13, e keccakf1600_state_pi_and_14, e keccakf1600_state_pi_and_20, e keccakf1600_state_pi_and_21, e keccakf1600_state_pi_and_22, e keccakf1600_state_pi_and_23, e keccakf1600_state_pi_and_24, e keccakf1600_state_pi_and_30, e keccakf1600_state_pi_and_31, e keccakf1600_state_pi_and_32, e keccakf1600_state_pi_and_33, e keccakf1600_state_pi_and_34, e keccakf1600_state_pi_and_40, e keccakf1600_state_pi_and_41, e keccakf1600_state_pi_and_42, e keccakf1600_state_pi_and_43, e keccakf1600_state_pi_and_44, e keccakf1600_state_pi_not_00, e keccakf1600_state_pi_not_01, e keccakf1600_state_pi_not_02, e keccakf1600_state_pi_not_03, e keccakf1600_state_pi_not_04, e keccakf1600_state_pi_not_10, e keccakf1600_state_pi_not_11, e keccakf1600_state_pi_not_12, e keccakf1600_state_pi_not_13, e keccakf1600_state_pi_not_14, e keccakf1600_state_pi_not_20, e keccakf1600_state_pi_not_21, e keccakf1600_state_pi_not_22, e keccakf1600_state_pi_not_23, e keccakf1600_state_pi_not_24, e keccakf1600_state_pi_not_30, e keccakf1600_state_pi_not_31, e keccakf1600_state_pi_not_32, e keccakf1600_state_pi_not_33, e keccakf1600_state_pi_not_34, e keccakf1600_state_pi_not_40, e keccakf1600_state_pi_not_41, e keccakf1600_state_pi_not_42, e keccakf1600_state_pi_not_43, e keccakf1600_state_pi_not_44, e keccakf1600_state_rho_01, e keccakf1600_state_rho_02, e keccakf1600_state_rho_03, e keccakf1600_state_rho_04, e keccakf1600_state_rho_10, e keccakf1600_state_rho_11, e keccakf1600_state_rho_12, e keccakf1600_state_rho_13, e keccakf1600_state_rho_14, e keccakf1600_state_rho_20, e keccakf1600_state_rho_21, e keccakf1600_state_rho_22, e keccakf1600_state_rho_23, e keccakf1600_state_rho_24, e keccakf1600_state_rho_30, e keccakf1600_state_rho_31, e keccakf1600_state_rho_32, e keccakf1600_state_rho_33, e keccakf1600_state_rho_34, e keccakf1600_state_rho_40, e keccakf1600_state_rho_41, e keccakf1600_state_rho_42, e keccakf1600_state_rho_43, e keccakf1600_state_rho_44, e keccakf1600_state_theta_00, e keccakf1600_state_theta_01, e keccakf1600_state_theta_02, e keccakf1600_state_theta_03, e keccakf1600_state_theta_04, e keccakf1600_state_theta_10, e keccakf1600_state_theta_11, e keccakf1600_state_theta_12, e keccakf1600_state_theta_13, e keccakf1600_state_theta_14, e keccakf1600_state_theta_20, e keccakf1600_state_theta_21, e keccakf1600_state_theta_22, e keccakf1600_state_theta_23, e keccakf1600_state_theta_24, e keccakf1600_state_theta_30, e keccakf1600_state_theta_31, e keccakf1600_state_theta_32, e keccakf1600_state_theta_33, e keccakf1600_state_theta_34, e keccakf1600_state_theta_40, e keccakf1600_state_theta_41, e keccakf1600_state_theta_42, e keccakf1600_state_theta_43, e keccakf1600_state_theta_44, e keccakf1600_state_theta_hi_02, e keccakf1600_state_theta_hi_04, e keccakf1600_state_theta_hi_10, e keccakf1600_state_theta_hi_12, e keccakf1600_state_theta_hi_14, e keccakf1600_state_theta_hi_21, e keccakf1600_state_theta_hi_23, e keccakf1600_state_theta_hi_30, e keccakf1600_state_theta_hi_32, e keccakf1600_state_theta_hi_33, e keccakf1600_state_theta_hi_40, e keccakf1600_state_theta_hi_41, e keccakf1600_state_theta_hi_43, e keccakf1600_state_theta_hi_44, e keccakf1600_state_theta_low_01, e keccakf1600_state_theta_low_03, e keccakf1600_state_theta_low_11, e keccakf1600_state_theta_low_13, e keccakf1600_state_theta_low_20, e keccakf1600_state_theta_low_22, e keccakf1600_state_theta_low_24, e keccakf1600_state_theta_low_31, e keccakf1600_state_theta_low_34, e keccakf1600_state_theta_low_42, e keccakf1600_tag_error, e keccakf1600_tag_u64, e keccakf1600_theta_combined_xor_0, e keccakf1600_theta_combined_xor_1, e keccakf1600_theta_combined_xor_2, e keccakf1600_theta_combined_xor_3, e keccakf1600_theta_combined_xor_4, e keccakf1600_theta_xor_01, e keccakf1600_theta_xor_02, e keccakf1600_theta_xor_03, e keccakf1600_theta_xor_11, e keccakf1600_theta_xor_12, e keccakf1600_theta_xor_13, e keccakf1600_theta_xor_21, e keccakf1600_theta_xor_22, e keccakf1600_theta_xor_23, e keccakf1600_theta_xor_31, e keccakf1600_theta_xor_32, e keccakf1600_theta_xor_33, e keccakf1600_theta_xor_41, e keccakf1600_theta_xor_42, e keccakf1600_theta_xor_43, e keccakf1600_theta_xor_row_0, e keccakf1600_theta_xor_row_1, e keccakf1600_theta_xor_row_2, e keccakf1600_theta_xor_row_3, e keccakf1600_theta_xor_row_4, e keccakf1600_theta_xor_row_msb_0, e keccakf1600_theta_xor_row_msb_1, e keccakf1600_theta_xor_row_msb_2, e keccakf1600_theta_xor_row_msb_3, e keccakf1600_theta_xor_row_msb_4, e keccakf1600_theta_xor_row_rotl1_0, e keccakf1600_theta_xor_row_rotl1_1, e keccakf1600_theta_xor_row_rotl1_2, e keccakf1600_theta_xor_row_rotl1_3, e keccakf1600_theta_xor_row_rotl1_4, e l1_to_l2_message_tree_check_exists, e l1_to_l2_message_tree_check_l1_to_l2_message_tree_height, e l1_to_l2_message_tree_check_leaf_index, e l1_to_l2_message_tree_check_leaf_value, e l1_to_l2_message_tree_check_leaf_value_msg_hash_diff_inv, e l1_to_l2_message_tree_check_merkle_hash_separator, e l1_to_l2_message_tree_check_msg_hash, e l1_to_l2_message_tree_check_root, e l1_to_l2_message_tree_check_sel, e memory_diff, e memory_glob_addr_diff_inv, e memory_last_access, e memory_limb_0_, e memory_limb_1_, e memory_limb_2_, e memory_max_bits, e memory_sel_addressing_base, e memory_sel_addressing_indirect_0_, e memory_sel_addressing_indirect_1_, e memory_sel_addressing_indirect_2_, e memory_sel_addressing_indirect_3_, e memory_sel_addressing_indirect_4_, e memory_sel_addressing_indirect_5_, e memory_sel_addressing_indirect_6_, e memory_sel_data_copy_read, e memory_sel_data_copy_write, e memory_sel_ecc_write_0_, e memory_sel_ecc_write_1_, e memory_sel_ecc_write_2_, e memory_sel_get_contract_instance_exists_write, e memory_sel_get_contract_instance_member_write, e memory_sel_keccak, e memory_sel_poseidon2_read_0_, e memory_sel_poseidon2_read_1_, e memory_sel_poseidon2_read_2_, e memory_sel_poseidon2_read_3_, e memory_sel_poseidon2_write_0_, e memory_sel_poseidon2_write_1_, e memory_sel_poseidon2_write_2_, e memory_sel_poseidon2_write_3_, e memory_sel_public_log_read, e memory_sel_register_op_0_, e memory_sel_register_op_1_, e memory_sel_register_op_2_, e memory_sel_register_op_3_, e memory_sel_register_op_4_, e memory_sel_register_op_5_, e memory_sel_rng_chk, e memory_sel_rng_write, e memory_sel_sha256_op_0_, e memory_sel_sha256_op_1_, e memory_sel_sha256_op_2_, e memory_sel_sha256_op_3_, e memory_sel_sha256_op_4_, e memory_sel_sha256_op_5_, e memory_sel_sha256_op_6_, e memory_sel_sha256_op_7_, e memory_sel_sha256_read, e memory_sel_tag_is_ff, e memory_sel_to_radix_write, e memory_tag_ff_diff_inv, e merkle_check_const_three, e merkle_check_end, e merkle_check_index_is_even, e merkle_check_path_len_min_one_inv, e merkle_check_read_left_node, e merkle_check_read_output_hash, e merkle_check_read_right_node, e merkle_check_sibling, e merkle_check_write_left_node, e merkle_check_write_output_hash, e merkle_check_write_right_node, e note_hash_tree_check_address, e note_hash_tree_check_const_three, e note_hash_tree_check_discard, e note_hash_tree_check_exists, e note_hash_tree_check_first_nullifier, e note_hash_tree_check_first_nullifier_pi_index, e note_hash_tree_check_leaf_index, e note_hash_tree_check_merkle_hash_separator, e note_hash_tree_check_next_leaf_value, e note_hash_tree_check_next_root, e note_hash_tree_check_nonce, e note_hash_tree_check_nonce_separator, e note_hash_tree_check_note_hash, e note_hash_tree_check_note_hash_index, e note_hash_tree_check_note_hash_tree_height, e note_hash_tree_check_prev_leaf_value, e note_hash_tree_check_prev_leaf_value_unique_note_hash_diff_inv, e note_hash_tree_check_prev_root, e note_hash_tree_check_public_inputs_index, e note_hash_tree_check_sel, e note_hash_tree_check_sel_silo, e note_hash_tree_check_sel_unique, e note_hash_tree_check_sel_write_to_public_inputs, e note_hash_tree_check_siloed_note_hash, e note_hash_tree_check_siloing_separator, e note_hash_tree_check_unique_note_hash, e note_hash_tree_check_unique_note_hash_separator, e note_hash_tree_check_write, e poseidon2_hash_b_0, e poseidon2_hash_b_1, e poseidon2_hash_b_2, e poseidon2_hash_b_3, e poseidon2_hash_end, e poseidon2_hash_input_len, e poseidon2_hash_num_perm_rounds_rem_min_one_inv, e poseidon2_hash_padding, e poseidon2_perm_B_10_0, e poseidon2_perm_B_10_1, e poseidon2_perm_B_10_2, e poseidon2_perm_B_10_3, e poseidon2_perm_B_11_0, e poseidon2_perm_B_11_1, e poseidon2_perm_B_11_2, e poseidon2_perm_B_11_3, e poseidon2_perm_B_12_0, e poseidon2_perm_B_12_1, e poseidon2_perm_B_12_2, e poseidon2_perm_B_12_3, e poseidon2_perm_B_13_0, e poseidon2_perm_B_13_1, e poseidon2_perm_B_13_2, e poseidon2_perm_B_13_3, e poseidon2_perm_B_14_0, e poseidon2_perm_B_14_1, e poseidon2_perm_B_14_2, e poseidon2_perm_B_14_3, e poseidon2_perm_B_15_0, e poseidon2_perm_B_15_1, e poseidon2_perm_B_15_2, e poseidon2_perm_B_15_3, e poseidon2_perm_B_16_0, e poseidon2_perm_B_16_1, e poseidon2_perm_B_16_2, e poseidon2_perm_B_16_3, e poseidon2_perm_B_17_0, e poseidon2_perm_B_17_1, e poseidon2_perm_B_17_2, e poseidon2_perm_B_17_3, e poseidon2_perm_B_18_0, e poseidon2_perm_B_18_1, e poseidon2_perm_B_18_2, e poseidon2_perm_B_18_3, e poseidon2_perm_B_19_0, e poseidon2_perm_B_19_1, e poseidon2_perm_B_19_2, e poseidon2_perm_B_19_3, e poseidon2_perm_B_20_0, e poseidon2_perm_B_20_1, e poseidon2_perm_B_20_2, e poseidon2_perm_B_20_3, e poseidon2_perm_B_21_0, e poseidon2_perm_B_21_1, e poseidon2_perm_B_21_2, e poseidon2_perm_B_21_3, e poseidon2_perm_B_22_0, e poseidon2_perm_B_22_1, e poseidon2_perm_B_22_2, e poseidon2_perm_B_22_3, e poseidon2_perm_B_23_0, e poseidon2_perm_B_23_1, e poseidon2_perm_B_23_2, e poseidon2_perm_B_23_3, e poseidon2_perm_B_24_0, e poseidon2_perm_B_24_1, e poseidon2_perm_B_24_2, e poseidon2_perm_B_24_3, e poseidon2_perm_B_25_0, e poseidon2_perm_B_25_1, e poseidon2_perm_B_25_2, e poseidon2_perm_B_25_3, e poseidon2_perm_B_26_0, e poseidon2_perm_B_26_1, e poseidon2_perm_B_26_2, e poseidon2_perm_B_26_3, e poseidon2_perm_B_27_0, e poseidon2_perm_B_27_1, e poseidon2_perm_B_27_2, e poseidon2_perm_B_27_3, e poseidon2_perm_B_28_0, e poseidon2_perm_B_28_1, e poseidon2_perm_B_28_2, e poseidon2_perm_B_28_3, e poseidon2_perm_B_29_0, e poseidon2_perm_B_29_1, e poseidon2_perm_B_29_2, e poseidon2_perm_B_29_3, e poseidon2_perm_B_30_0, e poseidon2_perm_B_30_1, e poseidon2_perm_B_30_2, e poseidon2_perm_B_30_3, e poseidon2_perm_B_31_0, e poseidon2_perm_B_31_1, e poseidon2_perm_B_31_2, e poseidon2_perm_B_31_3, e poseidon2_perm_B_32_0, e poseidon2_perm_B_32_1, e poseidon2_perm_B_32_2, e poseidon2_perm_B_32_3, e poseidon2_perm_B_33_0, e poseidon2_perm_B_33_1, e poseidon2_perm_B_33_2, e poseidon2_perm_B_33_3, e poseidon2_perm_B_34_0, e poseidon2_perm_B_34_1, e poseidon2_perm_B_34_2, e poseidon2_perm_B_34_3, e poseidon2_perm_B_35_0, e poseidon2_perm_B_35_1, e poseidon2_perm_B_35_2, e poseidon2_perm_B_35_3, e poseidon2_perm_B_36_0, e poseidon2_perm_B_36_1, e poseidon2_perm_B_36_2, e poseidon2_perm_B_36_3, e poseidon2_perm_B_37_0, e poseidon2_perm_B_37_1, e poseidon2_perm_B_37_2, e poseidon2_perm_B_37_3, e poseidon2_perm_B_38_0, e poseidon2_perm_B_38_1, e poseidon2_perm_B_38_2, e poseidon2_perm_B_38_3, e poseidon2_perm_B_39_0, e poseidon2_perm_B_39_1, e poseidon2_perm_B_39_2, e poseidon2_perm_B_39_3, e poseidon2_perm_B_40_0, e poseidon2_perm_B_40_1, e poseidon2_perm_B_40_2, e poseidon2_perm_B_40_3, e poseidon2_perm_B_41_0, e poseidon2_perm_B_41_1, e poseidon2_perm_B_41_2, e poseidon2_perm_B_41_3, e poseidon2_perm_B_42_0, e poseidon2_perm_B_42_1, e poseidon2_perm_B_42_2, e poseidon2_perm_B_42_3, e poseidon2_perm_B_43_0, e poseidon2_perm_B_43_1, e poseidon2_perm_B_43_2, e poseidon2_perm_B_43_3, e poseidon2_perm_B_44_0, e poseidon2_perm_B_44_1, e poseidon2_perm_B_44_2, e poseidon2_perm_B_44_3, e poseidon2_perm_B_45_0, e poseidon2_perm_B_45_1, e poseidon2_perm_B_45_2, e poseidon2_perm_B_45_3, e poseidon2_perm_B_46_0, e poseidon2_perm_B_46_1, e poseidon2_perm_B_46_2, e poseidon2_perm_B_46_3, e poseidon2_perm_B_47_0, e poseidon2_perm_B_47_1, e poseidon2_perm_B_47_2, e poseidon2_perm_B_47_3, e poseidon2_perm_B_48_0, e poseidon2_perm_B_48_1, e poseidon2_perm_B_48_2, e poseidon2_perm_B_48_3, e poseidon2_perm_B_49_0, e poseidon2_perm_B_49_1, e poseidon2_perm_B_49_2, e poseidon2_perm_B_49_3, e poseidon2_perm_B_4_0, e poseidon2_perm_B_4_1, e poseidon2_perm_B_4_2, e poseidon2_perm_B_4_3, e poseidon2_perm_B_50_0, e poseidon2_perm_B_50_1, e poseidon2_perm_B_50_2, e poseidon2_perm_B_50_3, e poseidon2_perm_B_51_0, e poseidon2_perm_B_51_1, e poseidon2_perm_B_51_2, e poseidon2_perm_B_51_3, e poseidon2_perm_B_52_0, e poseidon2_perm_B_52_1, e poseidon2_perm_B_52_2, e poseidon2_perm_B_52_3, e poseidon2_perm_B_53_0, e poseidon2_perm_B_53_1, e poseidon2_perm_B_53_2, e poseidon2_perm_B_53_3, e poseidon2_perm_B_54_0, e poseidon2_perm_B_54_1, e poseidon2_perm_B_54_2, e poseidon2_perm_B_54_3, e poseidon2_perm_B_55_0, e poseidon2_perm_B_55_1, e poseidon2_perm_B_55_2, e poseidon2_perm_B_55_3, e poseidon2_perm_B_56_0, e poseidon2_perm_B_56_1, e poseidon2_perm_B_56_2, e poseidon2_perm_B_56_3, e poseidon2_perm_B_57_0, e poseidon2_perm_B_57_1, e poseidon2_perm_B_57_2, e poseidon2_perm_B_57_3, e poseidon2_perm_B_58_0, e poseidon2_perm_B_58_1, e poseidon2_perm_B_58_2, e poseidon2_perm_B_58_3, e poseidon2_perm_B_59_0, e poseidon2_perm_B_59_1, e poseidon2_perm_B_59_2, e poseidon2_perm_B_59_3, e poseidon2_perm_B_5_0, e poseidon2_perm_B_5_1, e poseidon2_perm_B_5_2, e poseidon2_perm_B_5_3, e poseidon2_perm_B_6_0, e poseidon2_perm_B_6_1, e poseidon2_perm_B_6_2, e poseidon2_perm_B_6_3, e poseidon2_perm_B_7_0, e poseidon2_perm_B_7_1, e poseidon2_perm_B_7_2, e poseidon2_perm_B_7_3, e poseidon2_perm_B_8_0, e poseidon2_perm_B_8_1, e poseidon2_perm_B_8_2, e poseidon2_perm_B_8_3, e poseidon2_perm_B_9_0, e poseidon2_perm_B_9_1, e poseidon2_perm_B_9_2, e poseidon2_perm_B_9_3, e poseidon2_perm_EXT_LAYER_4, e poseidon2_perm_EXT_LAYER_5, e poseidon2_perm_EXT_LAYER_6, e poseidon2_perm_EXT_LAYER_7, e poseidon2_perm_T_0_4, e poseidon2_perm_T_0_5, e poseidon2_perm_T_0_6, e poseidon2_perm_T_0_7, e poseidon2_perm_T_1_4, e poseidon2_perm_T_1_5, e poseidon2_perm_T_1_6, e poseidon2_perm_T_1_7, e poseidon2_perm_T_2_4, e poseidon2_perm_T_2_5, e poseidon2_perm_T_2_6, e poseidon2_perm_T_2_7, e poseidon2_perm_T_3_4, e poseidon2_perm_T_3_5, e poseidon2_perm_T_3_6, e poseidon2_perm_T_3_7, e poseidon2_perm_T_60_4, e poseidon2_perm_T_60_5, e poseidon2_perm_T_60_6, e poseidon2_perm_T_60_7, e poseidon2_perm_T_61_4, e poseidon2_perm_T_61_5, e poseidon2_perm_T_61_6, e poseidon2_perm_T_61_7, e poseidon2_perm_T_62_4, e poseidon2_perm_T_62_5, e poseidon2_perm_T_62_6, e poseidon2_perm_T_62_7, e poseidon2_perm_T_63_4, e poseidon2_perm_T_63_5, e poseidon2_perm_T_63_6, e poseidon2_perm_T_63_7, e poseidon2_perm_a_0, e poseidon2_perm_a_1, e poseidon2_perm_a_2, e poseidon2_perm_a_3, e poseidon2_perm_b_0, e poseidon2_perm_b_1, e poseidon2_perm_b_2, e poseidon2_perm_b_3, e poseidon2_perm_mem_batch_tag_inv, e poseidon2_perm_mem_err, e poseidon2_perm_mem_execution_clk, e poseidon2_perm_mem_input_0_, e poseidon2_perm_mem_input_1_, e poseidon2_perm_mem_input_2_, e poseidon2_perm_mem_input_3_, e poseidon2_perm_mem_input_tag_0_, e poseidon2_perm_mem_input_tag_1_, e poseidon2_perm_mem_input_tag_2_, e poseidon2_perm_mem_input_tag_3_, e poseidon2_perm_mem_max_mem_addr, e poseidon2_perm_mem_output_0_, e poseidon2_perm_mem_output_1_, e poseidon2_perm_mem_output_2_, e poseidon2_perm_mem_output_3_, e poseidon2_perm_mem_read_address_0_, e poseidon2_perm_mem_read_address_1_, e poseidon2_perm_mem_read_address_2_, e poseidon2_perm_mem_read_address_3_, e poseidon2_perm_mem_sel, e poseidon2_perm_mem_sel_dst_out_of_range_err, e poseidon2_perm_mem_sel_invalid_tag_err, e poseidon2_perm_mem_sel_should_exec, e poseidon2_perm_mem_sel_should_read_mem, e poseidon2_perm_mem_sel_src_out_of_range_err, e poseidon2_perm_mem_space_id, e poseidon2_perm_mem_write_address_0_, e poseidon2_perm_mem_write_address_1_, e poseidon2_perm_mem_write_address_2_, e poseidon2_perm_mem_write_address_3_, e poseidon2_perm_sel, e public_data_check_address, e public_data_check_clk_diff_hi, e public_data_check_clk_diff_lo, e public_data_check_const_four, e public_data_check_const_three, e public_data_check_discard, e public_data_check_end, e public_data_check_final_value, e public_data_check_intermediate_root, e public_data_check_leaf_not_exists, e public_data_check_leaf_slot, e public_data_check_leaf_slot_low_leaf_slot_diff_inv, e public_data_check_length_pi_idx, e public_data_check_low_leaf_hash, e public_data_check_low_leaf_index, e public_data_check_low_leaf_next_index, e public_data_check_low_leaf_next_slot, e public_data_check_low_leaf_slot, e public_data_check_low_leaf_value, e public_data_check_merkle_hash_separator, e public_data_check_new_leaf_hash, e public_data_check_next_slot_inv, e public_data_check_next_slot_is_nonzero, e public_data_check_non_discarded_write, e public_data_check_non_protocol_write, e public_data_check_not_end, e public_data_check_protocol_write, e public_data_check_public_data_writes_length, e public_data_check_root, e public_data_check_sel_write_to_public_inputs, e public_data_check_should_insert, e public_data_check_siloing_separator, e public_data_check_slot, e public_data_check_tree_height, e public_data_check_tree_size_after_write, e public_data_check_tree_size_before_write, e public_data_check_updated_low_leaf_hash, e public_data_check_updated_low_leaf_next_index, e public_data_check_updated_low_leaf_next_slot, e public_data_check_updated_low_leaf_value, e public_data_check_value, e public_data_check_write, e public_data_check_write_root, e public_data_squash_check_clock, e public_data_squash_clk_diff_hi, e public_data_squash_clk_diff_lo, e public_data_squash_leaf_slot_increase, e public_data_squash_value, e range_check_dyn_diff, e range_check_dyn_rng_chk_bits, e range_check_dyn_rng_chk_pow_2, e range_check_is_lte_u112, e range_check_is_lte_u128, e range_check_is_lte_u16, e range_check_is_lte_u32, e range_check_is_lte_u48, e range_check_is_lte_u64, e range_check_is_lte_u80, e range_check_is_lte_u96, e range_check_rng_chk_bits, e range_check_sel, e range_check_sel_alu, e range_check_sel_gt, e range_check_sel_keccak, e range_check_sel_memory, e range_check_sel_r0_16_bit_rng_lookup, e range_check_sel_r1_16_bit_rng_lookup, e range_check_sel_r2_16_bit_rng_lookup, e range_check_sel_r3_16_bit_rng_lookup, e range_check_sel_r4_16_bit_rng_lookup, e range_check_sel_r5_16_bit_rng_lookup, e range_check_sel_r6_16_bit_rng_lookup, e range_check_u16_r0, e range_check_u16_r1, e range_check_u16_r2, e range_check_u16_r3, e range_check_u16_r4, e range_check_u16_r5, e range_check_u16_r6, e range_check_u16_r7, e range_check_value, e scalar_mul_bit, e scalar_mul_const_two, e scalar_mul_end, e scalar_mul_sel_not_end, e scalar_mul_should_add, e sha256_a_and_b, e sha256_a_and_b_xor_a_and_c, e sha256_a_and_c, e sha256_a_rotr_13, e sha256_a_rotr_2, e sha256_a_rotr_22, e sha256_a_rotr_2_xor_a_rotr_13, e sha256_and_op_id, e sha256_b_and_c, e sha256_batch_tag_inv, e sha256_ch, e sha256_computed_w_lhs, e sha256_computed_w_rhs, e sha256_e_and_f, e sha256_e_rotr_11, e sha256_e_rotr_25, e sha256_e_rotr_6, e sha256_e_rotr_6_xor_e_rotr_11, e sha256_end, e sha256_err, e sha256_input, e sha256_input_rounds_rem_inv, e sha256_input_tag, e sha256_input_tag_diff_inv, e sha256_last, e sha256_lhs_w_10, e sha256_lhs_w_3, e sha256_maj, e sha256_max_input_addr, e sha256_max_mem_addr, e sha256_max_output_addr, e sha256_max_state_addr, e sha256_mem_out_of_range_err, e sha256_memory_address_0_, e sha256_memory_address_1_, e sha256_memory_address_2_, e sha256_memory_address_3_, e sha256_memory_address_4_, e sha256_memory_address_5_, e sha256_memory_address_6_, e sha256_memory_address_7_, e sha256_memory_register_0_, e sha256_memory_register_1_, e sha256_memory_register_2_, e sha256_memory_register_3_, e sha256_memory_register_4_, e sha256_memory_register_5_, e sha256_memory_register_6_, e sha256_memory_register_7_, e sha256_memory_tag_0_, e sha256_memory_tag_1_, e sha256_memory_tag_2_, e sha256_memory_tag_3_, e sha256_memory_tag_4_, e sha256_memory_tag_5_, e sha256_memory_tag_6_, e sha256_memory_tag_7_, e sha256_next_a_lhs, e sha256_next_a_rhs, e sha256_next_e_lhs, e sha256_next_e_rhs, e sha256_not_e, e sha256_not_e_and_g, e sha256_output_a_lhs, e sha256_output_a_rhs, e sha256_output_b_lhs, e sha256_output_b_rhs, e sha256_output_c_lhs, e sha256_output_c_rhs, e sha256_output_d_lhs, e sha256_output_d_rhs, e sha256_output_e_lhs, e sha256_output_e_rhs, e sha256_output_f_lhs, e sha256_output_f_rhs, e sha256_output_g_lhs, e sha256_output_g_rhs, e sha256_output_h_lhs, e sha256_output_h_rhs, e sha256_perform_round, e sha256_rhs_a_13, e sha256_rhs_a_2, e sha256_rhs_a_22, e sha256_rhs_e_11, e sha256_rhs_e_25, e sha256_rhs_e_6, e sha256_rhs_w_10, e sha256_rhs_w_17, e sha256_rhs_w_18, e sha256_rhs_w_19, e sha256_rhs_w_3, e sha256_rhs_w_7, e sha256_round_constant, e sha256_round_count, e sha256_rounds_remaining_inv, e sha256_rw, e sha256_s_0, e sha256_s_1, e sha256_sel_compute_w, e sha256_sel_input_out_of_range_err, e sha256_sel_invalid_input_row_tag_err, e sha256_sel_invalid_state_tag_err, e sha256_sel_is_input_round, e sha256_sel_mem_state_or_output, e sha256_sel_output_out_of_range_err, e sha256_sel_read_input_from_memory, e sha256_sel_state_out_of_range_err, e sha256_state_addr, e sha256_two_pow_10, e sha256_two_pow_11, e sha256_two_pow_13, e sha256_two_pow_17, e sha256_two_pow_18, e sha256_two_pow_19, e sha256_two_pow_2, e sha256_two_pow_22, e sha256_two_pow_25, e sha256_two_pow_3, e sha256_two_pow_32, e sha256_two_pow_6, e sha256_two_pow_7, e sha256_u32_tag, e sha256_w, e sha256_w_15_rotr_18, e sha256_w_15_rotr_7, e sha256_w_15_rotr_7_xor_w_15_rotr_18, e sha256_w_2_rotr_17, e sha256_w_2_rotr_17_xor_w_2_rotr_19, e sha256_w_2_rotr_19, e sha256_w_s_0, e sha256_w_s_1, e sha256_xor_op_id, e to_radix_end, e to_radix_found, e to_radix_is_unsafe_limb, e to_radix_limb_p_diff, e to_radix_limb_radix_diff, e to_radix_mem_err, e to_radix_mem_input_validation_error, e to_radix_mem_last, e to_radix_mem_limb_index_to_lookup, e to_radix_mem_limb_value, e to_radix_mem_max_mem_size, e to_radix_mem_num_limbs_inv, e to_radix_mem_num_limbs_minus_one_inv, e to_radix_mem_output_tag, e to_radix_mem_radix_min_two_inv, e to_radix_mem_sel_dst_out_of_range_err, e to_radix_mem_sel_invalid_bitwise_radix, e to_radix_mem_sel_num_limbs_is_zero, e to_radix_mem_sel_radix_eq_2, e to_radix_mem_sel_radix_gt_256_err, e to_radix_mem_sel_radix_lt_2_err, e to_radix_mem_sel_value_is_zero, e to_radix_mem_two, e to_radix_mem_two_five_six, e to_radix_mem_value_found, e to_radix_mem_value_inv, e to_radix_mem_write_addr_upper_bound, e to_radix_p_limb, e to_radix_rem_inverse, e to_radix_safety_diff_inverse, e tx_array_length_l2_to_l1_messages_pi_offset, e tx_array_length_note_hashes_pi_offset, e tx_array_length_nullifiers_pi_offset, e tx_calldata_hash, e tx_calldata_size, e tx_const_three, e tx_contract_addr, e tx_dom_sep_public_storage_map_slot, e tx_effective_fee_per_da_gas, e tx_effective_fee_per_l2_gas, e tx_end_phase, e tx_fee_juice_balance_slot, e tx_fee_juice_balances_slot_constant, e tx_fee_juice_contract_address, e tx_fee_payer, e tx_fee_payer_balance, e tx_fee_payer_new_balance, e tx_fee_payer_pi_offset, e tx_fields_length_public_logs_pi_offset, e tx_gas_limit_pi_offset, e tx_gas_used_pi_offset, e tx_is_cleanup, e tx_is_collect_fee, e tx_is_padded, e tx_is_public_call_request, e tx_is_static, e tx_is_tree_insert_phase, e tx_is_tree_padding, e tx_l1_l2_pi_offset, e tx_l2_l1_msg_content, e tx_l2_l1_msg_contract_address, e tx_l2_l1_msg_recipient, e tx_leaf_value, e tx_msg_sender, e tx_next_da_gas_used, e tx_next_da_gas_used_sent_to_enqueued_call, e tx_next_l2_gas_used, e tx_next_l2_gas_used_sent_to_enqueued_call, e tx_next_note_hash_tree_root, e tx_next_note_hash_tree_size, e tx_next_nullifier_tree_root, e tx_next_nullifier_tree_size, e tx_next_num_l2_to_l1_messages, e tx_next_num_note_hashes_emitted, e tx_next_num_nullifiers_emitted, e tx_next_num_public_log_fields, e tx_next_phase_on_revert, e tx_next_public_data_tree_root, e tx_next_public_data_tree_size, e tx_next_retrieved_bytecodes_tree_root, e tx_next_retrieved_bytecodes_tree_size, e tx_next_written_public_data_slots_tree_root, e tx_next_written_public_data_slots_tree_size, e tx_note_hash_pi_offset, e tx_nullifier_limit_error, e tx_nullifier_merkle_separator, e tx_nullifier_pi_offset, e tx_nullifier_tree_height, e tx_prev_da_gas_used_sent_to_enqueued_call, e tx_prev_l2_gas_used_sent_to_enqueued_call, e tx_public_data_pi_offset, e tx_read_pi_length_offset, e tx_read_pi_start_offset, e tx_remaining_phase_inv, e tx_remaining_phase_minus_one_inv, e tx_remaining_side_effects_inv, e tx_reverted_pi_offset, e tx_sel_append_l2_l1_msg, e tx_sel_append_note_hash, e tx_sel_append_nullifier, e tx_sel_l2_l1_msg_append, e tx_sel_note_hash_append, e tx_sel_nullifier_append, e tx_sel_process_call_request, e tx_sel_read_phase_length, e tx_sel_read_trees_and_gas_used, e tx_sel_try_l2_l1_msg_append, e tx_sel_try_note_hash_append, e tx_sel_try_nullifier_append, e tx_setup_phase_value, e tx_should_read_gas_limit, e tx_uint32_max, e tx_write_nullifier_pi_offset, e tx_write_pi_offset, e update_check_address, e update_check_const_three, e update_check_contract_instance_registry_address, e update_check_current_class_id, e update_check_delayed_public_mutable_hash_slot, e update_check_delayed_public_mutable_slot, e update_check_dom_sep_public_storage_map_slot, e update_check_hash_not_zero, e update_check_original_class_id, e update_check_public_data_tree_root, e update_check_sel, e update_check_timestamp, e update_check_timestamp_is_lt_timestamp_of_change, e update_check_timestamp_of_change, e update_check_timestamp_of_change_bit_size, e update_check_timestamp_pi_offset, e update_check_update_hash, e update_check_update_hash_inv, e update_check_update_hi_metadata, e update_check_update_hi_metadata_bit_size, e update_check_update_post_class_id_is_zero, e update_check_update_post_class_inv, e update_check_update_pre_class_id_is_zero, e update_check_update_pre_class_inv, e update_check_update_preimage_metadata, e update_check_update_preimage_post_class_id, e update_check_update_preimage_pre_class_id, e update_check_updated_class_ids_slot, e lookup_range_check_dyn_rng_chk_pow_2_counts, e lookup_range_check_dyn_diff_is_u16_counts, e lookup_range_check_r0_is_u16_counts, e lookup_range_check_r1_is_u16_counts, e lookup_range_check_r2_is_u16_counts, e lookup_range_check_r3_is_u16_counts, e lookup_range_check_r4_is_u16_counts, e lookup_range_check_r5_is_u16_counts, e lookup_range_check_r6_is_u16_counts, e lookup_range_check_r7_is_u16_counts, e lookup_ff_gt_a_lo_range_counts, e lookup_ff_gt_a_hi_range_counts, e lookup_gt_gt_range_counts, e lookup_alu_tag_max_bits_value_counts, e lookup_alu_range_check_decomposition_a_lo_counts, e lookup_alu_range_check_decomposition_a_hi_counts, e lookup_alu_range_check_decomposition_b_lo_counts, e lookup_alu_range_check_decomposition_b_hi_counts, e lookup_alu_range_check_mul_c_hi_counts, e lookup_alu_range_check_div_remainder_counts, e lookup_alu_ff_gt_counts, e lookup_alu_int_gt_counts, e lookup_alu_shifts_two_pow_counts, e lookup_alu_large_trunc_canonical_dec_counts, e lookup_alu_range_check_trunc_mid_counts, e lookup_bitwise_integral_tag_length_counts, e lookup_bitwise_byte_operations_counts, e lookup_memory_range_check_limb_0_counts, e lookup_memory_range_check_limb_1_counts, e lookup_memory_range_check_limb_2_counts, e lookup_memory_tag_max_bits_counts, e lookup_memory_range_check_write_tagged_value_counts, e lookup_data_copy_offset_plus_size_is_gt_data_size_counts, e lookup_data_copy_check_src_addr_in_range_counts, e lookup_data_copy_check_dst_addr_in_range_counts, e lookup_data_copy_sel_has_reads_counts, e lookup_data_copy_col_read_counts, e lookup_ecc_mem_check_dst_addr_in_range_counts, e lookup_ecc_mem_input_output_ecc_add_counts, e lookup_keccakf1600_theta_xor_01_counts, e lookup_keccakf1600_theta_xor_02_counts, e lookup_keccakf1600_theta_xor_03_counts, e lookup_keccakf1600_theta_xor_row_0_counts, e lookup_keccakf1600_theta_xor_11_counts, e lookup_keccakf1600_theta_xor_12_counts, e lookup_keccakf1600_theta_xor_13_counts, e lookup_keccakf1600_theta_xor_row_1_counts, e lookup_keccakf1600_theta_xor_21_counts, e lookup_keccakf1600_theta_xor_22_counts, e lookup_keccakf1600_theta_xor_23_counts, e lookup_keccakf1600_theta_xor_row_2_counts, e lookup_keccakf1600_theta_xor_31_counts, e lookup_keccakf1600_theta_xor_32_counts, e lookup_keccakf1600_theta_xor_33_counts, e lookup_keccakf1600_theta_xor_row_3_counts, e lookup_keccakf1600_theta_xor_41_counts, e lookup_keccakf1600_theta_xor_42_counts, e lookup_keccakf1600_theta_xor_43_counts, e lookup_keccakf1600_theta_xor_row_4_counts, e lookup_keccakf1600_theta_combined_xor_0_counts, e lookup_keccakf1600_theta_combined_xor_1_counts, e lookup_keccakf1600_theta_combined_xor_2_counts, e lookup_keccakf1600_theta_combined_xor_3_counts, e lookup_keccakf1600_theta_combined_xor_4_counts, e lookup_keccakf1600_state_theta_00_counts, e lookup_keccakf1600_state_theta_01_counts, e lookup_keccakf1600_state_theta_02_counts, e lookup_keccakf1600_state_theta_03_counts, e lookup_keccakf1600_state_theta_04_counts, e lookup_keccakf1600_state_theta_10_counts, e lookup_keccakf1600_state_theta_11_counts, e lookup_keccakf1600_state_theta_12_counts, e lookup_keccakf1600_state_theta_13_counts, e lookup_keccakf1600_state_theta_14_counts, e lookup_keccakf1600_state_theta_20_counts, e lookup_keccakf1600_state_theta_21_counts, e lookup_keccakf1600_state_theta_22_counts, e lookup_keccakf1600_state_theta_23_counts, e lookup_keccakf1600_state_theta_24_counts, e lookup_keccakf1600_state_theta_30_counts, e lookup_keccakf1600_state_theta_31_counts, e lookup_keccakf1600_state_theta_32_counts, e lookup_keccakf1600_state_theta_33_counts, e lookup_keccakf1600_state_theta_34_counts, e lookup_keccakf1600_state_theta_40_counts, e lookup_keccakf1600_state_theta_41_counts, e lookup_keccakf1600_state_theta_42_counts, e lookup_keccakf1600_state_theta_43_counts, e lookup_keccakf1600_state_theta_44_counts, e lookup_keccakf1600_theta_limb_02_range_counts, e lookup_keccakf1600_theta_limb_04_range_counts, e lookup_keccakf1600_theta_limb_10_range_counts, e lookup_keccakf1600_theta_limb_12_range_counts, e lookup_keccakf1600_theta_limb_14_range_counts, e lookup_keccakf1600_theta_limb_21_range_counts, e lookup_keccakf1600_theta_limb_23_range_counts, e lookup_keccakf1600_theta_limb_30_range_counts, e lookup_keccakf1600_theta_limb_32_range_counts, e lookup_keccakf1600_theta_limb_33_range_counts, e lookup_keccakf1600_theta_limb_40_range_counts, e lookup_keccakf1600_theta_limb_41_range_counts, e lookup_keccakf1600_theta_limb_43_range_counts, e lookup_keccakf1600_theta_limb_44_range_counts, e lookup_keccakf1600_theta_limb_01_range_counts, e lookup_keccakf1600_theta_limb_03_range_counts, e lookup_keccakf1600_theta_limb_11_range_counts, e lookup_keccakf1600_theta_limb_13_range_counts, e lookup_keccakf1600_theta_limb_20_range_counts, e lookup_keccakf1600_theta_limb_22_range_counts, e lookup_keccakf1600_theta_limb_24_range_counts, e lookup_keccakf1600_theta_limb_31_range_counts, e lookup_keccakf1600_theta_limb_34_range_counts, e lookup_keccakf1600_theta_limb_42_range_counts, e lookup_keccakf1600_state_pi_and_00_counts, e lookup_keccakf1600_state_pi_and_01_counts, e lookup_keccakf1600_state_pi_and_02_counts, e lookup_keccakf1600_state_pi_and_03_counts, e lookup_keccakf1600_state_pi_and_04_counts, e lookup_keccakf1600_state_pi_and_10_counts, e lookup_keccakf1600_state_pi_and_11_counts, e lookup_keccakf1600_state_pi_and_12_counts, e lookup_keccakf1600_state_pi_and_13_counts, e lookup_keccakf1600_state_pi_and_14_counts, e lookup_keccakf1600_state_pi_and_20_counts, e lookup_keccakf1600_state_pi_and_21_counts, e lookup_keccakf1600_state_pi_and_22_counts, e lookup_keccakf1600_state_pi_and_23_counts, e lookup_keccakf1600_state_pi_and_24_counts, e lookup_keccakf1600_state_pi_and_30_counts, e lookup_keccakf1600_state_pi_and_31_counts, e lookup_keccakf1600_state_pi_and_32_counts, e lookup_keccakf1600_state_pi_and_33_counts, e lookup_keccakf1600_state_pi_and_34_counts, e lookup_keccakf1600_state_pi_and_40_counts, e lookup_keccakf1600_state_pi_and_41_counts, e lookup_keccakf1600_state_pi_and_42_counts, e lookup_keccakf1600_state_pi_and_43_counts, e lookup_keccakf1600_state_pi_and_44_counts, e lookup_keccakf1600_state_chi_00_counts, e lookup_keccakf1600_state_chi_01_counts, e lookup_keccakf1600_state_chi_02_counts, e lookup_keccakf1600_state_chi_03_counts, e lookup_keccakf1600_state_chi_04_counts, e lookup_keccakf1600_state_chi_10_counts, e lookup_keccakf1600_state_chi_11_counts, e lookup_keccakf1600_state_chi_12_counts, e lookup_keccakf1600_state_chi_13_counts, e lookup_keccakf1600_state_chi_14_counts, e lookup_keccakf1600_state_chi_20_counts, e lookup_keccakf1600_state_chi_21_counts, e lookup_keccakf1600_state_chi_22_counts, e lookup_keccakf1600_state_chi_23_counts, e lookup_keccakf1600_state_chi_24_counts, e lookup_keccakf1600_state_chi_30_counts, e lookup_keccakf1600_state_chi_31_counts, e lookup_keccakf1600_state_chi_32_counts, e lookup_keccakf1600_state_chi_33_counts, e lookup_keccakf1600_state_chi_34_counts, e lookup_keccakf1600_state_chi_40_counts, e lookup_keccakf1600_state_chi_41_counts, e lookup_keccakf1600_state_chi_42_counts, e lookup_keccakf1600_state_chi_43_counts, e lookup_keccakf1600_state_chi_44_counts, e lookup_keccakf1600_round_cst_counts, e lookup_keccakf1600_state_iota_00_counts, e lookup_keccakf1600_src_out_of_range_toggle_counts, e lookup_keccakf1600_dst_out_of_range_toggle_counts, e lookup_poseidon2_mem_check_src_addr_in_range_counts, e lookup_poseidon2_mem_check_dst_addr_in_range_counts, e lookup_poseidon2_mem_input_output_poseidon2_perm_counts, e lookup_to_radix_limb_range_counts, e lookup_to_radix_limb_less_than_radix_range_counts, e lookup_to_radix_fetch_safe_limbs_counts, e lookup_to_radix_fetch_p_limb_counts, e lookup_to_radix_limb_p_diff_range_counts, e lookup_scalar_mul_to_radix_counts, e lookup_scalar_mul_double_counts, e lookup_scalar_mul_add_counts, e lookup_sha256_range_comp_w_lhs_counts, e lookup_sha256_range_comp_w_rhs_counts, e lookup_sha256_range_rhs_w_7_counts, e lookup_sha256_range_rhs_w_18_counts, e lookup_sha256_range_rhs_w_3_counts, e lookup_sha256_w_s_0_xor_0_counts, e lookup_sha256_w_s_0_xor_1_counts, e lookup_sha256_range_rhs_w_17_counts, e lookup_sha256_range_rhs_w_19_counts, e lookup_sha256_range_rhs_w_10_counts, e lookup_sha256_w_s_1_xor_0_counts, e lookup_sha256_w_s_1_xor_1_counts, e lookup_sha256_range_rhs_e_6_counts, e lookup_sha256_range_rhs_e_11_counts, e lookup_sha256_range_rhs_e_25_counts, e lookup_sha256_s_1_xor_0_counts, e lookup_sha256_s_1_xor_1_counts, e lookup_sha256_ch_and_0_counts, e lookup_sha256_ch_and_1_counts, e lookup_sha256_ch_xor_counts, e lookup_sha256_round_constant_counts, e lookup_sha256_range_rhs_a_2_counts, e lookup_sha256_range_rhs_a_13_counts, e lookup_sha256_range_rhs_a_22_counts, e lookup_sha256_s_0_xor_0_counts, e lookup_sha256_s_0_xor_1_counts, e lookup_sha256_maj_and_0_counts, e lookup_sha256_maj_and_1_counts, e lookup_sha256_maj_and_2_counts, e lookup_sha256_maj_xor_0_counts, e lookup_sha256_maj_xor_1_counts, e lookup_sha256_range_comp_next_a_lhs_counts, e lookup_sha256_range_comp_next_a_rhs_counts, e lookup_sha256_range_comp_next_e_lhs_counts, e lookup_sha256_range_comp_next_e_rhs_counts, e lookup_sha256_range_comp_a_rhs_counts, e lookup_sha256_range_comp_b_rhs_counts, e lookup_sha256_range_comp_c_rhs_counts, e lookup_sha256_range_comp_d_rhs_counts, e lookup_sha256_range_comp_e_rhs_counts, e lookup_sha256_range_comp_f_rhs_counts, e lookup_sha256_range_comp_g_rhs_counts, e lookup_sha256_range_comp_h_rhs_counts, e lookup_sha256_mem_check_state_addr_in_range_counts, e lookup_sha256_mem_check_input_addr_in_range_counts, e lookup_sha256_mem_check_output_addr_in_range_counts, e lookup_to_radix_mem_check_dst_addr_in_range_counts, e lookup_to_radix_mem_check_radix_lt_2_counts, e lookup_to_radix_mem_check_radix_gt_256_counts, e lookup_to_radix_mem_input_output_to_radix_counts, e lookup_poseidon2_hash_poseidon2_perm_counts, e lookup_address_derivation_salted_initialization_hash_poseidon2_0_counts, e lookup_address_derivation_salted_initialization_hash_poseidon2_1_counts, e lookup_address_derivation_partial_address_poseidon2_counts, e lookup_address_derivation_public_keys_hash_poseidon2_0_counts, e lookup_address_derivation_public_keys_hash_poseidon2_1_counts, e lookup_address_derivation_public_keys_hash_poseidon2_2_counts, e lookup_address_derivation_public_keys_hash_poseidon2_3_counts, e lookup_address_derivation_public_keys_hash_poseidon2_4_counts, e lookup_address_derivation_preaddress_poseidon2_counts, e lookup_address_derivation_preaddress_scalar_mul_counts, e lookup_address_derivation_address_ecadd_counts, e lookup_bc_decomposition_bytes_are_bytes_counts, e lookup_bc_hashing_poseidon2_hash_counts, e lookup_merkle_check_merkle_poseidon2_read_counts, e lookup_merkle_check_merkle_poseidon2_write_counts, e lookup_indexed_tree_check_silo_poseidon2_counts, e lookup_indexed_tree_check_low_leaf_value_validation_counts, e lookup_indexed_tree_check_low_leaf_next_value_validation_counts, e lookup_indexed_tree_check_low_leaf_poseidon2_counts, e lookup_indexed_tree_check_updated_low_leaf_poseidon2_counts, e lookup_indexed_tree_check_low_leaf_merkle_check_counts, e lookup_indexed_tree_check_new_leaf_poseidon2_counts, e lookup_indexed_tree_check_new_leaf_merkle_check_counts, e lookup_indexed_tree_check_write_value_to_public_inputs_counts, e lookup_public_data_squash_leaf_slot_increase_ff_gt_counts, e lookup_public_data_squash_clk_diff_range_lo_counts, e lookup_public_data_squash_clk_diff_range_hi_counts, e lookup_public_data_check_clk_diff_range_lo_counts, e lookup_public_data_check_clk_diff_range_hi_counts, e lookup_public_data_check_silo_poseidon2_counts, e lookup_public_data_check_low_leaf_slot_validation_counts, e lookup_public_data_check_low_leaf_next_slot_validation_counts, e lookup_public_data_check_low_leaf_poseidon2_0_counts, e lookup_public_data_check_low_leaf_poseidon2_1_counts, e lookup_public_data_check_updated_low_leaf_poseidon2_0_counts, e lookup_public_data_check_updated_low_leaf_poseidon2_1_counts, e lookup_public_data_check_low_leaf_merkle_check_counts, e lookup_public_data_check_new_leaf_poseidon2_0_counts, e lookup_public_data_check_new_leaf_poseidon2_1_counts, e lookup_public_data_check_new_leaf_merkle_check_counts, e lookup_public_data_check_write_public_data_to_public_inputs_counts, e lookup_public_data_check_write_writes_length_to_public_inputs_counts, e lookup_update_check_timestamp_from_public_inputs_counts, e lookup_update_check_delayed_public_mutable_slot_poseidon2_counts, e lookup_update_check_update_hash_public_data_read_counts, e lookup_update_check_update_hash_poseidon2_counts, e lookup_update_check_update_hi_metadata_range_counts, e lookup_update_check_update_lo_metadata_range_counts, e lookup_update_check_timestamp_is_lt_timestamp_of_change_counts, e lookup_contract_instance_retrieval_check_protocol_address_range_counts, e lookup_contract_instance_retrieval_read_derived_address_from_public_inputs_counts, e lookup_contract_instance_retrieval_deployment_nullifier_read_counts, e lookup_contract_instance_retrieval_address_derivation_counts, e lookup_contract_instance_retrieval_update_check_counts, e lookup_class_id_derivation_class_id_poseidon2_0_counts, e lookup_class_id_derivation_class_id_poseidon2_1_counts, e lookup_bc_retrieval_contract_instance_retrieval_counts, e lookup_bc_retrieval_class_id_derivation_counts, e lookup_bc_retrieval_is_new_class_check_counts, e lookup_bc_retrieval_retrieved_bytecodes_insertion_counts, e lookup_instr_fetching_pc_abs_diff_positive_counts, e lookup_instr_fetching_instr_abs_diff_positive_counts, e lookup_instr_fetching_tag_value_validation_counts, e lookup_instr_fetching_bytecode_size_from_bc_dec_counts, e lookup_instr_fetching_bytes_from_bc_dec_counts, e lookup_instr_fetching_wire_instruction_info_counts, e lookup_emit_public_log_check_memory_out_of_bounds_counts, e lookup_emit_public_log_check_log_fields_count_counts, e lookup_emit_public_log_write_data_to_public_inputs_counts, e lookup_get_contract_instance_precomputed_info_counts, e lookup_get_contract_instance_contract_instance_retrieval_counts, e lookup_l1_to_l2_message_tree_check_merkle_check_counts, e lookup_internal_call_unwind_call_stack_counts, e lookup_context_ctx_stack_rollback_counts, e lookup_context_ctx_stack_return_counts, e lookup_addressing_relative_overflow_result_0_counts, e lookup_addressing_relative_overflow_result_1_counts, e lookup_addressing_relative_overflow_result_2_counts, e lookup_addressing_relative_overflow_result_3_counts, e lookup_addressing_relative_overflow_result_4_counts, e lookup_addressing_relative_overflow_result_5_counts, e lookup_addressing_relative_overflow_result_6_counts, e lookup_gas_addressing_gas_read_counts, e lookup_gas_is_out_of_gas_l2_counts, e lookup_gas_is_out_of_gas_da_counts, e lookup_note_hash_tree_check_silo_poseidon2_counts, e lookup_note_hash_tree_check_read_first_nullifier_counts, e lookup_note_hash_tree_check_nonce_computation_poseidon2_counts, e lookup_note_hash_tree_check_unique_note_hash_poseidon2_counts, e lookup_note_hash_tree_check_merkle_check_counts, e lookup_note_hash_tree_check_write_note_hash_to_public_inputs_counts, e lookup_emit_notehash_notehash_tree_write_counts, e lookup_emit_nullifier_write_nullifier_counts, e lookup_external_call_is_l2_gas_left_gt_allocated_counts, e lookup_external_call_is_da_gas_left_gt_allocated_counts, e lookup_get_env_var_precomputed_info_counts, e lookup_get_env_var_read_from_public_inputs_col0_counts, e lookup_get_env_var_read_from_public_inputs_col1_counts, e lookup_l1_to_l2_message_exists_l1_to_l2_msg_leaf_index_in_range_counts, e lookup_l1_to_l2_message_exists_l1_to_l2_msg_read_counts, e lookup_notehash_exists_note_hash_leaf_index_in_range_counts, e lookup_notehash_exists_note_hash_read_counts, e lookup_nullifier_exists_nullifier_exists_check_counts, e lookup_send_l2_to_l1_msg_recipient_check_counts, e lookup_send_l2_to_l1_msg_write_l2_to_l1_msg_counts, e lookup_sload_storage_read_counts, e lookup_sstore_record_written_storage_slot_counts, e lookup_execution_bytecode_retrieval_result_counts, e lookup_execution_instruction_fetching_result_counts, e lookup_execution_instruction_fetching_body_counts, e lookup_execution_exec_spec_read_counts, e lookup_execution_dyn_l2_factor_bitwise_counts, e lookup_execution_check_radix_gt_256_counts, e lookup_execution_get_p_limbs_counts, e lookup_execution_get_max_limbs_counts, e lookup_execution_check_written_storage_slot_counts, e lookup_execution_dispatch_to_alu_counts, e lookup_execution_dispatch_to_bitwise_counts, e lookup_execution_dispatch_to_cast_counts, e lookup_execution_dispatch_to_set_counts, e lookup_calldata_hashing_get_calldata_field_0_counts, e lookup_calldata_hashing_get_calldata_field_1_counts, e lookup_calldata_hashing_get_calldata_field_2_counts, e lookup_calldata_hashing_poseidon2_hash_counts, e lookup_tx_context_public_inputs_note_hash_tree_counts, e lookup_tx_context_public_inputs_nullifier_tree_counts, e lookup_tx_context_public_inputs_public_data_tree_counts, e lookup_tx_context_public_inputs_l1_l2_tree_counts, e lookup_tx_context_public_inputs_gas_used_counts, e lookup_tx_context_public_inputs_read_gas_limit_counts, e lookup_tx_context_public_inputs_read_reverted_counts, e lookup_tx_context_restore_state_on_revert_counts, e lookup_tx_context_public_inputs_write_note_hash_count_counts, e lookup_tx_context_public_inputs_write_nullifier_count_counts, e lookup_tx_context_public_inputs_write_l2_to_l1_message_count_counts, e lookup_tx_context_public_inputs_write_public_log_count_counts, e lookup_tx_read_phase_spec_counts, e lookup_tx_read_phase_length_counts, e lookup_tx_read_public_call_request_phase_counts, e lookup_tx_read_tree_insert_value_counts, e lookup_tx_note_hash_append_counts, e lookup_tx_nullifier_append_counts, e lookup_tx_read_l2_l1_msg_counts, e lookup_tx_write_l2_l1_msg_counts, e lookup_tx_read_effective_fee_public_inputs_counts, e lookup_tx_read_fee_payer_public_inputs_counts, e lookup_tx_balance_slot_poseidon2_counts, e lookup_tx_balance_read_counts, e lookup_tx_balance_validation_counts, e lookup_tx_write_fee_public_inputs_counts, e bc_decomposition_bytes, e bc_decomposition_bytes_pc_plus_1, e bc_decomposition_bytes_pc_plus_10, e bc_decomposition_bytes_pc_plus_11, e bc_decomposition_bytes_pc_plus_12, e bc_decomposition_bytes_pc_plus_13, e bc_decomposition_bytes_pc_plus_14, e bc_decomposition_bytes_pc_plus_15, e bc_decomposition_bytes_pc_plus_16, e bc_decomposition_bytes_pc_plus_17, e bc_decomposition_bytes_pc_plus_18, e bc_decomposition_bytes_pc_plus_19, e bc_decomposition_bytes_pc_plus_2, e bc_decomposition_bytes_pc_plus_20, e bc_decomposition_bytes_pc_plus_21, e bc_decomposition_bytes_pc_plus_22, e bc_decomposition_bytes_pc_plus_23, e bc_decomposition_bytes_pc_plus_24, e bc_decomposition_bytes_pc_plus_25, e bc_decomposition_bytes_pc_plus_26, e bc_decomposition_bytes_pc_plus_27, e bc_decomposition_bytes_pc_plus_28, e bc_decomposition_bytes_pc_plus_29, e bc_decomposition_bytes_pc_plus_3, e bc_decomposition_bytes_pc_plus_30, e bc_decomposition_bytes_pc_plus_31, e bc_decomposition_bytes_pc_plus_32, e bc_decomposition_bytes_pc_plus_33, e bc_decomposition_bytes_pc_plus_34, e bc_decomposition_bytes_pc_plus_35, e bc_decomposition_bytes_pc_plus_4, e bc_decomposition_bytes_pc_plus_5, e bc_decomposition_bytes_pc_plus_6, e bc_decomposition_bytes_pc_plus_7, e bc_decomposition_bytes_pc_plus_8, e bc_decomposition_bytes_pc_plus_9, e bc_decomposition_bytes_remaining, e bc_decomposition_id, e bc_decomposition_next_packed_pc, e bc_decomposition_pc, e bc_decomposition_sel, e bc_decomposition_sel_windows_gt_remaining, e bc_decomposition_start, e bc_hashing_bytecode_id, e bc_hashing_padding, e bc_hashing_pc_index_1, e bc_hashing_rounds_rem, e bc_hashing_sel, e bc_hashing_sel_not_start, e bc_hashing_start, e bitwise_acc_ia, e bitwise_acc_ib, e bitwise_acc_ic, e bitwise_ctr, e bitwise_op_id, e bitwise_sel, e bitwise_start, e calldata_context_id, e calldata_hashing_calldata_size, e calldata_hashing_context_id, e calldata_hashing_index_0_, e calldata_hashing_output_hash, e calldata_hashing_rounds_rem, e calldata_hashing_sel, e calldata_hashing_start, e calldata_index, e calldata_sel, e data_copy_clk, e data_copy_copy_size, e data_copy_dst_addr, e data_copy_dst_context_id, e data_copy_padding, e data_copy_read_addr, e data_copy_reads_left, e data_copy_sel, e data_copy_sel_cd_copy, e data_copy_src_context_id, e data_copy_start, e emit_public_log_contract_address, e emit_public_log_correct_tag, e emit_public_log_error_out_of_bounds, e emit_public_log_error_tag_mismatch, e emit_public_log_execution_clk, e emit_public_log_is_write_contract_address, e emit_public_log_is_write_memory_value, e emit_public_log_log_address, e emit_public_log_public_inputs_index, e emit_public_log_remaining_rows, e emit_public_log_seen_wrong_tag, e emit_public_log_sel, e emit_public_log_sel_write_to_public_inputs, e emit_public_log_space_id, e emit_public_log_start, e execution_bytecode_id, e execution_clk, e execution_context_id, e execution_contract_address, e execution_da_gas_limit, e execution_discard, e execution_dying_context_id, e execution_enqueued_call_start, e execution_internal_call_id, e execution_internal_call_return_id, e execution_is_static, e execution_l1_l2_tree_root, e execution_l2_gas_limit, e execution_last_child_id, e execution_last_child_returndata_addr, e execution_last_child_returndata_size, e execution_last_child_success, e execution_msg_sender, e execution_next_context_id, e execution_next_internal_call_id, e execution_parent_calldata_addr, e execution_parent_calldata_size, e execution_parent_da_gas_limit, e execution_parent_da_gas_used, e execution_parent_id, e execution_parent_l2_gas_limit, e execution_parent_l2_gas_used, e execution_pc, e execution_prev_da_gas_used, e execution_prev_l2_gas_used, e execution_prev_note_hash_tree_root, e execution_prev_note_hash_tree_size, e execution_prev_nullifier_tree_root, e execution_prev_nullifier_tree_size, e execution_prev_num_l2_to_l1_messages, e execution_prev_num_note_hashes_emitted, e execution_prev_num_nullifiers_emitted, e execution_prev_num_public_log_fields, e execution_prev_public_data_tree_root, e execution_prev_public_data_tree_size, e execution_prev_retrieved_bytecodes_tree_root, e execution_prev_retrieved_bytecodes_tree_size, e execution_prev_written_public_data_slots_tree_root, e execution_prev_written_public_data_slots_tree_size, e execution_sel, e execution_sel_first_row_in_context, e execution_transaction_fee, e ff_gt_a_hi, e ff_gt_a_lo, e ff_gt_b_hi, e ff_gt_b_lo, e ff_gt_cmp_rng_ctr, e ff_gt_p_sub_a_hi, e ff_gt_p_sub_a_lo, e ff_gt_p_sub_b_hi, e ff_gt_p_sub_b_lo, e ff_gt_sel, e ff_gt_sel_dec, e ff_gt_sel_gt, e keccak_memory_addr, e keccak_memory_clk, e keccak_memory_ctr, e keccak_memory_rw, e keccak_memory_sel, e keccak_memory_space_id, e keccak_memory_start_read, e keccak_memory_start_write, e keccak_memory_tag_error, e keccak_memory_val_0_, e keccak_memory_val_10_, e keccak_memory_val_11_, e keccak_memory_val_12_, e keccak_memory_val_13_, e keccak_memory_val_14_, e keccak_memory_val_15_, e keccak_memory_val_16_, e keccak_memory_val_17_, e keccak_memory_val_18_, e keccak_memory_val_19_, e keccak_memory_val_1_, e keccak_memory_val_20_, e keccak_memory_val_21_, e keccak_memory_val_22_, e keccak_memory_val_23_, e keccak_memory_val_2_, e keccak_memory_val_3_, e keccak_memory_val_4_, e keccak_memory_val_5_, e keccak_memory_val_6_, e keccak_memory_val_7_, e keccak_memory_val_8_, e keccak_memory_val_9_, e keccakf1600_clk, e keccakf1600_dst_addr, e keccakf1600_round, e keccakf1600_sel, e keccakf1600_sel_no_error, e keccakf1600_space_id, e keccakf1600_start, e keccakf1600_state_in_00, e keccakf1600_state_in_01, e keccakf1600_state_in_02, e keccakf1600_state_in_03, e keccakf1600_state_in_04, e keccakf1600_state_in_10, e keccakf1600_state_in_11, e keccakf1600_state_in_12, e keccakf1600_state_in_13, e keccakf1600_state_in_14, e keccakf1600_state_in_20, e keccakf1600_state_in_21, e keccakf1600_state_in_22, e keccakf1600_state_in_23, e keccakf1600_state_in_24, e keccakf1600_state_in_30, e keccakf1600_state_in_31, e keccakf1600_state_in_32, e keccakf1600_state_in_33, e keccakf1600_state_in_34, e keccakf1600_state_in_40, e keccakf1600_state_in_41, e keccakf1600_state_in_42, e keccakf1600_state_in_43, e keccakf1600_state_in_44, e memory_address, e memory_clk, e memory_rw, e memory_sel, e memory_space_id, e memory_tag, e memory_value, e merkle_check_index, e merkle_check_merkle_hash_separator, e merkle_check_path_len, e merkle_check_read_node, e merkle_check_read_root, e merkle_check_sel, e merkle_check_start, e merkle_check_write, e merkle_check_write_node, e merkle_check_write_root, e poseidon2_hash_a_0, e poseidon2_hash_a_1, e poseidon2_hash_a_2, e poseidon2_hash_a_3, e poseidon2_hash_input_0, e poseidon2_hash_input_1, e poseidon2_hash_input_2, e poseidon2_hash_num_perm_rounds_rem, e poseidon2_hash_output, e poseidon2_hash_sel, e poseidon2_hash_start, e public_data_check_clk, e public_data_check_sel, e public_data_check_write_idx, e public_data_squash_clk, e public_data_squash_final_value, e public_data_squash_leaf_slot, e public_data_squash_sel, e public_data_squash_write_to_public_inputs, e scalar_mul_bit_idx, e scalar_mul_point_inf, e scalar_mul_point_x, e scalar_mul_point_y, e scalar_mul_res_inf, e scalar_mul_res_x, e scalar_mul_res_y, e scalar_mul_scalar, e scalar_mul_sel, e scalar_mul_start, e scalar_mul_temp_inf, e scalar_mul_temp_x, e scalar_mul_temp_y, e sha256_a, e sha256_b, e sha256_c, e sha256_d, e sha256_e, e sha256_execution_clk, e sha256_f, e sha256_g, e sha256_h, e sha256_helper_w0, e sha256_helper_w1, e sha256_helper_w10, e sha256_helper_w11, e sha256_helper_w12, e sha256_helper_w13, e sha256_helper_w14, e sha256_helper_w15, e sha256_helper_w2, e sha256_helper_w3, e sha256_helper_w4, e sha256_helper_w5, e sha256_helper_w6, e sha256_helper_w7, e sha256_helper_w8, e sha256_helper_w9, e sha256_init_a, e sha256_init_b, e sha256_init_c, e sha256_init_d, e sha256_init_e, e sha256_init_f, e sha256_init_g, e sha256_init_h, e sha256_input_addr, e sha256_input_rounds_rem, e sha256_output_addr, e sha256_rounds_remaining, e sha256_sel, e sha256_sel_invalid_input_tag_err, e sha256_space_id, e sha256_start, e to_radix_acc, e to_radix_acc_under_p, e to_radix_limb, e to_radix_limb_eq_p, e to_radix_limb_index, e to_radix_limb_lt_p, e to_radix_mem_dst_addr, e to_radix_mem_execution_clk, e to_radix_mem_is_output_bits, e to_radix_mem_num_limbs, e to_radix_mem_radix, e to_radix_mem_sel, e to_radix_mem_sel_should_decompose, e to_radix_mem_sel_should_write_mem, e to_radix_mem_space_id, e to_radix_mem_start, e to_radix_mem_value_to_decompose, e to_radix_not_padding_limb, e to_radix_power, e to_radix_radix, e to_radix_safe_limbs, e to_radix_sel, e to_radix_start, e to_radix_value, e tx_da_gas_limit, e tx_discard, e tx_fee, e tx_is_revertible, e tx_is_teardown, e tx_l1_l2_tree_root, e tx_l1_l2_tree_size, e tx_l2_gas_limit, e tx_next_context_id, e tx_phase_value, e tx_prev_da_gas_used, e tx_prev_l2_gas_used, e tx_prev_note_hash_tree_root, e tx_prev_note_hash_tree_size, e tx_prev_nullifier_tree_root, e tx_prev_nullifier_tree_size, e tx_prev_num_l2_to_l1_messages, e tx_prev_num_note_hashes_emitted, e tx_prev_num_nullifiers_emitted, e tx_prev_num_public_log_fields, e tx_prev_public_data_tree_root, e tx_prev_public_data_tree_size, e tx_prev_retrieved_bytecodes_tree_root, e tx_prev_retrieved_bytecodes_tree_size, e tx_prev_written_public_data_slots_tree_root, e tx_prev_written_public_data_slots_tree_size, e tx_read_pi_offset, e tx_remaining_phase_counter, e tx_reverted, e tx_sel, e tx_start_phase, e tx_start_tx, e tx_tx_reverted +#define AVM2_PRECOMPUTED_ENTITIES_E(e) e precomputed_addressing_gas, e precomputed_bitwise_input_a, e precomputed_bitwise_input_b, e precomputed_bitwise_output_and, e precomputed_bitwise_output_or, e precomputed_bitwise_output_xor, e precomputed_dyn_gas_id, e precomputed_envvar_pi_row_idx, e precomputed_exec_opcode, e precomputed_exec_opcode_base_da_gas, e precomputed_exec_opcode_dynamic_da_gas, e precomputed_exec_opcode_dynamic_l2_gas, e precomputed_exec_opcode_opcode_gas, e precomputed_expected_tag_reg_0_, e precomputed_expected_tag_reg_1_, e precomputed_expected_tag_reg_2_, e precomputed_expected_tag_reg_3_, e precomputed_expected_tag_reg_4_, e precomputed_expected_tag_reg_5_, e precomputed_first_row, e precomputed_idx, e precomputed_instr_size, e precomputed_invalid_envvar_enum, e precomputed_is_address, e precomputed_is_class_id, e precomputed_is_cleanup, e precomputed_is_collect_fee, e precomputed_is_dagasleft, e precomputed_is_deployer, e precomputed_is_immutables_hash, e precomputed_is_init_hash, e precomputed_is_isstaticcall, e precomputed_is_l2gasleft, e precomputed_is_public_call_request, e precomputed_is_revertible, e precomputed_is_sender, e precomputed_is_teardown, e precomputed_is_transactionfee, e precomputed_is_tree_padding, e precomputed_is_valid_member_enum, e precomputed_keccak_round_constant, e precomputed_next_phase_on_revert, e precomputed_opcode_out_of_range, e precomputed_out_tag, e precomputed_p_decomposition_limb, e precomputed_p_decomposition_limb_index, e precomputed_p_decomposition_radix, e precomputed_power_of_2, e precomputed_read_pi_length_offset, e precomputed_read_pi_start_offset, e precomputed_rw_reg_0_, e precomputed_rw_reg_1_, e precomputed_rw_reg_2_, e precomputed_rw_reg_3_, e precomputed_rw_reg_4_, e precomputed_rw_reg_5_, e precomputed_sel_addressing_gas, e precomputed_sel_append_l2_l1_msg, e precomputed_sel_append_note_hash, e precomputed_sel_append_nullifier, e precomputed_sel_envvar_pi_lookup_col0, e precomputed_sel_envvar_pi_lookup_col1, e precomputed_sel_exec_spec, e precomputed_sel_has_tag, e precomputed_sel_keccak, e precomputed_sel_mem_op_reg_0_, e precomputed_sel_mem_op_reg_1_, e precomputed_sel_mem_op_reg_2_, e precomputed_sel_mem_op_reg_3_, e precomputed_sel_mem_op_reg_4_, e precomputed_sel_mem_op_reg_5_, e precomputed_sel_mem_tag_out_of_range, e precomputed_sel_op_dc_0, e precomputed_sel_op_dc_1, e precomputed_sel_op_dc_10, e precomputed_sel_op_dc_11, e precomputed_sel_op_dc_12, e precomputed_sel_op_dc_13, e precomputed_sel_op_dc_14, e precomputed_sel_op_dc_15, e precomputed_sel_op_dc_16, e precomputed_sel_op_dc_2, e precomputed_sel_op_dc_3, e precomputed_sel_op_dc_4, e precomputed_sel_op_dc_5, e precomputed_sel_op_dc_6, e precomputed_sel_op_dc_7, e precomputed_sel_op_dc_8, e precomputed_sel_op_dc_9, e precomputed_sel_op_is_address_0_, e precomputed_sel_op_is_address_1_, e precomputed_sel_op_is_address_2_, e precomputed_sel_op_is_address_3_, e precomputed_sel_op_is_address_4_, e precomputed_sel_op_is_address_5_, e precomputed_sel_op_is_address_6_, e precomputed_sel_p_decomposition, e precomputed_sel_phase, e precomputed_sel_range_16, e precomputed_sel_range_8, e precomputed_sel_sha256_compression, e precomputed_sel_tag_check_reg_0_, e precomputed_sel_tag_check_reg_1_, e precomputed_sel_tag_check_reg_2_, e precomputed_sel_tag_check_reg_3_, e precomputed_sel_tag_check_reg_4_, e precomputed_sel_tag_check_reg_5_, e precomputed_sel_tag_is_op2, e precomputed_sel_tag_parameters, e precomputed_sel_to_radix_p_limb_counts, e precomputed_sha256_compression_round_constant, e precomputed_subtrace_id, e precomputed_subtrace_operation_id, e precomputed_tag_byte_length, e precomputed_tag_max_bits, e precomputed_tag_max_value, e precomputed_to_radix_num_limbs_for_p, e precomputed_to_radix_safe_limbs, e precomputed_zero, e public_inputs_sel +#define AVM2_WIRE_ENTITIES_E(e) e public_inputs_cols_0_, e public_inputs_cols_1_, e public_inputs_cols_2_, e public_inputs_cols_3_, e address_derivation_address, e address_derivation_address_y, e address_derivation_class_id, e address_derivation_const_five, e address_derivation_const_four, e address_derivation_const_thirteen, e address_derivation_const_three, e address_derivation_const_two, e address_derivation_deployer_addr, e address_derivation_g1_x, e address_derivation_g1_y, e address_derivation_immutables_hash, e address_derivation_incoming_viewing_key_x, e address_derivation_incoming_viewing_key_y, e address_derivation_init_hash, e address_derivation_nullifier_key_x, e address_derivation_nullifier_key_y, e address_derivation_outgoing_viewing_key_x, e address_derivation_outgoing_viewing_key_y, e address_derivation_partial_address, e address_derivation_partial_address_domain_separator, e address_derivation_preaddress, e address_derivation_preaddress_domain_separator, e address_derivation_preaddress_public_key_x, e address_derivation_preaddress_public_key_y, e address_derivation_public_keys_hash, e address_derivation_public_keys_hash_domain_separator, e address_derivation_salt, e address_derivation_salted_init_hash, e address_derivation_salted_init_hash_domain_separator, e address_derivation_sel, e address_derivation_tagging_key_x, e address_derivation_tagging_key_y, e alu_a_hi, e alu_a_hi_bits, e alu_a_lo, e alu_a_lo_bits, e alu_ab_diff_inv, e alu_ab_tags_diff_inv, e alu_b_hi, e alu_b_inv, e alu_b_lo, e alu_c_hi, e alu_cf, e alu_constant_64, e alu_gt_input_a, e alu_gt_input_b, e alu_gt_result_c, e alu_helper1, e alu_ia, e alu_ia_tag, e alu_ib, e alu_ib_tag, e alu_ic, e alu_ic_tag, e alu_max_bits, e alu_max_value, e alu_mid, e alu_mid_bits, e alu_op_id, e alu_sel, e alu_sel_ab_tag_mismatch, e alu_sel_decompose_a, e alu_sel_div_0_err, e alu_sel_div_no_err, e alu_sel_err, e alu_sel_ff_gt, e alu_sel_int_gt, e alu_sel_is_ff, e alu_sel_is_u128, e alu_sel_mul_div_u128, e alu_sel_mul_no_err_non_ff, e alu_sel_op_add, e alu_sel_op_div, e alu_sel_op_eq, e alu_sel_op_fdiv, e alu_sel_op_lt, e alu_sel_op_lte, e alu_sel_op_mul, e alu_sel_op_not, e alu_sel_op_shl, e alu_sel_op_shr, e alu_sel_op_sub, e alu_sel_op_truncate, e alu_sel_shift_ops_no_overflow, e alu_sel_tag_err, e alu_sel_trunc_gte_128, e alu_sel_trunc_lt_128, e alu_sel_trunc_non_trivial, e alu_sel_trunc_trivial, e alu_shift_lo_bits, e alu_tag_ff_diff_inv, e alu_tag_u128_diff_inv, e alu_two_pow_shift_lo_bits, e bc_decomposition_bytes_pc_plus_36, e bc_decomposition_bytes_rem_inv, e bc_decomposition_bytes_rem_min_one_inv, e bc_decomposition_bytes_to_read, e bc_decomposition_last_of_contract, e bc_decomposition_next_packed_pc_min_pc_inv, e bc_decomposition_packed_field, e bc_decomposition_sel_packed, e bc_decomposition_sel_packed_read_0_, e bc_decomposition_sel_packed_read_1_, e bc_decomposition_sel_packed_read_2_, e bc_decomposition_sel_windows_eq_remaining, e bc_decomposition_windows_min_remaining_inv, e bc_hashing_end, e bc_hashing_input_len, e bc_hashing_packed_fields_0, e bc_hashing_packed_fields_1, e bc_hashing_packed_fields_2, e bc_hashing_pc_index, e bc_hashing_pc_index_2, e bc_hashing_sel_not_padding_1, e bc_hashing_sel_not_padding_2, e bc_hashing_size_in_bytes, e bc_retrieval_address, e bc_retrieval_artifact_hash, e bc_retrieval_bytecode_id, e bc_retrieval_current_class_id, e bc_retrieval_error, e bc_retrieval_instance_exists, e bc_retrieval_is_new_class, e bc_retrieval_next_retrieved_bytecodes_tree_root, e bc_retrieval_next_retrieved_bytecodes_tree_size, e bc_retrieval_no_remaining_bytecodes, e bc_retrieval_nullifier_tree_root, e bc_retrieval_prev_retrieved_bytecodes_tree_root, e bc_retrieval_prev_retrieved_bytecodes_tree_size, e bc_retrieval_private_functions_root, e bc_retrieval_public_data_tree_root, e bc_retrieval_remaining_bytecodes_inv, e bc_retrieval_retrieved_bytecodes_merkle_separator, e bc_retrieval_retrieved_bytecodes_tree_height, e bc_retrieval_sel, e bc_retrieval_should_retrieve, e bitwise_ctr_min_one_inv, e bitwise_end, e bitwise_err, e bitwise_ia_byte, e bitwise_ib_byte, e bitwise_ic_byte, e bitwise_output_and, e bitwise_output_or, e bitwise_output_xor, e bitwise_sel_and, e bitwise_sel_compute, e bitwise_sel_get_ctr, e bitwise_sel_or, e bitwise_sel_tag_ff_err, e bitwise_sel_tag_mismatch_err, e bitwise_sel_xor, e bitwise_start_keccak, e bitwise_start_sha256, e bitwise_tag_a, e bitwise_tag_a_inv, e bitwise_tag_ab_diff_inv, e bitwise_tag_b, e bitwise_tag_c, e calldata_end, e calldata_hashing_end, e calldata_hashing_index_1_, e calldata_hashing_index_2_, e calldata_hashing_input_0_, e calldata_hashing_input_1_, e calldata_hashing_input_2_, e calldata_hashing_input_len, e calldata_hashing_sel_end_not_empty, e calldata_hashing_sel_not_padding_1, e calldata_hashing_sel_not_padding_2, e calldata_hashing_sel_not_start, e calldata_value, e class_id_derivation_artifact_hash, e class_id_derivation_class_id, e class_id_derivation_const_four, e class_id_derivation_gen_index_contract_class_id, e class_id_derivation_private_functions_root, e class_id_derivation_public_bytecode_commitment, e class_id_derivation_sel, e context_stack_bytecode_id, e context_stack_context_id, e context_stack_contract_address, e context_stack_entered_context_id, e context_stack_internal_call_id, e context_stack_internal_call_return_id, e context_stack_is_static, e context_stack_msg_sender, e context_stack_next_internal_call_id, e context_stack_next_pc, e context_stack_note_hash_tree_root, e context_stack_note_hash_tree_size, e context_stack_nullifier_tree_root, e context_stack_nullifier_tree_size, e context_stack_num_l2_to_l1_messages, e context_stack_num_note_hashes_emitted, e context_stack_num_nullifiers_emitted, e context_stack_num_public_log_fields, e context_stack_parent_calldata_addr, e context_stack_parent_calldata_size, e context_stack_parent_da_gas_limit, e context_stack_parent_da_gas_used, e context_stack_parent_id, e context_stack_parent_l2_gas_limit, e context_stack_parent_l2_gas_used, e context_stack_public_data_tree_root, e context_stack_public_data_tree_size, e context_stack_sel, e context_stack_written_public_data_slots_tree_root, e context_stack_written_public_data_slots_tree_size, e contract_instance_retrieval_address, e contract_instance_retrieval_address_sub_one, e contract_instance_retrieval_current_class_id, e contract_instance_retrieval_deployer_addr, e contract_instance_retrieval_deployer_protocol_contract_address, e contract_instance_retrieval_derived_address, e contract_instance_retrieval_derived_address_pi_index, e contract_instance_retrieval_exists, e contract_instance_retrieval_immutables_hash, e contract_instance_retrieval_incoming_viewing_key_x, e contract_instance_retrieval_incoming_viewing_key_y, e contract_instance_retrieval_init_hash, e contract_instance_retrieval_is_protocol_contract, e contract_instance_retrieval_max_protocol_contracts, e contract_instance_retrieval_nullifier_key_x, e contract_instance_retrieval_nullifier_key_y, e contract_instance_retrieval_nullifier_merkle_separator, e contract_instance_retrieval_nullifier_tree_height, e contract_instance_retrieval_nullifier_tree_root, e contract_instance_retrieval_original_class_id, e contract_instance_retrieval_outgoing_viewing_key_x, e contract_instance_retrieval_outgoing_viewing_key_y, e contract_instance_retrieval_protocol_contract_derived_address_inv, e contract_instance_retrieval_public_data_tree_root, e contract_instance_retrieval_salt, e contract_instance_retrieval_sel, e contract_instance_retrieval_should_check_for_update, e contract_instance_retrieval_should_check_nullifier, e contract_instance_retrieval_siloing_separator, e contract_instance_retrieval_tagging_key_x, e contract_instance_retrieval_tagging_key_y, e data_copy_cd_copy_col_read, e data_copy_clamped_read_index_upper_bound, e data_copy_dst_out_of_range_err, e data_copy_end, e data_copy_is_top_level, e data_copy_mem_size, e data_copy_offset, e data_copy_offset_plus_size, e data_copy_offset_plus_size_is_gt, e data_copy_parent_id_inv, e data_copy_read_addr_plus_one, e data_copy_read_addr_upper_bound, e data_copy_reads_left_inv, e data_copy_sel_cd_copy_start, e data_copy_sel_has_reads, e data_copy_sel_mem_read, e data_copy_sel_mem_write, e data_copy_sel_rd_copy_start, e data_copy_sel_write_count_is_zero, e data_copy_src_addr, e data_copy_src_data_size, e data_copy_src_reads_exceed_mem, e data_copy_start_no_err, e data_copy_tag, e data_copy_value, e data_copy_write_addr_upper_bound, e data_copy_write_count_minus_one_inv, e data_copy_write_count_zero_inv, e ecc_add_mem_dst_addr_0_, e ecc_add_mem_dst_addr_1_, e ecc_add_mem_dst_addr_2_, e ecc_add_mem_err, e ecc_add_mem_execution_clk, e ecc_add_mem_max_mem_addr, e ecc_add_mem_p_is_inf, e ecc_add_mem_p_is_on_curve_eqn, e ecc_add_mem_p_is_on_curve_eqn_inv, e ecc_add_mem_p_x, e ecc_add_mem_p_x_n, e ecc_add_mem_p_y, e ecc_add_mem_p_y_n, e ecc_add_mem_q_is_inf, e ecc_add_mem_q_is_on_curve_eqn, e ecc_add_mem_q_is_on_curve_eqn_inv, e ecc_add_mem_q_x, e ecc_add_mem_q_x_n, e ecc_add_mem_q_y, e ecc_add_mem_q_y_n, e ecc_add_mem_res_is_inf, e ecc_add_mem_res_x, e ecc_add_mem_res_y, e ecc_add_mem_sel, e ecc_add_mem_sel_dst_out_of_range_err, e ecc_add_mem_sel_p_not_on_curve_err, e ecc_add_mem_sel_q_not_on_curve_err, e ecc_add_mem_sel_should_exec, e ecc_add_mem_space_id, e ecc_add_op, e ecc_double_op, e ecc_inv_2_p_y, e ecc_inv_x_diff, e ecc_inv_y_diff, e ecc_lambda, e ecc_p_is_inf, e ecc_p_x, e ecc_p_y, e ecc_q_is_inf, e ecc_q_x, e ecc_q_y, e ecc_r_is_inf, e ecc_r_x, e ecc_r_y, e ecc_result_infinity, e ecc_sel, e ecc_use_computed_result, e ecc_x_match, e ecc_y_match, e emit_public_log_discard, e emit_public_log_end, e emit_public_log_end_log_address_upper_bound, e emit_public_log_error, e emit_public_log_error_too_many_log_fields, e emit_public_log_expected_next_log_fields, e emit_public_log_is_static, e emit_public_log_log_size, e emit_public_log_max_mem_size, e emit_public_log_max_public_logs_payload_length, e emit_public_log_next_num_public_log_fields, e emit_public_log_prev_num_public_log_fields, e emit_public_log_public_inputs_value, e emit_public_log_remaining_rows_inv, e emit_public_log_sel_read_memory, e emit_public_log_tag, e emit_public_log_tag_inv, e emit_public_log_value, e execution_addressing_error_collection_inv, e execution_addressing_gas, e execution_addressing_mode, e execution_base_address_tag, e execution_base_address_tag_diff_inv, e execution_base_address_val, e execution_base_da_gas, e execution_batched_tags_diff_inv, e execution_batched_tags_diff_inv_reg, e execution_da_gas_left, e execution_da_gas_used, e execution_dying_context_diff_inv, e execution_dying_context_id_inv, e execution_dyn_gas_id, e execution_dynamic_da_gas, e execution_dynamic_da_gas_factor, e execution_dynamic_l2_gas, e execution_dynamic_l2_gas_factor, e execution_enqueued_call_end, e execution_envvar_pi_row_idx, e execution_exec_opcode, e execution_expected_tag_reg_0_, e execution_expected_tag_reg_1_, e execution_expected_tag_reg_2_, e execution_expected_tag_reg_3_, e execution_expected_tag_reg_4_, e execution_expected_tag_reg_5_, e execution_has_parent_ctx, e execution_highest_address, e execution_instr_size, e execution_internal_call_return_id_inv, e execution_is_address, e execution_is_da_gas_left_gt_allocated, e execution_is_dagasleft, e execution_is_dying_context, e execution_is_isstaticcall, e execution_is_l2_gas_left_gt_allocated, e execution_is_l2gasleft, e execution_is_parent_id_inv, e execution_is_sender, e execution_is_transactionfee, e execution_l1_to_l2_msg_leaf_in_range, e execution_l1_to_l2_msg_tree_leaf_count, e execution_l2_gas_left, e execution_l2_gas_used, e execution_max_data_writes_reached, e execution_max_eth_address_value, e execution_mem_tag_reg_0_, e execution_mem_tag_reg_1_, e execution_mem_tag_reg_2_, e execution_mem_tag_reg_3_, e execution_mem_tag_reg_4_, e execution_mem_tag_reg_5_, e execution_nested_failure, e execution_nested_return, e execution_next_pc, e execution_note_hash_leaf_in_range, e execution_note_hash_tree_leaf_count, e execution_note_hash_tree_root, e execution_note_hash_tree_size, e execution_nullifier_merkle_separator, e execution_nullifier_pi_offset, e execution_nullifier_siloing_separator, e execution_nullifier_tree_height, e execution_nullifier_tree_root, e execution_nullifier_tree_size, e execution_num_l2_to_l1_messages, e execution_num_note_hashes_emitted, e execution_num_nullifiers_emitted, e execution_num_p_limbs, e execution_num_public_log_fields, e execution_num_relative_operands_inv, e execution_op_0_, e execution_op_1_, e execution_op_2_, e execution_op_3_, e execution_op_4_, e execution_op_5_, e execution_op_6_, e execution_op_after_relative_0_, e execution_op_after_relative_1_, e execution_op_after_relative_2_, e execution_op_after_relative_3_, e execution_op_after_relative_4_, e execution_op_after_relative_5_, e execution_op_after_relative_6_, e execution_opcode_gas, e execution_out_of_gas_da, e execution_out_of_gas_l2, e execution_public_data_tree_root, e execution_public_data_tree_size, e execution_public_inputs_index, e execution_register_0_, e execution_register_1_, e execution_register_2_, e execution_register_3_, e execution_register_4_, e execution_register_5_, e execution_remaining_data_writes_inv, e execution_remaining_l2_to_l1_msgs_inv, e execution_remaining_note_hashes_inv, e execution_remaining_nullifiers_inv, e execution_retrieved_bytecodes_tree_root, e execution_retrieved_bytecodes_tree_size, e execution_rop_0_, e execution_rop_1_, e execution_rop_2_, e execution_rop_3_, e execution_rop_4_, e execution_rop_5_, e execution_rop_6_, e execution_rop_tag_0_, e execution_rop_tag_1_, e execution_rop_tag_2_, e execution_rop_tag_3_, e execution_rop_tag_4_, e execution_rop_tag_5_, e execution_rop_tag_6_, e execution_rw_reg_0_, e execution_rw_reg_1_, e execution_rw_reg_2_, e execution_rw_reg_3_, e execution_rw_reg_4_, e execution_rw_reg_5_, e execution_sel_addressing_error, e execution_sel_apply_indirection_0_, e execution_sel_apply_indirection_1_, e execution_sel_apply_indirection_2_, e execution_sel_apply_indirection_3_, e execution_sel_apply_indirection_4_, e execution_sel_apply_indirection_5_, e execution_sel_apply_indirection_6_, e execution_sel_base_address_failure, e execution_sel_bytecode_retrieval_failure, e execution_sel_bytecode_retrieval_success, e execution_sel_check_gas, e execution_sel_do_base_check, e execution_sel_enter_call, e execution_sel_envvar_pi_lookup_col0, e execution_sel_envvar_pi_lookup_col1, e execution_sel_error, e execution_sel_exec_dispatch_alu, e execution_sel_exec_dispatch_bitwise, e execution_sel_exec_dispatch_calldata_copy, e execution_sel_exec_dispatch_cast, e execution_sel_exec_dispatch_ecc_add, e execution_sel_exec_dispatch_emit_public_log, e execution_sel_exec_dispatch_execution, e execution_sel_exec_dispatch_get_contract_instance, e execution_sel_exec_dispatch_keccakf1600, e execution_sel_exec_dispatch_poseidon2_perm, e execution_sel_exec_dispatch_returndata_copy, e execution_sel_exec_dispatch_set, e execution_sel_exec_dispatch_sha256_compression, e execution_sel_exec_dispatch_to_radix, e execution_sel_execute_call, e execution_sel_execute_debug_log, e execution_sel_execute_emit_notehash, e execution_sel_execute_emit_nullifier, e execution_sel_execute_get_env_var, e execution_sel_execute_internal_call, e execution_sel_execute_internal_return, e execution_sel_execute_jump, e execution_sel_execute_jumpi, e execution_sel_execute_l1_to_l2_message_exists, e execution_sel_execute_mov, e execution_sel_execute_notehash_exists, e execution_sel_execute_nullifier_exists, e execution_sel_execute_opcode, e execution_sel_execute_return, e execution_sel_execute_returndata_size, e execution_sel_execute_revert, e execution_sel_execute_send_l2_to_l1_msg, e execution_sel_execute_sload, e execution_sel_execute_sstore, e execution_sel_execute_static_call, e execution_sel_execute_success_copy, e execution_sel_exit_call, e execution_sel_failure, e execution_sel_gas_bitwise, e execution_sel_gas_calldata_copy, e execution_sel_gas_emit_public_log, e execution_sel_gas_returndata_copy, e execution_sel_gas_sstore, e execution_sel_gas_to_radix, e execution_sel_instruction_fetching_failure, e execution_sel_instruction_fetching_success, e execution_sel_l2_to_l1_msg_limit_error, e execution_sel_lookup_num_p_limbs, e execution_sel_mem_op_reg_0_, e execution_sel_mem_op_reg_1_, e execution_sel_mem_op_reg_2_, e execution_sel_mem_op_reg_3_, e execution_sel_mem_op_reg_4_, e execution_sel_mem_op_reg_5_, e execution_sel_op_do_overflow_check_0_, e execution_sel_op_do_overflow_check_1_, e execution_sel_op_do_overflow_check_2_, e execution_sel_op_do_overflow_check_3_, e execution_sel_op_do_overflow_check_4_, e execution_sel_op_do_overflow_check_5_, e execution_sel_op_do_overflow_check_6_, e execution_sel_op_is_address_0_, e execution_sel_op_is_address_1_, e execution_sel_op_is_address_2_, e execution_sel_op_is_address_3_, e execution_sel_op_is_address_4_, e execution_sel_op_is_address_5_, e execution_sel_op_is_address_6_, e execution_sel_op_is_indirect_wire_0_, e execution_sel_op_is_indirect_wire_1_, e execution_sel_op_is_indirect_wire_2_, e execution_sel_op_is_indirect_wire_3_, e execution_sel_op_is_indirect_wire_4_, e execution_sel_op_is_indirect_wire_5_, e execution_sel_op_is_indirect_wire_6_, e execution_sel_op_is_indirect_wire_7_, e execution_sel_op_is_relative_wire_0_, e execution_sel_op_is_relative_wire_1_, e execution_sel_op_is_relative_wire_2_, e execution_sel_op_is_relative_wire_3_, e execution_sel_op_is_relative_wire_4_, e execution_sel_op_is_relative_wire_5_, e execution_sel_op_is_relative_wire_6_, e execution_sel_op_is_relative_wire_7_, e execution_sel_op_reg_effective_0_, e execution_sel_op_reg_effective_1_, e execution_sel_op_reg_effective_2_, e execution_sel_op_reg_effective_3_, e execution_sel_op_reg_effective_4_, e execution_sel_op_reg_effective_5_, e execution_sel_opcode_error, e execution_sel_out_of_gas, e execution_sel_radix_gt_256, e execution_sel_reached_max_note_hashes, e execution_sel_reached_max_nullifiers, e execution_sel_read_registers, e execution_sel_read_unwind_call_stack, e execution_sel_register_read_error, e execution_sel_relative_overflow_0_, e execution_sel_relative_overflow_1_, e execution_sel_relative_overflow_2_, e execution_sel_relative_overflow_3_, e execution_sel_relative_overflow_4_, e execution_sel_relative_overflow_5_, e execution_sel_relative_overflow_6_, e execution_sel_some_final_check_failed, e execution_sel_tag_check_reg_0_, e execution_sel_tag_check_reg_1_, e execution_sel_tag_check_reg_2_, e execution_sel_tag_check_reg_3_, e execution_sel_tag_check_reg_4_, e execution_sel_tag_check_reg_5_, e execution_sel_too_large_recipient_error, e execution_sel_use_num_limbs, e execution_sel_write_l2_to_l1_msg, e execution_sel_write_note_hash, e execution_sel_write_nullifier, e execution_sel_write_public_data, e execution_sel_write_registers, e execution_subtrace_id, e execution_subtrace_operation_id, e execution_total_gas_da, e execution_total_gas_l2, e execution_two_five_six, e execution_value_from_pi, e execution_written_public_data_slots_tree_root, e execution_written_public_data_slots_tree_size, e execution_written_slots_merkle_separator, e execution_written_slots_tree_height, e execution_written_slots_tree_siloing_separator, e ff_gt_a, e ff_gt_b, e ff_gt_borrow, e ff_gt_constant_128, e ff_gt_end, e ff_gt_p_a_borrow, e ff_gt_p_b_borrow, e ff_gt_res_hi, e ff_gt_res_lo, e ff_gt_result, e get_contract_instance_clk, e get_contract_instance_contract_address, e get_contract_instance_dst_offset, e get_contract_instance_dst_offset_diff_max_inv, e get_contract_instance_exists_tag, e get_contract_instance_instance_exists, e get_contract_instance_is_class_id, e get_contract_instance_is_deployer, e get_contract_instance_is_immutables_hash, e get_contract_instance_is_init_hash, e get_contract_instance_is_valid_member_enum, e get_contract_instance_is_valid_writes_in_bounds, e get_contract_instance_member_enum, e get_contract_instance_member_tag, e get_contract_instance_member_write_offset, e get_contract_instance_nullifier_tree_root, e get_contract_instance_public_data_tree_root, e get_contract_instance_retrieved_class_id, e get_contract_instance_retrieved_deployer_addr, e get_contract_instance_retrieved_immutables_hash, e get_contract_instance_retrieved_init_hash, e get_contract_instance_sel, e get_contract_instance_sel_error, e get_contract_instance_selected_member, e get_contract_instance_space_id, e gt_abs_diff, e gt_input_a, e gt_input_b, e gt_num_bits, e gt_res, e gt_sel, e gt_sel_addressing, e gt_sel_alu, e gt_sel_gas, e gt_sel_others, e gt_sel_sha256, e indexed_tree_check_address, e indexed_tree_check_const_three, e indexed_tree_check_discard, e indexed_tree_check_exists, e indexed_tree_check_intermediate_root, e indexed_tree_check_low_leaf_hash, e indexed_tree_check_low_leaf_index, e indexed_tree_check_low_leaf_next_index, e indexed_tree_check_low_leaf_next_value, e indexed_tree_check_low_leaf_value, e indexed_tree_check_merkle_hash_separator, e indexed_tree_check_new_leaf_hash, e indexed_tree_check_next_value_inv, e indexed_tree_check_next_value_is_nonzero, e indexed_tree_check_not_exists, e indexed_tree_check_public_inputs_index, e indexed_tree_check_root, e indexed_tree_check_sel, e indexed_tree_check_sel_insert, e indexed_tree_check_sel_silo, e indexed_tree_check_sel_write_to_public_inputs, e indexed_tree_check_siloed_value, e indexed_tree_check_siloing_separator, e indexed_tree_check_tree_height, e indexed_tree_check_tree_size_after_write, e indexed_tree_check_tree_size_before_write, e indexed_tree_check_updated_low_leaf_hash, e indexed_tree_check_updated_low_leaf_next_index, e indexed_tree_check_updated_low_leaf_next_value, e indexed_tree_check_value, e indexed_tree_check_value_low_leaf_value_diff_inv, e indexed_tree_check_write, e indexed_tree_check_write_root, e instr_fetching_addressing_mode, e instr_fetching_bd0, e instr_fetching_bd1, e instr_fetching_bd10, e instr_fetching_bd11, e instr_fetching_bd12, e instr_fetching_bd13, e instr_fetching_bd14, e instr_fetching_bd15, e instr_fetching_bd16, e instr_fetching_bd17, e instr_fetching_bd18, e instr_fetching_bd19, e instr_fetching_bd2, e instr_fetching_bd20, e instr_fetching_bd21, e instr_fetching_bd22, e instr_fetching_bd23, e instr_fetching_bd24, e instr_fetching_bd25, e instr_fetching_bd26, e instr_fetching_bd27, e instr_fetching_bd28, e instr_fetching_bd29, e instr_fetching_bd3, e instr_fetching_bd30, e instr_fetching_bd31, e instr_fetching_bd32, e instr_fetching_bd33, e instr_fetching_bd34, e instr_fetching_bd35, e instr_fetching_bd36, e instr_fetching_bd4, e instr_fetching_bd5, e instr_fetching_bd6, e instr_fetching_bd7, e instr_fetching_bd8, e instr_fetching_bd9, e instr_fetching_bytecode_id, e instr_fetching_bytecode_size, e instr_fetching_bytes_to_read, e instr_fetching_exec_opcode, e instr_fetching_instr_abs_diff, e instr_fetching_instr_out_of_range, e instr_fetching_instr_size, e instr_fetching_op1, e instr_fetching_op2, e instr_fetching_op3, e instr_fetching_op4, e instr_fetching_op5, e instr_fetching_op6, e instr_fetching_op7, e instr_fetching_opcode_out_of_range, e instr_fetching_pc, e instr_fetching_pc_abs_diff, e instr_fetching_pc_out_of_range, e instr_fetching_pc_size_in_bits, e instr_fetching_sel, e instr_fetching_sel_has_tag, e instr_fetching_sel_op_dc_0, e instr_fetching_sel_op_dc_1, e instr_fetching_sel_op_dc_10, e instr_fetching_sel_op_dc_11, e instr_fetching_sel_op_dc_12, e instr_fetching_sel_op_dc_13, e instr_fetching_sel_op_dc_14, e instr_fetching_sel_op_dc_15, e instr_fetching_sel_op_dc_16, e instr_fetching_sel_op_dc_2, e instr_fetching_sel_op_dc_3, e instr_fetching_sel_op_dc_4, e instr_fetching_sel_op_dc_5, e instr_fetching_sel_op_dc_6, e instr_fetching_sel_op_dc_7, e instr_fetching_sel_op_dc_8, e instr_fetching_sel_op_dc_9, e instr_fetching_sel_parsing_err, e instr_fetching_sel_pc_in_range, e instr_fetching_sel_tag_is_op2, e instr_fetching_tag_out_of_range, e instr_fetching_tag_value, e internal_call_stack_call_id, e internal_call_stack_context_id, e internal_call_stack_entered_call_id, e internal_call_stack_return_call_id, e internal_call_stack_return_pc, e internal_call_stack_sel, e keccak_memory_ctr_end, e keccak_memory_end, e keccak_memory_single_tag_error, e keccak_memory_state_size_min_ctr_inv, e keccak_memory_tag, e keccak_memory_tag_min_u64_inv, e keccak_memory_val_24_, e keccakf1600_bitwise_and_op_id, e keccakf1600_bitwise_xor_op_id, e keccakf1600_dst_out_of_range_error, e keccakf1600_end, e keccakf1600_error, e keccakf1600_highest_slice_address, e keccakf1600_rot_64_min_len_01, e keccakf1600_rot_64_min_len_03, e keccakf1600_rot_64_min_len_11, e keccakf1600_rot_64_min_len_13, e keccakf1600_rot_64_min_len_20, e keccakf1600_rot_64_min_len_22, e keccakf1600_rot_64_min_len_24, e keccakf1600_rot_64_min_len_31, e keccakf1600_rot_64_min_len_34, e keccakf1600_rot_64_min_len_42, e keccakf1600_rot_len_02, e keccakf1600_rot_len_04, e keccakf1600_rot_len_10, e keccakf1600_rot_len_12, e keccakf1600_rot_len_14, e keccakf1600_rot_len_21, e keccakf1600_rot_len_23, e keccakf1600_rot_len_30, e keccakf1600_rot_len_32, e keccakf1600_rot_len_33, e keccakf1600_rot_len_40, e keccakf1600_rot_len_41, e keccakf1600_rot_len_43, e keccakf1600_rot_len_44, e keccakf1600_round_cst, e keccakf1600_sel_slice_read, e keccakf1600_sel_slice_write, e keccakf1600_src_addr, e keccakf1600_src_out_of_range_error, e keccakf1600_state_chi_00, e keccakf1600_state_chi_01, e keccakf1600_state_chi_02, e keccakf1600_state_chi_03, e keccakf1600_state_chi_04, e keccakf1600_state_chi_10, e keccakf1600_state_chi_11, e keccakf1600_state_chi_12, e keccakf1600_state_chi_13, e keccakf1600_state_chi_14, e keccakf1600_state_chi_20, e keccakf1600_state_chi_21, e keccakf1600_state_chi_22, e keccakf1600_state_chi_23, e keccakf1600_state_chi_24, e keccakf1600_state_chi_30, e keccakf1600_state_chi_31, e keccakf1600_state_chi_32, e keccakf1600_state_chi_33, e keccakf1600_state_chi_34, e keccakf1600_state_chi_40, e keccakf1600_state_chi_41, e keccakf1600_state_chi_42, e keccakf1600_state_chi_43, e keccakf1600_state_chi_44, e keccakf1600_state_iota_00, e keccakf1600_state_pi_and_00, e keccakf1600_state_pi_and_01, e keccakf1600_state_pi_and_02, e keccakf1600_state_pi_and_03, e keccakf1600_state_pi_and_04, e keccakf1600_state_pi_and_10, e keccakf1600_state_pi_and_11, e keccakf1600_state_pi_and_12, e keccakf1600_state_pi_and_13, e keccakf1600_state_pi_and_14, e keccakf1600_state_pi_and_20, e keccakf1600_state_pi_and_21, e keccakf1600_state_pi_and_22, e keccakf1600_state_pi_and_23, e keccakf1600_state_pi_and_24, e keccakf1600_state_pi_and_30, e keccakf1600_state_pi_and_31, e keccakf1600_state_pi_and_32, e keccakf1600_state_pi_and_33, e keccakf1600_state_pi_and_34, e keccakf1600_state_pi_and_40, e keccakf1600_state_pi_and_41, e keccakf1600_state_pi_and_42, e keccakf1600_state_pi_and_43, e keccakf1600_state_pi_and_44, e keccakf1600_state_pi_not_00, e keccakf1600_state_pi_not_01, e keccakf1600_state_pi_not_02, e keccakf1600_state_pi_not_03, e keccakf1600_state_pi_not_04, e keccakf1600_state_pi_not_10, e keccakf1600_state_pi_not_11, e keccakf1600_state_pi_not_12, e keccakf1600_state_pi_not_13, e keccakf1600_state_pi_not_14, e keccakf1600_state_pi_not_20, e keccakf1600_state_pi_not_21, e keccakf1600_state_pi_not_22, e keccakf1600_state_pi_not_23, e keccakf1600_state_pi_not_24, e keccakf1600_state_pi_not_30, e keccakf1600_state_pi_not_31, e keccakf1600_state_pi_not_32, e keccakf1600_state_pi_not_33, e keccakf1600_state_pi_not_34, e keccakf1600_state_pi_not_40, e keccakf1600_state_pi_not_41, e keccakf1600_state_pi_not_42, e keccakf1600_state_pi_not_43, e keccakf1600_state_pi_not_44, e keccakf1600_state_rho_01, e keccakf1600_state_rho_02, e keccakf1600_state_rho_03, e keccakf1600_state_rho_04, e keccakf1600_state_rho_10, e keccakf1600_state_rho_11, e keccakf1600_state_rho_12, e keccakf1600_state_rho_13, e keccakf1600_state_rho_14, e keccakf1600_state_rho_20, e keccakf1600_state_rho_21, e keccakf1600_state_rho_22, e keccakf1600_state_rho_23, e keccakf1600_state_rho_24, e keccakf1600_state_rho_30, e keccakf1600_state_rho_31, e keccakf1600_state_rho_32, e keccakf1600_state_rho_33, e keccakf1600_state_rho_34, e keccakf1600_state_rho_40, e keccakf1600_state_rho_41, e keccakf1600_state_rho_42, e keccakf1600_state_rho_43, e keccakf1600_state_rho_44, e keccakf1600_state_theta_00, e keccakf1600_state_theta_01, e keccakf1600_state_theta_02, e keccakf1600_state_theta_03, e keccakf1600_state_theta_04, e keccakf1600_state_theta_10, e keccakf1600_state_theta_11, e keccakf1600_state_theta_12, e keccakf1600_state_theta_13, e keccakf1600_state_theta_14, e keccakf1600_state_theta_20, e keccakf1600_state_theta_21, e keccakf1600_state_theta_22, e keccakf1600_state_theta_23, e keccakf1600_state_theta_24, e keccakf1600_state_theta_30, e keccakf1600_state_theta_31, e keccakf1600_state_theta_32, e keccakf1600_state_theta_33, e keccakf1600_state_theta_34, e keccakf1600_state_theta_40, e keccakf1600_state_theta_41, e keccakf1600_state_theta_42, e keccakf1600_state_theta_43, e keccakf1600_state_theta_44, e keccakf1600_state_theta_hi_02, e keccakf1600_state_theta_hi_04, e keccakf1600_state_theta_hi_10, e keccakf1600_state_theta_hi_12, e keccakf1600_state_theta_hi_14, e keccakf1600_state_theta_hi_21, e keccakf1600_state_theta_hi_23, e keccakf1600_state_theta_hi_30, e keccakf1600_state_theta_hi_32, e keccakf1600_state_theta_hi_33, e keccakf1600_state_theta_hi_40, e keccakf1600_state_theta_hi_41, e keccakf1600_state_theta_hi_43, e keccakf1600_state_theta_hi_44, e keccakf1600_state_theta_low_01, e keccakf1600_state_theta_low_03, e keccakf1600_state_theta_low_11, e keccakf1600_state_theta_low_13, e keccakf1600_state_theta_low_20, e keccakf1600_state_theta_low_22, e keccakf1600_state_theta_low_24, e keccakf1600_state_theta_low_31, e keccakf1600_state_theta_low_34, e keccakf1600_state_theta_low_42, e keccakf1600_tag_error, e keccakf1600_tag_u64, e keccakf1600_theta_combined_xor_0, e keccakf1600_theta_combined_xor_1, e keccakf1600_theta_combined_xor_2, e keccakf1600_theta_combined_xor_3, e keccakf1600_theta_combined_xor_4, e keccakf1600_theta_xor_01, e keccakf1600_theta_xor_02, e keccakf1600_theta_xor_03, e keccakf1600_theta_xor_11, e keccakf1600_theta_xor_12, e keccakf1600_theta_xor_13, e keccakf1600_theta_xor_21, e keccakf1600_theta_xor_22, e keccakf1600_theta_xor_23, e keccakf1600_theta_xor_31, e keccakf1600_theta_xor_32, e keccakf1600_theta_xor_33, e keccakf1600_theta_xor_41, e keccakf1600_theta_xor_42, e keccakf1600_theta_xor_43, e keccakf1600_theta_xor_row_0, e keccakf1600_theta_xor_row_1, e keccakf1600_theta_xor_row_2, e keccakf1600_theta_xor_row_3, e keccakf1600_theta_xor_row_4, e keccakf1600_theta_xor_row_msb_0, e keccakf1600_theta_xor_row_msb_1, e keccakf1600_theta_xor_row_msb_2, e keccakf1600_theta_xor_row_msb_3, e keccakf1600_theta_xor_row_msb_4, e keccakf1600_theta_xor_row_rotl1_0, e keccakf1600_theta_xor_row_rotl1_1, e keccakf1600_theta_xor_row_rotl1_2, e keccakf1600_theta_xor_row_rotl1_3, e keccakf1600_theta_xor_row_rotl1_4, e l1_to_l2_message_tree_check_exists, e l1_to_l2_message_tree_check_l1_to_l2_message_tree_height, e l1_to_l2_message_tree_check_leaf_index, e l1_to_l2_message_tree_check_leaf_value, e l1_to_l2_message_tree_check_leaf_value_msg_hash_diff_inv, e l1_to_l2_message_tree_check_merkle_hash_separator, e l1_to_l2_message_tree_check_msg_hash, e l1_to_l2_message_tree_check_root, e l1_to_l2_message_tree_check_sel, e memory_diff, e memory_glob_addr_diff_inv, e memory_last_access, e memory_limb_0_, e memory_limb_1_, e memory_limb_2_, e memory_max_bits, e memory_sel_addressing_base, e memory_sel_addressing_indirect_0_, e memory_sel_addressing_indirect_1_, e memory_sel_addressing_indirect_2_, e memory_sel_addressing_indirect_3_, e memory_sel_addressing_indirect_4_, e memory_sel_addressing_indirect_5_, e memory_sel_addressing_indirect_6_, e memory_sel_data_copy_read, e memory_sel_data_copy_write, e memory_sel_ecc_write_0_, e memory_sel_ecc_write_1_, e memory_sel_ecc_write_2_, e memory_sel_get_contract_instance_exists_write, e memory_sel_get_contract_instance_member_write, e memory_sel_keccak, e memory_sel_poseidon2_read_0_, e memory_sel_poseidon2_read_1_, e memory_sel_poseidon2_read_2_, e memory_sel_poseidon2_read_3_, e memory_sel_poseidon2_write_0_, e memory_sel_poseidon2_write_1_, e memory_sel_poseidon2_write_2_, e memory_sel_poseidon2_write_3_, e memory_sel_public_log_read, e memory_sel_register_op_0_, e memory_sel_register_op_1_, e memory_sel_register_op_2_, e memory_sel_register_op_3_, e memory_sel_register_op_4_, e memory_sel_register_op_5_, e memory_sel_rng_chk, e memory_sel_rng_write, e memory_sel_sha256_op_0_, e memory_sel_sha256_op_1_, e memory_sel_sha256_op_2_, e memory_sel_sha256_op_3_, e memory_sel_sha256_op_4_, e memory_sel_sha256_op_5_, e memory_sel_sha256_op_6_, e memory_sel_sha256_op_7_, e memory_sel_sha256_read, e memory_sel_tag_is_ff, e memory_sel_to_radix_write, e memory_tag_ff_diff_inv, e merkle_check_const_three, e merkle_check_end, e merkle_check_index_is_even, e merkle_check_path_len_min_one_inv, e merkle_check_read_left_node, e merkle_check_read_output_hash, e merkle_check_read_right_node, e merkle_check_sibling, e merkle_check_write_left_node, e merkle_check_write_output_hash, e merkle_check_write_right_node, e note_hash_tree_check_address, e note_hash_tree_check_const_three, e note_hash_tree_check_discard, e note_hash_tree_check_exists, e note_hash_tree_check_first_nullifier, e note_hash_tree_check_first_nullifier_pi_index, e note_hash_tree_check_leaf_index, e note_hash_tree_check_merkle_hash_separator, e note_hash_tree_check_next_leaf_value, e note_hash_tree_check_next_root, e note_hash_tree_check_nonce, e note_hash_tree_check_nonce_separator, e note_hash_tree_check_note_hash, e note_hash_tree_check_note_hash_index, e note_hash_tree_check_note_hash_tree_height, e note_hash_tree_check_prev_leaf_value, e note_hash_tree_check_prev_leaf_value_unique_note_hash_diff_inv, e note_hash_tree_check_prev_root, e note_hash_tree_check_public_inputs_index, e note_hash_tree_check_sel, e note_hash_tree_check_sel_silo, e note_hash_tree_check_sel_unique, e note_hash_tree_check_sel_write_to_public_inputs, e note_hash_tree_check_siloed_note_hash, e note_hash_tree_check_siloing_separator, e note_hash_tree_check_unique_note_hash, e note_hash_tree_check_unique_note_hash_separator, e note_hash_tree_check_write, e poseidon2_hash_b_0, e poseidon2_hash_b_1, e poseidon2_hash_b_2, e poseidon2_hash_b_3, e poseidon2_hash_end, e poseidon2_hash_input_len, e poseidon2_hash_num_perm_rounds_rem_min_one_inv, e poseidon2_hash_padding, e poseidon2_perm_B_10_0, e poseidon2_perm_B_10_1, e poseidon2_perm_B_10_2, e poseidon2_perm_B_10_3, e poseidon2_perm_B_11_0, e poseidon2_perm_B_11_1, e poseidon2_perm_B_11_2, e poseidon2_perm_B_11_3, e poseidon2_perm_B_12_0, e poseidon2_perm_B_12_1, e poseidon2_perm_B_12_2, e poseidon2_perm_B_12_3, e poseidon2_perm_B_13_0, e poseidon2_perm_B_13_1, e poseidon2_perm_B_13_2, e poseidon2_perm_B_13_3, e poseidon2_perm_B_14_0, e poseidon2_perm_B_14_1, e poseidon2_perm_B_14_2, e poseidon2_perm_B_14_3, e poseidon2_perm_B_15_0, e poseidon2_perm_B_15_1, e poseidon2_perm_B_15_2, e poseidon2_perm_B_15_3, e poseidon2_perm_B_16_0, e poseidon2_perm_B_16_1, e poseidon2_perm_B_16_2, e poseidon2_perm_B_16_3, e poseidon2_perm_B_17_0, e poseidon2_perm_B_17_1, e poseidon2_perm_B_17_2, e poseidon2_perm_B_17_3, e poseidon2_perm_B_18_0, e poseidon2_perm_B_18_1, e poseidon2_perm_B_18_2, e poseidon2_perm_B_18_3, e poseidon2_perm_B_19_0, e poseidon2_perm_B_19_1, e poseidon2_perm_B_19_2, e poseidon2_perm_B_19_3, e poseidon2_perm_B_20_0, e poseidon2_perm_B_20_1, e poseidon2_perm_B_20_2, e poseidon2_perm_B_20_3, e poseidon2_perm_B_21_0, e poseidon2_perm_B_21_1, e poseidon2_perm_B_21_2, e poseidon2_perm_B_21_3, e poseidon2_perm_B_22_0, e poseidon2_perm_B_22_1, e poseidon2_perm_B_22_2, e poseidon2_perm_B_22_3, e poseidon2_perm_B_23_0, e poseidon2_perm_B_23_1, e poseidon2_perm_B_23_2, e poseidon2_perm_B_23_3, e poseidon2_perm_B_24_0, e poseidon2_perm_B_24_1, e poseidon2_perm_B_24_2, e poseidon2_perm_B_24_3, e poseidon2_perm_B_25_0, e poseidon2_perm_B_25_1, e poseidon2_perm_B_25_2, e poseidon2_perm_B_25_3, e poseidon2_perm_B_26_0, e poseidon2_perm_B_26_1, e poseidon2_perm_B_26_2, e poseidon2_perm_B_26_3, e poseidon2_perm_B_27_0, e poseidon2_perm_B_27_1, e poseidon2_perm_B_27_2, e poseidon2_perm_B_27_3, e poseidon2_perm_B_28_0, e poseidon2_perm_B_28_1, e poseidon2_perm_B_28_2, e poseidon2_perm_B_28_3, e poseidon2_perm_B_29_0, e poseidon2_perm_B_29_1, e poseidon2_perm_B_29_2, e poseidon2_perm_B_29_3, e poseidon2_perm_B_30_0, e poseidon2_perm_B_30_1, e poseidon2_perm_B_30_2, e poseidon2_perm_B_30_3, e poseidon2_perm_B_31_0, e poseidon2_perm_B_31_1, e poseidon2_perm_B_31_2, e poseidon2_perm_B_31_3, e poseidon2_perm_B_32_0, e poseidon2_perm_B_32_1, e poseidon2_perm_B_32_2, e poseidon2_perm_B_32_3, e poseidon2_perm_B_33_0, e poseidon2_perm_B_33_1, e poseidon2_perm_B_33_2, e poseidon2_perm_B_33_3, e poseidon2_perm_B_34_0, e poseidon2_perm_B_34_1, e poseidon2_perm_B_34_2, e poseidon2_perm_B_34_3, e poseidon2_perm_B_35_0, e poseidon2_perm_B_35_1, e poseidon2_perm_B_35_2, e poseidon2_perm_B_35_3, e poseidon2_perm_B_36_0, e poseidon2_perm_B_36_1, e poseidon2_perm_B_36_2, e poseidon2_perm_B_36_3, e poseidon2_perm_B_37_0, e poseidon2_perm_B_37_1, e poseidon2_perm_B_37_2, e poseidon2_perm_B_37_3, e poseidon2_perm_B_38_0, e poseidon2_perm_B_38_1, e poseidon2_perm_B_38_2, e poseidon2_perm_B_38_3, e poseidon2_perm_B_39_0, e poseidon2_perm_B_39_1, e poseidon2_perm_B_39_2, e poseidon2_perm_B_39_3, e poseidon2_perm_B_40_0, e poseidon2_perm_B_40_1, e poseidon2_perm_B_40_2, e poseidon2_perm_B_40_3, e poseidon2_perm_B_41_0, e poseidon2_perm_B_41_1, e poseidon2_perm_B_41_2, e poseidon2_perm_B_41_3, e poseidon2_perm_B_42_0, e poseidon2_perm_B_42_1, e poseidon2_perm_B_42_2, e poseidon2_perm_B_42_3, e poseidon2_perm_B_43_0, e poseidon2_perm_B_43_1, e poseidon2_perm_B_43_2, e poseidon2_perm_B_43_3, e poseidon2_perm_B_44_0, e poseidon2_perm_B_44_1, e poseidon2_perm_B_44_2, e poseidon2_perm_B_44_3, e poseidon2_perm_B_45_0, e poseidon2_perm_B_45_1, e poseidon2_perm_B_45_2, e poseidon2_perm_B_45_3, e poseidon2_perm_B_46_0, e poseidon2_perm_B_46_1, e poseidon2_perm_B_46_2, e poseidon2_perm_B_46_3, e poseidon2_perm_B_47_0, e poseidon2_perm_B_47_1, e poseidon2_perm_B_47_2, e poseidon2_perm_B_47_3, e poseidon2_perm_B_48_0, e poseidon2_perm_B_48_1, e poseidon2_perm_B_48_2, e poseidon2_perm_B_48_3, e poseidon2_perm_B_49_0, e poseidon2_perm_B_49_1, e poseidon2_perm_B_49_2, e poseidon2_perm_B_49_3, e poseidon2_perm_B_4_0, e poseidon2_perm_B_4_1, e poseidon2_perm_B_4_2, e poseidon2_perm_B_4_3, e poseidon2_perm_B_50_0, e poseidon2_perm_B_50_1, e poseidon2_perm_B_50_2, e poseidon2_perm_B_50_3, e poseidon2_perm_B_51_0, e poseidon2_perm_B_51_1, e poseidon2_perm_B_51_2, e poseidon2_perm_B_51_3, e poseidon2_perm_B_52_0, e poseidon2_perm_B_52_1, e poseidon2_perm_B_52_2, e poseidon2_perm_B_52_3, e poseidon2_perm_B_53_0, e poseidon2_perm_B_53_1, e poseidon2_perm_B_53_2, e poseidon2_perm_B_53_3, e poseidon2_perm_B_54_0, e poseidon2_perm_B_54_1, e poseidon2_perm_B_54_2, e poseidon2_perm_B_54_3, e poseidon2_perm_B_55_0, e poseidon2_perm_B_55_1, e poseidon2_perm_B_55_2, e poseidon2_perm_B_55_3, e poseidon2_perm_B_56_0, e poseidon2_perm_B_56_1, e poseidon2_perm_B_56_2, e poseidon2_perm_B_56_3, e poseidon2_perm_B_57_0, e poseidon2_perm_B_57_1, e poseidon2_perm_B_57_2, e poseidon2_perm_B_57_3, e poseidon2_perm_B_58_0, e poseidon2_perm_B_58_1, e poseidon2_perm_B_58_2, e poseidon2_perm_B_58_3, e poseidon2_perm_B_59_0, e poseidon2_perm_B_59_1, e poseidon2_perm_B_59_2, e poseidon2_perm_B_59_3, e poseidon2_perm_B_5_0, e poseidon2_perm_B_5_1, e poseidon2_perm_B_5_2, e poseidon2_perm_B_5_3, e poseidon2_perm_B_6_0, e poseidon2_perm_B_6_1, e poseidon2_perm_B_6_2, e poseidon2_perm_B_6_3, e poseidon2_perm_B_7_0, e poseidon2_perm_B_7_1, e poseidon2_perm_B_7_2, e poseidon2_perm_B_7_3, e poseidon2_perm_B_8_0, e poseidon2_perm_B_8_1, e poseidon2_perm_B_8_2, e poseidon2_perm_B_8_3, e poseidon2_perm_B_9_0, e poseidon2_perm_B_9_1, e poseidon2_perm_B_9_2, e poseidon2_perm_B_9_3, e poseidon2_perm_EXT_LAYER_4, e poseidon2_perm_EXT_LAYER_5, e poseidon2_perm_EXT_LAYER_6, e poseidon2_perm_EXT_LAYER_7, e poseidon2_perm_T_0_4, e poseidon2_perm_T_0_5, e poseidon2_perm_T_0_6, e poseidon2_perm_T_0_7, e poseidon2_perm_T_1_4, e poseidon2_perm_T_1_5, e poseidon2_perm_T_1_6, e poseidon2_perm_T_1_7, e poseidon2_perm_T_2_4, e poseidon2_perm_T_2_5, e poseidon2_perm_T_2_6, e poseidon2_perm_T_2_7, e poseidon2_perm_T_3_4, e poseidon2_perm_T_3_5, e poseidon2_perm_T_3_6, e poseidon2_perm_T_3_7, e poseidon2_perm_T_60_4, e poseidon2_perm_T_60_5, e poseidon2_perm_T_60_6, e poseidon2_perm_T_60_7, e poseidon2_perm_T_61_4, e poseidon2_perm_T_61_5, e poseidon2_perm_T_61_6, e poseidon2_perm_T_61_7, e poseidon2_perm_T_62_4, e poseidon2_perm_T_62_5, e poseidon2_perm_T_62_6, e poseidon2_perm_T_62_7, e poseidon2_perm_T_63_4, e poseidon2_perm_T_63_5, e poseidon2_perm_T_63_6, e poseidon2_perm_T_63_7, e poseidon2_perm_a_0, e poseidon2_perm_a_1, e poseidon2_perm_a_2, e poseidon2_perm_a_3, e poseidon2_perm_b_0, e poseidon2_perm_b_1, e poseidon2_perm_b_2, e poseidon2_perm_b_3, e poseidon2_perm_mem_batch_tag_inv, e poseidon2_perm_mem_err, e poseidon2_perm_mem_execution_clk, e poseidon2_perm_mem_input_0_, e poseidon2_perm_mem_input_1_, e poseidon2_perm_mem_input_2_, e poseidon2_perm_mem_input_3_, e poseidon2_perm_mem_input_tag_0_, e poseidon2_perm_mem_input_tag_1_, e poseidon2_perm_mem_input_tag_2_, e poseidon2_perm_mem_input_tag_3_, e poseidon2_perm_mem_max_mem_addr, e poseidon2_perm_mem_output_0_, e poseidon2_perm_mem_output_1_, e poseidon2_perm_mem_output_2_, e poseidon2_perm_mem_output_3_, e poseidon2_perm_mem_read_address_0_, e poseidon2_perm_mem_read_address_1_, e poseidon2_perm_mem_read_address_2_, e poseidon2_perm_mem_read_address_3_, e poseidon2_perm_mem_sel, e poseidon2_perm_mem_sel_dst_out_of_range_err, e poseidon2_perm_mem_sel_invalid_tag_err, e poseidon2_perm_mem_sel_should_exec, e poseidon2_perm_mem_sel_should_read_mem, e poseidon2_perm_mem_sel_src_out_of_range_err, e poseidon2_perm_mem_space_id, e poseidon2_perm_mem_write_address_0_, e poseidon2_perm_mem_write_address_1_, e poseidon2_perm_mem_write_address_2_, e poseidon2_perm_mem_write_address_3_, e poseidon2_perm_sel, e public_data_check_address, e public_data_check_clk_diff_hi, e public_data_check_clk_diff_lo, e public_data_check_const_four, e public_data_check_const_three, e public_data_check_discard, e public_data_check_end, e public_data_check_final_value, e public_data_check_intermediate_root, e public_data_check_leaf_not_exists, e public_data_check_leaf_slot, e public_data_check_leaf_slot_low_leaf_slot_diff_inv, e public_data_check_length_pi_idx, e public_data_check_low_leaf_hash, e public_data_check_low_leaf_index, e public_data_check_low_leaf_next_index, e public_data_check_low_leaf_next_slot, e public_data_check_low_leaf_slot, e public_data_check_low_leaf_value, e public_data_check_merkle_hash_separator, e public_data_check_new_leaf_hash, e public_data_check_next_slot_inv, e public_data_check_next_slot_is_nonzero, e public_data_check_non_discarded_write, e public_data_check_non_protocol_write, e public_data_check_not_end, e public_data_check_protocol_write, e public_data_check_public_data_writes_length, e public_data_check_root, e public_data_check_sel_write_to_public_inputs, e public_data_check_should_insert, e public_data_check_siloing_separator, e public_data_check_slot, e public_data_check_tree_height, e public_data_check_tree_size_after_write, e public_data_check_tree_size_before_write, e public_data_check_updated_low_leaf_hash, e public_data_check_updated_low_leaf_next_index, e public_data_check_updated_low_leaf_next_slot, e public_data_check_updated_low_leaf_value, e public_data_check_value, e public_data_check_write, e public_data_check_write_root, e public_data_squash_check_clock, e public_data_squash_clk_diff_hi, e public_data_squash_clk_diff_lo, e public_data_squash_leaf_slot_increase, e public_data_squash_value, e range_check_dyn_diff, e range_check_dyn_rng_chk_bits, e range_check_dyn_rng_chk_pow_2, e range_check_is_lte_u112, e range_check_is_lte_u128, e range_check_is_lte_u16, e range_check_is_lte_u32, e range_check_is_lte_u48, e range_check_is_lte_u64, e range_check_is_lte_u80, e range_check_is_lte_u96, e range_check_rng_chk_bits, e range_check_sel, e range_check_sel_alu, e range_check_sel_gt, e range_check_sel_keccak, e range_check_sel_memory, e range_check_sel_r0_16_bit_rng_lookup, e range_check_sel_r1_16_bit_rng_lookup, e range_check_sel_r2_16_bit_rng_lookup, e range_check_sel_r3_16_bit_rng_lookup, e range_check_sel_r4_16_bit_rng_lookup, e range_check_sel_r5_16_bit_rng_lookup, e range_check_sel_r6_16_bit_rng_lookup, e range_check_u16_r0, e range_check_u16_r1, e range_check_u16_r2, e range_check_u16_r3, e range_check_u16_r4, e range_check_u16_r5, e range_check_u16_r6, e range_check_u16_r7, e range_check_value, e scalar_mul_bit, e scalar_mul_const_two, e scalar_mul_end, e scalar_mul_sel_not_end, e scalar_mul_should_add, e sha256_a_and_b, e sha256_a_and_b_xor_a_and_c, e sha256_a_and_c, e sha256_a_rotr_13, e sha256_a_rotr_2, e sha256_a_rotr_22, e sha256_a_rotr_2_xor_a_rotr_13, e sha256_and_op_id, e sha256_b_and_c, e sha256_batch_tag_inv, e sha256_ch, e sha256_computed_w_lhs, e sha256_computed_w_rhs, e sha256_e_and_f, e sha256_e_rotr_11, e sha256_e_rotr_25, e sha256_e_rotr_6, e sha256_e_rotr_6_xor_e_rotr_11, e sha256_end, e sha256_err, e sha256_input, e sha256_input_rounds_rem_inv, e sha256_input_tag, e sha256_input_tag_diff_inv, e sha256_last, e sha256_lhs_w_10, e sha256_lhs_w_3, e sha256_maj, e sha256_max_input_addr, e sha256_max_mem_addr, e sha256_max_output_addr, e sha256_max_state_addr, e sha256_mem_out_of_range_err, e sha256_memory_address_0_, e sha256_memory_address_1_, e sha256_memory_address_2_, e sha256_memory_address_3_, e sha256_memory_address_4_, e sha256_memory_address_5_, e sha256_memory_address_6_, e sha256_memory_address_7_, e sha256_memory_register_0_, e sha256_memory_register_1_, e sha256_memory_register_2_, e sha256_memory_register_3_, e sha256_memory_register_4_, e sha256_memory_register_5_, e sha256_memory_register_6_, e sha256_memory_register_7_, e sha256_memory_tag_0_, e sha256_memory_tag_1_, e sha256_memory_tag_2_, e sha256_memory_tag_3_, e sha256_memory_tag_4_, e sha256_memory_tag_5_, e sha256_memory_tag_6_, e sha256_memory_tag_7_, e sha256_next_a_lhs, e sha256_next_a_rhs, e sha256_next_e_lhs, e sha256_next_e_rhs, e sha256_not_e, e sha256_not_e_and_g, e sha256_output_a_lhs, e sha256_output_a_rhs, e sha256_output_b_lhs, e sha256_output_b_rhs, e sha256_output_c_lhs, e sha256_output_c_rhs, e sha256_output_d_lhs, e sha256_output_d_rhs, e sha256_output_e_lhs, e sha256_output_e_rhs, e sha256_output_f_lhs, e sha256_output_f_rhs, e sha256_output_g_lhs, e sha256_output_g_rhs, e sha256_output_h_lhs, e sha256_output_h_rhs, e sha256_perform_round, e sha256_rhs_a_13, e sha256_rhs_a_2, e sha256_rhs_a_22, e sha256_rhs_e_11, e sha256_rhs_e_25, e sha256_rhs_e_6, e sha256_rhs_w_10, e sha256_rhs_w_17, e sha256_rhs_w_18, e sha256_rhs_w_19, e sha256_rhs_w_3, e sha256_rhs_w_7, e sha256_round_constant, e sha256_round_count, e sha256_rounds_remaining_inv, e sha256_rw, e sha256_s_0, e sha256_s_1, e sha256_sel_compute_w, e sha256_sel_input_out_of_range_err, e sha256_sel_invalid_input_row_tag_err, e sha256_sel_invalid_state_tag_err, e sha256_sel_is_input_round, e sha256_sel_mem_state_or_output, e sha256_sel_output_out_of_range_err, e sha256_sel_read_input_from_memory, e sha256_sel_state_out_of_range_err, e sha256_state_addr, e sha256_two_pow_10, e sha256_two_pow_11, e sha256_two_pow_13, e sha256_two_pow_17, e sha256_two_pow_18, e sha256_two_pow_19, e sha256_two_pow_2, e sha256_two_pow_22, e sha256_two_pow_25, e sha256_two_pow_3, e sha256_two_pow_32, e sha256_two_pow_6, e sha256_two_pow_7, e sha256_u32_tag, e sha256_w, e sha256_w_15_rotr_18, e sha256_w_15_rotr_7, e sha256_w_15_rotr_7_xor_w_15_rotr_18, e sha256_w_2_rotr_17, e sha256_w_2_rotr_17_xor_w_2_rotr_19, e sha256_w_2_rotr_19, e sha256_w_s_0, e sha256_w_s_1, e sha256_xor_op_id, e to_radix_end, e to_radix_found, e to_radix_is_unsafe_limb, e to_radix_limb_p_diff, e to_radix_limb_radix_diff, e to_radix_mem_err, e to_radix_mem_input_validation_error, e to_radix_mem_last, e to_radix_mem_limb_index_to_lookup, e to_radix_mem_limb_value, e to_radix_mem_max_mem_size, e to_radix_mem_num_limbs_inv, e to_radix_mem_num_limbs_minus_one_inv, e to_radix_mem_output_tag, e to_radix_mem_radix_min_two_inv, e to_radix_mem_sel_dst_out_of_range_err, e to_radix_mem_sel_invalid_bitwise_radix, e to_radix_mem_sel_num_limbs_is_zero, e to_radix_mem_sel_radix_eq_2, e to_radix_mem_sel_radix_gt_256_err, e to_radix_mem_sel_radix_lt_2_err, e to_radix_mem_sel_value_is_zero, e to_radix_mem_two, e to_radix_mem_two_five_six, e to_radix_mem_value_found, e to_radix_mem_value_inv, e to_radix_mem_write_addr_upper_bound, e to_radix_p_limb, e to_radix_rem_inverse, e to_radix_safety_diff_inverse, e tx_array_length_l2_to_l1_messages_pi_offset, e tx_array_length_note_hashes_pi_offset, e tx_array_length_nullifiers_pi_offset, e tx_calldata_hash, e tx_calldata_size, e tx_const_three, e tx_contract_addr, e tx_dom_sep_public_storage_map_slot, e tx_effective_fee_per_da_gas, e tx_effective_fee_per_l2_gas, e tx_end_phase, e tx_fee_juice_balance_slot, e tx_fee_juice_balances_slot_constant, e tx_fee_juice_contract_address, e tx_fee_payer, e tx_fee_payer_balance, e tx_fee_payer_new_balance, e tx_fee_payer_pi_offset, e tx_fields_length_public_logs_pi_offset, e tx_gas_limit_pi_offset, e tx_gas_used_pi_offset, e tx_is_cleanup, e tx_is_collect_fee, e tx_is_padded, e tx_is_public_call_request, e tx_is_static, e tx_is_tree_insert_phase, e tx_is_tree_padding, e tx_l1_l2_pi_offset, e tx_l2_l1_msg_content, e tx_l2_l1_msg_contract_address, e tx_l2_l1_msg_recipient, e tx_leaf_value, e tx_msg_sender, e tx_next_da_gas_used, e tx_next_da_gas_used_sent_to_enqueued_call, e tx_next_l2_gas_used, e tx_next_l2_gas_used_sent_to_enqueued_call, e tx_next_note_hash_tree_root, e tx_next_note_hash_tree_size, e tx_next_nullifier_tree_root, e tx_next_nullifier_tree_size, e tx_next_num_l2_to_l1_messages, e tx_next_num_note_hashes_emitted, e tx_next_num_nullifiers_emitted, e tx_next_num_public_log_fields, e tx_next_phase_on_revert, e tx_next_public_data_tree_root, e tx_next_public_data_tree_size, e tx_next_retrieved_bytecodes_tree_root, e tx_next_retrieved_bytecodes_tree_size, e tx_next_written_public_data_slots_tree_root, e tx_next_written_public_data_slots_tree_size, e tx_note_hash_pi_offset, e tx_nullifier_limit_error, e tx_nullifier_merkle_separator, e tx_nullifier_pi_offset, e tx_nullifier_tree_height, e tx_prev_da_gas_used_sent_to_enqueued_call, e tx_prev_l2_gas_used_sent_to_enqueued_call, e tx_public_data_pi_offset, e tx_read_pi_length_offset, e tx_read_pi_start_offset, e tx_remaining_phase_inv, e tx_remaining_phase_minus_one_inv, e tx_remaining_side_effects_inv, e tx_reverted_pi_offset, e tx_sel_append_l2_l1_msg, e tx_sel_append_note_hash, e tx_sel_append_nullifier, e tx_sel_l2_l1_msg_append, e tx_sel_note_hash_append, e tx_sel_nullifier_append, e tx_sel_process_call_request, e tx_sel_read_phase_length, e tx_sel_read_trees_and_gas_used, e tx_sel_try_l2_l1_msg_append, e tx_sel_try_note_hash_append, e tx_sel_try_nullifier_append, e tx_setup_phase_value, e tx_should_read_gas_limit, e tx_uint32_max, e tx_write_nullifier_pi_offset, e tx_write_pi_offset, e update_check_address, e update_check_const_three, e update_check_contract_instance_registry_address, e update_check_current_class_id, e update_check_delayed_public_mutable_hash_slot, e update_check_delayed_public_mutable_slot, e update_check_dom_sep_public_storage_map_slot, e update_check_hash_not_zero, e update_check_original_class_id, e update_check_public_data_tree_root, e update_check_sel, e update_check_timestamp, e update_check_timestamp_is_lt_timestamp_of_change, e update_check_timestamp_of_change, e update_check_timestamp_of_change_bit_size, e update_check_timestamp_pi_offset, e update_check_update_hash, e update_check_update_hash_inv, e update_check_update_hi_metadata, e update_check_update_hi_metadata_bit_size, e update_check_update_post_class_id_is_zero, e update_check_update_post_class_inv, e update_check_update_pre_class_id_is_zero, e update_check_update_pre_class_inv, e update_check_update_preimage_metadata, e update_check_update_preimage_post_class_id, e update_check_update_preimage_pre_class_id, e update_check_updated_class_ids_slot, e lookup_range_check_dyn_rng_chk_pow_2_counts, e lookup_range_check_dyn_diff_is_u16_counts, e lookup_range_check_r0_is_u16_counts, e lookup_range_check_r1_is_u16_counts, e lookup_range_check_r2_is_u16_counts, e lookup_range_check_r3_is_u16_counts, e lookup_range_check_r4_is_u16_counts, e lookup_range_check_r5_is_u16_counts, e lookup_range_check_r6_is_u16_counts, e lookup_range_check_r7_is_u16_counts, e lookup_ff_gt_a_lo_range_counts, e lookup_ff_gt_a_hi_range_counts, e lookup_gt_gt_range_counts, e lookup_alu_tag_max_bits_value_counts, e lookup_alu_range_check_decomposition_a_lo_counts, e lookup_alu_range_check_decomposition_a_hi_counts, e lookup_alu_range_check_decomposition_b_lo_counts, e lookup_alu_range_check_decomposition_b_hi_counts, e lookup_alu_range_check_mul_c_hi_counts, e lookup_alu_range_check_div_remainder_counts, e lookup_alu_ff_gt_counts, e lookup_alu_int_gt_counts, e lookup_alu_shifts_two_pow_counts, e lookup_alu_large_trunc_canonical_dec_counts, e lookup_alu_range_check_trunc_mid_counts, e lookup_bitwise_integral_tag_length_counts, e lookup_bitwise_byte_operations_counts, e lookup_memory_range_check_limb_0_counts, e lookup_memory_range_check_limb_1_counts, e lookup_memory_range_check_limb_2_counts, e lookup_memory_tag_max_bits_counts, e lookup_memory_range_check_write_tagged_value_counts, e lookup_data_copy_offset_plus_size_is_gt_data_size_counts, e lookup_data_copy_check_src_addr_in_range_counts, e lookup_data_copy_check_dst_addr_in_range_counts, e lookup_data_copy_sel_has_reads_counts, e lookup_data_copy_col_read_counts, e lookup_ecc_mem_check_dst_addr_in_range_counts, e lookup_ecc_mem_input_output_ecc_add_counts, e lookup_keccakf1600_theta_xor_01_counts, e lookup_keccakf1600_theta_xor_02_counts, e lookup_keccakf1600_theta_xor_03_counts, e lookup_keccakf1600_theta_xor_row_0_counts, e lookup_keccakf1600_theta_xor_11_counts, e lookup_keccakf1600_theta_xor_12_counts, e lookup_keccakf1600_theta_xor_13_counts, e lookup_keccakf1600_theta_xor_row_1_counts, e lookup_keccakf1600_theta_xor_21_counts, e lookup_keccakf1600_theta_xor_22_counts, e lookup_keccakf1600_theta_xor_23_counts, e lookup_keccakf1600_theta_xor_row_2_counts, e lookup_keccakf1600_theta_xor_31_counts, e lookup_keccakf1600_theta_xor_32_counts, e lookup_keccakf1600_theta_xor_33_counts, e lookup_keccakf1600_theta_xor_row_3_counts, e lookup_keccakf1600_theta_xor_41_counts, e lookup_keccakf1600_theta_xor_42_counts, e lookup_keccakf1600_theta_xor_43_counts, e lookup_keccakf1600_theta_xor_row_4_counts, e lookup_keccakf1600_theta_combined_xor_0_counts, e lookup_keccakf1600_theta_combined_xor_1_counts, e lookup_keccakf1600_theta_combined_xor_2_counts, e lookup_keccakf1600_theta_combined_xor_3_counts, e lookup_keccakf1600_theta_combined_xor_4_counts, e lookup_keccakf1600_state_theta_00_counts, e lookup_keccakf1600_state_theta_01_counts, e lookup_keccakf1600_state_theta_02_counts, e lookup_keccakf1600_state_theta_03_counts, e lookup_keccakf1600_state_theta_04_counts, e lookup_keccakf1600_state_theta_10_counts, e lookup_keccakf1600_state_theta_11_counts, e lookup_keccakf1600_state_theta_12_counts, e lookup_keccakf1600_state_theta_13_counts, e lookup_keccakf1600_state_theta_14_counts, e lookup_keccakf1600_state_theta_20_counts, e lookup_keccakf1600_state_theta_21_counts, e lookup_keccakf1600_state_theta_22_counts, e lookup_keccakf1600_state_theta_23_counts, e lookup_keccakf1600_state_theta_24_counts, e lookup_keccakf1600_state_theta_30_counts, e lookup_keccakf1600_state_theta_31_counts, e lookup_keccakf1600_state_theta_32_counts, e lookup_keccakf1600_state_theta_33_counts, e lookup_keccakf1600_state_theta_34_counts, e lookup_keccakf1600_state_theta_40_counts, e lookup_keccakf1600_state_theta_41_counts, e lookup_keccakf1600_state_theta_42_counts, e lookup_keccakf1600_state_theta_43_counts, e lookup_keccakf1600_state_theta_44_counts, e lookup_keccakf1600_theta_limb_02_range_counts, e lookup_keccakf1600_theta_limb_04_range_counts, e lookup_keccakf1600_theta_limb_10_range_counts, e lookup_keccakf1600_theta_limb_12_range_counts, e lookup_keccakf1600_theta_limb_14_range_counts, e lookup_keccakf1600_theta_limb_21_range_counts, e lookup_keccakf1600_theta_limb_23_range_counts, e lookup_keccakf1600_theta_limb_30_range_counts, e lookup_keccakf1600_theta_limb_32_range_counts, e lookup_keccakf1600_theta_limb_33_range_counts, e lookup_keccakf1600_theta_limb_40_range_counts, e lookup_keccakf1600_theta_limb_41_range_counts, e lookup_keccakf1600_theta_limb_43_range_counts, e lookup_keccakf1600_theta_limb_44_range_counts, e lookup_keccakf1600_theta_limb_01_range_counts, e lookup_keccakf1600_theta_limb_03_range_counts, e lookup_keccakf1600_theta_limb_11_range_counts, e lookup_keccakf1600_theta_limb_13_range_counts, e lookup_keccakf1600_theta_limb_20_range_counts, e lookup_keccakf1600_theta_limb_22_range_counts, e lookup_keccakf1600_theta_limb_24_range_counts, e lookup_keccakf1600_theta_limb_31_range_counts, e lookup_keccakf1600_theta_limb_34_range_counts, e lookup_keccakf1600_theta_limb_42_range_counts, e lookup_keccakf1600_state_pi_and_00_counts, e lookup_keccakf1600_state_pi_and_01_counts, e lookup_keccakf1600_state_pi_and_02_counts, e lookup_keccakf1600_state_pi_and_03_counts, e lookup_keccakf1600_state_pi_and_04_counts, e lookup_keccakf1600_state_pi_and_10_counts, e lookup_keccakf1600_state_pi_and_11_counts, e lookup_keccakf1600_state_pi_and_12_counts, e lookup_keccakf1600_state_pi_and_13_counts, e lookup_keccakf1600_state_pi_and_14_counts, e lookup_keccakf1600_state_pi_and_20_counts, e lookup_keccakf1600_state_pi_and_21_counts, e lookup_keccakf1600_state_pi_and_22_counts, e lookup_keccakf1600_state_pi_and_23_counts, e lookup_keccakf1600_state_pi_and_24_counts, e lookup_keccakf1600_state_pi_and_30_counts, e lookup_keccakf1600_state_pi_and_31_counts, e lookup_keccakf1600_state_pi_and_32_counts, e lookup_keccakf1600_state_pi_and_33_counts, e lookup_keccakf1600_state_pi_and_34_counts, e lookup_keccakf1600_state_pi_and_40_counts, e lookup_keccakf1600_state_pi_and_41_counts, e lookup_keccakf1600_state_pi_and_42_counts, e lookup_keccakf1600_state_pi_and_43_counts, e lookup_keccakf1600_state_pi_and_44_counts, e lookup_keccakf1600_state_chi_00_counts, e lookup_keccakf1600_state_chi_01_counts, e lookup_keccakf1600_state_chi_02_counts, e lookup_keccakf1600_state_chi_03_counts, e lookup_keccakf1600_state_chi_04_counts, e lookup_keccakf1600_state_chi_10_counts, e lookup_keccakf1600_state_chi_11_counts, e lookup_keccakf1600_state_chi_12_counts, e lookup_keccakf1600_state_chi_13_counts, e lookup_keccakf1600_state_chi_14_counts, e lookup_keccakf1600_state_chi_20_counts, e lookup_keccakf1600_state_chi_21_counts, e lookup_keccakf1600_state_chi_22_counts, e lookup_keccakf1600_state_chi_23_counts, e lookup_keccakf1600_state_chi_24_counts, e lookup_keccakf1600_state_chi_30_counts, e lookup_keccakf1600_state_chi_31_counts, e lookup_keccakf1600_state_chi_32_counts, e lookup_keccakf1600_state_chi_33_counts, e lookup_keccakf1600_state_chi_34_counts, e lookup_keccakf1600_state_chi_40_counts, e lookup_keccakf1600_state_chi_41_counts, e lookup_keccakf1600_state_chi_42_counts, e lookup_keccakf1600_state_chi_43_counts, e lookup_keccakf1600_state_chi_44_counts, e lookup_keccakf1600_round_cst_counts, e lookup_keccakf1600_state_iota_00_counts, e lookup_keccakf1600_src_out_of_range_toggle_counts, e lookup_keccakf1600_dst_out_of_range_toggle_counts, e lookup_poseidon2_mem_check_src_addr_in_range_counts, e lookup_poseidon2_mem_check_dst_addr_in_range_counts, e lookup_poseidon2_mem_input_output_poseidon2_perm_counts, e lookup_to_radix_limb_range_counts, e lookup_to_radix_limb_less_than_radix_range_counts, e lookup_to_radix_fetch_safe_limbs_counts, e lookup_to_radix_fetch_p_limb_counts, e lookup_to_radix_limb_p_diff_range_counts, e lookup_scalar_mul_to_radix_counts, e lookup_scalar_mul_double_counts, e lookup_scalar_mul_add_counts, e lookup_sha256_range_comp_w_lhs_counts, e lookup_sha256_range_comp_w_rhs_counts, e lookup_sha256_range_rhs_w_7_counts, e lookup_sha256_range_rhs_w_18_counts, e lookup_sha256_range_rhs_w_3_counts, e lookup_sha256_w_s_0_xor_0_counts, e lookup_sha256_w_s_0_xor_1_counts, e lookup_sha256_range_rhs_w_17_counts, e lookup_sha256_range_rhs_w_19_counts, e lookup_sha256_range_rhs_w_10_counts, e lookup_sha256_w_s_1_xor_0_counts, e lookup_sha256_w_s_1_xor_1_counts, e lookup_sha256_range_rhs_e_6_counts, e lookup_sha256_range_rhs_e_11_counts, e lookup_sha256_range_rhs_e_25_counts, e lookup_sha256_s_1_xor_0_counts, e lookup_sha256_s_1_xor_1_counts, e lookup_sha256_ch_and_0_counts, e lookup_sha256_ch_and_1_counts, e lookup_sha256_ch_xor_counts, e lookup_sha256_round_constant_counts, e lookup_sha256_range_rhs_a_2_counts, e lookup_sha256_range_rhs_a_13_counts, e lookup_sha256_range_rhs_a_22_counts, e lookup_sha256_s_0_xor_0_counts, e lookup_sha256_s_0_xor_1_counts, e lookup_sha256_maj_and_0_counts, e lookup_sha256_maj_and_1_counts, e lookup_sha256_maj_and_2_counts, e lookup_sha256_maj_xor_0_counts, e lookup_sha256_maj_xor_1_counts, e lookup_sha256_range_comp_next_a_lhs_counts, e lookup_sha256_range_comp_next_a_rhs_counts, e lookup_sha256_range_comp_next_e_lhs_counts, e lookup_sha256_range_comp_next_e_rhs_counts, e lookup_sha256_range_comp_a_rhs_counts, e lookup_sha256_range_comp_b_rhs_counts, e lookup_sha256_range_comp_c_rhs_counts, e lookup_sha256_range_comp_d_rhs_counts, e lookup_sha256_range_comp_e_rhs_counts, e lookup_sha256_range_comp_f_rhs_counts, e lookup_sha256_range_comp_g_rhs_counts, e lookup_sha256_range_comp_h_rhs_counts, e lookup_sha256_mem_check_state_addr_in_range_counts, e lookup_sha256_mem_check_input_addr_in_range_counts, e lookup_sha256_mem_check_output_addr_in_range_counts, e lookup_to_radix_mem_check_dst_addr_in_range_counts, e lookup_to_radix_mem_check_radix_lt_2_counts, e lookup_to_radix_mem_check_radix_gt_256_counts, e lookup_to_radix_mem_input_output_to_radix_counts, e lookup_poseidon2_hash_poseidon2_perm_counts, e lookup_address_derivation_salted_initialization_hash_poseidon2_0_counts, e lookup_address_derivation_salted_initialization_hash_poseidon2_1_counts, e lookup_address_derivation_partial_address_poseidon2_counts, e lookup_address_derivation_public_keys_hash_poseidon2_0_counts, e lookup_address_derivation_public_keys_hash_poseidon2_1_counts, e lookup_address_derivation_public_keys_hash_poseidon2_2_counts, e lookup_address_derivation_public_keys_hash_poseidon2_3_counts, e lookup_address_derivation_public_keys_hash_poseidon2_4_counts, e lookup_address_derivation_preaddress_poseidon2_counts, e lookup_address_derivation_preaddress_scalar_mul_counts, e lookup_address_derivation_address_ecadd_counts, e lookup_bc_decomposition_bytes_are_bytes_counts, e lookup_bc_hashing_poseidon2_hash_counts, e lookup_merkle_check_merkle_poseidon2_read_counts, e lookup_merkle_check_merkle_poseidon2_write_counts, e lookup_indexed_tree_check_silo_poseidon2_counts, e lookup_indexed_tree_check_low_leaf_value_validation_counts, e lookup_indexed_tree_check_low_leaf_next_value_validation_counts, e lookup_indexed_tree_check_low_leaf_poseidon2_counts, e lookup_indexed_tree_check_updated_low_leaf_poseidon2_counts, e lookup_indexed_tree_check_low_leaf_merkle_check_counts, e lookup_indexed_tree_check_new_leaf_poseidon2_counts, e lookup_indexed_tree_check_new_leaf_merkle_check_counts, e lookup_indexed_tree_check_write_value_to_public_inputs_counts, e lookup_public_data_squash_leaf_slot_increase_ff_gt_counts, e lookup_public_data_squash_clk_diff_range_lo_counts, e lookup_public_data_squash_clk_diff_range_hi_counts, e lookup_public_data_check_clk_diff_range_lo_counts, e lookup_public_data_check_clk_diff_range_hi_counts, e lookup_public_data_check_silo_poseidon2_counts, e lookup_public_data_check_low_leaf_slot_validation_counts, e lookup_public_data_check_low_leaf_next_slot_validation_counts, e lookup_public_data_check_low_leaf_poseidon2_0_counts, e lookup_public_data_check_low_leaf_poseidon2_1_counts, e lookup_public_data_check_updated_low_leaf_poseidon2_0_counts, e lookup_public_data_check_updated_low_leaf_poseidon2_1_counts, e lookup_public_data_check_low_leaf_merkle_check_counts, e lookup_public_data_check_new_leaf_poseidon2_0_counts, e lookup_public_data_check_new_leaf_poseidon2_1_counts, e lookup_public_data_check_new_leaf_merkle_check_counts, e lookup_public_data_check_write_public_data_to_public_inputs_counts, e lookup_public_data_check_write_writes_length_to_public_inputs_counts, e lookup_update_check_timestamp_from_public_inputs_counts, e lookup_update_check_delayed_public_mutable_slot_poseidon2_counts, e lookup_update_check_update_hash_public_data_read_counts, e lookup_update_check_update_hash_poseidon2_counts, e lookup_update_check_update_hi_metadata_range_counts, e lookup_update_check_update_lo_metadata_range_counts, e lookup_update_check_timestamp_is_lt_timestamp_of_change_counts, e lookup_contract_instance_retrieval_check_protocol_address_range_counts, e lookup_contract_instance_retrieval_read_derived_address_from_public_inputs_counts, e lookup_contract_instance_retrieval_deployment_nullifier_read_counts, e lookup_contract_instance_retrieval_address_derivation_counts, e lookup_contract_instance_retrieval_update_check_counts, e lookup_class_id_derivation_class_id_poseidon2_0_counts, e lookup_class_id_derivation_class_id_poseidon2_1_counts, e lookup_bc_retrieval_contract_instance_retrieval_counts, e lookup_bc_retrieval_class_id_derivation_counts, e lookup_bc_retrieval_is_new_class_check_counts, e lookup_bc_retrieval_retrieved_bytecodes_insertion_counts, e lookup_instr_fetching_pc_abs_diff_positive_counts, e lookup_instr_fetching_instr_abs_diff_positive_counts, e lookup_instr_fetching_tag_value_validation_counts, e lookup_instr_fetching_bytecode_size_from_bc_dec_counts, e lookup_instr_fetching_bytes_from_bc_dec_counts, e lookup_instr_fetching_wire_instruction_info_counts, e lookup_emit_public_log_check_memory_out_of_bounds_counts, e lookup_emit_public_log_check_log_fields_count_counts, e lookup_emit_public_log_write_data_to_public_inputs_counts, e lookup_get_contract_instance_precomputed_info_counts, e lookup_get_contract_instance_contract_instance_retrieval_counts, e lookup_l1_to_l2_message_tree_check_merkle_check_counts, e lookup_internal_call_unwind_call_stack_counts, e lookup_context_ctx_stack_rollback_counts, e lookup_context_ctx_stack_return_counts, e lookup_addressing_relative_overflow_result_0_counts, e lookup_addressing_relative_overflow_result_1_counts, e lookup_addressing_relative_overflow_result_2_counts, e lookup_addressing_relative_overflow_result_3_counts, e lookup_addressing_relative_overflow_result_4_counts, e lookup_addressing_relative_overflow_result_5_counts, e lookup_addressing_relative_overflow_result_6_counts, e lookup_gas_addressing_gas_read_counts, e lookup_gas_is_out_of_gas_l2_counts, e lookup_gas_is_out_of_gas_da_counts, e lookup_note_hash_tree_check_silo_poseidon2_counts, e lookup_note_hash_tree_check_read_first_nullifier_counts, e lookup_note_hash_tree_check_nonce_computation_poseidon2_counts, e lookup_note_hash_tree_check_unique_note_hash_poseidon2_counts, e lookup_note_hash_tree_check_merkle_check_counts, e lookup_note_hash_tree_check_write_note_hash_to_public_inputs_counts, e lookup_emit_notehash_notehash_tree_write_counts, e lookup_emit_nullifier_write_nullifier_counts, e lookup_external_call_is_l2_gas_left_gt_allocated_counts, e lookup_external_call_is_da_gas_left_gt_allocated_counts, e lookup_get_env_var_precomputed_info_counts, e lookup_get_env_var_read_from_public_inputs_col0_counts, e lookup_get_env_var_read_from_public_inputs_col1_counts, e lookup_l1_to_l2_message_exists_l1_to_l2_msg_leaf_index_in_range_counts, e lookup_l1_to_l2_message_exists_l1_to_l2_msg_read_counts, e lookup_notehash_exists_note_hash_leaf_index_in_range_counts, e lookup_notehash_exists_note_hash_read_counts, e lookup_nullifier_exists_nullifier_exists_check_counts, e lookup_send_l2_to_l1_msg_recipient_check_counts, e lookup_send_l2_to_l1_msg_write_l2_to_l1_msg_counts, e lookup_sload_storage_read_counts, e lookup_sstore_record_written_storage_slot_counts, e lookup_execution_bytecode_retrieval_result_counts, e lookup_execution_instruction_fetching_result_counts, e lookup_execution_instruction_fetching_body_counts, e lookup_execution_exec_spec_read_counts, e lookup_execution_dyn_l2_factor_bitwise_counts, e lookup_execution_check_radix_gt_256_counts, e lookup_execution_get_p_limbs_counts, e lookup_execution_get_max_limbs_counts, e lookup_execution_check_written_storage_slot_counts, e lookup_execution_dispatch_to_alu_counts, e lookup_execution_dispatch_to_bitwise_counts, e lookup_execution_dispatch_to_cast_counts, e lookup_execution_dispatch_to_set_counts, e lookup_calldata_hashing_get_calldata_field_0_counts, e lookup_calldata_hashing_get_calldata_field_1_counts, e lookup_calldata_hashing_get_calldata_field_2_counts, e lookup_calldata_hashing_poseidon2_hash_counts, e lookup_tx_context_public_inputs_note_hash_tree_counts, e lookup_tx_context_public_inputs_nullifier_tree_counts, e lookup_tx_context_public_inputs_public_data_tree_counts, e lookup_tx_context_public_inputs_l1_l2_tree_counts, e lookup_tx_context_public_inputs_gas_used_counts, e lookup_tx_context_public_inputs_read_gas_limit_counts, e lookup_tx_context_public_inputs_read_reverted_counts, e lookup_tx_context_restore_state_on_revert_counts, e lookup_tx_context_public_inputs_write_note_hash_count_counts, e lookup_tx_context_public_inputs_write_nullifier_count_counts, e lookup_tx_context_public_inputs_write_l2_to_l1_message_count_counts, e lookup_tx_context_public_inputs_write_public_log_count_counts, e lookup_tx_read_phase_spec_counts, e lookup_tx_read_phase_length_counts, e lookup_tx_read_public_call_request_phase_counts, e lookup_tx_read_tree_insert_value_counts, e lookup_tx_note_hash_append_counts, e lookup_tx_nullifier_append_counts, e lookup_tx_read_l2_l1_msg_counts, e lookup_tx_write_l2_l1_msg_counts, e lookup_tx_read_effective_fee_public_inputs_counts, e lookup_tx_read_fee_payer_public_inputs_counts, e lookup_tx_balance_slot_poseidon2_counts, e lookup_tx_balance_read_counts, e lookup_tx_balance_validation_counts, e lookup_tx_write_fee_public_inputs_counts, e bc_decomposition_bytes, e bc_decomposition_bytes_pc_plus_1, e bc_decomposition_bytes_pc_plus_10, e bc_decomposition_bytes_pc_plus_11, e bc_decomposition_bytes_pc_plus_12, e bc_decomposition_bytes_pc_plus_13, e bc_decomposition_bytes_pc_plus_14, e bc_decomposition_bytes_pc_plus_15, e bc_decomposition_bytes_pc_plus_16, e bc_decomposition_bytes_pc_plus_17, e bc_decomposition_bytes_pc_plus_18, e bc_decomposition_bytes_pc_plus_19, e bc_decomposition_bytes_pc_plus_2, e bc_decomposition_bytes_pc_plus_20, e bc_decomposition_bytes_pc_plus_21, e bc_decomposition_bytes_pc_plus_22, e bc_decomposition_bytes_pc_plus_23, e bc_decomposition_bytes_pc_plus_24, e bc_decomposition_bytes_pc_plus_25, e bc_decomposition_bytes_pc_plus_26, e bc_decomposition_bytes_pc_plus_27, e bc_decomposition_bytes_pc_plus_28, e bc_decomposition_bytes_pc_plus_29, e bc_decomposition_bytes_pc_plus_3, e bc_decomposition_bytes_pc_plus_30, e bc_decomposition_bytes_pc_plus_31, e bc_decomposition_bytes_pc_plus_32, e bc_decomposition_bytes_pc_plus_33, e bc_decomposition_bytes_pc_plus_34, e bc_decomposition_bytes_pc_plus_35, e bc_decomposition_bytes_pc_plus_4, e bc_decomposition_bytes_pc_plus_5, e bc_decomposition_bytes_pc_plus_6, e bc_decomposition_bytes_pc_plus_7, e bc_decomposition_bytes_pc_plus_8, e bc_decomposition_bytes_pc_plus_9, e bc_decomposition_bytes_remaining, e bc_decomposition_id, e bc_decomposition_next_packed_pc, e bc_decomposition_pc, e bc_decomposition_sel, e bc_decomposition_sel_windows_gt_remaining, e bc_decomposition_start, e bc_hashing_bytecode_id, e bc_hashing_padding, e bc_hashing_pc_index_1, e bc_hashing_rounds_rem, e bc_hashing_sel, e bc_hashing_sel_not_start, e bc_hashing_start, e bitwise_acc_ia, e bitwise_acc_ib, e bitwise_acc_ic, e bitwise_ctr, e bitwise_op_id, e bitwise_sel, e bitwise_start, e calldata_context_id, e calldata_hashing_calldata_size, e calldata_hashing_context_id, e calldata_hashing_index_0_, e calldata_hashing_output_hash, e calldata_hashing_rounds_rem, e calldata_hashing_sel, e calldata_hashing_start, e calldata_index, e calldata_sel, e data_copy_clk, e data_copy_copy_size, e data_copy_dst_addr, e data_copy_dst_context_id, e data_copy_padding, e data_copy_read_addr, e data_copy_reads_left, e data_copy_sel, e data_copy_sel_cd_copy, e data_copy_src_context_id, e data_copy_start, e emit_public_log_contract_address, e emit_public_log_correct_tag, e emit_public_log_error_out_of_bounds, e emit_public_log_error_tag_mismatch, e emit_public_log_execution_clk, e emit_public_log_is_write_contract_address, e emit_public_log_is_write_memory_value, e emit_public_log_log_address, e emit_public_log_public_inputs_index, e emit_public_log_remaining_rows, e emit_public_log_seen_wrong_tag, e emit_public_log_sel, e emit_public_log_sel_write_to_public_inputs, e emit_public_log_space_id, e emit_public_log_start, e execution_bytecode_id, e execution_clk, e execution_context_id, e execution_contract_address, e execution_da_gas_limit, e execution_discard, e execution_dying_context_id, e execution_enqueued_call_start, e execution_internal_call_id, e execution_internal_call_return_id, e execution_is_static, e execution_l1_l2_tree_root, e execution_l2_gas_limit, e execution_last_child_id, e execution_last_child_returndata_addr, e execution_last_child_returndata_size, e execution_last_child_success, e execution_msg_sender, e execution_next_context_id, e execution_next_internal_call_id, e execution_parent_calldata_addr, e execution_parent_calldata_size, e execution_parent_da_gas_limit, e execution_parent_da_gas_used, e execution_parent_id, e execution_parent_l2_gas_limit, e execution_parent_l2_gas_used, e execution_pc, e execution_prev_da_gas_used, e execution_prev_l2_gas_used, e execution_prev_note_hash_tree_root, e execution_prev_note_hash_tree_size, e execution_prev_nullifier_tree_root, e execution_prev_nullifier_tree_size, e execution_prev_num_l2_to_l1_messages, e execution_prev_num_note_hashes_emitted, e execution_prev_num_nullifiers_emitted, e execution_prev_num_public_log_fields, e execution_prev_public_data_tree_root, e execution_prev_public_data_tree_size, e execution_prev_retrieved_bytecodes_tree_root, e execution_prev_retrieved_bytecodes_tree_size, e execution_prev_written_public_data_slots_tree_root, e execution_prev_written_public_data_slots_tree_size, e execution_sel, e execution_sel_first_row_in_context, e execution_transaction_fee, e ff_gt_a_hi, e ff_gt_a_lo, e ff_gt_b_hi, e ff_gt_b_lo, e ff_gt_cmp_rng_ctr, e ff_gt_p_sub_a_hi, e ff_gt_p_sub_a_lo, e ff_gt_p_sub_b_hi, e ff_gt_p_sub_b_lo, e ff_gt_sel, e ff_gt_sel_dec, e ff_gt_sel_gt, e keccak_memory_addr, e keccak_memory_clk, e keccak_memory_ctr, e keccak_memory_rw, e keccak_memory_sel, e keccak_memory_space_id, e keccak_memory_start_read, e keccak_memory_start_write, e keccak_memory_tag_error, e keccak_memory_val_0_, e keccak_memory_val_10_, e keccak_memory_val_11_, e keccak_memory_val_12_, e keccak_memory_val_13_, e keccak_memory_val_14_, e keccak_memory_val_15_, e keccak_memory_val_16_, e keccak_memory_val_17_, e keccak_memory_val_18_, e keccak_memory_val_19_, e keccak_memory_val_1_, e keccak_memory_val_20_, e keccak_memory_val_21_, e keccak_memory_val_22_, e keccak_memory_val_23_, e keccak_memory_val_2_, e keccak_memory_val_3_, e keccak_memory_val_4_, e keccak_memory_val_5_, e keccak_memory_val_6_, e keccak_memory_val_7_, e keccak_memory_val_8_, e keccak_memory_val_9_, e keccakf1600_clk, e keccakf1600_dst_addr, e keccakf1600_round, e keccakf1600_sel, e keccakf1600_sel_no_error, e keccakf1600_space_id, e keccakf1600_start, e keccakf1600_state_in_00, e keccakf1600_state_in_01, e keccakf1600_state_in_02, e keccakf1600_state_in_03, e keccakf1600_state_in_04, e keccakf1600_state_in_10, e keccakf1600_state_in_11, e keccakf1600_state_in_12, e keccakf1600_state_in_13, e keccakf1600_state_in_14, e keccakf1600_state_in_20, e keccakf1600_state_in_21, e keccakf1600_state_in_22, e keccakf1600_state_in_23, e keccakf1600_state_in_24, e keccakf1600_state_in_30, e keccakf1600_state_in_31, e keccakf1600_state_in_32, e keccakf1600_state_in_33, e keccakf1600_state_in_34, e keccakf1600_state_in_40, e keccakf1600_state_in_41, e keccakf1600_state_in_42, e keccakf1600_state_in_43, e keccakf1600_state_in_44, e memory_address, e memory_clk, e memory_rw, e memory_sel, e memory_space_id, e memory_tag, e memory_value, e merkle_check_index, e merkle_check_merkle_hash_separator, e merkle_check_path_len, e merkle_check_read_node, e merkle_check_read_root, e merkle_check_sel, e merkle_check_start, e merkle_check_write, e merkle_check_write_node, e merkle_check_write_root, e poseidon2_hash_a_0, e poseidon2_hash_a_1, e poseidon2_hash_a_2, e poseidon2_hash_a_3, e poseidon2_hash_input_0, e poseidon2_hash_input_1, e poseidon2_hash_input_2, e poseidon2_hash_num_perm_rounds_rem, e poseidon2_hash_output, e poseidon2_hash_sel, e poseidon2_hash_start, e public_data_check_clk, e public_data_check_sel, e public_data_check_write_idx, e public_data_squash_clk, e public_data_squash_final_value, e public_data_squash_leaf_slot, e public_data_squash_sel, e public_data_squash_write_to_public_inputs, e scalar_mul_bit_idx, e scalar_mul_point_inf, e scalar_mul_point_x, e scalar_mul_point_y, e scalar_mul_res_inf, e scalar_mul_res_x, e scalar_mul_res_y, e scalar_mul_scalar, e scalar_mul_sel, e scalar_mul_start, e scalar_mul_temp_inf, e scalar_mul_temp_x, e scalar_mul_temp_y, e sha256_a, e sha256_b, e sha256_c, e sha256_d, e sha256_e, e sha256_execution_clk, e sha256_f, e sha256_g, e sha256_h, e sha256_helper_w0, e sha256_helper_w1, e sha256_helper_w10, e sha256_helper_w11, e sha256_helper_w12, e sha256_helper_w13, e sha256_helper_w14, e sha256_helper_w15, e sha256_helper_w2, e sha256_helper_w3, e sha256_helper_w4, e sha256_helper_w5, e sha256_helper_w6, e sha256_helper_w7, e sha256_helper_w8, e sha256_helper_w9, e sha256_init_a, e sha256_init_b, e sha256_init_c, e sha256_init_d, e sha256_init_e, e sha256_init_f, e sha256_init_g, e sha256_init_h, e sha256_input_addr, e sha256_input_rounds_rem, e sha256_output_addr, e sha256_rounds_remaining, e sha256_sel, e sha256_sel_invalid_input_tag_err, e sha256_space_id, e sha256_start, e to_radix_acc, e to_radix_acc_under_p, e to_radix_limb, e to_radix_limb_eq_p, e to_radix_limb_index, e to_radix_limb_lt_p, e to_radix_mem_dst_addr, e to_radix_mem_execution_clk, e to_radix_mem_is_output_bits, e to_radix_mem_num_limbs, e to_radix_mem_radix, e to_radix_mem_sel, e to_radix_mem_sel_should_decompose, e to_radix_mem_sel_should_write_mem, e to_radix_mem_space_id, e to_radix_mem_start, e to_radix_mem_value_to_decompose, e to_radix_not_padding_limb, e to_radix_power, e to_radix_radix, e to_radix_safe_limbs, e to_radix_sel, e to_radix_start, e to_radix_value, e tx_da_gas_limit, e tx_discard, e tx_fee, e tx_is_revertible, e tx_is_teardown, e tx_l1_l2_tree_root, e tx_l1_l2_tree_size, e tx_l2_gas_limit, e tx_next_context_id, e tx_phase_value, e tx_prev_da_gas_used, e tx_prev_l2_gas_used, e tx_prev_note_hash_tree_root, e tx_prev_note_hash_tree_size, e tx_prev_nullifier_tree_root, e tx_prev_nullifier_tree_size, e tx_prev_num_l2_to_l1_messages, e tx_prev_num_note_hashes_emitted, e tx_prev_num_nullifiers_emitted, e tx_prev_num_public_log_fields, e tx_prev_public_data_tree_root, e tx_prev_public_data_tree_size, e tx_prev_retrieved_bytecodes_tree_root, e tx_prev_retrieved_bytecodes_tree_size, e tx_prev_written_public_data_slots_tree_root, e tx_prev_written_public_data_slots_tree_size, e tx_read_pi_offset, e tx_remaining_phase_counter, e tx_reverted, e tx_sel, e tx_start_phase, e tx_start_tx, e tx_tx_reverted #define AVM2_DERIVED_WITNESS_ENTITIES_E(e) e perm_data_copy_mem_write_inv, e perm_data_copy_mem_read_inv, e perm_ecc_mem_write_mem_0_inv, e perm_ecc_mem_write_mem_1_inv, e perm_ecc_mem_write_mem_2_inv, e perm_keccak_memory_slice_to_mem_inv, e perm_keccakf1600_read_to_slice_inv, e perm_keccakf1600_write_to_slice_inv, e perm_poseidon2_mem_pos_read_mem_0_inv, e perm_poseidon2_mem_pos_read_mem_1_inv, e perm_poseidon2_mem_pos_read_mem_2_inv, e perm_poseidon2_mem_pos_read_mem_3_inv, e perm_poseidon2_mem_pos_write_mem_0_inv, e perm_poseidon2_mem_pos_write_mem_1_inv, e perm_poseidon2_mem_pos_write_mem_2_inv, e perm_poseidon2_mem_pos_write_mem_3_inv, e perm_sha256_mem_mem_op_0_inv, e perm_sha256_mem_mem_op_1_inv, e perm_sha256_mem_mem_op_2_inv, e perm_sha256_mem_mem_op_3_inv, e perm_sha256_mem_mem_op_4_inv, e perm_sha256_mem_mem_op_5_inv, e perm_sha256_mem_mem_op_6_inv, e perm_sha256_mem_mem_op_7_inv, e perm_sha256_mem_mem_input_read_inv, e perm_to_radix_mem_write_mem_inv, e perm_bc_hashing_bytecode_length_bytes_inv, e perm_bc_hashing_get_packed_field_0_inv, e perm_bc_hashing_get_packed_field_1_inv, e perm_bc_hashing_get_packed_field_2_inv, e perm_public_data_check_squashing_inv, e perm_emit_public_log_read_mem_inv, e perm_get_contract_instance_mem_write_contract_instance_exists_inv, e perm_get_contract_instance_mem_write_contract_instance_member_inv, e perm_internal_call_push_call_stack_inv, e perm_context_ctx_stack_call_inv, e perm_addressing_base_address_from_memory_inv, e perm_addressing_indirect_from_memory_0_inv, e perm_addressing_indirect_from_memory_1_inv, e perm_addressing_indirect_from_memory_2_inv, e perm_addressing_indirect_from_memory_3_inv, e perm_addressing_indirect_from_memory_4_inv, e perm_addressing_indirect_from_memory_5_inv, e perm_addressing_indirect_from_memory_6_inv, e perm_registers_mem_op_0_inv, e perm_registers_mem_op_1_inv, e perm_registers_mem_op_2_inv, e perm_registers_mem_op_3_inv, e perm_registers_mem_op_4_inv, e perm_registers_mem_op_5_inv, e perm_sstore_storage_write_inv, e perm_execution_dispatch_to_cd_copy_inv, e perm_execution_dispatch_to_rd_copy_inv, e perm_execution_dispatch_to_get_contract_instance_inv, e perm_execution_dispatch_to_emit_public_log_inv, e perm_execution_dispatch_to_poseidon2_perm_inv, e perm_execution_dispatch_to_sha256_compression_inv, e perm_execution_dispatch_to_keccakf1600_inv, e perm_execution_dispatch_to_ecc_add_inv, e perm_execution_dispatch_to_to_radix_inv, e perm_calldata_hashing_check_final_size_inv, e perm_tx_read_calldata_hash_inv, e perm_tx_dispatch_exec_start_inv, e perm_tx_dispatch_exec_end_inv, e perm_tx_balance_update_inv, e lookup_range_check_dyn_rng_chk_pow_2_inv, e lookup_range_check_dyn_diff_is_u16_inv, e lookup_range_check_r0_is_u16_inv, e lookup_range_check_r1_is_u16_inv, e lookup_range_check_r2_is_u16_inv, e lookup_range_check_r3_is_u16_inv, e lookup_range_check_r4_is_u16_inv, e lookup_range_check_r5_is_u16_inv, e lookup_range_check_r6_is_u16_inv, e lookup_range_check_r7_is_u16_inv, e lookup_ff_gt_a_lo_range_inv, e lookup_ff_gt_a_hi_range_inv, e lookup_gt_gt_range_inv, e lookup_alu_tag_max_bits_value_inv, e lookup_alu_range_check_decomposition_a_lo_inv, e lookup_alu_range_check_decomposition_a_hi_inv, e lookup_alu_range_check_decomposition_b_lo_inv, e lookup_alu_range_check_decomposition_b_hi_inv, e lookup_alu_range_check_mul_c_hi_inv, e lookup_alu_range_check_div_remainder_inv, e lookup_alu_ff_gt_inv, e lookup_alu_int_gt_inv, e lookup_alu_shifts_two_pow_inv, e lookup_alu_large_trunc_canonical_dec_inv, e lookup_alu_range_check_trunc_mid_inv, e lookup_bitwise_integral_tag_length_inv, e lookup_bitwise_byte_operations_inv, e lookup_memory_range_check_limb_0_inv, e lookup_memory_range_check_limb_1_inv, e lookup_memory_range_check_limb_2_inv, e lookup_memory_tag_max_bits_inv, e lookup_memory_range_check_write_tagged_value_inv, e lookup_data_copy_offset_plus_size_is_gt_data_size_inv, e lookup_data_copy_check_src_addr_in_range_inv, e lookup_data_copy_check_dst_addr_in_range_inv, e lookup_data_copy_sel_has_reads_inv, e lookup_data_copy_col_read_inv, e lookup_ecc_mem_check_dst_addr_in_range_inv, e lookup_ecc_mem_input_output_ecc_add_inv, e lookup_keccakf1600_theta_xor_01_inv, e lookup_keccakf1600_theta_xor_02_inv, e lookup_keccakf1600_theta_xor_03_inv, e lookup_keccakf1600_theta_xor_row_0_inv, e lookup_keccakf1600_theta_xor_11_inv, e lookup_keccakf1600_theta_xor_12_inv, e lookup_keccakf1600_theta_xor_13_inv, e lookup_keccakf1600_theta_xor_row_1_inv, e lookup_keccakf1600_theta_xor_21_inv, e lookup_keccakf1600_theta_xor_22_inv, e lookup_keccakf1600_theta_xor_23_inv, e lookup_keccakf1600_theta_xor_row_2_inv, e lookup_keccakf1600_theta_xor_31_inv, e lookup_keccakf1600_theta_xor_32_inv, e lookup_keccakf1600_theta_xor_33_inv, e lookup_keccakf1600_theta_xor_row_3_inv, e lookup_keccakf1600_theta_xor_41_inv, e lookup_keccakf1600_theta_xor_42_inv, e lookup_keccakf1600_theta_xor_43_inv, e lookup_keccakf1600_theta_xor_row_4_inv, e lookup_keccakf1600_theta_combined_xor_0_inv, e lookup_keccakf1600_theta_combined_xor_1_inv, e lookup_keccakf1600_theta_combined_xor_2_inv, e lookup_keccakf1600_theta_combined_xor_3_inv, e lookup_keccakf1600_theta_combined_xor_4_inv, e lookup_keccakf1600_state_theta_00_inv, e lookup_keccakf1600_state_theta_01_inv, e lookup_keccakf1600_state_theta_02_inv, e lookup_keccakf1600_state_theta_03_inv, e lookup_keccakf1600_state_theta_04_inv, e lookup_keccakf1600_state_theta_10_inv, e lookup_keccakf1600_state_theta_11_inv, e lookup_keccakf1600_state_theta_12_inv, e lookup_keccakf1600_state_theta_13_inv, e lookup_keccakf1600_state_theta_14_inv, e lookup_keccakf1600_state_theta_20_inv, e lookup_keccakf1600_state_theta_21_inv, e lookup_keccakf1600_state_theta_22_inv, e lookup_keccakf1600_state_theta_23_inv, e lookup_keccakf1600_state_theta_24_inv, e lookup_keccakf1600_state_theta_30_inv, e lookup_keccakf1600_state_theta_31_inv, e lookup_keccakf1600_state_theta_32_inv, e lookup_keccakf1600_state_theta_33_inv, e lookup_keccakf1600_state_theta_34_inv, e lookup_keccakf1600_state_theta_40_inv, e lookup_keccakf1600_state_theta_41_inv, e lookup_keccakf1600_state_theta_42_inv, e lookup_keccakf1600_state_theta_43_inv, e lookup_keccakf1600_state_theta_44_inv, e lookup_keccakf1600_theta_limb_02_range_inv, e lookup_keccakf1600_theta_limb_04_range_inv, e lookup_keccakf1600_theta_limb_10_range_inv, e lookup_keccakf1600_theta_limb_12_range_inv, e lookup_keccakf1600_theta_limb_14_range_inv, e lookup_keccakf1600_theta_limb_21_range_inv, e lookup_keccakf1600_theta_limb_23_range_inv, e lookup_keccakf1600_theta_limb_30_range_inv, e lookup_keccakf1600_theta_limb_32_range_inv, e lookup_keccakf1600_theta_limb_33_range_inv, e lookup_keccakf1600_theta_limb_40_range_inv, e lookup_keccakf1600_theta_limb_41_range_inv, e lookup_keccakf1600_theta_limb_43_range_inv, e lookup_keccakf1600_theta_limb_44_range_inv, e lookup_keccakf1600_theta_limb_01_range_inv, e lookup_keccakf1600_theta_limb_03_range_inv, e lookup_keccakf1600_theta_limb_11_range_inv, e lookup_keccakf1600_theta_limb_13_range_inv, e lookup_keccakf1600_theta_limb_20_range_inv, e lookup_keccakf1600_theta_limb_22_range_inv, e lookup_keccakf1600_theta_limb_24_range_inv, e lookup_keccakf1600_theta_limb_31_range_inv, e lookup_keccakf1600_theta_limb_34_range_inv, e lookup_keccakf1600_theta_limb_42_range_inv, e lookup_keccakf1600_state_pi_and_00_inv, e lookup_keccakf1600_state_pi_and_01_inv, e lookup_keccakf1600_state_pi_and_02_inv, e lookup_keccakf1600_state_pi_and_03_inv, e lookup_keccakf1600_state_pi_and_04_inv, e lookup_keccakf1600_state_pi_and_10_inv, e lookup_keccakf1600_state_pi_and_11_inv, e lookup_keccakf1600_state_pi_and_12_inv, e lookup_keccakf1600_state_pi_and_13_inv, e lookup_keccakf1600_state_pi_and_14_inv, e lookup_keccakf1600_state_pi_and_20_inv, e lookup_keccakf1600_state_pi_and_21_inv, e lookup_keccakf1600_state_pi_and_22_inv, e lookup_keccakf1600_state_pi_and_23_inv, e lookup_keccakf1600_state_pi_and_24_inv, e lookup_keccakf1600_state_pi_and_30_inv, e lookup_keccakf1600_state_pi_and_31_inv, e lookup_keccakf1600_state_pi_and_32_inv, e lookup_keccakf1600_state_pi_and_33_inv, e lookup_keccakf1600_state_pi_and_34_inv, e lookup_keccakf1600_state_pi_and_40_inv, e lookup_keccakf1600_state_pi_and_41_inv, e lookup_keccakf1600_state_pi_and_42_inv, e lookup_keccakf1600_state_pi_and_43_inv, e lookup_keccakf1600_state_pi_and_44_inv, e lookup_keccakf1600_state_chi_00_inv, e lookup_keccakf1600_state_chi_01_inv, e lookup_keccakf1600_state_chi_02_inv, e lookup_keccakf1600_state_chi_03_inv, e lookup_keccakf1600_state_chi_04_inv, e lookup_keccakf1600_state_chi_10_inv, e lookup_keccakf1600_state_chi_11_inv, e lookup_keccakf1600_state_chi_12_inv, e lookup_keccakf1600_state_chi_13_inv, e lookup_keccakf1600_state_chi_14_inv, e lookup_keccakf1600_state_chi_20_inv, e lookup_keccakf1600_state_chi_21_inv, e lookup_keccakf1600_state_chi_22_inv, e lookup_keccakf1600_state_chi_23_inv, e lookup_keccakf1600_state_chi_24_inv, e lookup_keccakf1600_state_chi_30_inv, e lookup_keccakf1600_state_chi_31_inv, e lookup_keccakf1600_state_chi_32_inv, e lookup_keccakf1600_state_chi_33_inv, e lookup_keccakf1600_state_chi_34_inv, e lookup_keccakf1600_state_chi_40_inv, e lookup_keccakf1600_state_chi_41_inv, e lookup_keccakf1600_state_chi_42_inv, e lookup_keccakf1600_state_chi_43_inv, e lookup_keccakf1600_state_chi_44_inv, e lookup_keccakf1600_round_cst_inv, e lookup_keccakf1600_state_iota_00_inv, e lookup_keccakf1600_src_out_of_range_toggle_inv, e lookup_keccakf1600_dst_out_of_range_toggle_inv, e lookup_poseidon2_mem_check_src_addr_in_range_inv, e lookup_poseidon2_mem_check_dst_addr_in_range_inv, e lookup_poseidon2_mem_input_output_poseidon2_perm_inv, e lookup_to_radix_limb_range_inv, e lookup_to_radix_limb_less_than_radix_range_inv, e lookup_to_radix_fetch_safe_limbs_inv, e lookup_to_radix_fetch_p_limb_inv, e lookup_to_radix_limb_p_diff_range_inv, e lookup_scalar_mul_to_radix_inv, e lookup_scalar_mul_double_inv, e lookup_scalar_mul_add_inv, e lookup_sha256_range_comp_w_lhs_inv, e lookup_sha256_range_comp_w_rhs_inv, e lookup_sha256_range_rhs_w_7_inv, e lookup_sha256_range_rhs_w_18_inv, e lookup_sha256_range_rhs_w_3_inv, e lookup_sha256_w_s_0_xor_0_inv, e lookup_sha256_w_s_0_xor_1_inv, e lookup_sha256_range_rhs_w_17_inv, e lookup_sha256_range_rhs_w_19_inv, e lookup_sha256_range_rhs_w_10_inv, e lookup_sha256_w_s_1_xor_0_inv, e lookup_sha256_w_s_1_xor_1_inv, e lookup_sha256_range_rhs_e_6_inv, e lookup_sha256_range_rhs_e_11_inv, e lookup_sha256_range_rhs_e_25_inv, e lookup_sha256_s_1_xor_0_inv, e lookup_sha256_s_1_xor_1_inv, e lookup_sha256_ch_and_0_inv, e lookup_sha256_ch_and_1_inv, e lookup_sha256_ch_xor_inv, e lookup_sha256_round_constant_inv, e lookup_sha256_range_rhs_a_2_inv, e lookup_sha256_range_rhs_a_13_inv, e lookup_sha256_range_rhs_a_22_inv, e lookup_sha256_s_0_xor_0_inv, e lookup_sha256_s_0_xor_1_inv, e lookup_sha256_maj_and_0_inv, e lookup_sha256_maj_and_1_inv, e lookup_sha256_maj_and_2_inv, e lookup_sha256_maj_xor_0_inv, e lookup_sha256_maj_xor_1_inv, e lookup_sha256_range_comp_next_a_lhs_inv, e lookup_sha256_range_comp_next_a_rhs_inv, e lookup_sha256_range_comp_next_e_lhs_inv, e lookup_sha256_range_comp_next_e_rhs_inv, e lookup_sha256_range_comp_a_rhs_inv, e lookup_sha256_range_comp_b_rhs_inv, e lookup_sha256_range_comp_c_rhs_inv, e lookup_sha256_range_comp_d_rhs_inv, e lookup_sha256_range_comp_e_rhs_inv, e lookup_sha256_range_comp_f_rhs_inv, e lookup_sha256_range_comp_g_rhs_inv, e lookup_sha256_range_comp_h_rhs_inv, e lookup_sha256_mem_check_state_addr_in_range_inv, e lookup_sha256_mem_check_input_addr_in_range_inv, e lookup_sha256_mem_check_output_addr_in_range_inv, e lookup_to_radix_mem_check_dst_addr_in_range_inv, e lookup_to_radix_mem_check_radix_lt_2_inv, e lookup_to_radix_mem_check_radix_gt_256_inv, e lookup_to_radix_mem_input_output_to_radix_inv, e lookup_poseidon2_hash_poseidon2_perm_inv, e lookup_address_derivation_salted_initialization_hash_poseidon2_0_inv, e lookup_address_derivation_salted_initialization_hash_poseidon2_1_inv, e lookup_address_derivation_partial_address_poseidon2_inv, e lookup_address_derivation_public_keys_hash_poseidon2_0_inv, e lookup_address_derivation_public_keys_hash_poseidon2_1_inv, e lookup_address_derivation_public_keys_hash_poseidon2_2_inv, e lookup_address_derivation_public_keys_hash_poseidon2_3_inv, e lookup_address_derivation_public_keys_hash_poseidon2_4_inv, e lookup_address_derivation_preaddress_poseidon2_inv, e lookup_address_derivation_preaddress_scalar_mul_inv, e lookup_address_derivation_address_ecadd_inv, e lookup_bc_decomposition_bytes_are_bytes_inv, e lookup_bc_hashing_poseidon2_hash_inv, e lookup_merkle_check_merkle_poseidon2_read_inv, e lookup_merkle_check_merkle_poseidon2_write_inv, e lookup_indexed_tree_check_silo_poseidon2_inv, e lookup_indexed_tree_check_low_leaf_value_validation_inv, e lookup_indexed_tree_check_low_leaf_next_value_validation_inv, e lookup_indexed_tree_check_low_leaf_poseidon2_inv, e lookup_indexed_tree_check_updated_low_leaf_poseidon2_inv, e lookup_indexed_tree_check_low_leaf_merkle_check_inv, e lookup_indexed_tree_check_new_leaf_poseidon2_inv, e lookup_indexed_tree_check_new_leaf_merkle_check_inv, e lookup_indexed_tree_check_write_value_to_public_inputs_inv, e lookup_public_data_squash_leaf_slot_increase_ff_gt_inv, e lookup_public_data_squash_clk_diff_range_lo_inv, e lookup_public_data_squash_clk_diff_range_hi_inv, e lookup_public_data_check_clk_diff_range_lo_inv, e lookup_public_data_check_clk_diff_range_hi_inv, e lookup_public_data_check_silo_poseidon2_inv, e lookup_public_data_check_low_leaf_slot_validation_inv, e lookup_public_data_check_low_leaf_next_slot_validation_inv, e lookup_public_data_check_low_leaf_poseidon2_0_inv, e lookup_public_data_check_low_leaf_poseidon2_1_inv, e lookup_public_data_check_updated_low_leaf_poseidon2_0_inv, e lookup_public_data_check_updated_low_leaf_poseidon2_1_inv, e lookup_public_data_check_low_leaf_merkle_check_inv, e lookup_public_data_check_new_leaf_poseidon2_0_inv, e lookup_public_data_check_new_leaf_poseidon2_1_inv, e lookup_public_data_check_new_leaf_merkle_check_inv, e lookup_public_data_check_write_public_data_to_public_inputs_inv, e lookup_public_data_check_write_writes_length_to_public_inputs_inv, e lookup_update_check_timestamp_from_public_inputs_inv, e lookup_update_check_delayed_public_mutable_slot_poseidon2_inv, e lookup_update_check_update_hash_public_data_read_inv, e lookup_update_check_update_hash_poseidon2_inv, e lookup_update_check_update_hi_metadata_range_inv, e lookup_update_check_update_lo_metadata_range_inv, e lookup_update_check_timestamp_is_lt_timestamp_of_change_inv, e lookup_contract_instance_retrieval_check_protocol_address_range_inv, e lookup_contract_instance_retrieval_read_derived_address_from_public_inputs_inv, e lookup_contract_instance_retrieval_deployment_nullifier_read_inv, e lookup_contract_instance_retrieval_address_derivation_inv, e lookup_contract_instance_retrieval_update_check_inv, e lookup_class_id_derivation_class_id_poseidon2_0_inv, e lookup_class_id_derivation_class_id_poseidon2_1_inv, e lookup_bc_retrieval_contract_instance_retrieval_inv, e lookup_bc_retrieval_class_id_derivation_inv, e lookup_bc_retrieval_is_new_class_check_inv, e lookup_bc_retrieval_retrieved_bytecodes_insertion_inv, e lookup_instr_fetching_pc_abs_diff_positive_inv, e lookup_instr_fetching_instr_abs_diff_positive_inv, e lookup_instr_fetching_tag_value_validation_inv, e lookup_instr_fetching_bytecode_size_from_bc_dec_inv, e lookup_instr_fetching_bytes_from_bc_dec_inv, e lookup_instr_fetching_wire_instruction_info_inv, e lookup_emit_public_log_check_memory_out_of_bounds_inv, e lookup_emit_public_log_check_log_fields_count_inv, e lookup_emit_public_log_write_data_to_public_inputs_inv, e lookup_get_contract_instance_precomputed_info_inv, e lookup_get_contract_instance_contract_instance_retrieval_inv, e lookup_l1_to_l2_message_tree_check_merkle_check_inv, e lookup_internal_call_unwind_call_stack_inv, e lookup_context_ctx_stack_rollback_inv, e lookup_context_ctx_stack_return_inv, e lookup_addressing_relative_overflow_result_0_inv, e lookup_addressing_relative_overflow_result_1_inv, e lookup_addressing_relative_overflow_result_2_inv, e lookup_addressing_relative_overflow_result_3_inv, e lookup_addressing_relative_overflow_result_4_inv, e lookup_addressing_relative_overflow_result_5_inv, e lookup_addressing_relative_overflow_result_6_inv, e lookup_gas_addressing_gas_read_inv, e lookup_gas_is_out_of_gas_l2_inv, e lookup_gas_is_out_of_gas_da_inv, e lookup_note_hash_tree_check_silo_poseidon2_inv, e lookup_note_hash_tree_check_read_first_nullifier_inv, e lookup_note_hash_tree_check_nonce_computation_poseidon2_inv, e lookup_note_hash_tree_check_unique_note_hash_poseidon2_inv, e lookup_note_hash_tree_check_merkle_check_inv, e lookup_note_hash_tree_check_write_note_hash_to_public_inputs_inv, e lookup_emit_notehash_notehash_tree_write_inv, e lookup_emit_nullifier_write_nullifier_inv, e lookup_external_call_is_l2_gas_left_gt_allocated_inv, e lookup_external_call_is_da_gas_left_gt_allocated_inv, e lookup_get_env_var_precomputed_info_inv, e lookup_get_env_var_read_from_public_inputs_col0_inv, e lookup_get_env_var_read_from_public_inputs_col1_inv, e lookup_l1_to_l2_message_exists_l1_to_l2_msg_leaf_index_in_range_inv, e lookup_l1_to_l2_message_exists_l1_to_l2_msg_read_inv, e lookup_notehash_exists_note_hash_leaf_index_in_range_inv, e lookup_notehash_exists_note_hash_read_inv, e lookup_nullifier_exists_nullifier_exists_check_inv, e lookup_send_l2_to_l1_msg_recipient_check_inv, e lookup_send_l2_to_l1_msg_write_l2_to_l1_msg_inv, e lookup_sload_storage_read_inv, e lookup_sstore_record_written_storage_slot_inv, e lookup_execution_bytecode_retrieval_result_inv, e lookup_execution_instruction_fetching_result_inv, e lookup_execution_instruction_fetching_body_inv, e lookup_execution_exec_spec_read_inv, e lookup_execution_dyn_l2_factor_bitwise_inv, e lookup_execution_check_radix_gt_256_inv, e lookup_execution_get_p_limbs_inv, e lookup_execution_get_max_limbs_inv, e lookup_execution_check_written_storage_slot_inv, e lookup_execution_dispatch_to_alu_inv, e lookup_execution_dispatch_to_bitwise_inv, e lookup_execution_dispatch_to_cast_inv, e lookup_execution_dispatch_to_set_inv, e lookup_calldata_hashing_get_calldata_field_0_inv, e lookup_calldata_hashing_get_calldata_field_1_inv, e lookup_calldata_hashing_get_calldata_field_2_inv, e lookup_calldata_hashing_poseidon2_hash_inv, e lookup_tx_context_public_inputs_note_hash_tree_inv, e lookup_tx_context_public_inputs_nullifier_tree_inv, e lookup_tx_context_public_inputs_public_data_tree_inv, e lookup_tx_context_public_inputs_l1_l2_tree_inv, e lookup_tx_context_public_inputs_gas_used_inv, e lookup_tx_context_public_inputs_read_gas_limit_inv, e lookup_tx_context_public_inputs_read_reverted_inv, e lookup_tx_context_restore_state_on_revert_inv, e lookup_tx_context_public_inputs_write_note_hash_count_inv, e lookup_tx_context_public_inputs_write_nullifier_count_inv, e lookup_tx_context_public_inputs_write_l2_to_l1_message_count_inv, e lookup_tx_context_public_inputs_write_public_log_count_inv, e lookup_tx_read_phase_spec_inv, e lookup_tx_read_phase_length_inv, e lookup_tx_read_public_call_request_phase_inv, e lookup_tx_read_tree_insert_value_inv, e lookup_tx_note_hash_append_inv, e lookup_tx_nullifier_append_inv, e lookup_tx_read_l2_l1_msg_inv, e lookup_tx_write_l2_l1_msg_inv, e lookup_tx_read_effective_fee_public_inputs_inv, e lookup_tx_read_fee_payer_public_inputs_inv, e lookup_tx_balance_slot_poseidon2_inv, e lookup_tx_balance_read_inv, e lookup_tx_balance_validation_inv, e lookup_tx_write_fee_public_inputs_inv #define AVM2_SHIFTED_ENTITIES_E(e) e bc_decomposition_bytes_shift, e bc_decomposition_bytes_pc_plus_1_shift, e bc_decomposition_bytes_pc_plus_10_shift, e bc_decomposition_bytes_pc_plus_11_shift, e bc_decomposition_bytes_pc_plus_12_shift, e bc_decomposition_bytes_pc_plus_13_shift, e bc_decomposition_bytes_pc_plus_14_shift, e bc_decomposition_bytes_pc_plus_15_shift, e bc_decomposition_bytes_pc_plus_16_shift, e bc_decomposition_bytes_pc_plus_17_shift, e bc_decomposition_bytes_pc_plus_18_shift, e bc_decomposition_bytes_pc_plus_19_shift, e bc_decomposition_bytes_pc_plus_2_shift, e bc_decomposition_bytes_pc_plus_20_shift, e bc_decomposition_bytes_pc_plus_21_shift, e bc_decomposition_bytes_pc_plus_22_shift, e bc_decomposition_bytes_pc_plus_23_shift, e bc_decomposition_bytes_pc_plus_24_shift, e bc_decomposition_bytes_pc_plus_25_shift, e bc_decomposition_bytes_pc_plus_26_shift, e bc_decomposition_bytes_pc_plus_27_shift, e bc_decomposition_bytes_pc_plus_28_shift, e bc_decomposition_bytes_pc_plus_29_shift, e bc_decomposition_bytes_pc_plus_3_shift, e bc_decomposition_bytes_pc_plus_30_shift, e bc_decomposition_bytes_pc_plus_31_shift, e bc_decomposition_bytes_pc_plus_32_shift, e bc_decomposition_bytes_pc_plus_33_shift, e bc_decomposition_bytes_pc_plus_34_shift, e bc_decomposition_bytes_pc_plus_35_shift, e bc_decomposition_bytes_pc_plus_4_shift, e bc_decomposition_bytes_pc_plus_5_shift, e bc_decomposition_bytes_pc_plus_6_shift, e bc_decomposition_bytes_pc_plus_7_shift, e bc_decomposition_bytes_pc_plus_8_shift, e bc_decomposition_bytes_pc_plus_9_shift, e bc_decomposition_bytes_remaining_shift, e bc_decomposition_id_shift, e bc_decomposition_next_packed_pc_shift, e bc_decomposition_pc_shift, e bc_decomposition_sel_shift, e bc_decomposition_sel_windows_gt_remaining_shift, e bc_decomposition_start_shift, e bc_hashing_bytecode_id_shift, e bc_hashing_padding_shift, e bc_hashing_pc_index_1_shift, e bc_hashing_rounds_rem_shift, e bc_hashing_sel_shift, e bc_hashing_sel_not_start_shift, e bc_hashing_start_shift, e bitwise_acc_ia_shift, e bitwise_acc_ib_shift, e bitwise_acc_ic_shift, e bitwise_ctr_shift, e bitwise_op_id_shift, e bitwise_sel_shift, e bitwise_start_shift, e calldata_context_id_shift, e calldata_hashing_calldata_size_shift, e calldata_hashing_context_id_shift, e calldata_hashing_index_0__shift, e calldata_hashing_output_hash_shift, e calldata_hashing_rounds_rem_shift, e calldata_hashing_sel_shift, e calldata_hashing_start_shift, e calldata_index_shift, e calldata_sel_shift, e data_copy_clk_shift, e data_copy_copy_size_shift, e data_copy_dst_addr_shift, e data_copy_dst_context_id_shift, e data_copy_padding_shift, e data_copy_read_addr_shift, e data_copy_reads_left_shift, e data_copy_sel_shift, e data_copy_sel_cd_copy_shift, e data_copy_src_context_id_shift, e data_copy_start_shift, e emit_public_log_contract_address_shift, e emit_public_log_correct_tag_shift, e emit_public_log_error_out_of_bounds_shift, e emit_public_log_error_tag_mismatch_shift, e emit_public_log_execution_clk_shift, e emit_public_log_is_write_contract_address_shift, e emit_public_log_is_write_memory_value_shift, e emit_public_log_log_address_shift, e emit_public_log_public_inputs_index_shift, e emit_public_log_remaining_rows_shift, e emit_public_log_seen_wrong_tag_shift, e emit_public_log_sel_shift, e emit_public_log_sel_write_to_public_inputs_shift, e emit_public_log_space_id_shift, e emit_public_log_start_shift, e execution_bytecode_id_shift, e execution_clk_shift, e execution_context_id_shift, e execution_contract_address_shift, e execution_da_gas_limit_shift, e execution_discard_shift, e execution_dying_context_id_shift, e execution_enqueued_call_start_shift, e execution_internal_call_id_shift, e execution_internal_call_return_id_shift, e execution_is_static_shift, e execution_l1_l2_tree_root_shift, e execution_l2_gas_limit_shift, e execution_last_child_id_shift, e execution_last_child_returndata_addr_shift, e execution_last_child_returndata_size_shift, e execution_last_child_success_shift, e execution_msg_sender_shift, e execution_next_context_id_shift, e execution_next_internal_call_id_shift, e execution_parent_calldata_addr_shift, e execution_parent_calldata_size_shift, e execution_parent_da_gas_limit_shift, e execution_parent_da_gas_used_shift, e execution_parent_id_shift, e execution_parent_l2_gas_limit_shift, e execution_parent_l2_gas_used_shift, e execution_pc_shift, e execution_prev_da_gas_used_shift, e execution_prev_l2_gas_used_shift, e execution_prev_note_hash_tree_root_shift, e execution_prev_note_hash_tree_size_shift, e execution_prev_nullifier_tree_root_shift, e execution_prev_nullifier_tree_size_shift, e execution_prev_num_l2_to_l1_messages_shift, e execution_prev_num_note_hashes_emitted_shift, e execution_prev_num_nullifiers_emitted_shift, e execution_prev_num_public_log_fields_shift, e execution_prev_public_data_tree_root_shift, e execution_prev_public_data_tree_size_shift, e execution_prev_retrieved_bytecodes_tree_root_shift, e execution_prev_retrieved_bytecodes_tree_size_shift, e execution_prev_written_public_data_slots_tree_root_shift, e execution_prev_written_public_data_slots_tree_size_shift, e execution_sel_shift, e execution_sel_first_row_in_context_shift, e execution_transaction_fee_shift, e ff_gt_a_hi_shift, e ff_gt_a_lo_shift, e ff_gt_b_hi_shift, e ff_gt_b_lo_shift, e ff_gt_cmp_rng_ctr_shift, e ff_gt_p_sub_a_hi_shift, e ff_gt_p_sub_a_lo_shift, e ff_gt_p_sub_b_hi_shift, e ff_gt_p_sub_b_lo_shift, e ff_gt_sel_shift, e ff_gt_sel_dec_shift, e ff_gt_sel_gt_shift, e keccak_memory_addr_shift, e keccak_memory_clk_shift, e keccak_memory_ctr_shift, e keccak_memory_rw_shift, e keccak_memory_sel_shift, e keccak_memory_space_id_shift, e keccak_memory_start_read_shift, e keccak_memory_start_write_shift, e keccak_memory_tag_error_shift, e keccak_memory_val_0__shift, e keccak_memory_val_10__shift, e keccak_memory_val_11__shift, e keccak_memory_val_12__shift, e keccak_memory_val_13__shift, e keccak_memory_val_14__shift, e keccak_memory_val_15__shift, e keccak_memory_val_16__shift, e keccak_memory_val_17__shift, e keccak_memory_val_18__shift, e keccak_memory_val_19__shift, e keccak_memory_val_1__shift, e keccak_memory_val_20__shift, e keccak_memory_val_21__shift, e keccak_memory_val_22__shift, e keccak_memory_val_23__shift, e keccak_memory_val_2__shift, e keccak_memory_val_3__shift, e keccak_memory_val_4__shift, e keccak_memory_val_5__shift, e keccak_memory_val_6__shift, e keccak_memory_val_7__shift, e keccak_memory_val_8__shift, e keccak_memory_val_9__shift, e keccakf1600_clk_shift, e keccakf1600_dst_addr_shift, e keccakf1600_round_shift, e keccakf1600_sel_shift, e keccakf1600_sel_no_error_shift, e keccakf1600_space_id_shift, e keccakf1600_start_shift, e keccakf1600_state_in_00_shift, e keccakf1600_state_in_01_shift, e keccakf1600_state_in_02_shift, e keccakf1600_state_in_03_shift, e keccakf1600_state_in_04_shift, e keccakf1600_state_in_10_shift, e keccakf1600_state_in_11_shift, e keccakf1600_state_in_12_shift, e keccakf1600_state_in_13_shift, e keccakf1600_state_in_14_shift, e keccakf1600_state_in_20_shift, e keccakf1600_state_in_21_shift, e keccakf1600_state_in_22_shift, e keccakf1600_state_in_23_shift, e keccakf1600_state_in_24_shift, e keccakf1600_state_in_30_shift, e keccakf1600_state_in_31_shift, e keccakf1600_state_in_32_shift, e keccakf1600_state_in_33_shift, e keccakf1600_state_in_34_shift, e keccakf1600_state_in_40_shift, e keccakf1600_state_in_41_shift, e keccakf1600_state_in_42_shift, e keccakf1600_state_in_43_shift, e keccakf1600_state_in_44_shift, e memory_address_shift, e memory_clk_shift, e memory_rw_shift, e memory_sel_shift, e memory_space_id_shift, e memory_tag_shift, e memory_value_shift, e merkle_check_index_shift, e merkle_check_merkle_hash_separator_shift, e merkle_check_path_len_shift, e merkle_check_read_node_shift, e merkle_check_read_root_shift, e merkle_check_sel_shift, e merkle_check_start_shift, e merkle_check_write_shift, e merkle_check_write_node_shift, e merkle_check_write_root_shift, e poseidon2_hash_a_0_shift, e poseidon2_hash_a_1_shift, e poseidon2_hash_a_2_shift, e poseidon2_hash_a_3_shift, e poseidon2_hash_input_0_shift, e poseidon2_hash_input_1_shift, e poseidon2_hash_input_2_shift, e poseidon2_hash_num_perm_rounds_rem_shift, e poseidon2_hash_output_shift, e poseidon2_hash_sel_shift, e poseidon2_hash_start_shift, e public_data_check_clk_shift, e public_data_check_sel_shift, e public_data_check_write_idx_shift, e public_data_squash_clk_shift, e public_data_squash_final_value_shift, e public_data_squash_leaf_slot_shift, e public_data_squash_sel_shift, e public_data_squash_write_to_public_inputs_shift, e scalar_mul_bit_idx_shift, e scalar_mul_point_inf_shift, e scalar_mul_point_x_shift, e scalar_mul_point_y_shift, e scalar_mul_res_inf_shift, e scalar_mul_res_x_shift, e scalar_mul_res_y_shift, e scalar_mul_scalar_shift, e scalar_mul_sel_shift, e scalar_mul_start_shift, e scalar_mul_temp_inf_shift, e scalar_mul_temp_x_shift, e scalar_mul_temp_y_shift, e sha256_a_shift, e sha256_b_shift, e sha256_c_shift, e sha256_d_shift, e sha256_e_shift, e sha256_execution_clk_shift, e sha256_f_shift, e sha256_g_shift, e sha256_h_shift, e sha256_helper_w0_shift, e sha256_helper_w1_shift, e sha256_helper_w10_shift, e sha256_helper_w11_shift, e sha256_helper_w12_shift, e sha256_helper_w13_shift, e sha256_helper_w14_shift, e sha256_helper_w15_shift, e sha256_helper_w2_shift, e sha256_helper_w3_shift, e sha256_helper_w4_shift, e sha256_helper_w5_shift, e sha256_helper_w6_shift, e sha256_helper_w7_shift, e sha256_helper_w8_shift, e sha256_helper_w9_shift, e sha256_init_a_shift, e sha256_init_b_shift, e sha256_init_c_shift, e sha256_init_d_shift, e sha256_init_e_shift, e sha256_init_f_shift, e sha256_init_g_shift, e sha256_init_h_shift, e sha256_input_addr_shift, e sha256_input_rounds_rem_shift, e sha256_output_addr_shift, e sha256_rounds_remaining_shift, e sha256_sel_shift, e sha256_sel_invalid_input_tag_err_shift, e sha256_space_id_shift, e sha256_start_shift, e to_radix_acc_shift, e to_radix_acc_under_p_shift, e to_radix_limb_shift, e to_radix_limb_eq_p_shift, e to_radix_limb_index_shift, e to_radix_limb_lt_p_shift, e to_radix_mem_dst_addr_shift, e to_radix_mem_execution_clk_shift, e to_radix_mem_is_output_bits_shift, e to_radix_mem_num_limbs_shift, e to_radix_mem_radix_shift, e to_radix_mem_sel_shift, e to_radix_mem_sel_should_decompose_shift, e to_radix_mem_sel_should_write_mem_shift, e to_radix_mem_space_id_shift, e to_radix_mem_start_shift, e to_radix_mem_value_to_decompose_shift, e to_radix_not_padding_limb_shift, e to_radix_power_shift, e to_radix_radix_shift, e to_radix_safe_limbs_shift, e to_radix_sel_shift, e to_radix_start_shift, e to_radix_value_shift, e tx_da_gas_limit_shift, e tx_discard_shift, e tx_fee_shift, e tx_is_revertible_shift, e tx_is_teardown_shift, e tx_l1_l2_tree_root_shift, e tx_l1_l2_tree_size_shift, e tx_l2_gas_limit_shift, e tx_next_context_id_shift, e tx_phase_value_shift, e tx_prev_da_gas_used_shift, e tx_prev_l2_gas_used_shift, e tx_prev_note_hash_tree_root_shift, e tx_prev_note_hash_tree_size_shift, e tx_prev_nullifier_tree_root_shift, e tx_prev_nullifier_tree_size_shift, e tx_prev_num_l2_to_l1_messages_shift, e tx_prev_num_note_hashes_emitted_shift, e tx_prev_num_nullifiers_emitted_shift, e tx_prev_num_public_log_fields_shift, e tx_prev_public_data_tree_root_shift, e tx_prev_public_data_tree_size_shift, e tx_prev_retrieved_bytecodes_tree_root_shift, e tx_prev_retrieved_bytecodes_tree_size_shift, e tx_prev_written_public_data_slots_tree_root_shift, e tx_prev_written_public_data_slots_tree_size_shift, e tx_read_pi_offset_shift, e tx_remaining_phase_counter_shift, e tx_reverted_shift, e tx_sel_shift, e tx_start_phase_shift, e tx_start_tx_shift, e tx_tx_reverted_shift #define AVM2_TO_BE_SHIFTED_E(e) e bc_decomposition_bytes, e bc_decomposition_bytes_pc_plus_1, e bc_decomposition_bytes_pc_plus_10, e bc_decomposition_bytes_pc_plus_11, e bc_decomposition_bytes_pc_plus_12, e bc_decomposition_bytes_pc_plus_13, e bc_decomposition_bytes_pc_plus_14, e bc_decomposition_bytes_pc_plus_15, e bc_decomposition_bytes_pc_plus_16, e bc_decomposition_bytes_pc_plus_17, e bc_decomposition_bytes_pc_plus_18, e bc_decomposition_bytes_pc_plus_19, e bc_decomposition_bytes_pc_plus_2, e bc_decomposition_bytes_pc_plus_20, e bc_decomposition_bytes_pc_plus_21, e bc_decomposition_bytes_pc_plus_22, e bc_decomposition_bytes_pc_plus_23, e bc_decomposition_bytes_pc_plus_24, e bc_decomposition_bytes_pc_plus_25, e bc_decomposition_bytes_pc_plus_26, e bc_decomposition_bytes_pc_plus_27, e bc_decomposition_bytes_pc_plus_28, e bc_decomposition_bytes_pc_plus_29, e bc_decomposition_bytes_pc_plus_3, e bc_decomposition_bytes_pc_plus_30, e bc_decomposition_bytes_pc_plus_31, e bc_decomposition_bytes_pc_plus_32, e bc_decomposition_bytes_pc_plus_33, e bc_decomposition_bytes_pc_plus_34, e bc_decomposition_bytes_pc_plus_35, e bc_decomposition_bytes_pc_plus_4, e bc_decomposition_bytes_pc_plus_5, e bc_decomposition_bytes_pc_plus_6, e bc_decomposition_bytes_pc_plus_7, e bc_decomposition_bytes_pc_plus_8, e bc_decomposition_bytes_pc_plus_9, e bc_decomposition_bytes_remaining, e bc_decomposition_id, e bc_decomposition_next_packed_pc, e bc_decomposition_pc, e bc_decomposition_sel, e bc_decomposition_sel_windows_gt_remaining, e bc_decomposition_start, e bc_hashing_bytecode_id, e bc_hashing_padding, e bc_hashing_pc_index_1, e bc_hashing_rounds_rem, e bc_hashing_sel, e bc_hashing_sel_not_start, e bc_hashing_start, e bitwise_acc_ia, e bitwise_acc_ib, e bitwise_acc_ic, e bitwise_ctr, e bitwise_op_id, e bitwise_sel, e bitwise_start, e calldata_context_id, e calldata_hashing_calldata_size, e calldata_hashing_context_id, e calldata_hashing_index_0_, e calldata_hashing_output_hash, e calldata_hashing_rounds_rem, e calldata_hashing_sel, e calldata_hashing_start, e calldata_index, e calldata_sel, e data_copy_clk, e data_copy_copy_size, e data_copy_dst_addr, e data_copy_dst_context_id, e data_copy_padding, e data_copy_read_addr, e data_copy_reads_left, e data_copy_sel, e data_copy_sel_cd_copy, e data_copy_src_context_id, e data_copy_start, e emit_public_log_contract_address, e emit_public_log_correct_tag, e emit_public_log_error_out_of_bounds, e emit_public_log_error_tag_mismatch, e emit_public_log_execution_clk, e emit_public_log_is_write_contract_address, e emit_public_log_is_write_memory_value, e emit_public_log_log_address, e emit_public_log_public_inputs_index, e emit_public_log_remaining_rows, e emit_public_log_seen_wrong_tag, e emit_public_log_sel, e emit_public_log_sel_write_to_public_inputs, e emit_public_log_space_id, e emit_public_log_start, e execution_bytecode_id, e execution_clk, e execution_context_id, e execution_contract_address, e execution_da_gas_limit, e execution_discard, e execution_dying_context_id, e execution_enqueued_call_start, e execution_internal_call_id, e execution_internal_call_return_id, e execution_is_static, e execution_l1_l2_tree_root, e execution_l2_gas_limit, e execution_last_child_id, e execution_last_child_returndata_addr, e execution_last_child_returndata_size, e execution_last_child_success, e execution_msg_sender, e execution_next_context_id, e execution_next_internal_call_id, e execution_parent_calldata_addr, e execution_parent_calldata_size, e execution_parent_da_gas_limit, e execution_parent_da_gas_used, e execution_parent_id, e execution_parent_l2_gas_limit, e execution_parent_l2_gas_used, e execution_pc, e execution_prev_da_gas_used, e execution_prev_l2_gas_used, e execution_prev_note_hash_tree_root, e execution_prev_note_hash_tree_size, e execution_prev_nullifier_tree_root, e execution_prev_nullifier_tree_size, e execution_prev_num_l2_to_l1_messages, e execution_prev_num_note_hashes_emitted, e execution_prev_num_nullifiers_emitted, e execution_prev_num_public_log_fields, e execution_prev_public_data_tree_root, e execution_prev_public_data_tree_size, e execution_prev_retrieved_bytecodes_tree_root, e execution_prev_retrieved_bytecodes_tree_size, e execution_prev_written_public_data_slots_tree_root, e execution_prev_written_public_data_slots_tree_size, e execution_sel, e execution_sel_first_row_in_context, e execution_transaction_fee, e ff_gt_a_hi, e ff_gt_a_lo, e ff_gt_b_hi, e ff_gt_b_lo, e ff_gt_cmp_rng_ctr, e ff_gt_p_sub_a_hi, e ff_gt_p_sub_a_lo, e ff_gt_p_sub_b_hi, e ff_gt_p_sub_b_lo, e ff_gt_sel, e ff_gt_sel_dec, e ff_gt_sel_gt, e keccak_memory_addr, e keccak_memory_clk, e keccak_memory_ctr, e keccak_memory_rw, e keccak_memory_sel, e keccak_memory_space_id, e keccak_memory_start_read, e keccak_memory_start_write, e keccak_memory_tag_error, e keccak_memory_val_0_, e keccak_memory_val_10_, e keccak_memory_val_11_, e keccak_memory_val_12_, e keccak_memory_val_13_, e keccak_memory_val_14_, e keccak_memory_val_15_, e keccak_memory_val_16_, e keccak_memory_val_17_, e keccak_memory_val_18_, e keccak_memory_val_19_, e keccak_memory_val_1_, e keccak_memory_val_20_, e keccak_memory_val_21_, e keccak_memory_val_22_, e keccak_memory_val_23_, e keccak_memory_val_2_, e keccak_memory_val_3_, e keccak_memory_val_4_, e keccak_memory_val_5_, e keccak_memory_val_6_, e keccak_memory_val_7_, e keccak_memory_val_8_, e keccak_memory_val_9_, e keccakf1600_clk, e keccakf1600_dst_addr, e keccakf1600_round, e keccakf1600_sel, e keccakf1600_sel_no_error, e keccakf1600_space_id, e keccakf1600_start, e keccakf1600_state_in_00, e keccakf1600_state_in_01, e keccakf1600_state_in_02, e keccakf1600_state_in_03, e keccakf1600_state_in_04, e keccakf1600_state_in_10, e keccakf1600_state_in_11, e keccakf1600_state_in_12, e keccakf1600_state_in_13, e keccakf1600_state_in_14, e keccakf1600_state_in_20, e keccakf1600_state_in_21, e keccakf1600_state_in_22, e keccakf1600_state_in_23, e keccakf1600_state_in_24, e keccakf1600_state_in_30, e keccakf1600_state_in_31, e keccakf1600_state_in_32, e keccakf1600_state_in_33, e keccakf1600_state_in_34, e keccakf1600_state_in_40, e keccakf1600_state_in_41, e keccakf1600_state_in_42, e keccakf1600_state_in_43, e keccakf1600_state_in_44, e memory_address, e memory_clk, e memory_rw, e memory_sel, e memory_space_id, e memory_tag, e memory_value, e merkle_check_index, e merkle_check_merkle_hash_separator, e merkle_check_path_len, e merkle_check_read_node, e merkle_check_read_root, e merkle_check_sel, e merkle_check_start, e merkle_check_write, e merkle_check_write_node, e merkle_check_write_root, e poseidon2_hash_a_0, e poseidon2_hash_a_1, e poseidon2_hash_a_2, e poseidon2_hash_a_3, e poseidon2_hash_input_0, e poseidon2_hash_input_1, e poseidon2_hash_input_2, e poseidon2_hash_num_perm_rounds_rem, e poseidon2_hash_output, e poseidon2_hash_sel, e poseidon2_hash_start, e public_data_check_clk, e public_data_check_sel, e public_data_check_write_idx, e public_data_squash_clk, e public_data_squash_final_value, e public_data_squash_leaf_slot, e public_data_squash_sel, e public_data_squash_write_to_public_inputs, e scalar_mul_bit_idx, e scalar_mul_point_inf, e scalar_mul_point_x, e scalar_mul_point_y, e scalar_mul_res_inf, e scalar_mul_res_x, e scalar_mul_res_y, e scalar_mul_scalar, e scalar_mul_sel, e scalar_mul_start, e scalar_mul_temp_inf, e scalar_mul_temp_x, e scalar_mul_temp_y, e sha256_a, e sha256_b, e sha256_c, e sha256_d, e sha256_e, e sha256_execution_clk, e sha256_f, e sha256_g, e sha256_h, e sha256_helper_w0, e sha256_helper_w1, e sha256_helper_w10, e sha256_helper_w11, e sha256_helper_w12, e sha256_helper_w13, e sha256_helper_w14, e sha256_helper_w15, e sha256_helper_w2, e sha256_helper_w3, e sha256_helper_w4, e sha256_helper_w5, e sha256_helper_w6, e sha256_helper_w7, e sha256_helper_w8, e sha256_helper_w9, e sha256_init_a, e sha256_init_b, e sha256_init_c, e sha256_init_d, e sha256_init_e, e sha256_init_f, e sha256_init_g, e sha256_init_h, e sha256_input_addr, e sha256_input_rounds_rem, e sha256_output_addr, e sha256_rounds_remaining, e sha256_sel, e sha256_sel_invalid_input_tag_err, e sha256_space_id, e sha256_start, e to_radix_acc, e to_radix_acc_under_p, e to_radix_limb, e to_radix_limb_eq_p, e to_radix_limb_index, e to_radix_limb_lt_p, e to_radix_mem_dst_addr, e to_radix_mem_execution_clk, e to_radix_mem_is_output_bits, e to_radix_mem_num_limbs, e to_radix_mem_radix, e to_radix_mem_sel, e to_radix_mem_sel_should_decompose, e to_radix_mem_sel_should_write_mem, e to_radix_mem_space_id, e to_radix_mem_start, e to_radix_mem_value_to_decompose, e to_radix_not_padding_limb, e to_radix_power, e to_radix_radix, e to_radix_safe_limbs, e to_radix_sel, e to_radix_start, e to_radix_value, e tx_da_gas_limit, e tx_discard, e tx_fee, e tx_is_revertible, e tx_is_teardown, e tx_l1_l2_tree_root, e tx_l1_l2_tree_size, e tx_l2_gas_limit, e tx_next_context_id, e tx_phase_value, e tx_prev_da_gas_used, e tx_prev_l2_gas_used, e tx_prev_note_hash_tree_root, e tx_prev_note_hash_tree_size, e tx_prev_nullifier_tree_root, e tx_prev_nullifier_tree_size, e tx_prev_num_l2_to_l1_messages, e tx_prev_num_note_hashes_emitted, e tx_prev_num_nullifiers_emitted, e tx_prev_num_public_log_fields, e tx_prev_public_data_tree_root, e tx_prev_public_data_tree_size, e tx_prev_retrieved_bytecodes_tree_root, e tx_prev_retrieved_bytecodes_tree_size, e tx_prev_written_public_data_slots_tree_root, e tx_prev_written_public_data_slots_tree_size, e tx_read_pi_offset, e tx_remaining_phase_counter, e tx_reverted, e tx_sel, e tx_start_phase, e tx_start_tx, e tx_tx_reverted @@ -36,16 +36,16 @@ enum class ColumnAndShifts { SENTINEL_DO_NOT_USE, }; -constexpr auto NUM_COLUMNS_WITH_SHIFTS = 3438; -constexpr auto NUM_COLUMNS_WITHOUT_SHIFTS = 3074; -constexpr auto NUM_PRECOMPUTED_ENTITIES = 119; -constexpr auto NUM_WIRE_ENTITIES = 2511; +constexpr auto NUM_COLUMNS_WITH_SHIFTS = 3444; +constexpr auto NUM_COLUMNS_WITHOUT_SHIFTS = 3080; +constexpr auto NUM_PRECOMPUTED_ENTITIES = 120; +constexpr auto NUM_WIRE_ENTITIES = 2516; constexpr auto NUM_DERIVED_ENTITIES = 444; constexpr auto NUM_WITNESS_ENTITIES = NUM_WIRE_ENTITIES + NUM_DERIVED_ENTITIES; constexpr auto NUM_WIRES_TO_BE_SHIFTED = 364; constexpr auto NUM_SHIFTED_ENTITIES = 364; constexpr auto NUM_UNSHIFTED_ENTITIES = NUM_COLUMNS_WITHOUT_SHIFTS; -constexpr auto NUM_ALL_ENTITIES = 3438; +constexpr auto NUM_ALL_ENTITIES = 3444; /* * Layout for all entities is: diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp index 22c2e6bc3473..b7ef61bd31fb 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp @@ -140,11 +140,11 @@ namespace bb::avm2 { struct AvmFlavorVariables { - static constexpr size_t NUM_PRECOMPUTED_ENTITIES = 119; - static constexpr size_t NUM_WITNESS_ENTITIES = 2955; + static constexpr size_t NUM_PRECOMPUTED_ENTITIES = 120; + static constexpr size_t NUM_WITNESS_ENTITIES = 2960; static constexpr size_t NUM_SHIFTED_ENTITIES = 364; - static constexpr size_t NUM_WIRES = 2511; - static constexpr size_t NUM_ALL_ENTITIES = 3438; + static constexpr size_t NUM_WIRES = 2516; + static constexpr size_t NUM_ALL_ENTITIES = 3444; // Need to be templated for recursive verifier template diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/address_derivation.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/address_derivation.hpp index 4ebd488f9576..44b22368c3cb 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/address_derivation.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/address_derivation.hpp @@ -14,7 +14,7 @@ template class address_derivationImpl { public: using FF = FF_; - static constexpr std::array SUBRELATION_PARTIAL_LENGTHS = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5 }; + static constexpr std::array SUBRELATION_PARTIAL_LENGTHS = { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5 }; template inline static bool skip(const AllEntities& in) { @@ -35,7 +35,7 @@ template class address_derivation : public Relation::accumulate(ContainerOverSubrelations& evals, const auto constants_DOM_SEP__SALTED_INITIALIZATION_HASH = FF(2763052992UL); const auto constants_DOM_SEP__PUBLIC_KEYS_HASH = FF(777457226); const auto constants_DOM_SEP__PARTIAL_ADDRESS = FF(2103633018); - const auto constants_DOM_SEP__CONTRACT_ADDRESS_V1 = FF(1788365517); + const auto constants_DOM_SEP__CONTRACT_ADDRESS_V2 = FF(4099338721UL); const auto address_derivation_X3 = in.get(C::address_derivation_incoming_viewing_key_x) * in.get(C::address_derivation_incoming_viewing_key_x) * in.get(C::address_derivation_incoming_viewing_key_x); @@ -55,55 +55,61 @@ void address_derivationImpl::accumulate(ContainerOverSubrelations& evals, { using View = typename std::tuple_element_t<4, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::address_derivation_sel)) * - (static_cast(in.get(C::address_derivation_const_thirteen)) - FF(13)); + (static_cast(in.get(C::address_derivation_const_five)) - FF(5)); std::get<4>(evals) += (tmp * scaling_factor); } { using View = typename std::tuple_element_t<5, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::address_derivation_sel)) * - (static_cast(in.get(C::address_derivation_salted_init_hash_domain_separator)) - - CView(constants_DOM_SEP__SALTED_INITIALIZATION_HASH)); + (static_cast(in.get(C::address_derivation_const_thirteen)) - FF(13)); std::get<5>(evals) += (tmp * scaling_factor); } { using View = typename std::tuple_element_t<6, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::address_derivation_sel)) * - (static_cast(in.get(C::address_derivation_partial_address_domain_separator)) - - CView(constants_DOM_SEP__PARTIAL_ADDRESS)); + (static_cast(in.get(C::address_derivation_salted_init_hash_domain_separator)) - + CView(constants_DOM_SEP__SALTED_INITIALIZATION_HASH)); std::get<6>(evals) += (tmp * scaling_factor); } { using View = typename std::tuple_element_t<7, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::address_derivation_sel)) * - (static_cast(in.get(C::address_derivation_public_keys_hash_domain_separator)) - - CView(constants_DOM_SEP__PUBLIC_KEYS_HASH)); + (static_cast(in.get(C::address_derivation_partial_address_domain_separator)) - + CView(constants_DOM_SEP__PARTIAL_ADDRESS)); std::get<7>(evals) += (tmp * scaling_factor); } { using View = typename std::tuple_element_t<8, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::address_derivation_sel)) * - (static_cast(in.get(C::address_derivation_preaddress_domain_separator)) - - CView(constants_DOM_SEP__CONTRACT_ADDRESS_V1)); + (static_cast(in.get(C::address_derivation_public_keys_hash_domain_separator)) - + CView(constants_DOM_SEP__PUBLIC_KEYS_HASH)); std::get<8>(evals) += (tmp * scaling_factor); } { using View = typename std::tuple_element_t<9, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::address_derivation_sel)) * - (static_cast(in.get(C::address_derivation_g1_x)) - CView(constants_GRUMPKIN_ONE_X)); + (static_cast(in.get(C::address_derivation_preaddress_domain_separator)) - + CView(constants_DOM_SEP__CONTRACT_ADDRESS_V2)); std::get<9>(evals) += (tmp * scaling_factor); } { using View = typename std::tuple_element_t<10, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::address_derivation_sel)) * - (static_cast(in.get(C::address_derivation_g1_y)) - CView(constants_GRUMPKIN_ONE_Y)); + (static_cast(in.get(C::address_derivation_g1_x)) - CView(constants_GRUMPKIN_ONE_X)); std::get<10>(evals) += (tmp * scaling_factor); } - { // IVK_ON_CURVE_CHECK + { using View = typename std::tuple_element_t<11, ContainerOverSubrelations>::View; auto tmp = static_cast(in.get(C::address_derivation_sel)) * - (CView(address_derivation_Y2) - (CView(address_derivation_X3) - FF(17))); + (static_cast(in.get(C::address_derivation_g1_y)) - CView(constants_GRUMPKIN_ONE_Y)); std::get<11>(evals) += (tmp * scaling_factor); } + { // IVK_ON_CURVE_CHECK + using View = typename std::tuple_element_t<12, ContainerOverSubrelations>::View; + auto tmp = static_cast(in.get(C::address_derivation_sel)) * + (CView(address_derivation_Y2) - (CView(address_derivation_X3) - FF(17))); + std::get<12>(evals) += (tmp * scaling_factor); + } } } // namespace bb::avm2 diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/contract_instance_retrieval.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/contract_instance_retrieval.hpp index 20d2e8432637..c58b25b8e2d6 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/contract_instance_retrieval.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/contract_instance_retrieval.hpp @@ -14,8 +14,8 @@ template class contract_instance_retrievalImpl { public: using FF = FF_; - static constexpr std::array SUBRELATION_PARTIAL_LENGTHS = { 3, 3, 3, 2, 3, 3, 5, 3, 3, - 3, 3, 4, 4, 4, 4, 4, 4, 3 }; + static constexpr std::array SUBRELATION_PARTIAL_LENGTHS = { 3, 3, 3, 2, 3, 3, 5, 3, 3, 3, + 3, 4, 4, 4, 4, 4, 4, 4, 3 }; template inline static bool skip(const AllEntities& in) { @@ -47,6 +47,7 @@ template class contract_instance_retrieval : public Relation class contract_instance_retrieval : public Relation::accumulate(ContainerOverSubrelations& static_cast(in.get(C::contract_instance_retrieval_init_hash)); std::get<16>(evals) += (tmp * scaling_factor); } - { + { // INSTANCE_MEMBER_IMMUTABLES_HASH_IS_ZERO_IF_DNE using View = typename std::tuple_element_t<17, ContainerOverSubrelations>::View; + auto tmp = static_cast(in.get(C::contract_instance_retrieval_sel)) * + (FF(1) - static_cast(in.get(C::contract_instance_retrieval_exists))) * + static_cast(in.get(C::contract_instance_retrieval_immutables_hash)); + std::get<17>(evals) += (tmp * scaling_factor); + } + { + using View = typename std::tuple_element_t<18, ContainerOverSubrelations>::View; auto tmp = (static_cast(in.get(C::contract_instance_retrieval_should_check_for_update)) - static_cast(in.get(C::contract_instance_retrieval_should_check_nullifier)) * static_cast(in.get(C::contract_instance_retrieval_exists))); - std::get<17>(evals) += (tmp * scaling_factor); + std::get<18>(evals) += (tmp * scaling_factor); } } diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/get_contract_instance_impl.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/get_contract_instance_impl.hpp index c807d2b34b16..f27fca3e9db1 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/get_contract_instance_impl.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/get_contract_instance_impl.hpp @@ -74,7 +74,9 @@ void get_contract_instanceImpl::accumulate(ContainerOverSubrelations& evals static_cast(in.get(C::get_contract_instance_is_class_id)) * static_cast(in.get(C::get_contract_instance_retrieved_class_id)) + static_cast(in.get(C::get_contract_instance_is_init_hash)) * - static_cast(in.get(C::get_contract_instance_retrieved_init_hash)))); + static_cast(in.get(C::get_contract_instance_retrieved_init_hash)) + + static_cast(in.get(C::get_contract_instance_is_immutables_hash)) * + static_cast(in.get(C::get_contract_instance_retrieved_immutables_hash)))); std::get<6>(evals) += (tmp * scaling_factor); } { // MEMBER_WRITE_OFFSET diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_address_derivation.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_address_derivation.hpp index dd7af40e2658..f446ee1ff839 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_address_derivation.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_address_derivation.hpp @@ -26,7 +26,7 @@ struct lookup_address_derivation_salted_initialization_hash_poseidon2_0_settings ColumnAndShifts::address_derivation_salt, ColumnAndShifts::address_derivation_init_hash, ColumnAndShifts::address_derivation_salted_init_hash, - ColumnAndShifts::address_derivation_const_four + ColumnAndShifts::address_derivation_const_five }; static constexpr std::array DST_COLUMNS = { ColumnAndShifts::poseidon2_hash_input_0, @@ -55,7 +55,7 @@ struct lookup_address_derivation_salted_initialization_hash_poseidon2_1_settings static constexpr Column INVERSES = Column::lookup_address_derivation_salted_initialization_hash_poseidon2_1_inv; static constexpr std::array SRC_COLUMNS = { ColumnAndShifts::address_derivation_deployer_addr, - ColumnAndShifts::precomputed_zero, + ColumnAndShifts::address_derivation_immutables_hash, ColumnAndShifts::precomputed_zero, ColumnAndShifts::address_derivation_salted_init_hash }; diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_contract_instance_retrieval.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_contract_instance_retrieval.hpp index a314f368785e..628f929272ad 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_contract_instance_retrieval.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_contract_instance_retrieval.hpp @@ -108,7 +108,7 @@ using lookup_contract_instance_retrieval_deployment_nullifier_read_relation = struct lookup_contract_instance_retrieval_address_derivation_settings_ { static constexpr std::string_view NAME = "LOOKUP_CONTRACT_INSTANCE_RETRIEVAL_ADDRESS_DERIVATION"; static constexpr std::string_view RELATION_NAME = "contract_instance_retrieval"; - static constexpr size_t LOOKUP_TUPLE_SIZE = 13; + static constexpr size_t LOOKUP_TUPLE_SIZE = 14; static constexpr Column SRC_SELECTOR = Column::contract_instance_retrieval_exists; static constexpr Column DST_SELECTOR = Column::address_derivation_sel; static constexpr Column COUNTS = Column::lookup_contract_instance_retrieval_address_derivation_counts; @@ -119,6 +119,7 @@ struct lookup_contract_instance_retrieval_address_derivation_settings_ { ColumnAndShifts::contract_instance_retrieval_deployer_addr, ColumnAndShifts::contract_instance_retrieval_original_class_id, ColumnAndShifts::contract_instance_retrieval_init_hash, + ColumnAndShifts::contract_instance_retrieval_immutables_hash, ColumnAndShifts::contract_instance_retrieval_nullifier_key_x, ColumnAndShifts::contract_instance_retrieval_nullifier_key_y, ColumnAndShifts::contract_instance_retrieval_incoming_viewing_key_x, @@ -134,6 +135,7 @@ struct lookup_contract_instance_retrieval_address_derivation_settings_ { ColumnAndShifts::address_derivation_deployer_addr, ColumnAndShifts::address_derivation_class_id, ColumnAndShifts::address_derivation_init_hash, + ColumnAndShifts::address_derivation_immutables_hash, ColumnAndShifts::address_derivation_nullifier_key_x, ColumnAndShifts::address_derivation_nullifier_key_y, ColumnAndShifts::address_derivation_incoming_viewing_key_x, diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_get_contract_instance.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_get_contract_instance.hpp index 44537395dab7..557d30fd5643 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_get_contract_instance.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_get_contract_instance.hpp @@ -16,7 +16,7 @@ namespace bb::avm2 { struct lookup_get_contract_instance_precomputed_info_settings_ { static constexpr std::string_view NAME = "LOOKUP_GET_CONTRACT_INSTANCE_PRECOMPUTED_INFO"; static constexpr std::string_view RELATION_NAME = "get_contract_instance"; - static constexpr size_t LOOKUP_TUPLE_SIZE = 5; + static constexpr size_t LOOKUP_TUPLE_SIZE = 6; static constexpr Column SRC_SELECTOR = Column::get_contract_instance_is_valid_writes_in_bounds; static constexpr Column DST_SELECTOR = Column::precomputed_sel_range_8; static constexpr Column COUNTS = Column::lookup_get_contract_instance_precomputed_info_counts; @@ -26,14 +26,13 @@ struct lookup_get_contract_instance_precomputed_info_settings_ { ColumnAndShifts::get_contract_instance_is_valid_member_enum, ColumnAndShifts::get_contract_instance_is_deployer, ColumnAndShifts::get_contract_instance_is_class_id, - ColumnAndShifts::get_contract_instance_is_init_hash + ColumnAndShifts::get_contract_instance_is_init_hash, + ColumnAndShifts::get_contract_instance_is_immutables_hash }; static constexpr std::array DST_COLUMNS = { - ColumnAndShifts::precomputed_idx, - ColumnAndShifts::precomputed_is_valid_member_enum, - ColumnAndShifts::precomputed_is_deployer, - ColumnAndShifts::precomputed_is_class_id, - ColumnAndShifts::precomputed_is_init_hash + ColumnAndShifts::precomputed_idx, ColumnAndShifts::precomputed_is_valid_member_enum, + ColumnAndShifts::precomputed_is_deployer, ColumnAndShifts::precomputed_is_class_id, + ColumnAndShifts::precomputed_is_init_hash, ColumnAndShifts::precomputed_is_immutables_hash }; }; @@ -48,7 +47,7 @@ using lookup_get_contract_instance_precomputed_info_relation = struct lookup_get_contract_instance_contract_instance_retrieval_settings_ { static constexpr std::string_view NAME = "LOOKUP_GET_CONTRACT_INSTANCE_CONTRACT_INSTANCE_RETRIEVAL"; static constexpr std::string_view RELATION_NAME = "get_contract_instance"; - static constexpr size_t LOOKUP_TUPLE_SIZE = 7; + static constexpr size_t LOOKUP_TUPLE_SIZE = 8; static constexpr Column SRC_SELECTOR = Column::get_contract_instance_is_valid_member_enum; static constexpr Column DST_SELECTOR = Column::contract_instance_retrieval_sel; static constexpr Column COUNTS = Column::lookup_get_contract_instance_contract_instance_retrieval_counts; @@ -60,7 +59,8 @@ struct lookup_get_contract_instance_contract_instance_retrieval_settings_ { ColumnAndShifts::get_contract_instance_instance_exists, ColumnAndShifts::get_contract_instance_retrieved_deployer_addr, ColumnAndShifts::get_contract_instance_retrieved_class_id, - ColumnAndShifts::get_contract_instance_retrieved_init_hash + ColumnAndShifts::get_contract_instance_retrieved_init_hash, + ColumnAndShifts::get_contract_instance_retrieved_immutables_hash }; static constexpr std::array DST_COLUMNS = { ColumnAndShifts::contract_instance_retrieval_address, @@ -69,7 +69,8 @@ struct lookup_get_contract_instance_contract_instance_retrieval_settings_ { ColumnAndShifts::contract_instance_retrieval_exists, ColumnAndShifts::contract_instance_retrieval_deployer_addr, ColumnAndShifts::contract_instance_retrieval_current_class_id, - ColumnAndShifts::contract_instance_retrieval_init_hash + ColumnAndShifts::contract_instance_retrieval_init_hash, + ColumnAndShifts::contract_instance_retrieval_immutables_hash }; }; diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/events/get_contract_instance_event.hpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/events/get_contract_instance_event.hpp index a9d7b7195c10..bbc0ecc89a1c 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/events/get_contract_instance_event.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/events/get_contract_instance_event.hpp @@ -26,12 +26,13 @@ struct GetContractInstanceEvent { FF nullifier_tree_root = 0; FF public_data_tree_root = 0; - // Instance retrieval results including all three members which are all needed for tracegen + // Instance retrieval results including all four members which are all needed for tracegen // despite only needing the selected member in simulation. bool instance_exists = false; FF retrieved_deployer_addr = 0; FF retrieved_class_id = 0; FF retrieved_init_hash = 0; + FF retrieved_immutables_hash = 0; }; } // namespace bb::avm2::simulation diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/gadgets/address_derivation.cpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/gadgets/address_derivation.cpp index a52fb7c0ef01..2a71e5641aa1 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/gadgets/address_derivation.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/gadgets/address_derivation.cpp @@ -15,10 +15,11 @@ namespace bb::avm2::simulation { * If the address has already been derived, an event has already been emitted and we skip * repeating the computation and emission. Otherwise, we compute the address from the instance * members using the poseidon2, scalar_mul, and ecc traces, which is given as: - * 1. salted_init_hash = Poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash, deployer_addr) + * 1. salted_init_hash = Poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash, deployer_addr, + * immutables_hash) * 2. partial_address = Poseidon2(DOM_SEP__PARTIAL_ADDRESS, class_id, salted_init_hash) * 3. public_keys_hash = Poseidon2(DOM_SEP__PUBLIC_KEYS_HASH, [...public_keys.to_fields()]) - * 4. preaddress = Poseidon2(DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address) + * 4. preaddress = Poseidon2(DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address) * 5. preaddress_public_key = preaddress * G1 (Grumpkin scalar multiplication) * 6. address = (preaddress_public_key + incoming_viewing_key).x (Grumpkin EC add) * and we add the output to the local cache. @@ -44,8 +45,11 @@ void AddressDerivation::assert_derivation(const AztecAddress& address, const Con // First time seeing this address - do the actual derivation. // Emits Poseidon2HashEvents and Poseidon2PermutationEvents, see #[SALTED_INITIALIZATION_HASH_POSEIDON2_i] in // address_derivation.pil. - FF salted_initialization_hash = poseidon2.hash( - { DOM_SEP__SALTED_INITIALIZATION_HASH, instance.salt, instance.initialization_hash, instance.deployer }); + FF salted_initialization_hash = poseidon2.hash({ DOM_SEP__SALTED_INITIALIZATION_HASH, + instance.salt, + instance.initialization_hash, + instance.deployer, + instance.immutables_hash }); // Emits Poseidon2HashEvents and Poseidon2PermutationEvents, see #[PARTIAL_ADDRESS_POSEIDON2] in // address_derivation.pil. FF partial_address = @@ -65,7 +69,7 @@ void AddressDerivation::assert_derivation(const AztecAddress& address, const Con // address_derivation.pil. FF public_keys_hash = poseidon2.hash(public_key_hash_vec); // Emits Poseidon2HashEvents and Poseidon2PermutationEvents, see #[PREADDRESS_POSEIDON2] in address_derivation.pil. - FF preaddress = poseidon2.hash({ DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address }); + FF preaddress = poseidon2.hash({ DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address }); // Note: the below ecc calls assume points are on the curve. We know preaddress_public_key is (by definition), // but it may be possible that incoming_viewing_key is not. diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/gadgets/address_derivation.test.cpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/gadgets/address_derivation.test.cpp index 523e7ee6fd5a..9a4e78cf5c84 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/gadgets/address_derivation.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/gadgets/address_derivation.test.cpp @@ -40,9 +40,11 @@ TEST(AvmSimulationAddressDerivationTest, Positive) ContractInstance instance = testing::random_contract_instance(); AztecAddress derived_address = compute_contract_address(instance); - std::vector salted_init_hash_inputs = { - DOM_SEP__SALTED_INITIALIZATION_HASH, instance.salt, instance.initialization_hash, instance.deployer - }; + std::vector salted_init_hash_inputs = { DOM_SEP__SALTED_INITIALIZATION_HASH, + instance.salt, + instance.initialization_hash, + instance.deployer, + instance.immutables_hash }; FF salted_init_hash = poseidon2::hash(salted_init_hash_inputs); std::vector partial_address_inputs = { DOM_SEP__PARTIAL_ADDRESS, @@ -52,7 +54,7 @@ TEST(AvmSimulationAddressDerivationTest, Positive) FF public_keys_hash = hash_public_keys(instance.public_keys); - std::vector preaddress_inputs = { DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address }; + std::vector preaddress_inputs = { DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address }; FF preaddress = poseidon2::hash(preaddress_inputs); EmbeddedCurvePoint g1 = EmbeddedCurvePoint::one(); @@ -93,9 +95,11 @@ TEST(AvmSimulationAddressDerivationTest, Negative) ContractInstance instance = testing::random_contract_instance(); AztecAddress derived_address = compute_contract_address(instance); - std::vector salted_init_hash_inputs = { - DOM_SEP__SALTED_INITIALIZATION_HASH, instance.salt, instance.initialization_hash, instance.deployer - }; + std::vector salted_init_hash_inputs = { DOM_SEP__SALTED_INITIALIZATION_HASH, + instance.salt, + instance.initialization_hash, + instance.deployer, + instance.immutables_hash }; FF salted_init_hash = poseidon2::hash(salted_init_hash_inputs); std::vector partial_address_inputs = { DOM_SEP__PARTIAL_ADDRESS, @@ -105,7 +109,7 @@ TEST(AvmSimulationAddressDerivationTest, Negative) FF public_keys_hash = hash_public_keys(instance.public_keys); - std::vector preaddress_inputs = { DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address }; + std::vector preaddress_inputs = { DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address }; FF preaddress = poseidon2::hash(preaddress_inputs); EmbeddedCurvePoint g1 = EmbeddedCurvePoint::one(); @@ -123,7 +127,7 @@ TEST(AvmSimulationAddressDerivationTest, Negative) instance.public_keys.nullifier_key = AffinePoint::one(); public_keys_hash = hash_public_keys(instance.public_keys); - preaddress_inputs = { DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address }; + preaddress_inputs = { DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address }; preaddress = poseidon2::hash(preaddress_inputs); preaddress_public_key = g1 * Fq(preaddress); address_point = preaddress_public_key + instance.public_keys.incoming_viewing_key; diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/gadgets/get_contract_instance.cpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/gadgets/get_contract_instance.cpp index 91b2818a724c..c79ed4ae21b7 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/gadgets/get_contract_instance.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/gadgets/get_contract_instance.cpp @@ -39,7 +39,8 @@ GetContractInstance::GetContractInstance(ExecutionIdManagerInterface& execution_ * @param memory The memory interface for the current context. * @param contract_address The address of the contract to look up. * @param dst_offset The memory offset at which to write the exists flag. - * @param member_enum The enum selecting which instance member to retrieve (deployer/class_id/init_hash). + * @param member_enum The enum selecting which instance member to retrieve + * (deployer/class_id/init_hash/immutables_hash). * @throws GetContractInstanceException If dst_offset+1 is out of bounds (checked first). * @throws GetContractInstanceException If member_enum is invalid (checked after bounds check). */ @@ -90,17 +91,20 @@ void GetContractInstance::get_contract_instance(MemoryInterface& memory, instance_exists ? select_instance_member(maybe_instance.value(), member_enum) : FF(0); write_results(memory, dst_offset, instance_exists, selected_member_value); - event_emitter.emit({ .execution_clk = execution_clk, - .contract_address = contract_address, - .dst_offset = dst_offset, - .member_enum = member_enum, - .space_id = space_id, - .nullifier_tree_root = nullifier_tree_root, - .public_data_tree_root = public_data_tree_root, - .instance_exists = instance_exists, - .retrieved_deployer_addr = instance_exists ? maybe_instance->deployer : FF(0), - .retrieved_class_id = instance_exists ? maybe_instance->current_contract_class_id : FF(0), - .retrieved_init_hash = instance_exists ? maybe_instance->initialization_hash : FF(0) }); + event_emitter.emit({ + .execution_clk = execution_clk, + .contract_address = contract_address, + .dst_offset = dst_offset, + .member_enum = member_enum, + .space_id = space_id, + .nullifier_tree_root = nullifier_tree_root, + .public_data_tree_root = public_data_tree_root, + .instance_exists = instance_exists, + .retrieved_deployer_addr = instance_exists ? maybe_instance->deployer : FF(0), + .retrieved_class_id = instance_exists ? maybe_instance->current_contract_class_id : FF(0), + .retrieved_init_hash = instance_exists ? maybe_instance->initialization_hash : FF(0), + .retrieved_immutables_hash = instance_exists ? maybe_instance->immutables_hash : FF(0), + }); } /** @@ -139,6 +143,8 @@ FF GetContractInstance::select_instance_member(const ContractInstance& instance, return instance.current_contract_class_id; case ContractInstanceMember::INIT_HASH: return instance.initialization_hash; + case ContractInstanceMember::IMMUTABLES_HASH: + return instance.immutables_hash; default: throw std::runtime_error("This error should have been handled earlier! Invalid member enum: " + std::to_string(member_enum)); diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/contract_crypto.cpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/contract_crypto.cpp index 77db48bc7606..ca7e6d565f3b 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/contract_crypto.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/contract_crypto.cpp @@ -95,12 +95,13 @@ FF compute_contract_address(const ContractInstance& contract_instance) FF salted_initialization_hash = poseidon2::hash({ DOM_SEP__SALTED_INITIALIZATION_HASH, contract_instance.salt, contract_instance.initialization_hash, - contract_instance.deployer }); + contract_instance.deployer, + contract_instance.immutables_hash }); FF partial_address = poseidon2::hash( { DOM_SEP__PARTIAL_ADDRESS, contract_instance.original_contract_class_id, salted_initialization_hash }); FF public_keys_hash = hash_public_keys(contract_instance.public_keys); - FF h = poseidon2::hash({ DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address }); + FF h = poseidon2::hash({ DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address }); // This is safe since BN254_Fr < GRUMPKIN_Fr so we know there is no modulo reduction grumpkin::fr h_fq = grumpkin::fr(h); BB_ASSERT(contract_instance.public_keys.incoming_viewing_key.on_curve(), diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/hinting_dbs.cpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/hinting_dbs.cpp index 71f55503510f..d470b3de7430 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/hinting_dbs.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/hinting_dbs.cpp @@ -31,6 +31,7 @@ std::optional HintingContractsDB::get_contract_instance(const .current_contract_class_id = instance->current_contract_class_id, .original_contract_class_id = instance->original_contract_class_id, .initialization_hash = instance->initialization_hash, + .immutables_hash = instance->immutables_hash, .public_keys = PublicKeysHint{ .master_nullifier_public_key = instance->public_keys.nullifier_key, .master_incoming_viewing_public_key = instance->public_keys.incoming_viewing_key, diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/raw_data_dbs.cpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/raw_data_dbs.cpp index 43789d46d53e..07dbf74e44c1 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/raw_data_dbs.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/raw_data_dbs.cpp @@ -113,6 +113,7 @@ std::optional HintedRawContractDB::get_contract_instance(const .current_contract_class_id = contract_instance_hint.current_contract_class_id, .original_contract_class_id = contract_instance_hint.original_contract_class_id, .initialization_hash = contract_instance_hint.initialization_hash, + .immutables_hash = contract_instance_hint.immutables_hash, .public_keys = PublicKeys{ .nullifier_key = contract_instance_hint.public_keys.master_nullifier_public_key, diff --git a/barretenberg/cpp/src/barretenberg/vm2/testing/avm_inputs.testdata.bin b/barretenberg/cpp/src/barretenberg/vm2/testing/avm_inputs.testdata.bin index 515bb19cc8da..0a6a56584a8c 100644 Binary files a/barretenberg/cpp/src/barretenberg/vm2/testing/avm_inputs.testdata.bin and b/barretenberg/cpp/src/barretenberg/vm2/testing/avm_inputs.testdata.bin differ diff --git a/barretenberg/cpp/src/barretenberg/vm2/testing/fixtures.cpp b/barretenberg/cpp/src/barretenberg/vm2/testing/fixtures.cpp index 1d26f21b5482..fe0350f2537b 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/testing/fixtures.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/testing/fixtures.cpp @@ -163,6 +163,7 @@ ContractInstance random_contract_instance() .current_contract_class_id = FF::random_element(), .original_contract_class_id = FF::random_element(), .initialization_hash = FF::random_element(), + .immutables_hash = FF::random_element(), .public_keys = PublicKeys{ .nullifier_key = AffinePoint::random_element(), .incoming_viewing_key = AffinePoint::random_element(), diff --git a/barretenberg/cpp/src/barretenberg/vm2/testing/minimal_tx.testdata.bin b/barretenberg/cpp/src/barretenberg/vm2/testing/minimal_tx.testdata.bin index b1bad858f3f2..e37c2e550ebc 100644 Binary files a/barretenberg/cpp/src/barretenberg/vm2/testing/minimal_tx.testdata.bin and b/barretenberg/cpp/src/barretenberg/vm2/testing/minimal_tx.testdata.bin differ diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/address_derivation_trace.cpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/address_derivation_trace.cpp index cc0cf036fe3a..697858f10dad 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/address_derivation_trace.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/address_derivation_trace.cpp @@ -18,10 +18,11 @@ namespace bb::avm2::tracegen { * * This trace is non memory-aware and does not handle any errors. It relies on the poseidon2, * scalar_mul, and ecc traces to constrain correctness of the address, which is derived as: - * 1. salted_init_hash = Poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash, deployer_addr) + * 1. salted_init_hash = Poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash, deployer_addr, + * immutables_hash) * 2. partial_address = Poseidon2(DOM_SEP__PARTIAL_ADDRESS, class_id, salted_init_hash) * 3. public_keys_hash = Poseidon2(DOM_SEP__PUBLIC_KEYS_HASH, [...public_keys.to_fields()]) - * 4. preaddress = Poseidon2(DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address) + * 4. preaddress = Poseidon2(DOM_SEP__CONTRACT_ADDRESS_V2, public_keys_hash, partial_address) * 5. preaddress_public_key = preaddress * G1 (Grumpkin scalar multiplication) * 6. address = (preaddress_public_key + incoming_viewing_key).x (Grumpkin EC add) * @@ -48,6 +49,7 @@ void AddressDerivationTraceBuilder::process( { C::address_derivation_deployer_addr, event.instance.deployer }, { C::address_derivation_class_id, event.instance.original_contract_class_id }, { C::address_derivation_init_hash, event.instance.initialization_hash }, + { C::address_derivation_immutables_hash, event.instance.immutables_hash }, // Public keys (Grumpkin curve points). { C::address_derivation_nullifier_key_x, event.instance.public_keys.nullifier_key.x }, { C::address_derivation_nullifier_key_y, event.instance.public_keys.nullifier_key.y }, @@ -70,12 +72,13 @@ void AddressDerivationTraceBuilder::process( { C::address_derivation_salted_init_hash_domain_separator, DOM_SEP__SALTED_INITIALIZATION_HASH }, { C::address_derivation_partial_address_domain_separator, DOM_SEP__PARTIAL_ADDRESS }, { C::address_derivation_public_keys_hash_domain_separator, DOM_SEP__PUBLIC_KEYS_HASH }, - { C::address_derivation_preaddress_domain_separator, DOM_SEP__CONTRACT_ADDRESS_V1 }, + { C::address_derivation_preaddress_domain_separator, DOM_SEP__CONTRACT_ADDRESS_V2 }, { C::address_derivation_g1_x, g1.x() }, { C::address_derivation_g1_y, g1.y() }, { C::address_derivation_const_two, 2 }, { C::address_derivation_const_three, 3 }, { C::address_derivation_const_four, 4 }, + { C::address_derivation_const_five, 5 }, { C::address_derivation_const_thirteen, 13 } } }); row++; } diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/address_derivation_trace.test.cpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/address_derivation_trace.test.cpp index 42fc8dda7bae..52225443ddc2 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/address_derivation_trace.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/address_derivation_trace.test.cpp @@ -52,6 +52,7 @@ TEST(AddressDerivationTraceGenTest, TraceGeneration) ROW_FIELD_EQ(address_derivation_deployer_addr, instance.deployer), ROW_FIELD_EQ(address_derivation_class_id, instance.original_contract_class_id), ROW_FIELD_EQ(address_derivation_init_hash, instance.initialization_hash), + ROW_FIELD_EQ(address_derivation_immutables_hash, instance.immutables_hash), ROW_FIELD_EQ(address_derivation_nullifier_key_x, instance.public_keys.nullifier_key.x), ROW_FIELD_EQ(address_derivation_nullifier_key_y, instance.public_keys.nullifier_key.y), ROW_FIELD_EQ(address_derivation_incoming_viewing_key_x, instance.public_keys.incoming_viewing_key.x), @@ -70,7 +71,7 @@ TEST(AddressDerivationTraceGenTest, TraceGeneration) ROW_FIELD_EQ(address_derivation_salted_init_hash_domain_separator, DOM_SEP__SALTED_INITIALIZATION_HASH), ROW_FIELD_EQ(address_derivation_partial_address_domain_separator, DOM_SEP__PARTIAL_ADDRESS), ROW_FIELD_EQ(address_derivation_public_keys_hash_domain_separator, DOM_SEP__PUBLIC_KEYS_HASH), - ROW_FIELD_EQ(address_derivation_preaddress_domain_separator, DOM_SEP__CONTRACT_ADDRESS_V1), + ROW_FIELD_EQ(address_derivation_preaddress_domain_separator, DOM_SEP__CONTRACT_ADDRESS_V2), ROW_FIELD_EQ(address_derivation_g1_x, EmbeddedCurvePoint::one().x()), ROW_FIELD_EQ(address_derivation_g1_y, EmbeddedCurvePoint::one().y()), ROW_FIELD_EQ(address_derivation_const_two, 2), diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.cpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.cpp index 1ca1e17954c2..e436bf1b891c 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.cpp @@ -62,6 +62,7 @@ void ContractInstanceRetrievalTraceBuilder::process( { C::contract_instance_retrieval_original_class_id, event.contract_instance.original_contract_class_id }, { C::contract_instance_retrieval_init_hash, event.contract_instance.initialization_hash }, + { C::contract_instance_retrieval_immutables_hash, event.contract_instance.immutables_hash }, // Public keys (hinted) { C::contract_instance_retrieval_nullifier_key_x, event.contract_instance.public_keys.nullifier_key.x }, diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.test.cpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.test.cpp index 865470f908cd..b831956b057e 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/contract_instance_retrieval_trace.test.cpp @@ -28,6 +28,7 @@ ContractInstance create_test_contract_instance(uint32_t salt_value = 123) .current_contract_class_id = FF(0xdeadbeefULL), .original_contract_class_id = FF(0xcafebabeULL), .initialization_hash = FF(0x11111111ULL), + .immutables_hash = FF(0x22222222ULL), .public_keys = PublicKeys{ .nullifier_key = { FF(0x100), FF(0x101) }, @@ -98,6 +99,7 @@ TEST(ContractInstanceRetrievalTraceGenTest, SingleEvent) ROW_FIELD_EQ(contract_instance_retrieval_current_class_id, 0xdeadbeefULL), ROW_FIELD_EQ(contract_instance_retrieval_original_class_id, 0xcafebabeULL), ROW_FIELD_EQ(contract_instance_retrieval_init_hash, 0x11111111ULL), + ROW_FIELD_EQ(contract_instance_retrieval_immutables_hash, 0x22222222ULL), // Public keys ROW_FIELD_EQ(contract_instance_retrieval_nullifier_key_x, 0x100), diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/lib/get_contract_instance_spec.cpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/lib/get_contract_instance_spec.cpp index 3522e60e2187..4fef6af7e196 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/lib/get_contract_instance_spec.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/lib/get_contract_instance_spec.cpp @@ -9,7 +9,7 @@ namespace bb::avm2::tracegen { * Returns boolean selectors indicating whether the enum is valid and which member it selects. * See the ASCII table in get_contract_instance.pil for the full mapping. * - * @param member_enum The member enum value (0=deployer, 1=class_id, 2=init_hash, 3+=invalid). + * @param member_enum The member enum value (0=deployer, 1=class_id, 2=init_hash, 3=immutables_hash, 4+=invalid). * @return A Table struct with is_valid_member_enum and the per-member selector flags. */ GetContractInstanceSpec::Table GetContractInstanceSpec::get_table(uint8_t member_enum) @@ -20,6 +20,7 @@ GetContractInstanceSpec::Table GetContractInstanceSpec::get_table(uint8_t member .is_deployer = false, .is_class_id = false, .is_init_hash = false, + .is_immutables_hash = false, }; switch (static_cast(member_enum)) { @@ -35,6 +36,10 @@ GetContractInstanceSpec::Table GetContractInstanceSpec::get_table(uint8_t member table.is_valid_member_enum = true; table.is_init_hash = true; return table; + case ContractInstanceMember::IMMUTABLES_HASH: + table.is_valid_member_enum = true; + table.is_immutables_hash = true; + return table; default: // Invalid enum - return defaults (all false) return table; diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/lib/get_contract_instance_spec.hpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/lib/get_contract_instance_spec.hpp index 18509f022d31..b925c9c85c59 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/lib/get_contract_instance_spec.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/lib/get_contract_instance_spec.hpp @@ -11,6 +11,7 @@ class GetContractInstanceSpec { bool is_deployer; bool is_class_id; bool is_init_hash; + bool is_immutables_hash; }; static Table get_table(uint8_t member_enum); diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/opcodes/get_contract_instance_trace.cpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/opcodes/get_contract_instance_trace.cpp index 2801db9e1b02..58e4b9d8b0a0 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/opcodes/get_contract_instance_trace.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/opcodes/get_contract_instance_trace.cpp @@ -45,6 +45,7 @@ void GetContractInstanceTraceBuilder::process( bool is_deployer = false; bool is_class_id = false; bool is_init_hash = false; + bool is_immutables_hash = false; if (writes_are_in_bounds) { // Get precomputed table values for this member enum @@ -54,14 +55,16 @@ void GetContractInstanceTraceBuilder::process( is_deployer = spec.is_deployer; is_class_id = spec.is_class_id; is_init_hash = spec.is_init_hash; + is_immutables_hash = spec.is_immutables_hash; } bool has_error = !(writes_are_in_bounds && is_valid_member_enum); - FF selected_member = is_deployer ? event.retrieved_deployer_addr - : is_class_id ? event.retrieved_class_id - : is_init_hash ? event.retrieved_init_hash - : FF(0); + FF selected_member = is_deployer ? event.retrieved_deployer_addr + : is_class_id ? event.retrieved_class_id + : is_init_hash ? event.retrieved_init_hash + : is_immutables_hash ? event.retrieved_immutables_hash + : FF(0); trace.set( row, @@ -86,11 +89,13 @@ void GetContractInstanceTraceBuilder::process( { C::get_contract_instance_is_deployer, is_deployer ? 1 : 0 }, { C::get_contract_instance_is_class_id, is_class_id ? 1 : 0 }, { C::get_contract_instance_is_init_hash, is_init_hash ? 1 : 0 }, + { C::get_contract_instance_is_immutables_hash, is_immutables_hash ? 1 : 0 }, // Retrieval results { C::get_contract_instance_instance_exists, event.instance_exists ? 1 : 0 }, { C::get_contract_instance_retrieved_deployer_addr, event.retrieved_deployer_addr }, { C::get_contract_instance_retrieved_class_id, event.retrieved_class_id }, { C::get_contract_instance_retrieved_init_hash, event.retrieved_init_hash }, + { C::get_contract_instance_retrieved_immutables_hash, event.retrieved_immutables_hash }, { C::get_contract_instance_selected_member, selected_member }, // Memory writing { C::get_contract_instance_member_write_offset, writes_are_in_bounds ? (event.dst_offset + 1) : 0 }, diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/opcodes/get_contract_instance_trace.test.cpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/opcodes/get_contract_instance_trace.test.cpp index 84a2177fdfbf..776bed4461ea 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/opcodes/get_contract_instance_trace.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/opcodes/get_contract_instance_trace.test.cpp @@ -205,5 +205,79 @@ TEST(GetContractInstanceTraceTest, OutOfBoundsWrite) ))); } +TEST(GetContractInstanceTraceTest, ValidImmutablesHashEnum) +{ + // Test constants + const uint32_t execution_clk = 42; + const FF nullifier_tree_root = 0x1234; + const FF public_data_tree_root = 0x5678; + const FF contract_address = 0x1234; + const uint32_t dst_offset = 100; + const uint16_t space_id = 1; + const FF deployer_addr = 0x5678; + const FF class_id = 0x9ABC; + const FF init_hash = 0xDEF0; + const FF immutables_hash = 0xCAFE; + const uint32_t dst_offset_plus_one = dst_offset + 1; + const uint8_t immutables_hash_enum = static_cast(ContractInstanceMember::IMMUTABLES_HASH); + const uint8_t u1_tag = static_cast(ValueTag::U1); + const uint8_t ff_tag = static_cast(ValueTag::FF); + + TestTraceContainer trace; + GetContractInstanceTraceBuilder builder; + simulation::EventEmitter emitter; + + simulation::GetContractInstanceEvent event = { + .execution_clk = execution_clk, + .contract_address = contract_address, + .dst_offset = dst_offset, + .member_enum = immutables_hash_enum, + .space_id = space_id, + .nullifier_tree_root = nullifier_tree_root, + .public_data_tree_root = public_data_tree_root, + .instance_exists = true, + .retrieved_deployer_addr = deployer_addr, + .retrieved_class_id = class_id, + .retrieved_init_hash = init_hash, + .retrieved_immutables_hash = immutables_hash, + }; + + emitter.emit(std::move(event)); + auto events = emitter.dump_events(); + + builder.process(events, trace); + + EXPECT_THAT(trace.as_rows(), + ElementsAre( + // Row 0: Skippable gadget selector + AllOf(ROW_FIELD_EQ(get_contract_instance_sel, 0)), + // Row 1: Active GetContractInstance gadget for IMMUTABLES_HASH + AllOf(ROW_FIELD_EQ(get_contract_instance_sel, 1), + ROW_FIELD_EQ(get_contract_instance_clk, execution_clk), + ROW_FIELD_EQ(get_contract_instance_contract_address, contract_address), + ROW_FIELD_EQ(get_contract_instance_dst_offset, dst_offset), + ROW_FIELD_EQ(get_contract_instance_member_enum, immutables_hash_enum), + ROW_FIELD_EQ(get_contract_instance_space_id, space_id), + // Member selection flags + ROW_FIELD_EQ(get_contract_instance_is_valid_member_enum, 1), + ROW_FIELD_EQ(get_contract_instance_is_deployer, 0), + ROW_FIELD_EQ(get_contract_instance_is_class_id, 0), + ROW_FIELD_EQ(get_contract_instance_is_init_hash, 0), + ROW_FIELD_EQ(get_contract_instance_is_immutables_hash, 1), + // Error flags + ROW_FIELD_EQ(get_contract_instance_sel_error, 0), + // Retrieved members + ROW_FIELD_EQ(get_contract_instance_retrieved_deployer_addr, deployer_addr), + ROW_FIELD_EQ(get_contract_instance_retrieved_class_id, class_id), + ROW_FIELD_EQ(get_contract_instance_retrieved_init_hash, init_hash), + ROW_FIELD_EQ(get_contract_instance_retrieved_immutables_hash, immutables_hash), + // Selected member is the immutables hash + ROW_FIELD_EQ(get_contract_instance_selected_member, immutables_hash), + // Memory write columns + ROW_FIELD_EQ(get_contract_instance_member_write_offset, dst_offset_plus_one), + ROW_FIELD_EQ(get_contract_instance_exists_tag, u1_tag), + ROW_FIELD_EQ(get_contract_instance_member_tag, ff_tag)))); +} + } // namespace } // namespace bb::avm2::tracegen diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/precomputed_trace.cpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/precomputed_trace.cpp index f39415ef39df..e83d96f7b9e8 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/precomputed_trace.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/precomputed_trace.cpp @@ -466,7 +466,7 @@ void PrecomputedTraceBuilder::process_get_env_var_table(TraceContainer& trace) /** * @brief Populate the GETCONTRACTINSTANCE lookup table. - * @details One row per ContractInstanceMember enum value (DEPLOYER=0, CLASS_ID=1, INIT_HASH=2). + * @details One row per ContractInstanceMember enum value (DEPLOYER=0, CLASS_ID=1, INIT_HASH=2, IMMUTABLES_HASH=3). * Each row holds a validity flag and one-hot member selectors. See * `opcodes/get_contract_instance.pil` for an ascii version of this table. */ @@ -482,6 +482,7 @@ void PrecomputedTraceBuilder::process_get_contract_instance_table(TraceContainer { C::precomputed_is_deployer, spec.is_deployer ? 1 : 0 }, { C::precomputed_is_class_id, spec.is_class_id ? 1 : 0 }, { C::precomputed_is_init_hash, spec.is_init_hash ? 1 : 0 }, + { C::precomputed_is_immutables_hash, spec.is_immutables_hash ? 1 : 0 }, } }); } } diff --git a/docs/docs-developers/docs/foundational-topics/accounts/keys.md b/docs/docs-developers/docs/foundational-topics/accounts/keys.md index 0c673087ca92..39ec6b1f7318 100644 --- a/docs/docs-developers/docs/foundational-topics/accounts/keys.md +++ b/docs/docs-developers/docs/foundational-topics/accounts/keys.md @@ -129,7 +129,7 @@ where: public_keys_hash = hash(Npk_m, Ivpk_m, Ovpk_m, Tpk_m) partial_address = hash(contract_class_id, salted_initialization_hash) contract_class_id = hash(artifact_hash, fn_tree_root, public_bytecode_commitment) - salted_initialization_hash = hash(deployer_address, salt, constructor_hash) + salted_initialization_hash = hash(salt, constructor_hash, deployer_address, immutables_hash) ``` The final address is derived as `address = (pre_address * G + Ivpk_m).x` - only the x-coordinate of the resulting elliptic curve point. diff --git a/docs/docs-developers/docs/resources/migration_notes.md b/docs/docs-developers/docs/resources/migration_notes.md index 1458fba95b12..74bc7c6a7456 100644 --- a/docs/docs-developers/docs/resources/migration_notes.md +++ b/docs/docs-developers/docs/resources/migration_notes.md @@ -9,6 +9,39 @@ Aztec is in active development. Each version may introduce breaking changes that ## TBD +### [Contracts] `ContractInstance` gains `immutablesHash`, address derivation changes + +`ContractInstance` now has a new `immutablesHash: Fr` field that commits to a contract's immutable storage values. The field is folded into the salted initialization hash, so contract addresses are impacted: + +``` +salted_initialization_hash = poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, [salt, initialization_hash, deployer, immutables_hash]) +``` + +**You may need to act if:** + +- You hardcode contract addresses computed from instance fields outside the SDK. Recompute them under the new derivation. +- You parse the `ContractInstancePublished` private log directly. The event payload grows from 15 to 16 fields, with `immutables_hash` inserted between `initialization_hash` and the public-keys block: + + ``` + [tag, address, version, salt, classId, initialization_hash, immutables_hash, ...publicKeys(8), deployer] + ``` + +- You call `ContractInstanceRegistry.publish_for_public_execution` directly. The function now takes 6 arguments instead of 5, with `immutables_hash` inserted between `initialization_hash` and `public_keys`: + + ```diff + - publish_for_public_execution(salt, contract_class_id, initialization_hash, public_keys, universal_deploy) + + publish_for_public_execution(salt, contract_class_id, initialization_hash, immutables_hash, public_keys, universal_deploy) + ``` + +- You call the `GetContractInstance` AVM opcode directly or use the per-member helpers in `aztec-nr`. A new enum value `ContractInstanceMember::IMMUTABLES_HASH = 3` selects `immutables_hash`. Use the wrapper helper from `aztec::oracle::get_contract_instance`: + + ```rust + use aztec::oracle::get_contract_instance::get_contract_instance_immutables_hash_avm; + let immutables_hash: Option = get_contract_instance_immutables_hash_avm(address); + ``` + +The `aztec.js` `publishInstance` helper handles this automatically. + ### [Aztec.nr] `attempt_note_discovery` is no longer exposed; use `process_private_note_msg` `attempt_note_discovery` is now crate-private. Custom message handlers (implementations of `CustomMessageHandler`) that previously called it directly should call `process_private_note_msg` instead, which runs the standard private note message decoding and discovery pipeline. @@ -42,6 +75,7 @@ Aztec is in active development. Each version may introduce breaking changes that ``` **Impact**: Custom message handlers that reused the standard note message processing pipeline must switch to `process_private_note_msg`. Contracts using only built-in private note handling are unaffected. +======= ### [Aztec.nr] TXE `call_public_incognito` no longer takes a `from` parameter diff --git a/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr b/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr index 11eace998fa6..372729c37a9e 100644 --- a/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr +++ b/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr @@ -35,6 +35,10 @@ unconstrained fn get_contract_instance_class_id_oracle_avm(_address: AztecAddres unconstrained fn get_contract_instance_initialization_hash_oracle_avm( _address: AztecAddress, ) -> [GetContractInstanceResult; 1] {} +#[oracle(aztec_avm_getContractInstanceImmutablesHash)] +unconstrained fn get_contract_instance_immutables_hash_oracle_avm( + _address: AztecAddress, +) -> [GetContractInstanceResult; 1] {} unconstrained fn get_contract_instance_deployer_internal_avm(address: AztecAddress) -> [GetContractInstanceResult; 1] { get_contract_instance_deployer_oracle_avm(address) @@ -47,6 +51,11 @@ unconstrained fn get_contract_instance_initialization_hash_internal_avm( ) -> [GetContractInstanceResult; 1] { get_contract_instance_initialization_hash_oracle_avm(address) } +unconstrained fn get_contract_instance_immutables_hash_internal_avm( + address: AztecAddress, +) -> [GetContractInstanceResult; 1] { + get_contract_instance_immutables_hash_oracle_avm(address) +} pub fn get_contract_instance_deployer_avm(address: AztecAddress) -> Option { // Safety: AVM opcodes are constrained by the AVM itself @@ -78,3 +87,13 @@ pub fn get_contract_instance_initialization_hash_avm(address: AztecAddress) -> O Option::none() } } +pub fn get_contract_instance_immutables_hash_avm(address: AztecAddress) -> Option { + // Safety: AVM opcodes are constrained by the AVM itself + let GetContractInstanceResult { exists, member } = + unsafe { get_contract_instance_immutables_hash_internal_avm(address)[0] }; + if exists { + Option::some(member) + } else { + Option::none() + } +} diff --git a/noir-projects/aztec-nr/aztec/src/publish_contract_instance.nr b/noir-projects/aztec-nr/aztec/src/publish_contract_instance.nr index 6cd429499339..157aa6d26b1f 100644 --- a/noir-projects/aztec-nr/aztec/src/publish_contract_instance.nr +++ b/noir-projects/aztec-nr/aztec/src/publish_contract_instance.nr @@ -25,24 +25,25 @@ pub fn publish_contract_instance_for_public_execution(context: &mut PrivateConte // ../../yarn-project/node_modules/.bin/aztec-cli codegen // target/contract_instance_registry_contract-ContractInstanceRegistry.json --nr -o // ./contracts/contract_instance_registry_contract/src/interface - let mut serialized_args = [0; 16]; + let mut serialized_args = [0; 17]; serialized_args[0] = instance.salt; serialized_args[1] = instance.contract_class_id.to_field(); serialized_args[2] = instance.initialization_hash; + serialized_args[3] = instance.immutables_hash; let serialized_public_keys = instance.public_keys.serialize(); for i in 0..12 { - serialized_args[i + 3] = serialized_public_keys[i]; + serialized_args[i + 4] = serialized_public_keys[i]; } - serialized_args[15] = universal_deploy as Field; + serialized_args[16] = universal_deploy as Field; let _call_result = context.call_private_function( CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS, comptime { FunctionSelector::from_signature( - "publish_for_public_execution(Field,(Field),Field,(((Field,Field,bool)),((Field,Field,bool)),((Field,Field,bool)),((Field,Field,bool))),bool)", + "publish_for_public_execution(Field,(Field),Field,Field,(((Field,Field,bool)),((Field,Field,bool)),((Field,Field,bool)),((Field,Field,bool))),bool)", ) }, serialized_args, diff --git a/noir-projects/noir-contracts/contracts/protocol/contract_instance_registry_contract/src/main.nr b/noir-projects/noir-contracts/contracts/protocol/contract_instance_registry_contract/src/main.nr index e8f1e8c0bb4a..ae2dcd0049e8 100644 --- a/noir-projects/noir-contracts/contracts/protocol/contract_instance_registry_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/protocol/contract_instance_registry_contract/src/main.nr @@ -32,6 +32,7 @@ pub contract ContractInstanceRegistry { salt: Field, contract_class_id: ContractClassId, initialization_hash: Field, + immutables_hash: Field, public_keys: PublicKeys, deployer: AztecAddress, } @@ -39,7 +40,7 @@ pub contract ContractInstanceRegistry { // Custom serialization is required because we don't want to waste one field for the `is_infinite` flag of public // key points (public key points will never be the infinity point). impl ContractInstancePublished { - fn serialize_non_standard(self) -> [Field; 15] { + fn serialize_non_standard(self) -> [Field; 16] { [ self.CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE, self.address.to_field(), @@ -47,6 +48,7 @@ pub contract ContractInstanceRegistry { self.salt, self.contract_class_id.to_field(), self.initialization_hash, + self.immutables_hash, self.public_keys.npk_m.serialize()[0], self.public_keys.npk_m.serialize()[1], self.public_keys.ivpk_m.serialize()[0], @@ -77,7 +79,8 @@ pub contract ContractInstanceRegistry { /// Publishes a new contract instance. /// - /// The caller provides deployment parameters (salt, class_id, init_hash, public_keys, universal_deploy). + /// The caller provides deployment parameters (salt, class_id, init_hash, immutables_hash, public_keys, + /// universal_deploy). /// The `universal_deploy` flag controls whether the deployer address is bound into the contract address: /// when true, deployer is zero (anyone can deploy the same instance); when false, deployer is the caller. /// @@ -95,6 +98,7 @@ pub contract ContractInstanceRegistry { salt: Field, contract_class_id: ContractClassId, initialization_hash: Field, + immutables_hash: Field, public_keys: PublicKeys, universal_deploy: bool, ) -> return_data aztec::protocol::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs { @@ -103,7 +107,9 @@ pub contract ContractInstanceRegistry { // body, I have removed that check. assert_compatible_oracle_version(); - let serialized_params: [Field; 16] = [salt, contract_class_id.to_field(), initialization_hash] + // 4 prefix fields (salt, class_id, init_hash, immutables_hash) + 12 public-key fields + 1 universal_deploy + // flag. + let serialized_params: [Field; 17] = [salt, contract_class_id.to_field(), initialization_hash, immutables_hash] .concat(public_keys.serialize()) .concat([universal_deploy.to_field()]); @@ -126,7 +132,13 @@ pub contract ContractInstanceRegistry { context.maybe_msg_sender().unwrap() }; - let partial_address = PartialAddress::compute(contract_class_id, salt, initialization_hash, deployer); + let partial_address = PartialAddress::compute( + contract_class_id, + salt, + initialization_hash, + deployer, + immutables_hash, + ); // Validate public key points lie on the Grumpkin curve and are non-0 to prevent AVM DoS attacks. public_keys.validate_on_curve(); @@ -146,17 +158,15 @@ pub contract ContractInstanceRegistry { address, public_keys, initialization_hash, + immutables_hash, salt, deployer, - version: 1, + version: 2, }; let payload = event.serialize_non_standard(); debug_log_format("ContractInstancePublished: {}", payload); - // We pad the payload with [0] to match the length required by emit_private_log. Since the log is not - // encrypted, padding with zero rather than a random value is acceptable (we don't care about privacy here). - let padded_log = payload.concat([0]); let length = payload.len(); - context.emit_private_log(padded_log, length); + context.emit_private_log(payload, length); // MACRO CODE START context.finish() @@ -307,6 +317,7 @@ pub contract ContractInstanceRegistry { pub _salt: Field, pub _contract_class_id: ContractClassId, pub _initialization_hash: Field, + pub _immutables_hash: Field, pub _public_keys: PublicKeys, pub _universal_deploy: bool, } diff --git a/noir-projects/noir-contracts/contracts/protocol_interface/contract_instance_registry_interface/src/main.nr b/noir-projects/noir-contracts/contracts/protocol_interface/contract_instance_registry_interface/src/main.nr index d672c3b7bf5b..43af16745a71 100644 --- a/noir-projects/noir-contracts/contracts/protocol_interface/contract_instance_registry_interface/src/main.nr +++ b/noir-projects/noir-contracts/contracts/protocol_interface/contract_instance_registry_interface/src/main.nr @@ -25,6 +25,7 @@ pub contract ContractInstanceRegistry { salt: Field, contract_class_id: ContractClassId, initialization_hash: Field, + immutables_hash: Field, public_keys: PublicKeys, universal_deploy: bool, ) {} diff --git a/noir-projects/noir-contracts/contracts/test/avm_test_contract/src/main.nr b/noir-projects/noir-contracts/contracts/test/avm_test_contract/src/main.nr index 6ae17f9c7354..610f8176a3a0 100644 --- a/noir-projects/noir-contracts/contracts/test/avm_test_contract/src/main.nr +++ b/noir-projects/noir-contracts/contracts/test/avm_test_contract/src/main.nr @@ -16,7 +16,7 @@ pub contract AvmTest { use aztec::macros::{functions::{external, view}, storage::storage}; use aztec::oracle::get_contract_instance::{ get_contract_instance_class_id_avm, get_contract_instance_deployer_avm, - get_contract_instance_initialization_hash_avm, + get_contract_instance_immutables_hash_avm, get_contract_instance_initialization_hash_avm, }; use aztec::protocol::abis::function_selector::FunctionSelector; use aztec::protocol::{address::{AztecAddress, EthAddress}, point::Point, scalar::Scalar}; @@ -389,20 +389,24 @@ pub contract AvmTest { [4, 5, 6] // Should not get here. } + // This function is called from avm/avm_simulator.test.ts to test retrieval #[external("public")] fn test_get_contract_instance(address: AztecAddress) { let deployer = get_contract_instance_deployer_avm(address); let class_id = get_contract_instance_class_id_avm(address); let initialization_hash = get_contract_instance_initialization_hash_avm(address); + let immutables_hash = get_contract_instance_immutables_hash_avm(address); assert(deployer.is_some(), "Contract instance not found when getting DEPLOYER!"); assert(class_id.is_some(), "Contract instance not found when getting CLASS_ID!"); assert(initialization_hash.is_some(), "Contract instance not found when getting INIT_HASH!"); + assert(immutables_hash.is_some(), "Contract instance not found when getting IMMUTABLES_HASH!"); // The values here should match those in `avm_simulator.test.ts` assert(deployer.unwrap().eq(AztecAddress::from_field(0x456))); assert(class_id.unwrap().eq(ContractClassId::from_field(0x789))); assert(initialization_hash.unwrap() == 0x101112); + assert(immutables_hash.unwrap() == 0x202221); } #[external("public")] @@ -411,12 +415,14 @@ pub contract AvmTest { expected_deployer: AztecAddress, expected_class_id: ContractClassId, expected_initialization_hash: Field, + expected_immutables_hash: Field, ) { _test_get_contract_instance_matches( address, expected_deployer, expected_class_id, expected_initialization_hash, + expected_immutables_hash, ); } @@ -426,19 +432,23 @@ pub contract AvmTest { expected_deployer: AztecAddress, expected_class_id: ContractClassId, expected_initialization_hash: Field, + expected_immutables_hash: Field, ) { let deployer = get_contract_instance_deployer_avm(address); let class_id = get_contract_instance_class_id_avm(address); let initialization_hash = get_contract_instance_initialization_hash_avm(address); + let immutables_hash = get_contract_instance_immutables_hash_avm(address); assert(deployer.is_some(), "Contract instance not found when getting DEPLOYER!"); assert(class_id.is_some(), "Contract instance not found when getting CLASS_ID!"); assert(initialization_hash.is_some(), "Contract instance not found when getting INIT_HASH!"); + assert(immutables_hash.is_some(), "Contract instance not found when getting IMMUTABLES_HASH!"); // The values here should match those in `avm_simulator.test.ts` assert(deployer.unwrap().eq(expected_deployer)); assert(class_id.unwrap().eq(expected_class_id)); assert(initialization_hash.unwrap().eq(expected_initialization_hash)); + assert(immutables_hash.unwrap().eq(expected_immutables_hash)); // Get a Protocol Contract and it should exist aztec::oracle::logging::debug_log("Get Contract Instance Protocol Contract Instance"); @@ -842,6 +852,7 @@ pub contract AvmTest { expected_deployer: AztecAddress, expected_class_id: ContractClassId, expected_initialization_hash: Field, + expected_immutables_hash: Field, skip_strictly_limited_side_effects: bool, ) { aztec::oracle::logging::debug_log("biwise_ops"); @@ -877,6 +888,7 @@ pub contract AvmTest { expected_deployer, expected_class_id, expected_initialization_hash, + expected_immutables_hash, ); aztec::oracle::logging::debug_log("get_address"); let _ = _get_address(self.address); diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-init/Prover.toml b/noir-projects/noir-protocol-circuits/crates/private-kernel-init/Prover.toml index 11d2e8ee0b13..0e8f59d4e532 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-init/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-init/Prover.toml @@ -1,18 +1,18 @@ -vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" +vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" is_private_only = false -first_nullifier_hint = "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef" +first_nullifier_hint = "0x1e1b0cecb880ad2c476059d7c305e79ead1ca62a54632fb300bec115770fe3a5" revertible_counter_hint = "0x0000000000000000000000000000000000000000000000000000000000000005" [tx_request] -args_hash = "0x2237e42a84e35fc9371ec568e04d6db13130f02f527e0cce6f78ebf038f70f5f" -salt = "0x0dcc552c9a204fa5c60481076f34e420fdd64d81a8c273ad1c336f00b6912f8c" +args_hash = "0x0ec0f8340521ef3f30867c4fa7e8f4436b591f652864991a21ff236ad77ac666" +salt = "0x038cbe72e5b751c6fc7a179546f40648f3e0c247f753127b777dfed95b979f54" [tx_request.origin] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [tx_request.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" [tx_request.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -37,22 +37,22 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 inner = "0x000000000000000000000000000000000000000000000000000000009d57a239" [[protocol_contracts.derived_addresses]] -inner = "0x1520f4bb11a3a1d2248a03d8472e9af4bb8324eb1d2d8c83bce61894383464b9" +inner = "0x0f30810fccea5788a3695b883aa8c37e4fd1c79a0832891c54e4934cdf811264" [[protocol_contracts.derived_addresses]] -inner = "0x26a43bf066852a7b1ec3c5b454f41735fea12e2ffbefed471058124b91d94018" +inner = "0x0de48b8ff9fe893cb66949a352f552cdfa408461b12244558718053fe2f1409c" [[protocol_contracts.derived_addresses]] -inner = "0x1bd26c6831ebc53674b13ac69a0c534563c37e46c2cbb36f2deca107a26515fa" +inner = "0x0d816f861698134be2ab49828cf8130fd9cf10c139bad660c6654d72cbd169e8" [[protocol_contracts.derived_addresses]] -inner = "0x06870c63132d2a4e3356a76d773240efe729e7d9b9380a7a3cf1798fc9031aed" +inner = "0x17f183cae8aba4157ebd8564a2a8126473ddcc286665db9d208b90aef331ec3c" [[protocol_contracts.derived_addresses]] -inner = "0x0083c4dfb922796f1086d399f8f3d021159d1a87ba3b833dcdf9863c630ba643" +inner = "0x01f7f2a0fc5e871935a8f4d3accf162a02d6d7240128ce63fcd45abc0430aa42" [[protocol_contracts.derived_addresses]] -inner = "0x0b4d3a9a7a3caf83f9c2060347e48cc28c7f04d2560d1cbf5bf08d4832128a97" +inner = "0x16cebfb579bb64f80479102113bf35626052c8c36674815d1e4ae3bd6885907b" [[protocol_contracts.derived_addresses]] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -218,7 +218,7 @@ key = [ hash = "0x103023eab6f953f6b7b9525f412e0bc1655bd72d5e4b46ded148c6137deb9006" [private_call.verification_key_hints] -contract_class_artifact_hash = "0x1d8791271c09cabf2ac9aaa6bd8095b473d90e367f72c6df771aa7a4ec960f9e" +contract_class_artifact_hash = "0x124da7ae39e0b68d97afa4aa017f0a9bce4de33988738101b3126b6b2d57997f" contract_class_public_bytecode_commitment = "0x0ce4c618c3ed7f3a20410e618c06bb701e150af7fe28a3e92f68e7733809f33e" updated_class_id_delayed_public_mutable_values = [ "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -230,7 +230,7 @@ updated_class_id_delayed_public_mutable_values = [ leaf_index = "0" sibling_path = [ "0x238e2af83a65aa19075bf14aa7aeb0f681204a09f3756757b334f3061e238757", - "0x25ce89a823f16f35f08b6081a3ea3197c468941e46b7400ac6b33280b19cf251", + "0x07ab9ed4f1facc45eae5eeb0a2b6f80ec87c8132fdd2da5690a4eb2bc58aa03e", "0x2974d8999d00928aa1378118756d6a4ba1368b1da89b2b1059c17fbb88ad21a8", "0x2e6127fb2bcf542677ed9dfc6cd90a61a075142999aebccf345c816aff3a1d92", "0x267a9c24e849f51869c93086ded207858dfb130344e1879a9d15d35096464824", @@ -239,39 +239,39 @@ updated_class_id_delayed_public_mutable_values = [ ] [private_call.verification_key_hints.public_keys.npk_m.inner] -x = "0x025f9f657095ad240d89a28336e0f7be994c9f270d62c6a3228aa8bada12d01d" -y = "0x1a7e0782cbdd3ebc39b0bd4a33b5894cb3451bc52c2fadd70371ed8d81db479f" +x = "0x2a6b3bfd1f52d37dcb312bf6e759b1e35266011243210ddbd86a1332c2669a20" +y = "0x02021f08b8d6e568f2a85018c94df0ec1cefa5019dd7fa5919bd643fa8a3c937" is_infinite = false [private_call.verification_key_hints.public_keys.ivpk_m.inner] -x = "0x22f40cddddbd77c2aa6fead1b876909111a45ab1b5f69a48df1440764a7dcd90" -y = "0x1a6c5d7af83395c1e6c82ef8cb26ec6674f65cfb52521dae0b54130764bdf10d" +x = "0x0c9d895d53962d59936ebe1d699d84aa6c41bee80efe58d2ca98fab184bbb274" +y = "0x2e710e22e34e2cfc12708326d71ff62e3bafc0c30eef0399485e9342ae19e0d6" is_infinite = false [private_call.verification_key_hints.public_keys.ovpk_m.inner] -x = "0x2d41c74462094b1d13ed19ce294c4a39cdc7635080f32399494e5e796b663933" -y = "0x19944298156083d73fc78b3e628123fccead0fec542f0a55cfd319f2b77047ca" +x = "0x066534168afa4d0cf3ad8c404289e4e8464e7b92947c44b6851b436edc28d64c" +y = "0x2b3d9529e7f14b20f57de58e74997fa4b292726f27ff2642592aeba72a217f99" is_infinite = false [private_call.verification_key_hints.public_keys.tpk_m.inner] -x = "0x2b8dc3a19be872d7c3b215f6b1716e586cdc99c79320ec3f5989233e0957fc39" -y = "0x13eec92e41aeeec0598539fbf7d94629cc58515f87507cb2638264f68be7c432" +x = "0x303c053f6dbaacb24992291f48b6488ce6f31fdb4f4c7e3ba186b5ad54fb875c" +y = "0x2f63e06d0a9b89a8a12f6742d24e16452a373dca1c62c0e77f30c7b5898850d1" is_infinite = false [private_call.verification_key_hints.salted_initialization_hash] - inner = "0x26ec6a326bed489e479823ab0ea1152729bcec7cbe15048c3e02a1e4309d4a68" + inner = "0x233c5b4316d6ab350fa7fabbfa9f9918a22c47752e0b2d0d8d9c351ddc0844a1" [private_call.verification_key_hints.updated_class_id_witness] - leaf_index = "132" + leaf_index = "126" sibling_path = [ - "0x10a274cd78b609bb9ff5960dfac7a0add8ccae279c81ec05441bbb8165d517dd", - "0x27047bd2479bc929cd5250e32e3b3e05f8cef863f7c8a349df77a9b2bf85588d", - "0x1d36a7e02b793d41e28f57b4480fe48b3f169b794f73d57683c7bfc4253da367", - "0x25c533089637cf9ecd3633dfcb0ee03be91faff3e02f51778cd5738264514c88", - "0x1d52af9cd9f69c1286e9a96fd498e736789a5bc463fceb1c176a4f9292f7cbe3", - "0x1ff1d5db01572c915915a22173c73d8073df9af4e4c57f6af29df5315da44419", - "0x070dcbac794fa663bc71b42d80775c0cea8c3ed7580207cfd30fd1285813ce07", - "0x2027713f7323f965c6751ce6c41f7759c9501fe781928b9507814d749cb86f25", + "0x006d7f5cdc0d2f5d42d5b36d5d13dbe43ec3549757909c11c168182006209431", + "0x1f2398c9584c44f7a60a132cfe9710e1b23f475b074ca909ef619393391c9b0e", + "0x158364797506532f8e643ffcbb6e9992c45808fc0be0fa59eb04e1a5a3b44118", + "0x03f8072e71f94fa46e316e994b83d23063b65a3b90a103d6aca37b53597624aa", + "0x2edd4e68944dac758244213037fbe9d622c7c28d6070f16862b3e8986090bee4", + "0x1d5ea1a288ff1ff4cabceaaa2f93eda378a5fb0a2a55423f4d4d205969181931", + "0x23b80d0ef13d744a52faabf5651164d28f7faf902653e41a35472eea87936e6e", + "0x11c81a165eb743069fb7503fd23f7a8e53e5661bd03897d80831853682b2bbf8", "0x16c8aff52f0422f4bfc502620fe15dd6a4de67637563b7a8175f2d5727d268a4", "0x1c76b6744bc3d6b1cd4b53459a08b4959643c0768fde657299fcc82e2732f744", "0x12a6fac0fdfbd7897d8fe955f454cdb309ce8597d647ebfd0ba614c4eb215581", @@ -307,13 +307,13 @@ is_infinite = false ] [private_call.verification_key_hints.updated_class_id_leaf] - slot = "0x1dbe81fde1f18bf3e8828a3595c65a1ee32397477e23d9c5c9e4c0386bbb4a2b" - value = "0x0055534400000000000000000000000000000000000000000000000000000000" - next_slot = "0x213a03911d28297ad85626532672b56d721f6e4af4e78d6f156cf1cb98482089" - next_index = "0x0000000000000000000000000000000000000000000000000000000000000086" + slot = "0x1e221ef0a4a7abdb3544d22cbdde8f1234b1e714cc252915626ea256ab58e22d" + value = "0x00000000000000000000000000000000000000000000021e19e0c9bab2400000" + next_slot = "0x2523ac52d386936dccf9d06b831bf7690ee7a64cd57e87690361149019fe4e33" + next_index = "0x000000000000000000000000000000000000000000000000000000000000007f" [app_public_inputs] -args_hash = "0x2237e42a84e35fc9371ec568e04d6db13130f02f527e0cce6f78ebf038f70f5f" +args_hash = "0x0ec0f8340521ef3f30867c4fa7e8f4436b591f652864991a21ff236ad77ac666" returns_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" start_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000002" end_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000007" @@ -321,7 +321,7 @@ expected_non_revertible_side_effect_counter = "0x0000000000000000000000000000000 expected_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000000" min_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" is_fee_payer = true -expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff2940" +expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a08ec3c" [app_public_inputs.call_context] is_static_call = false @@ -330,7 +330,7 @@ expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000 inner = "0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000" [app_public_inputs.call_context.contract_address] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [app_public_inputs.call_context.function_selector] inner = "0x000000000000000000000000000000000000000000000000000000009d57a239" @@ -340,7 +340,7 @@ expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000 [[app_public_inputs.note_hash_read_requests.array]] [app_public_inputs.note_hash_read_requests.array.inner] -inner = "0x29ecb485abf1e4a9963bb4dada6e8b67bda9c6bb09527ecb8d0c64a0d119e0fd" +inner = "0x20ea50cc8410f4c3f7a076594d20b999cd27dbddf10a93cf999aea13dd168a1e" counter = "0x0000000000000000000000000000000000000000000000000000000000000003" [app_public_inputs.note_hash_read_requests.array.contract_address] @@ -1113,13 +1113,13 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.public_call_requests.array.inner] is_static_call = false - calldata_hash = "0x16acf8ee72d77f214e5286307ed2710fda25445374c38debbef546a746b679ce" + calldata_hash = "0x280df32fa9c5d671c073a086d4509c0adf6862fce32aca699fe3fe40fb5f4a10" [app_public_inputs.public_call_requests.array.inner.msg_sender] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [app_public_inputs.public_call_requests.array.inner.contract_address] - inner = "0x16fc6ad8c94527d45832bb8631b0c1dedf3218fe7c3ca04e01850a3eff6a511a" + inner = "0x22a0174d2bf8314f2f65f114fd4f17783e2adddb4937c532eb8b7c365bf57be7" [[app_public_inputs.public_call_requests.array]] counter = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -2055,12 +2055,12 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" length = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" + sponge_blob_hash = "0x0ade242f6fa0b4a29ba7650068c8b1fe2e07b89d79fec1f5f7c9f37e62850cea" total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [app_public_inputs.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" + root = "0x2837ee5efe77e51a259ecd28691e8b0465da3a851f9796aa09e2043606792bb7" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" [app_public_inputs.anchor_block_header.state.l1_to_l2_message_tree] @@ -2068,26 +2068,26 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" [app_public_inputs.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x1446433cc1f922db5e78b099951e1c8b2cbeb2f02ef1d1a6d02ff80cf29620a4" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [app_public_inputs.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1b660c208f7f4a390a454b7e993264d0413b302e90484d2aabdc0f31828c0b8d" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [app_public_inputs.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x04a8cfff22b5f36332529dc15c6e219e7f3de73884f1d874533ee6c392a98816" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [app_public_inputs.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a079abc" [app_public_inputs.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [app_public_inputs.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -2098,7 +2098,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [app_public_inputs.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" [app_public_inputs.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-inner/Prover.toml b/noir-projects/noir-protocol-circuits/crates/private-kernel-inner/Prover.toml index 91f33eeac7c0..c96c5900c998 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-inner/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-inner/Prover.toml @@ -1,128 +1,128 @@ [previous_kernel.vk_data] -leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" +leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000041" sibling_path = [ - "0x0ddc610a21615b2984181082c3de07058b9f7d4be62806c4fd475161f8bd2be3", - "0x0f92d54d29bddf6ec768db2c0b4685fb325d248b3ad9a3c6adda76c6c5004224", - "0x0656bbf5e3f4cc4fa5e2fa46e7fd370db0bee05586a1849c37c77d05abe2d8a5", - "0x166399703d23a5c22febc6185f8eb93c72b65906eefef226e643c35fa0022adb", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x00414d5c2f737079777ea725eb8a02b7814417bcd9309fd6ebc21e3ff4fb09f0", + "0x06052658ce264efa331955d4e8e32fa254cf016a20946fa5256350c3cfc256e7", + "0x0375a0af89550213082037c1d9dcd40f8e1f66afbbbb606356d9b1d68ea4239c", + "0x30105bad22ddcc508b739b7c9ad87a561c569ff5cb0098a853c1c4ac21b7a037", + "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", + "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", + "0x1c14bcdb7491d576da8cb6ce086bcd2891c32639521556afe9841304558dbb74" ] [previous_kernel.vk_data.vk] key = [ - "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x0000000000000000000000000000000000000000000000000000000000000011", "0x000000000000000000000000000000000000000000000000000000000000001a", - "0x0000000000000000000000000000000000000000000000000000000000000c11", - "0x000000000000000000000000000000b56b478d39fe1ea8636ca1c5f7efe26465", - "0x00000000000000000000000000000000002ce8a9b4b8b40012f631f6a39b6121", - "0x000000000000000000000000000000e90605e79e3b491b4e35bed971ffe40f20", - "0x000000000000000000000000000000000014aac08af29b80ea5e82169bde9f1b", - "0x000000000000000000000000000000f23100dd9e774faa9da6adabb0a5e868d1", - "0x00000000000000000000000000000000000675d3fb2db13df5feb7837a996202", - "0x0000000000000000000000000000002d41a263946c21172989f16b6c3eabd14b", - "0x00000000000000000000000000000000002f76f5733e8a0b6e45ad715c844fa3", - "0x0000000000000000000000000000009906b77efd02f89dd64543cb41b2ee7dc0", - "0x000000000000000000000000000000000011990c3a05d603a15abfdd104b7f45", - "0x000000000000000000000000000000b68418cb6eb350097b81ceebf7216de49f", - "0x0000000000000000000000000000000000193b041e80721ea6304e3edc45a55a", - "0x0000000000000000000000000000007f41793e8f1a2fbe4047a8c9b3ea8a7eba", - "0x000000000000000000000000000000000004ad79eb6e09a672b49359e429d4b2", - "0x00000000000000000000000000000084b9e57a26da81e52f9d96f484a3d8a6ae", - "0x00000000000000000000000000000000001b4cff12b3ca2c242b1cb101ca1f62", - "0x00000000000000000000000000000051285e317a9d17f2180bf8ec1f3e31c266", - "0x00000000000000000000000000000000002f79f4597dc1cbdfe8060d1d92c7fc", - "0x000000000000000000000000000000bfdd478df770ff0d6a9f5d30c6380e3bb2", - "0x00000000000000000000000000000000000f6c52e2949dd6fa7eff016e2e5bb6", - "0x0000000000000000000000000000001cba707dc36043107ad882453ae5d8b129", - "0x0000000000000000000000000000000000059cc841348db66a31d2dfa33b89a0", - "0x0000000000000000000000000000000e2b2caaf1a1eda41d509cc5221c984b51", - "0x0000000000000000000000000000000000037cc127472715a44cac19993d448a", - "0x0000000000000000000000000000003cc6bfe8250e54d57ce7daedc9a7095bc8", - "0x00000000000000000000000000000000001c95108bb4f2494bfef842093c3b36", - "0x0000000000000000000000000000008313e6a820b2f5c2a7de8028cd31798633", - "0x000000000000000000000000000000000027be294c15550f339b0839d5860142", - "0x00000000000000000000000000000060338657a29bcf8c13a4b50294e337ef11", - "0x00000000000000000000000000000000001569de523f46c6226a398155490417", - "0x000000000000000000000000000000163a5d9281ca7ac774da33d1bd5e32dd54", - "0x00000000000000000000000000000000001cea3677784e36b40d3084060d7486", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000008a36ca53543c7bd871dd8974dda60ec04e", - "0x000000000000000000000000000000000028fcc75fb20c13fa73b0b5dd1a9df0", - "0x000000000000000000000000000000646eccdb4bcb213d9d9867f291bc4cc715", - "0x0000000000000000000000000000000000239e0bfd2fe8666da2541d2b7e9242", - "0x00000000000000000000000000000057b0434a909bdd123f328dd722f50de441", - "0x0000000000000000000000000000000000056e909ead4cc889ca4ae259618b9e", - "0x000000000000000000000000000000cce3583f4dbdf7f0ea96b8413114530b7f", - "0x0000000000000000000000000000000000029d93569d5fb4eccfe54516bbfc2c", - "0x0000000000000000000000000000000202259bdd735f5d0996b36a14296dd956", - "0x00000000000000000000000000000000001c9a81340c0ef1a3f8ab9378b45228", - "0x000000000000000000000000000000bb9541231ccc05d3210933db9b2cfd662a", - "0x00000000000000000000000000000000002e90121d7079020ef60bf83a167d82", - "0x0000000000000000000000000000008e531da6a57f645193723255cc3949f2a6", - "0x000000000000000000000000000000000023d3bfa481c11731a958ae003b7049", - "0x0000000000000000000000000000005d505cd2a7715559ab2fb8ffa94fac158b", - "0x0000000000000000000000000000000000283299e0b6841cadaef68c90af63b3", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000a50e32219d22dc5bc0a2a3afa8d1c963bf", - "0x00000000000000000000000000000000001b05579d422ec3526b639fa813b3db", - "0x000000000000000000000000000000931e9ee47cc6828d015bfd807445f50921", - "0x000000000000000000000000000000000005283cabb6b55f9baa597d00d3f46f", - "0x000000000000000000000000000000f14ecdef3987001b29e5574b25db85e726", - "0x00000000000000000000000000000000002b26e84ba3e9db90b9b761fbd5ba48", - "0x00000000000000000000000000000054401c158e8bfa1eac201ac628df1458d3", - "0x000000000000000000000000000000000028b61261027652e8ca3b29fb567872", - "0x0000000000000000000000000000005ddf21ec29f762249f79a86d986723b259", - "0x000000000000000000000000000000000020d889a78eaaeeced668f7a5e6a155", - "0x000000000000000000000000000000fbf31736f1c118ed779b00b56effa82f84", - "0x00000000000000000000000000000000001c10198fa65839280c9a4df0d48c69", - "0x000000000000000000000000000000ae45bd31909c920cd302c1833dc9dac27c", - "0x00000000000000000000000000000000000b5e828a1794bb52b1ef28384f36c3", - "0x000000000000000000000000000000623a32eccef6d3f192c9090e2c8d211339", - "0x000000000000000000000000000000000017dbcb62b1ef67a30ab74432100e03", - "0x0000000000000000000000000000008e75c04775713fe2b95076a7a5e1036c46", - "0x0000000000000000000000000000000000070ea9b40827062280d6e3cc9609a6", - "0x000000000000000000000000000000c70577cdcada107c62a7732ef0d2bbc15f", - "0x00000000000000000000000000000000002e57c64ac76e0a1e1c5980782cb606", - "0x000000000000000000000000000000902c14297534b09b2a8072cd93a9489887", - "0x00000000000000000000000000000000000cb983d7cc09d74a951dbf12ad432b", - "0x00000000000000000000000000000012bff816b24bc7a97ad6b1549515d6b28e", - "0x00000000000000000000000000000000000467570dff77ca3a342e4fc4d1a66b", - "0x00000000000000000000000000000080a63925457f739d70103395ccb7dcd29d", - "0x00000000000000000000000000000000000249558e7e5b5d6473ec5a9a980688", - "0x0000000000000000000000000000006cd74958767b5d51a95549a316e285ab74", - "0x0000000000000000000000000000000000091261933d2e12b6818f72bdc3e0c2", - "0x000000000000000000000000000000f97e56f24f292a230cf6c8350df6989d74", - "0x0000000000000000000000000000000000191f5e720c5ae2ded820c5e22cf23f", - "0x000000000000000000000000000000d3659c79160cc300c1726cdfe0a093bc08", - "0x000000000000000000000000000000000028e8e8952512f8006336791f90f01d", - "0x0000000000000000000000000000007ee7b8782f98bb5d90cbdc6fe174a42009", - "0x00000000000000000000000000000000000ae0ee6c55535140057064aa3fc5f0", - "0x000000000000000000000000000000d2bb98513b84e1e6f4e0b606bc025f9c48", - "0x00000000000000000000000000000000000b21f9d209054956c0524fababf1e9", - "0x000000000000000000000000000000d81d8ac019f7fed05a6b57f7845f56e44f", - "0x00000000000000000000000000000000002971c35ad470594c9a15abfc0e25a6", - "0x000000000000000000000000000000415d3a9385f247cc4092e3aad3382acd35", - "0x000000000000000000000000000000000025f0852ecc99395598d1e68d0ca89f", - "0x0000000000000000000000000000004f32605fa17fb311a06f7fb843c15d558a", - "0x000000000000000000000000000000000005071f43d210d49c73d5f25a18a596", - "0x0000000000000000000000000000000a679653df2810b4ec4c7adcd1cd7c97c8", - "0x000000000000000000000000000000000013c145ee6755ca17c398dafb88a569", - "0x00000000000000000000000000000083bace0537b2947643af96ab4b4aa8c478", - "0x000000000000000000000000000000000011ae383aeafc332a329462493ac315", - "0x000000000000000000000000000000a18bcfba0739bc5f71bd74ec53b6837fea", - "0x00000000000000000000000000000000001c2a9a991c7dbcd75129f92ff372b1", - "0x0000000000000000000000000000002c80b406fa46ad088b2e8d4f5a5701d47c", - "0x00000000000000000000000000000000001879ed897e504955597f01336b1d86", - "0x000000000000000000000000000000655b7a8802d367044c042458a17a0aeab4", - "0x000000000000000000000000000000000021be3e235af1a949dbf105cbe725d0", + "0x0000000000000000000000000000000000000000000000000000000000000d3d", + "0x000000000000000000000000000000226364b62af3155e706005fff18072854c", + "0x000000000000000000000000000000000003f4a87540a29a16c561ce37810164", + "0x000000000000000000000000000000ad0e07f06c83b779de231c101c550d3a4a", + "0x000000000000000000000000000000000020671d34745c63e2557f625ce48cff", + "0x000000000000000000000000000000b251189bc66f7d7521d4ff232ad1135d82", + "0x00000000000000000000000000000000001c2204960d1cf8ebf74634458d0216", + "0x000000000000000000000000000000de8f10804028f3c142537dff8e2f138dbd", + "0x00000000000000000000000000000000002d42a2d2a755bf1b10e285e2190ca1", + "0x000000000000000000000000000000e91f2984e15096c37afa9fa1269a786e1a", + "0x00000000000000000000000000000000001cf475041e7245a5a013d61b251cf4", + "0x000000000000000000000000000000faa66f7d757621552d31e7dcdedb0478d3", + "0x00000000000000000000000000000000002a519dba8f6ffdd51aaea538883f01", + "0x0000000000000000000000000000008141ce1b7c8d564a61cd1faaeff8abf848", + "0x000000000000000000000000000000000004d3fabb07fcf5ea04151548516c21", + "0x000000000000000000000000000000eda41e3108ab484d9b9971758bbfd28b7a", + "0x000000000000000000000000000000000000da5d33ac7121c8aa24acf23c78bb", + "0x0000000000000000000000000000003cf62d5d5e21da0ad042454fccb5148214", + "0x000000000000000000000000000000000028335c797f4a0ab8b57a7ac27e0d10", + "0x000000000000000000000000000000c105947b4304a98d3a576a7f8911988bd0", + "0x000000000000000000000000000000000005793f1faba940e3be6c0a11a4ba66", + "0x000000000000000000000000000000ed3b08734e16957b0431db4d2342d87713", + "0x0000000000000000000000000000000000120249ccc6d17183ba6c933f8019e3", + "0x00000000000000000000000000000051a67db478d5485626aa769e0c731c5c57", + "0x0000000000000000000000000000000000001e997701488bc2257de8ddfbc446", + "0x0000000000000000000000000000009060ecd9bb3767bc40fb63c8a0ab0791f2", + "0x000000000000000000000000000000000003d9d4ca26316a01e74fa6b8b10f6c", + "0x000000000000000000000000000000a7d8cf9f7a15828e2f5fef7dd5bd440a85", + "0x00000000000000000000000000000000003032186b13ab678b748205248021dd", + "0x00000000000000000000000000000066785f63c75a991f562b4bf46fddccf4c0", + "0x00000000000000000000000000000000002fd03c00aef7e09c4a22cc94213bcb", + "0x0000000000000000000000000000005b3c5142d1968052e787441d0fe529a1ff", + "0x00000000000000000000000000000000001510b72cec4ab0a0abd3e6ca0e1f92", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000000000078a75ea3e2065f0d4c68ca95a05f9d8ac1", + "0x00000000000000000000000000000000001b5a280131778d5c8ae0bb55cd7df5", + "0x00000000000000000000000000000009858ba9144469e0df6c021bb95ce8b2e2", + "0x00000000000000000000000000000000001c7617d9a3da739f425cf325333e4b", + "0x000000000000000000000000000000be1a7bc7aaafce2c84bb001fb7f23497d3", + "0x000000000000000000000000000000000013ee954d4d19902ed3f449c7ba295b", + "0x0000000000000000000000000000005564abdc4a9be268f487e7d1806bc2644b", + "0x0000000000000000000000000000000000199de42e0b6079ecb39067fff1096a", + "0x0000000000000000000000000000002581ae854b8ae4912c909c880e5cb58ac5", + "0x000000000000000000000000000000000008ff3549835c6a58d6058891a2930a", + "0x000000000000000000000000000000a4764061acb0974dd3bc0792e5bd795298", + "0x00000000000000000000000000000000002d9ba4af1c508512e20eb8ee6e4392", + "0x0000000000000000000000000000004133e0a23bcfb99c3e6e79e342fcbe7640", + "0x00000000000000000000000000000000002df7667f6ad3022d46e956dfdd1617", + "0x0000000000000000000000000000005582d6f33e1a8e2092504947ccba47d347", + "0x00000000000000000000000000000000000c0a7223dac0138abac1a082bec1c0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000d01a620c9dbb3731e0a6922e412a81337f", + "0x00000000000000000000000000000000000311a6738b0cee4f829ecc76b98192", + "0x0000000000000000000000000000002e6fec454bbe7f5c2941693389f5e6c6c5", + "0x00000000000000000000000000000000002716e8a3426068729107dcfdda2e78", + "0x00000000000000000000000000000073788ec5196408c01ab91b2af9fb197c00", + "0x00000000000000000000000000000000001a5d7cdebf63f1c57716a89bf96149", + "0x0000000000000000000000000000000eec18ef308d572fae5049992b61ab533b", + "0x00000000000000000000000000000000002c2534661e29a558b1829a0100aee2", + "0x00000000000000000000000000000070c869148144abbd4f34562f35caf14f67", + "0x0000000000000000000000000000000000230251aa8da43e119216b80869e8d6", + "0x000000000000000000000000000000620707d568a112ad334d6ef0e958bd781a", + "0x00000000000000000000000000000000001c75e7a902257eedf25115d36cb080", + "0x000000000000000000000000000000e33ed2c32a17a217f27e9ce892eebdf5b1", + "0x00000000000000000000000000000000002c4c1baf278f29e682e66484987fbc", + "0x0000000000000000000000000000005796114f29eec64e0902edc1848b339d20", + "0x00000000000000000000000000000000002ac1be35edc43e2d5ccf0b4e1ee50b", + "0x000000000000000000000000000000241c299b1ef5cba432ae3066029b821447", + "0x00000000000000000000000000000000002a515857d825d22fffab61efde9bb6", + "0x000000000000000000000000000000389d8fe59efbec4146aed0a66db5ce92fb", + "0x00000000000000000000000000000000002ea657affc3b83202325e206629783", + "0x000000000000000000000000000000d2bcc0578e230c878cd6d14b8bf568c0ee", + "0x000000000000000000000000000000000019a4049739a7dcb7fff1c0f6151f13", + "0x00000000000000000000000000000054639481d04eeb0a2044080341d6102aa2", + "0x0000000000000000000000000000000000171faef4892362d5887f784b0dc909", + "0x000000000000000000000000000000f9258307e4aff0eae8afc3dbf9003f1198", + "0x0000000000000000000000000000000000255fa329917a2ed2e6ff4eb4b20d6d", + "0x000000000000000000000000000000f1db48748ab19242f039204976dee1901e", + "0x00000000000000000000000000000000002ac02e60ead6c91fd770be407b25f2", + "0x00000000000000000000000000000032f028c960944572498a2be405cc5e2930", + "0x00000000000000000000000000000000000a36086c2e463febfede0e50c1e877", + "0x0000000000000000000000000000004900f9aa13a8b238c95dc6b70bfcf08919", + "0x0000000000000000000000000000000000050a982a2a7dba64c4d9b3165936ec", + "0x000000000000000000000000000000ecdd4a756281bd1800f2bc01d86c38cc0c", + "0x0000000000000000000000000000000000082b22e7848cff7e3528794d9c305c", + "0x000000000000000000000000000000f47876414fe718cd98e90043c95c5a854c", + "0x0000000000000000000000000000000000165ce755ce13cde252b1438f478585", + "0x000000000000000000000000000000739d7a4f9220c508c29acdfd416565b2b3", + "0x000000000000000000000000000000000016cdfdc6df6ee16be93056eb1341f1", + "0x000000000000000000000000000000f661f3c5dbb631518afec8714779874f58", + "0x000000000000000000000000000000000025b15f878b566cbf936b6a052008e2", + "0x00000000000000000000000000000072dc43cfed56853310dd28389c789d90ab", + "0x00000000000000000000000000000000001ad9693b02f32a51cae091bacf8ec1", + "0x000000000000000000000000000000ca22cf291a7032291ce3b46b403d1e2cc0", + "0x000000000000000000000000000000000008817d523466e1184da3ef76d8ae93", + "0x00000000000000000000000000000028ec6ddaf669b09cc341aae4033f4056ca", + "0x000000000000000000000000000000000015ec07d979b2224c10b5e2d630d8de", + "0x0000000000000000000000000000006feb899781448801b950f3013ac7f44d2e", + "0x0000000000000000000000000000000000229236baaf38ce4985427eef6b0b97", + "0x000000000000000000000000000000351b56543d22b3848537ff1513db61b206", + "0x000000000000000000000000000000000025e9493325f8d20fd658f665d2acaf", + "0x000000000000000000000000000000ee9479906708a788d2c7cc829b20c16ad2", + "0x000000000000000000000000000000000002568c8d6f47cdcaa2b2930269242a", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -143,76 +143,76 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000006ab4e9fba1bb0c45d30796e0c19546192e", - "0x00000000000000000000000000000000000b1447f3413f687009608e1c55b192", - "0x000000000000000000000000000000567498365d293b6c0532b94c33d0e937a5", - "0x000000000000000000000000000000000006c4fabfa5194704563bcc508d234e", - "0x00000000000000000000000000000009835f11bc7b963372a60d92370980b183", - "0x00000000000000000000000000000000000d898f5e8487e3ed90a10fc50db186", - "0x000000000000000000000000000000b66ee3d15932d652c3b54801748e89da9f", - "0x000000000000000000000000000000000024899f4b6ba56af0e1128c4a431ba7", + "0x0000000000000000000000000000003b1ab0a391c0f6609c7f1b6a3e01ffdf44", + "0x00000000000000000000000000000000002dcf608f2edd73d181bbd82beac36e", + "0x000000000000000000000000000000f3a75dfa859e3156a4b3420e3bd3ba1acc", + "0x00000000000000000000000000000000001d0a8476cdb37fbb6a482608d4f60a", + "0x000000000000000000000000000000c6e13ef9aedec4af73a577a6dd72dda690", + "0x000000000000000000000000000000000016b603e70199deaa1eff742257259f", + "0x000000000000000000000000000000dd7902c16a885b205f012abf38e3f9f470", + "0x00000000000000000000000000000000002a45b4a48e9544c186e119184fd191", "0x00000000000000000000000000000064dd7da7637cf2116a18531edc7fea829a", "0x0000000000000000000000000000000000162e867465b02e01bbabb15c59b84d", "0x00000000000000000000000000000071f09c1d3d2c8f9499c838fc966b04ada9", "0x00000000000000000000000000000000000f4504ac6f302739e9f2c7aa824d12" ] - hash = "0x051d17b4a7efa4af82e7c6b71f2a5cf71ee015e6d9edbcd39d326a5463aac1e6" + hash = "0x1b5281e0239c38040c9ec32d0056914e98e57c0f7d41be499820796b1f18c000" [previous_kernel_public_inputs] min_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" -expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff293f" -is_private_only = true -claimed_first_nullifier = "0x282b555a2f009837bd02f744ae119250934c991464481b5613f7f2112a615f7c" +expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a08e2b9" +is_private_only = false +claimed_first_nullifier = "0x0ac2a0ca2f17c116764e565830f12542c548e23bd1f93d0718eaafb3777a5889" claimed_revertible_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" [previous_kernel_public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" [previous_kernel_public_inputs.constants.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" - total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" - total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" + sponge_blob_hash = "0x1d83761792bf23b4c95369b7a4d692a7c587ba6f66806ba6e383cfef7c474435" + total_fees = "0x0000000000000000000000000000000000000000000000000339d3890be79d80" + total_mana_used = "0x000000000000000000000000000000000000000000000000000000000008992c" [previous_kernel_public_inputs.constants.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" + root = "0x25ebdebede0d68508019ab27d71b786358d5d43b9658bf153c4cda7a12013c5a" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000004" [previous_kernel_public_inputs.constants.anchor_block_header.state.l1_to_l2_message_tree] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000001000" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" +root = "0x008b068bcfb8be338f710cd91328555ff492e79e8456dc39a70095d915bdb8f8" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000100" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" +root = "0x236e68b37ffff23b39951b820788d40dad0b871daee9ab1d0da9b977facdefcd" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000180" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" -next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" +root = "0x164c2191b5e98f40c17e9ca89e08607aa69bb0966edfadf9797b4697e10494e7" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + version = "0x000000000000000000000000000000000000000000000000000000001537b6f7" + block_number = "0x0000000000000000000000000000000000000000000000000000000000000004" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000004" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a07913a" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000004386faeb40" + fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000600b849a20" [previous_kernel_public_inputs.constants.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000001537b6f7" [previous_kernel_public_inputs.constants.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -224,29 +224,29 @@ l2_gas = "0x00000000000000000000000000000000000000000000000000000000000c795c" [previous_kernel_public_inputs.constants.tx_context.gas_settings.max_fees_per_gas] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" -fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000336bfe2ba6" +fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000001cc0d810418" [previous_kernel_public_inputs.constants.tx_context.gas_settings.max_priority_fees_per_gas] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x1520f4bb11a3a1d2248a03d8472e9af4bb8324eb1d2d8c83bce61894383464b9" +inner = "0x0f30810fccea5788a3695b883aa8c37e4fd1c79a0832891c54e4934cdf811264" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x26a43bf066852a7b1ec3c5b454f41735fea12e2ffbefed471058124b91d94018" +inner = "0x0de48b8ff9fe893cb66949a352f552cdfa408461b12244558718053fe2f1409c" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x1bd26c6831ebc53674b13ac69a0c534563c37e46c2cbb36f2deca107a26515fa" +inner = "0x0d816f861698134be2ab49828cf8130fd9cf10c139bad660c6654d72cbd169e8" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x06870c63132d2a4e3356a76d773240efe729e7d9b9380a7a3cf1798fc9031aed" +inner = "0x17f183cae8aba4157ebd8564a2a8126473ddcc286665db9d208b90aef331ec3c" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x0083c4dfb922796f1086d399f8f3d021159d1a87ba3b833dcdf9863c630ba643" +inner = "0x01f7f2a0fc5e871935a8f4d3accf162a02d6d7240128ce63fcd45abc0430aa42" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x0b4d3a9a7a3caf83f9c2060347e48cc28c7f04d2560d1cbf5bf08d4832128a97" +inner = "0x16cebfb579bb64f80479102113bf35626052c8c36674815d1e4ae3bd6885907b" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -268,7 +268,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" [[previous_kernel_public_inputs.validation_requests.note_hash_read_requests.array]] [previous_kernel_public_inputs.validation_requests.note_hash_read_requests.array.inner] -inner = "0x29ecb485abf1e4a9963bb4dada6e8b67bda9c6bb09527ecb8d0c64a0d119e0fd" +inner = "0x2768e4fbdf927147814e1ac499cb585061f93557774adedf8c5334376046326f" counter = "0x0000000000000000000000000000000000000000000000000000000000000003" [previous_kernel_public_inputs.validation_requests.note_hash_read_requests.array.contract_address] @@ -2779,7 +2779,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" counter = "0x0000000000000000000000000000000000000000000000000000000000000001" [previous_kernel_public_inputs.end.nullifiers.array.inner.inner] - value = "0x1f9942757ace032bb97eaa996ab3756544b55ccf805fdbf6f5093a5b8037e138" + value = "0x1d776fc28dc8a9995ee7226a7b8d0bdba47d9a7d8ec665a1316e4e9177550bd0" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.end.nullifiers.array.contract_address] @@ -5587,33 +5587,33 @@ counter = "0x0000000000000000000000000000000000000000000000000000000000000000" inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.end.public_call_requests] -length = "0x0000000000000000000000000000000000000000000000000000000000000000" +length = "0x0000000000000000000000000000000000000000000000000000000000000002" [[previous_kernel_public_inputs.end.public_call_requests.array]] - counter = "0x0000000000000000000000000000000000000000000000000000000000000000" + counter = "0x0000000000000000000000000000000000000000000000000000000000000007" [previous_kernel_public_inputs.end.public_call_requests.array.inner] is_static_call = false - calldata_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + calldata_hash = "0x20a7b6a43219402bce19aed10f6cab0b66369dda9ca4a09de52869e22d3dbc18" [previous_kernel_public_inputs.end.public_call_requests.array.inner.msg_sender] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" + inner = "0x06198f9a63186a7391e50d2b815c19fc46dc4b3e32597d58dad505aa14d4d6d4" [previous_kernel_public_inputs.end.public_call_requests.array.inner.contract_address] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" + inner = "0x06198f9a63186a7391e50d2b815c19fc46dc4b3e32597d58dad505aa14d4d6d4" [[previous_kernel_public_inputs.end.public_call_requests.array]] - counter = "0x0000000000000000000000000000000000000000000000000000000000000000" + counter = "0x0000000000000000000000000000000000000000000000000000000000000009" [previous_kernel_public_inputs.end.public_call_requests.array.inner] is_static_call = false - calldata_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + calldata_hash = "0x20a7b6a43219402bce19aed10f6cab0b66369dda9ca4a09de52869e22d3dbc18" [previous_kernel_public_inputs.end.public_call_requests.array.inner.msg_sender] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" + inner = "0x06198f9a63186a7391e50d2b815c19fc46dc4b3e32597d58dad505aa14d4d6d4" [previous_kernel_public_inputs.end.public_call_requests.array.inner.contract_address] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" + inner = "0x06198f9a63186a7391e50d2b815c19fc46dc4b3e32597d58dad505aa14d4d6d4" [[previous_kernel_public_inputs.end.public_call_requests.array]] counter = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -6009,22 +6009,22 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000000" length = "0x0000000000000000000000000000000000000000000000000000000000000001" [[previous_kernel_public_inputs.end.private_call_stack.array]] - args_hash = "0x00fdacb86277b5caac1f0395131955d3d7ddd5988f117d742d59ecdeef9db7a5" + args_hash = "0x08bc51382a0947042534f4a2872c75c1819c8d3cd7af6be528946ca505f7de76" returns_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" - start_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000006" - end_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000010" + start_side_effect_counter = "0x000000000000000000000000000000000000000000000000000000000000000a" + end_side_effect_counter = "0x000000000000000000000000000000000000000000000000000000000000000c" [previous_kernel_public_inputs.end.private_call_stack.array.call_context] is_static_call = false [previous_kernel_public_inputs.end.private_call_stack.array.call_context.msg_sender] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x06198f9a63186a7391e50d2b815c19fc46dc4b3e32597d58dad505aa14d4d6d4" [previous_kernel_public_inputs.end.private_call_stack.array.call_context.contract_address] - inner = "0x16fc6ad8c94527d45832bb8631b0c1dedf3218fe7c3ca04e01850a3eff6a511a" + inner = "0x06198f9a63186a7391e50d2b815c19fc46dc4b3e32597d58dad505aa14d4d6d4" [previous_kernel_public_inputs.end.private_call_stack.array.call_context.function_selector] - inner = "0x00000000000000000000000000000000000000000000000000000000754fb767" + inner = "0x00000000000000000000000000000000000000000000000000000000ed26fc04" [[previous_kernel_public_inputs.end.private_call_stack.array]] args_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -6307,41 +6307,41 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x0ea62dd02be9fad93b0c6ead33d91b377c7ba1e42097ed22b01df43580bc129c" [private_call.vk] key = [ - "0x000000000000000000000000000000000000000000000000000000000000000f", + "0x000000000000000000000000000000000000000000000000000000000000000d", "0x0000000000000000000000000000000000000000000000000000000000000008", "0x0000000000000000000000000000000000000000000000000000000000000367", - "0x00000000000000000000000000000077c298f63acd57d13cd760f1b09e733bc3", - "0x000000000000000000000000000000000026a287c4760845db19abbc695ff36a", - "0x00000000000000000000000000000069e321196774777d330d8c47b62018ee30", - "0x0000000000000000000000000000000000295262e94218827820d221f1a676f2", - "0x000000000000000000000000000000257dbf8aaa5e15520c24e9f783198f1cfe", - "0x0000000000000000000000000000000000190713b989ee2b0ecde498ce10b549", - "0x0000000000000000000000000000002295cabfb39afdc4509c3dd66e4c75da5e", - "0x000000000000000000000000000000000027507b50fee92f2d43690c874e86a2", - "0x000000000000000000000000000000aa13c08a3a7c1467715828adcb937c2043", - "0x00000000000000000000000000000000000f8a1543c6677019dc01eb2ce85dc8", - "0x0000000000000000000000000000001675deda7e3dafff4e33979da4ebd705c4", - "0x0000000000000000000000000000000000289905e8a6dc218db585b427eb056e", - "0x0000000000000000000000000000005ca36b42f5d503af3510645776a182509a", - "0x00000000000000000000000000000000002dd8eef985765f468fae90d96ba6fc", - "0x000000000000000000000000000000cea81c59bacc58df526b5e5f65fef5b74d", - "0x00000000000000000000000000000000001c6fb7347dc56d363c90b8d4488579", - "0x00000000000000000000000000000031fde8e713e9e8fc77842379f6745e401e", - "0x00000000000000000000000000000000002a4395c65a14e549b33900648d7960", - "0x0000000000000000000000000000005c83438275fadd9a66b48380362607b9ec", - "0x00000000000000000000000000000000001b2c0ed48bd9ac3b17f36ced09b85a", - "0x0000000000000000000000000000005a3fbe86fc074463d664ec1028991daf15", - "0x00000000000000000000000000000000001c2bca0518d0dc405eecc6c9b66511", - "0x00000000000000000000000000000058fb55a413b7865807590827cbb9007644", - "0x000000000000000000000000000000000009d6fc59acc8a61214589672dcea3d", - "0x00000000000000000000000000000006e868544e82268dc595a57ee6d88aaa33", - "0x00000000000000000000000000000000002de9cde4733c1f06fdb8ac10fda985", - "0x00000000000000000000000000000061bad33649e2767633ba30e687da7b70ac", - "0x00000000000000000000000000000000002c0b0343148e6beab80557d74f318e", + "0x000000000000000000000000000000982a03f2e66da2cac7e4a6149b143d8894", + "0x00000000000000000000000000000000000f5a7d3c07484ca2c6578e42283925", + "0x00000000000000000000000000000085f14c202126ced246d3e80d01365132cd", + "0x0000000000000000000000000000000000235bffe64632b3f7cc9456845c035c", + "0x000000000000000000000000000000e301301f5f308c25d54d37b556771dde01", + "0x0000000000000000000000000000000000224aa6ca44d1f537d7fe46c35fb375", + "0x000000000000000000000000000000c2a1a84fa327cd01e5584a9f2ab627bb6a", + "0x00000000000000000000000000000000002ef4f498f73d9515ec111f780c35cb", + "0x000000000000000000000000000000661b8ab1ca4d021279b5eb570a43f02328", + "0x00000000000000000000000000000000000a8a69b2857f804889beec9910fcb0", + "0x000000000000000000000000000000d495e20d567330ba990c346de28881218a", + "0x000000000000000000000000000000000025088fb263aab66259d58bff70a403", + "0x00000000000000000000000000000087ead3154e74dd0d93af47bc2c5be32489", + "0x00000000000000000000000000000000001f251c60981ead373ec98099a933e6", + "0x000000000000000000000000000000e9364885b1471494e6d51faf752b7dde76", + "0x0000000000000000000000000000000000279489b10cfaaf37e9fa8b99d02573", + "0x00000000000000000000000000000055ec888ebc8535a432d5f781c0e75e7b69", + "0x00000000000000000000000000000000001e98e0b303a77b61daa0d884d60ee2", + "0x0000000000000000000000000000001a6295db05e4699eafbba16a4d38244d2b", + "0x0000000000000000000000000000000000026a5f5abe01edcad66659754b158d", + "0x00000000000000000000000000000077c4c65bd5a431ac8b3be01e58941aa544", + "0x000000000000000000000000000000000028191f74de4eef289e3050af1932bf", + "0x0000000000000000000000000000006d4d19b2c20ba805244d1c530dc0606d08", + "0x00000000000000000000000000000000000a8a172293eed2f1108703568c6fc1", + "0x000000000000000000000000000000873f6345850d804a3ad4a9600c6e0d3ccb", + "0x00000000000000000000000000000000000c4b365d6a70e7fa9bfa20653047be", + "0x00000000000000000000000000000038032720e00cd734ac5ed07efdd3b617a5", + "0x0000000000000000000000000000000000107248c748438dd18f2458b524716b", "0x0000000000000000000000000000004df9e2c11487e96cde4a354328c2322b7e", "0x00000000000000000000000000000000001e71380507bf8f7a65f542a668967e", "0x000000000000000000000000000000387a87e1fd5a4d755a72bf4223e72cf175", @@ -6350,78 +6350,78 @@ key = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000009ebab60fa5dc47e1914fda39298f7e6ac7", - "0x0000000000000000000000000000000000110e8c462632d85486fb2b573bb0ff", - "0x0000000000000000000000000000007d5067869e4f6c37bf78d104a880ad37e8", - "0x00000000000000000000000000000000001b8a3f8dbb8f2a3ecdd71594aca606", - "0x000000000000000000000000000000780fb7de9447ebdaf30ee24fbe3cba1300", - "0x0000000000000000000000000000000000084d032f1ae838a33a86164a6541df", - "0x000000000000000000000000000000c359ee0159370b1406940ba9db56dc4ff2", - "0x00000000000000000000000000000000001cfb12b15f63bd6b2c321b0a84f51f", - "0x00000000000000000000000000000073f32650074f87a7b77470996beeacdfe4", - "0x000000000000000000000000000000000005647aa1addd19b3136ec411e71431", - "0x000000000000000000000000000000258e47dcc86acc1d400247381ab87d4725", - "0x0000000000000000000000000000000000295e68d808cf3b272d91be2fd2ae37", - "0x0000000000000000000000000000003ba26fee14fb99c3515f5bbf524129e34f", - "0x00000000000000000000000000000000000466b9f8edd37c3fa3c7d06d1a7986", - "0x0000000000000000000000000000008318efe19eaaca4d497ad4912aa208ecee", - "0x0000000000000000000000000000000000013e5dc7040c7f8b74cec4df5572bd", + "0x0000000000000000000000000000005dc9f6062c3d43745d96622383486fe266", + "0x0000000000000000000000000000000000151753884de58ba1a1f98cc1197020", + "0x0000000000000000000000000000002c716650a8eaa2023f44307261049ae04c", + "0x00000000000000000000000000000000000f963fcb1929e7743dffbaa7079ff6", + "0x000000000000000000000000000000bfa97556591aa636d24124a48a91c935aa", + "0x0000000000000000000000000000000000175fb00a2d0309d7423ced636d46c4", + "0x000000000000000000000000000000615c6f368c80311fb4a6175fd9f0febce4", + "0x000000000000000000000000000000000009381783a151ea0be6497b44fa352d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000708a99a1df6e2f08c37655b04da1516fb", - "0x0000000000000000000000000000000000200f93be3bb23204915ddf19a6102b", - "0x0000000000000000000000000000003ff62e27b5552bbe8742ef48a1ce956a38", - "0x00000000000000000000000000000000002eb0dfb213e5244c19612993acc338", - "0x0000000000000000000000000000000c97bab3896ad5ed1bdbc6811f35b52088", - "0x000000000000000000000000000000000024ed3a2bfaf9b9620f0cf2c2210117", - "0x00000000000000000000000000000010515c3eda29482356a09bc84a2f1455b6", - "0x00000000000000000000000000000000000a473218b2415232276d99ee32b8ee", - "0x000000000000000000000000000000caed4590a347c4d3079e1d47713f5b83e1", - "0x000000000000000000000000000000000017405dec66fa4028a4f662a5b3bc5e", - "0x0000000000000000000000000000000c1444e30937299c89f8208ffe290cc18c", - "0x00000000000000000000000000000000001ebb18f648670cdd53f595444360e2", - "0x00000000000000000000000000000080b476643287925a5f4195f56b06fdd3ed", - "0x00000000000000000000000000000000001ca4ac04e44de10be2048a9bebcc62", - "0x000000000000000000000000000000cc5c01a1dc52e751c01dd9ba1cb9b49cb7", - "0x000000000000000000000000000000000022a62f4ddacd5cff46b90a535daa0a", - "0x000000000000000000000000000000dad72ff673733fba291f0d57a41d942e0a", - "0x000000000000000000000000000000000021a56ad22274e1b58118768b538104", - "0x0000000000000000000000000000005a34af8d8c8aa47da41eb1e75a0dfb8fd0", - "0x000000000000000000000000000000000026707f18815730d1a64214fcbfcc1f", - "0x000000000000000000000000000000d646a8a65170a6b78d80190d8a21ea1dff", - "0x000000000000000000000000000000000014bb9f8b9321b456fd18feafe1e161", - "0x0000000000000000000000000000001d878bb4be89e69a6688949dcaf0ce7ea4", - "0x00000000000000000000000000000000000f536993bd0cba9f0585f1df277c57", - "0x000000000000000000000000000000748b419096289f75352c8d5d112f7fdae2", - "0x0000000000000000000000000000000000022790c5c22cbd4366b0ad6e2b4519", - "0x000000000000000000000000000000fbaaa9a8b489397bc3e4d7f1056574b2e2", - "0x00000000000000000000000000000000000fae47872873bb913289047ed5610c", - "0x000000000000000000000000000000d9609f0d20812e6577cf8f21f2625e3172", - "0x00000000000000000000000000000000001b995278cd324d1fb4ec16ad835993", - "0x00000000000000000000000000000048894f6e04feabafb53f7a7b67c9e4c0e5", - "0x000000000000000000000000000000000027ec0d2be1c42a0a90b0ea2af01861", - "0x00000000000000000000000000000003e5fa4bc70fe52643ca6985c073c70dc3", - "0x0000000000000000000000000000000000038e1e0276e2e6dfe9a9d8aa596b76", - "0x00000000000000000000000000000065526bfbb668d3f936d18df508e43bccb3", - "0x00000000000000000000000000000000001f65337846109ac55e93e42a9fa3cc", - "0x000000000000000000000000000000585161baf0203d961615740c9ba7c9e707", - "0x000000000000000000000000000000000005728984358785c066c4cd63845858", - "0x0000000000000000000000000000002ff9899e736c45e4f04a866d93f57c116b", - "0x00000000000000000000000000000000002c4d422fd03c9a5b2e329d93362757", - "0x0000000000000000000000000000002cf70e3a6f9fe963cc77d1520d5d4edee6", - "0x000000000000000000000000000000000005f00e31445a7a9cd4219d268a06d4", - "0x00000000000000000000000000000025a2bc22bef7d083c5f847e80f943c189d", - "0x00000000000000000000000000000000001239130781e0d914daca12578a2b41", - "0x000000000000000000000000000000f3696d80095221316a91e185aec90d4607", - "0x00000000000000000000000000000000001469812dd8efeca285ecc964c4e02c", - "0x000000000000000000000000000000b9583e757e383f8ac91620436cfd8b488b", - "0x0000000000000000000000000000000000086edbc84ee73808efb9a82a2f806e", - "0x000000000000000000000000000000d8b0ecd6e3cddb9c693c8bf1d32795968e", - "0x00000000000000000000000000000000002757dfd7d21719de99dd25b8fc095a", - "0x000000000000000000000000000000684a589b8e853856d7cffbbf4293bf3571", - "0x00000000000000000000000000000000001c280b47d50b66bc53b6b635dc9827", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000b797bee07728bf38db12ad8ee84c8a60e", + "0x00000000000000000000000000000000002a8aacf3350f46771e2a62109c14cb", + "0x000000000000000000000000000000f214161b2eef196e40258edd9e58c27726", + "0x0000000000000000000000000000000000173fb77c31f4253274bf92fb7724f9", + "0x0000000000000000000000000000000cc9274a6c8e6b20ee920793061c11aa17", + "0x000000000000000000000000000000000001cbb3e12a84002259bcd7ff822a5a", + "0x0000000000000000000000000000004dff79153711f0b69e06edc75ae8f7e1cb", + "0x00000000000000000000000000000000002c4e8579f441f5679b333ffa5d5393", + "0x0000000000000000000000000000002f612842bf1daeaff6662993217fef4248", + "0x00000000000000000000000000000000001b2c54d075627121bdaa86e055bc74", + "0x000000000000000000000000000000446f95ae7db26dd9b282fd2ea03eea77b9", + "0x00000000000000000000000000000000000d23fd65194b6cb21f131e868d49d5", + "0x0000000000000000000000000000000a0bb3fea396411d01ab25021ec47d81dd", + "0x00000000000000000000000000000000002a52d3fc537fe064225c0618008400", + "0x00000000000000000000000000000036017a86daece2fd246d846e3583e810f8", + "0x000000000000000000000000000000000014c9f117c824746c4c14b2c34bc05e", + "0x00000000000000000000000000000048137b076b7e25cb0e7c0b4b57c4586f02", + "0x0000000000000000000000000000000000241af687945cadbd90c97fe3b62e3d", + "0x000000000000000000000000000000bb47567ed8122c65dc9b4eca778fd9765f", + "0x0000000000000000000000000000000000016a82eb37bd63b1ffcf4709fc438e", + "0x000000000000000000000000000000aee2cc57f69eb81dc76b1ba5c5c4980054", + "0x00000000000000000000000000000000002d2f0267b9c4808fc7df8a6504e09d", + "0x00000000000000000000000000000054349675f6d5c063991fbf1b5c42dc66d0", + "0x000000000000000000000000000000000020bf669280cb25e7a6094c4f0a9b35", + "0x0000000000000000000000000000001c0392a08c89f6967479cc29d25e47e1cc", + "0x00000000000000000000000000000000000788d62f35ae5a0a1fb6cb2affb4b2", + "0x000000000000000000000000000000b30271ead2c0d9d3f560964c4b7c9bb736", + "0x000000000000000000000000000000000024a9c43570c8791d7cdcf469172218", + "0x0000000000000000000000000000003b6f6bf12f2fde395f2807d7cf9136b66e", + "0x0000000000000000000000000000000000236791b6411cca14e46b6463bcb362", + "0x0000000000000000000000000000008873bd678d3ddda1329b422eb0ac586c84", + "0x00000000000000000000000000000000000e6ee94b8ccbb69d13d69c99abe056", + "0x000000000000000000000000000000231ad35b0566115f0c7511d0a97041028e", + "0x00000000000000000000000000000000000aa49395c96fb673f8aeb514ccfb84", + "0x0000000000000000000000000000002d2acce4789363e63f11a23619f1b1a875", + "0x000000000000000000000000000000000017ec5bd68b2fe2803f5d400b67177d", + "0x00000000000000000000000000000069234ec1607f0ec9c0580489a62ef4950a", + "0x000000000000000000000000000000000023d2024eb460e7ef30300a6b6e1e7e", + "0x0000000000000000000000000000006dd4d6e585a4f0beea54b0d37abf338c26", + "0x000000000000000000000000000000000004aa491a9ca2a95ea7fba0ea9321ec", + "0x000000000000000000000000000000cac58e27050872b701ab3e3e942a152b12", + "0x00000000000000000000000000000000002d03cd3aea04aaa97cdaff8241f490", + "0x0000000000000000000000000000009af7ff93a1270f957fbd6044fa2ecbe6d6", + "0x00000000000000000000000000000000002292862e8d3459f371430a0cc3dc17", + "0x00000000000000000000000000000016c6e8c6c3e4f7879a467fc44fc7112a2c", + "0x000000000000000000000000000000000002f884d5fca7a950a31af801f7a5e0", + "0x000000000000000000000000000000ccdd99ea68b51fefad799b439d2c8d8b8f", + "0x000000000000000000000000000000000025b77eed8889173f18873607e661bb", + "0x000000000000000000000000000000d8a66ead388377f7f0fbd76133bdf0cc1d", + "0x000000000000000000000000000000000014bfb6181318551197ded92abd7124", + "0x0000000000000000000000000000005deb19262219861e65f7851f7225fafc38", + "0x0000000000000000000000000000000000142d60b3c114e785e98569673dbc39", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6442,10 +6442,10 @@ key = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000b91c3664d3270a60931c471928222bf6b", - "0x00000000000000000000000000000000001a702fa77522ea7356d9d6ed1c9b9e", - "0x00000000000000000000000000000032f9984b982de6753a3668f46872fee3db", - "0x00000000000000000000000000000000003036d9814a9753be22125d50c268e7", + "0x0000000000000000000000000000005d66aa64203af0a9c294b394cfda879dd2", + "0x000000000000000000000000000000000028529c5e2eca977dd50774d11f3ae2", + "0x0000000000000000000000000000008c5d2e45eab7ac27706e1d5dcb48c5e78e", + "0x00000000000000000000000000000000000bee14fa5cbc9b03b03b7494a3103b", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6455,11 +6455,11 @@ key = [ "0x000000000000000000000000000000b97f0f863a1005a5c88ba628c1d8bb1740", "0x000000000000000000000000000000000001f73676f90fa92e0bd9ce8716cfb9" ] -hash = "0x147ef2802ee4a878790fc89ab3a742a3f9e794df4ba16a3c013856118e5e54d7" +hash = "0x0dd47543ab564142495583ecf81d42329a3cfdb84ac1b73cf69f7037697874e4" [private_call.verification_key_hints] -contract_class_artifact_hash = "0x17936c22a18e1310c8a71802414ad55bbea4d490023a55358f249edace43f2fb" -contract_class_public_bytecode_commitment = "0x1e88df4d0fb9c20b21bce0f5067f3f4c9a9da39101d2936741eb5b0cfcfc9a40" +contract_class_artifact_hash = "0x064aef8d9f88e3df31a55eb9c5ac3413db99b3e5b804beff513172c3da33c3ee" +contract_class_public_bytecode_commitment = "0x2a1752abb9e60a1c9dc56863a8664379709fdb7b9cf7fe523aa89d3da453345e" updated_class_id_delayed_public_mutable_values = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6467,12 +6467,12 @@ updated_class_id_delayed_public_mutable_values = [ ] [private_call.verification_key_hints.function_leaf_membership_witness] - leaf_index = "3" + leaf_index = "12" sibling_path = [ - "0x1768f4ffe236f2d0d6f6e42ad30d7c9ace25c145ede7b699e3a551e0f90f65de", - "0x0a83a13c3704cbec2a1c8aeab69534367d70b291243f955cf1aea1caa6092382", - "0x04f1d72b0df1c0b8759643e6ae23442a5cdfe090978072dd559a8319c0811952", - "0x29e60d7288e9b28c0d1e6f4c7244c3b92efdd2de4e7042b85a1291c2ec910b1f", + "0x0b63a53787021a4a962a452c2921b3663aff1ffd8d5510540f8e659e782956f1", + "0x1eeeb8fb2c3d5ed2bdeb4545deda4551d41e22e63ebfe4e47e98d83847870dc9", + "0x272dc5ed8d5e849a9f03e6e349b2e2bafb23652b18bc688ee2e56a7f7e8bc2c4", + "0x0a8bc0fd1f52ac0441f010c74b54387df7cdf28a474628ef4379b035863c71b0", "0x267a9c24e849f51869c93086ded207858dfb130344e1879a9d15d35096464824", "0x1eb5f748aca7413c8875abf2789be0a1aec323884a365d9a59a1859aa2bce94e", "0x2402a100768c2e339831cdb0b63e5c272a6f3318323a37642bea76ab5ea1ed0c" @@ -6499,19 +6499,19 @@ y = "0x2039907fe37f08d10739255141bb066c506a12f7d1e8dfec21abc58494705b6f" is_infinite = false [private_call.verification_key_hints.salted_initialization_hash] - inner = "0x283b87e95914a45f14ba1dbc2445f080d54b98ca600ca9c8a09bf4e6059b8e4b" + inner = "0x2b000a970a2ab6bd5772ec7e334f43df2ed033cabbbf821d2db852a1f416a3c1" [private_call.verification_key_hints.updated_class_id_witness] - leaf_index = "117" + leaf_index = "127" sibling_path = [ - "0x0371d4f7e5e7a3a1bc6eb35796ae80686c69151d345a495f9a6b43b11f13120c", - "0x015f1e689c2e78468161bdc9d10fabf2ce528bc217db9dc422ba929a70b5e860", - "0x2523970382de270c1acd87f98b4ed454353257f9c689dc608f7dc1b6ca23741a", - "0x2fa84a2c6fb5f1b544d9acb5620c87e8930bcc2f6411312fcc5d580ab4883a92", + "0x241ebee4eba08b89826f61857c2879799b1bcae2433e1160344c5c5e07f13ca0", + "0x07b6a6e0e3011d4057aacc9696d4b74b9a864eb232fb20db054a10291b1c0d65", + "0x19a14b0140cf608f962afa27bedbbec09f93eb2bddedc0fd107bcc91b2007948", + "0x004a5819120d9a2ed49a77cccfd3890c948c2867708834d15948b73d381dbf08", "0x2edd4e68944dac758244213037fbe9d622c7c28d6070f16862b3e8986090bee4", "0x1d5ea1a288ff1ff4cabceaaa2f93eda378a5fb0a2a55423f4d4d205969181931", "0x23b80d0ef13d744a52faabf5651164d28f7faf902653e41a35472eea87936e6e", - "0x27c696ad87d2ae17e4005225c67d015eaca8a9c6e97dec181f97f15e2c1ff894", + "0x02f09e5584d62da5b7243109ee0350d3df1fbf6b66fc4bc357499fff97220d66", "0x16c8aff52f0422f4bfc502620fe15dd6a4de67637563b7a8175f2d5727d268a4", "0x1c76b6744bc3d6b1cd4b53459a08b4959643c0768fde657299fcc82e2732f744", "0x12a6fac0fdfbd7897d8fe955f454cdb309ce8597d647ebfd0ba614c4eb215581", @@ -6547,41 +6547,41 @@ is_infinite = false ] [private_call.verification_key_hints.updated_class_id_leaf] - slot = "0x00d9d7e98b29d1f3eadd6bcce14809b2ca27ba47b772ef0401455915ab91d062" - value = "0x00000000000000000000000000000000000000000000021e19e0c9bab2400000" - next_slot = "0x09667a49b892551e41d7ace7350264dab6567641a5096948a522f8e57069a8c0" - next_index = "0x0000000000000000000000000000000000000000000000000000000000000076" + slot = "0x27c66b50ee920180a3da8e25af92970e3e5ace52e8515589b60165b49af7447c" + value = "0x00000000000000000000000000000000000000000000021e0d6e6e9ce12d3100" + next_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" + next_index = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs] -args_hash = "0x00fdacb86277b5caac1f0395131955d3d7ddd5988f117d742d59ecdeef9db7a5" +args_hash = "0x08bc51382a0947042534f4a2872c75c1819c8d3cd7af6be528946ca505f7de76" returns_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" -start_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000006" -end_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000010" +start_side_effect_counter = "0x000000000000000000000000000000000000000000000000000000000000000a" +end_side_effect_counter = "0x000000000000000000000000000000000000000000000000000000000000000c" expected_non_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000000" -expected_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000007" +expected_revertible_side_effect_counter = "0x000000000000000000000000000000000000000000000000000000000000000b" min_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000000" is_fee_payer = false -expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff2940" +expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a08e2ba" [app_public_inputs.call_context] is_static_call = false [app_public_inputs.call_context.msg_sender] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x06198f9a63186a7391e50d2b815c19fc46dc4b3e32597d58dad505aa14d4d6d4" [app_public_inputs.call_context.contract_address] - inner = "0x16fc6ad8c94527d45832bb8631b0c1dedf3218fe7c3ca04e01850a3eff6a511a" + inner = "0x06198f9a63186a7391e50d2b815c19fc46dc4b3e32597d58dad505aa14d4d6d4" [app_public_inputs.call_context.function_selector] - inner = "0x00000000000000000000000000000000000000000000000000000000754fb767" + inner = "0x00000000000000000000000000000000000000000000000000000000ed26fc04" [app_public_inputs.note_hash_read_requests] - length = "0x0000000000000000000000000000000000000000000000000000000000000001" + length = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.note_hash_read_requests.array]] [app_public_inputs.note_hash_read_requests.array.inner] -inner = "0x14d24541deb5dd2fb77037cada005cc9755e7cdde176fafaa83d4038e6ffe551" -counter = "0x0000000000000000000000000000000000000000000000000000000000000008" +inner = "0x0000000000000000000000000000000000000000000000000000000000000000" +counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.note_hash_read_requests.array.contract_address] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -6707,12 +6707,12 @@ counter = "0x0000000000000000000000000000000000000000000000000000000000000000" inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.nullifier_read_requests] - length = "0x0000000000000000000000000000000000000000000000000000000000000001" + length = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.nullifier_read_requests.array]] [app_public_inputs.nullifier_read_requests.array.inner] -inner = "0x16c07a80d3d164d5d8082a5dda9fb5d5f0de35fc2bc4ac2fa36182ed91ce381f" -counter = "0x0000000000000000000000000000000000000000000000000000000000000007" +inner = "0x0000000000000000000000000000000000000000000000000000000000000000" +counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.nullifier_read_requests.array.contract_address] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -6838,17 +6838,17 @@ counter = "0x0000000000000000000000000000000000000000000000000000000000000000" inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.key_validation_requests_and_separators] - length = "0x0000000000000000000000000000000000000000000000000000000000000001" + length = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.key_validation_requests_and_separators.array]] - key_type_domain_separator = "0x000000000000000000000000000000000000000000000000000000000e6ebabc" + key_type_domain_separator = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.key_validation_requests_and_separators.array.request] - sk_app = "0x06676b93f3cec2a77597fadc4704afee9dc237873051a7e2638df02f77e35be9" + sk_app = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.key_validation_requests_and_separators.array.request.pk_m] - x = "0x025f9f657095ad240d89a28336e0f7be994c9f270d62c6a3228aa8bada12d01d" - y = "0x1a7e0782cbdd3ebc39b0bd4a33b5894cb3451bc52c2fadd70371ed8d81db479f" + x = "0x0000000000000000000000000000000000000000000000000000000000000000" + y = "0x0000000000000000000000000000000000000000000000000000000000000000" is_infinite = false [[app_public_inputs.key_validation_requests_and_separators.array]] @@ -7017,15 +7017,15 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" is_infinite = false [app_public_inputs.note_hashes] - length = "0x0000000000000000000000000000000000000000000000000000000000000002" + length = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.note_hashes.array]] - inner = "0x00def7bf22ad78b9b414af8c6b920730b29275a17b6c869a3e9ad3929c416c6f" - counter = "0x000000000000000000000000000000000000000000000000000000000000000a" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" + counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.note_hashes.array]] - inner = "0x1552be33f460bfea48702663acfd93ed46d02df9080308666dccf3eec187faa8" - counter = "0x000000000000000000000000000000000000000000000000000000000000000c" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" + counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.note_hashes.array]] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -7084,20 +7084,20 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.nullifiers] - length = "0x0000000000000000000000000000000000000000000000000000000000000002" + length = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.nullifiers.array]] - counter = "0x0000000000000000000000000000000000000000000000000000000000000009" + counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.nullifiers.array.inner] - value = "0x0c3f7479d44d8ec07d6aa92e715150ec4366e314b2fca5b309e6cb9e9948f56a" + value = "0x0000000000000000000000000000000000000000000000000000000000000000" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.nullifiers.array]] - counter = "0x000000000000000000000000000000000000000000000000000000000000000e" + counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.nullifiers.array.inner] - value = "0x265ec541731007783d79c1154c1bf3c5a3a11617bf2d3bf679d939f52d140b8c" + value = "0x0000000000000000000000000000000000000000000000000000000000000000" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.nullifiers.array]] @@ -7346,20 +7346,20 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.public_call_requests] - length = "0x0000000000000000000000000000000000000000000000000000000000000000" + length = "0x0000000000000000000000000000000000000000000000000000000000000001" [[app_public_inputs.public_call_requests.array]] - counter = "0x0000000000000000000000000000000000000000000000000000000000000000" + counter = "0x000000000000000000000000000000000000000000000000000000000000000b" [app_public_inputs.public_call_requests.array.inner] is_static_call = false - calldata_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + calldata_hash = "0x20a7b6a43219402bce19aed10f6cab0b66369dda9ca4a09de52869e22d3dbc18" [app_public_inputs.public_call_requests.array.inner.msg_sender] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" + inner = "0x06198f9a63186a7391e50d2b815c19fc46dc4b3e32597d58dad505aa14d4d6d4" [app_public_inputs.public_call_requests.array.inner.contract_address] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" + inner = "0x06198f9a63186a7391e50d2b815c19fc46dc4b3e32597d58dad505aa14d4d6d4" [[app_public_inputs.public_call_requests.array]] counter = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -7850,88 +7850,88 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.private_logs] - length = "0x0000000000000000000000000000000000000000000000000000000000000003" + length = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.private_logs.array]] - counter = "0x000000000000000000000000000000000000000000000000000000000000000b" + counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.private_logs.array.inner] - note_hash_counter = "0x000000000000000000000000000000000000000000000000000000000000000a" + note_hash_counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.private_logs.array.inner.log] fields = [ - "0x0a19e21c4ab1897aa638eb354bb44aaccdb24a11525f3186595e2d2271248d15", - "0x10433733db106ed8336b9b799ec2debee9fe2da75f114f567eefde5abf9f74d3", - "0x17440c522b009a136c2207db86790b05464774690523c7fbf949ad381664d0ea", - "0x0a5e8928a4d74ad3256e8a697cfdf84b7baae32abad67b2de7c36ffd67acb665", - "0x0b1200621e156c6d79f463e17e81b96f11d18d716ca5222e7276e07d45845a26", - "0x04b2b64d09e487d10d557106046a94a97f2c40f4316e6667a2c2d9a99db05385", - "0x193da3d713c24b85e1c8f22dd8ef575e88d19c6732f8fd17e370cf64e65b3e04", - "0x08569203e8f3d028234ed200df77bca848c9b4b015ad8797c37669a5e5d1ee0c", - "0x13a9b2003409ad3d4f38caba797acc77092ddd431af25a955a83dc6f5b92cc93", - "0x16fece01bc0b0205bcbaca2904d5674d10573bfef038f94d3e5d526596da2ae9", - "0x0a438177a05071eaeb1862f154b187315de4dc804e275b0f2258baf4700c6d64", - "0x0959244a76e5e861ce5b8833101b91e19d758109d68cc174a6f9eec9c7afa008", - "0x03533d18a1c3ebcf22f820a243be161c9798ea59a506572e32e125c53b7aee7e", - "0x1e2b22ea302597bfcbcfdefcda48b60e35fce9c70f46c6cb90fa6db6e8d4dc6d", - "0x28fab93b8cd28d8d2a993badc3d1a080902feecfab019dc7c00af0ea9f6f403d", - "0x104c4c81c135af94af35a1eeb49b1262e5c53e25ee513731ddeb9f6496eea2ab" + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000" ] - length = "0x0000000000000000000000000000000000000000000000000000000000000010" + length = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.private_logs.array]] - counter = "0x000000000000000000000000000000000000000000000000000000000000000d" + counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.private_logs.array.inner] - note_hash_counter = "0x000000000000000000000000000000000000000000000000000000000000000c" + note_hash_counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.private_logs.array.inner.log] fields = [ - "0x009ca00e8f7d20a40d1266a37a186cd96c78b285a2506210cabc2fa353489be2", - "0x2320e89fb76918e7dc48b13861302dbf78af5ba8d5a20da77d19781ac32b9bc2", - "0x2a99619c0d4d380dbc3d53d03ed35011aa9c296a507fabcf712f43a0e5a10850", - "0x02e5d98e7dfbe7653dafb14afddd7e00f403b5a60816d7ab961823bd3cc4b628", - "0x223b37d6caffe87e91cddafdf65c4f641a609ff13350d02654b0fed1443088ab", - "0x2846b9aa4544f8f8851554f5d0c189c188756d734112e1eedd6840c8aeb0e66f", - "0x21cda3f228d55fb1b37f2b7c7a5d42066007143db17645669521ff58956fa7bf", - "0x1d8d79951d7389e5f9dfa963f93e399aebaa346e9ce3b3a5da1b45e4600a1553", - "0x15eabc8ed921f60621fa4fa35214748a7593f1c06a1e66b76092f789b4960bc5", - "0x16babb28d68725cb64d6d7558d49fb921c480359488fcdfb5292019239a50563", - "0x015e561b49da425d081b87bac01336defa1e29ee50d01b7be798ac28e05b24d6", - "0x04bf1a23807cb0711511a6140caf195df55fcf029842652243034ae2ca740648", - "0x2789cc422a86395739004c513cf6a15024e3adf5f2e238b18e1b4f1211a9383a", - "0x00c4e950cfe804e8a3623fe768c82b7340b0216f93c00351c53e2144364cfb51", - "0x2fd9827b4118b7ef401dff1727785e46fdd31947d2e733f4b39076f43652c18a", - "0x158ca7fba6e7fa7b3eb7c062751182d93b4e36b5c77d2e609e246b810650e59e" + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000" ] - length = "0x0000000000000000000000000000000000000000000000000000000000000010" + length = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.private_logs.array]] - counter = "0x000000000000000000000000000000000000000000000000000000000000000f" + counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.private_logs.array.inner] note_hash_counter = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.private_logs.array.inner.log] fields = [ - "0x145c6a232e670e3f0babf2a60ced437e3b543087bb24e9d398e05add3513dfa4", - "0x127157561e774918ba656738fb61ad37f92086431bd4f1e4842ab11928b0f8d2", - "0x2e5cf59c8f2eee7a06d14cdedb8fe58945357cb16f4c792094325909a12924b2", - "0x0e29376c31f2aa7a156c6ce6d1fc9529998251d8500604658f173ff86adffa98", - "0x20761b8be9a186cf6a1730b8a1e99049a07e45c005e66d27b6e0ef15a2833e2f", - "0x1adf679b2441cf3535241924a35164cf8309256721e3f9fcb860bc2acc462b46", - "0x06a613741497b7b7ee978a495bfed7d19bbf76c462d268cee17a3920b1b1abe0", - "0x10ade06e253c1cfd65f24246211fb703c157fd9b563ffaf6ab01b6fba4635155", - "0x2311c6b104555d4d9afc7d66be6b47a41f8aa96eb77f613a75fc952da5975ccf", - "0x08431c3838d7ad6198c1d33ff138953ace3520551bd95b69692609ee11ded216", - "0x1822c33cf8097138c896bb9f7aad7def909a6859d5e640919fd16ebcf153a0db", - "0x11203b31ef49d39fb85a5ea474116c334c156091ab468493a480f13ad1ec1849", - "0x207a4712bacadd2f631fe253cb62932a7acb586dd6dd1b10e0fbe733f61a8f11", - "0x2c862b0eb14b1325a0ca63dda4570f718541d998fb4aba96339b7913b80757c9", - "0x1bf17ee7d3cf2487dcf1eb7a3647b0920c9e68aacc0a33c9a424d4ee6601ded3", - "0x2c70c9b7da7d7df78fcae182d124d7041209070f76d920e5d5c2d7590c385ea1" + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000" ] - length = "0x0000000000000000000000000000000000000000000000000000000000000010" + length = "0x0000000000000000000000000000000000000000000000000000000000000000" [[app_public_inputs.private_logs.array]] counter = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -8295,50 +8295,50 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" length = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" - total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" - total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" + sponge_blob_hash = "0x1d83761792bf23b4c95369b7a4d692a7c587ba6f66806ba6e383cfef7c474435" + total_fees = "0x0000000000000000000000000000000000000000000000000339d3890be79d80" + total_mana_used = "0x000000000000000000000000000000000000000000000000000000000008992c" [app_public_inputs.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" + root = "0x25ebdebede0d68508019ab27d71b786358d5d43b9658bf153c4cda7a12013c5a" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000004" [app_public_inputs.anchor_block_header.state.l1_to_l2_message_tree] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000001000" [app_public_inputs.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" +root = "0x008b068bcfb8be338f710cd91328555ff492e79e8456dc39a70095d915bdb8f8" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000100" [app_public_inputs.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" +root = "0x236e68b37ffff23b39951b820788d40dad0b871daee9ab1d0da9b977facdefcd" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000180" [app_public_inputs.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" -next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" +root = "0x164c2191b5e98f40c17e9ca89e08607aa69bb0966edfadf9797b4697e10494e7" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [app_public_inputs.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + version = "0x000000000000000000000000000000000000000000000000000000001537b6f7" + block_number = "0x0000000000000000000000000000000000000000000000000000000000000004" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000004" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a07913a" [app_public_inputs.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" [app_public_inputs.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [app_public_inputs.anchor_block_header.global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000004386faeb40" + fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000600b849a20" [app_public_inputs.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x000000000000000000000000000000000000000000000000000000001537b6f7" [app_public_inputs.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -8350,7 +8350,7 @@ l2_gas = "0x00000000000000000000000000000000000000000000000000000000000c795c" [app_public_inputs.tx_context.gas_settings.max_fees_per_gas] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" -fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000336bfe2ba6" +fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000001cc0d810418" [app_public_inputs.tx_context.gas_settings.max_priority_fees_per_gas] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-reset/Prover.toml b/noir-projects/noir-protocol-circuits/crates/private-kernel-reset/Prover.toml index 2743b35323d1..7ec4c002efde 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-reset/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-reset/Prover.toml @@ -1,13 +1,13 @@ [previous_kernel.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" sibling_path = [ - "0x0ddc610a21615b2984181082c3de07058b9f7d4be62806c4fd475161f8bd2be3", - "0x0f92d54d29bddf6ec768db2c0b4685fb325d248b3ad9a3c6adda76c6c5004224", - "0x0656bbf5e3f4cc4fa5e2fa46e7fd370db0bee05586a1849c37c77d05abe2d8a5", - "0x166399703d23a5c22febc6185f8eb93c72b65906eefef226e643c35fa0022adb", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x096afb7078b2fe470e7640e9b501fcdd11f82a2d09dae6aa4af603058948b20d", + "0x117324d8f1837e360e42a9e1a60627c42818aab363e49e6ce9dc4a579b7d2b19", + "0x213638990f3966940871f7b7960f5f90a15e0f118976f4e528ab020570b04bad", + "0x1b91692937095aca39fbbb5fc34c0ed7c582756a3dd1d032ebe0405639b2c6ef", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [previous_kernel.vk_data.vk] @@ -19,10 +19,10 @@ sibling_path = [ "0x00000000000000000000000000000000002ce8a9b4b8b40012f631f6a39b6121", "0x000000000000000000000000000000e90605e79e3b491b4e35bed971ffe40f20", "0x000000000000000000000000000000000014aac08af29b80ea5e82169bde9f1b", - "0x000000000000000000000000000000f23100dd9e774faa9da6adabb0a5e868d1", - "0x00000000000000000000000000000000000675d3fb2db13df5feb7837a996202", - "0x0000000000000000000000000000002d41a263946c21172989f16b6c3eabd14b", - "0x00000000000000000000000000000000002f76f5733e8a0b6e45ad715c844fa3", + "0x000000000000000000000000000000d35b051d789c46237e06709dd14b79829b", + "0x00000000000000000000000000000000002f3e01ba227c974c606593b488adc3", + "0x0000000000000000000000000000009e4fe484b59aa52f4ca237dc1515945196", + "0x00000000000000000000000000000000000b87aa0de2d526d9669305b1f7dc01", "0x0000000000000000000000000000009906b77efd02f89dd64543cb41b2ee7dc0", "0x000000000000000000000000000000000011990c3a05d603a15abfdd104b7f45", "0x000000000000000000000000000000b68418cb6eb350097b81ceebf7216de49f", @@ -156,25 +156,25 @@ sibling_path = [ "0x00000000000000000000000000000071f09c1d3d2c8f9499c838fc966b04ada9", "0x00000000000000000000000000000000000f4504ac6f302739e9f2c7aa824d12" ] - hash = "0x051d17b4a7efa4af82e7c6b71f2a5cf71ee015e6d9edbcd39d326a5463aac1e6" + hash = "0x21992fb2cdc9730baa535ec3a3f555a084b80b139472fd2dc3a5328fb71aad6d" [previous_kernel_public_inputs] min_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" -expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff293f" +expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a08ec3b" is_private_only = false -claimed_first_nullifier = "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef" +claimed_first_nullifier = "0x1e1b0cecb880ad2c476059d7c305e79ead1ca62a54632fb300bec115770fe3a5" claimed_revertible_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" [previous_kernel_public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" [previous_kernel_public_inputs.constants.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" + sponge_blob_hash = "0x0ade242f6fa0b4a29ba7650068c8b1fe2e07b89d79fec1f5f7c9f37e62850cea" total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [previous_kernel_public_inputs.constants.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" + root = "0x2837ee5efe77e51a259ecd28691e8b0465da3a851f9796aa09e2043606792bb7" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" [previous_kernel_public_inputs.constants.anchor_block_header.state.l1_to_l2_message_tree] @@ -182,26 +182,26 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x1446433cc1f922db5e78b099951e1c8b2cbeb2f02ef1d1a6d02ff80cf29620a4" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1b660c208f7f4a390a454b7e993264d0413b302e90484d2aabdc0f31828c0b8d" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x04a8cfff22b5f36332529dc15c6e219e7f3de73884f1d874533ee6c392a98816" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a079abc" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -212,7 +212,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [previous_kernel_public_inputs.constants.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" [previous_kernel_public_inputs.constants.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -231,22 +231,22 @@ fee_per_da_gas = "0x000000000000000000000000000000000000000000000000000000000000 fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x1520f4bb11a3a1d2248a03d8472e9af4bb8324eb1d2d8c83bce61894383464b9" +inner = "0x0f30810fccea5788a3695b883aa8c37e4fd1c79a0832891c54e4934cdf811264" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x26a43bf066852a7b1ec3c5b454f41735fea12e2ffbefed471058124b91d94018" +inner = "0x0de48b8ff9fe893cb66949a352f552cdfa408461b12244558718053fe2f1409c" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x1bd26c6831ebc53674b13ac69a0c534563c37e46c2cbb36f2deca107a26515fa" +inner = "0x0d816f861698134be2ab49828cf8130fd9cf10c139bad660c6654d72cbd169e8" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x06870c63132d2a4e3356a76d773240efe729e7d9b9380a7a3cf1798fc9031aed" +inner = "0x17f183cae8aba4157ebd8564a2a8126473ddcc286665db9d208b90aef331ec3c" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x0083c4dfb922796f1086d399f8f3d021159d1a87ba3b833dcdf9863c630ba643" +inner = "0x01f7f2a0fc5e871935a8f4d3accf162a02d6d7240128ce63fcd45abc0430aa42" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x0b4d3a9a7a3caf83f9c2060347e48cc28c7f04d2560d1cbf5bf08d4832128a97" +inner = "0x16cebfb579bb64f80479102113bf35626052c8c36674815d1e4ae3bd6885907b" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -268,7 +268,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" [[previous_kernel_public_inputs.validation_requests.note_hash_read_requests.array]] [previous_kernel_public_inputs.validation_requests.note_hash_read_requests.array.inner] -inner = "0x29ecb485abf1e4a9963bb4dada6e8b67bda9c6bb09527ecb8d0c64a0d119e0fd" +inner = "0x20ea50cc8410f4c3f7a076594d20b999cd27dbddf10a93cf999aea13dd168a1e" counter = "0x0000000000000000000000000000000000000000000000000000000000000003" [previous_kernel_public_inputs.validation_requests.note_hash_read_requests.array.contract_address] @@ -2779,7 +2779,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" counter = "0x0000000000000000000000000000000000000000000000000000000000000001" [previous_kernel_public_inputs.end.nullifiers.array.inner.inner] - value = "0x023cfeab2c97a4c457a539c4b7c7c9d1fefa40027aacd687b5282ff01a46f27b" + value = "0x00ba69d0b7edcbe9cf8d2ee2d57537a4f02d078e7aeb2c62d736a6ec559c4159" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.end.nullifiers.array.contract_address] @@ -5594,13 +5594,13 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" [previous_kernel_public_inputs.end.public_call_requests.array.inner] is_static_call = false - calldata_hash = "0x16acf8ee72d77f214e5286307ed2710fda25445374c38debbef546a746b679ce" + calldata_hash = "0x280df32fa9c5d671c073a086d4509c0adf6862fce32aca699fe3fe40fb5f4a10" [previous_kernel_public_inputs.end.public_call_requests.array.inner.msg_sender] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [previous_kernel_public_inputs.end.public_call_requests.array.inner.contract_address] - inner = "0x16fc6ad8c94527d45832bb8631b0c1dedf3218fe7c3ca04e01850a3eff6a511a" + inner = "0x22a0174d2bf8314f2f65f114fd4f17783e2adddb4937c532eb8b7c365bf57be7" [[previous_kernel_public_inputs.end.public_call_requests.array]] counter = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -6307,7 +6307,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000000" inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [padded_side_effects] note_hashes = [ @@ -8311,9 +8311,9 @@ read_request_index = "0x00000000000000000000000000000000000000000000000000000000 "0x30105bad22ddcc508b739b7c9ad87a561c569ff5cb0098a853c1c4ac21b7a037", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", - "0x0951be8128e49814029387ac6bfbe43a1e43dadd05a6e50f78ef8265cd09b5a1", + "0x08ddac5c3e026004bf7ca7ff5236f1b5286bb99a4a4c95eef840f02d6f9661af", "0x221cf368938c74e4fced9dfb2a8e37cd8a6c57d21385c249f0b5c2412341287f", - "0x15f254a15d2db357812a7044082d84639b7c8adc2a909034fb01d4a6879296ab", + "0x2f5cce6b8a63d82be049bb8dba55abcc29bed46ba51757db33cb1e61485214eb", "0x13abc9bba431e6930c169f5daeb60aedbb27d7618c7ff88b3b4ec1c6de1d6bb8", "0x0d04c63f36bd168215c9b09a227c7e8d3ad48e2f11b8202fd07c524bd30ee88f", "0x042c72d0ca208f0631ed947050258333518c26059f0a2ef041e933b1b2a6d8ad", @@ -8350,7 +8350,7 @@ read_request_index = "0x00000000000000000000000000000000000000000000000000000000 ] [hints.note_hash_read_request_hints.settled_read_hints.leaf_preimage] - value = "0x29ecb485abf1e4a9963bb4dada6e8b67bda9c6bb09527ecb8d0c64a0d119e0fd" + value = "0x20ea50cc8410f4c3f7a076594d20b999cd27dbddf10a93cf999aea13dd168a1e" [[hints.note_hash_read_request_hints.settled_read_hints]] read_request_index = "0x0000000000000000000000000000000000000000000000000000000000000040" diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-tail-to-public/Prover.toml b/noir-projects/noir-protocol-circuits/crates/private-kernel-tail-to-public/Prover.toml index 4a9ed54ae711..15868ed35763 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-tail-to-public/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-tail-to-public/Prover.toml @@ -1,15 +1,15 @@ -expiration_timestamp_upper_bound = "0x0000000000000000000000000000000000000000000000000000000069ff1b30" +expiration_timestamp_upper_bound = "0x000000000000000000000000000000000000000000000000000000006a08de2c" [previous_kernel.vk_data] leaf_index = "0x000000000000000000000000000000000000000000000000000000000000003d" sibling_path = [ - "0x1836f64afd38c3a05416bbcee658f4acce2576bbe554a445b33b8936297034e1", - "0x2c05a8ec2045319ea62b81134a53d4e0c1b021fed7877a3a8acc676cf26794f7", - "0x280ae800476659efd90f7ae6a3a2ae3958c1261ca9ae8ba3b2b8320fc9ef662d", - "0x1afa13b72352bab63bfdb391bbadee67783679a9b5ce7fbbcde44387ba5b0eae", - "0x2a99cb07c31aa5ee3a8af2c6db61485892e126a5eac56720fcbbbb002b19d015", - "0x0384c341c7892982bb9f5581098584a00bc572787bf4153d0a52532652ace783", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x29f367742df17da1ac2ae324c1aa8e9c08321a36e620d427df41edbe1a4843d2", + "0x1d6e7e74ecd7a93b75efb2928e8423283c8dc0a6db9a2e8389ff7804672f82f7", + "0x05791394be89b82e2d9ba2469402ffbd7d3776dc1e5f851aec3cbee850e26796", + "0x1eeb7c40bfe7984ae95a1aa6948a3c8e4cb2566c9e2330ac0fdf66da5e849829", + "0x01b9f30a261f6d1294ce4da1bee8dcf399181a88362801a08cc1adef5744be25", + "0x04cabcff7079e2d4d645ecb4808a25cb4b5b0b17f37c0e5db49c1dfda7453c4a", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [previous_kernel.vk_data.vk] @@ -17,34 +17,34 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000011", "0x000000000000000000000000000000000000000000000000000000000000001a", "0x0000000000000000000000000000000000000000000000000000000000000cad", - "0x0000000000000000000000000000002b2468b5f8f13bd482d710d25b291a02d4", - "0x000000000000000000000000000000000028799bf367c0778599b2b948882163", - "0x000000000000000000000000000000fe9b706fe16bc87d35001fd66356a746bc", - "0x000000000000000000000000000000000001ca485164bddf169d3fe6c29f62e7", - "0x00000000000000000000000000000075e09707371f536b6282e95e95cb185f37", - "0x000000000000000000000000000000000024009d9583c43b01bfe49bd946bf15", - "0x000000000000000000000000000000881a9c651f0a2aae2de99f5557fa22023f", - "0x00000000000000000000000000000000000068e5a5ca58bc35138b3847beeed4", - "0x000000000000000000000000000000f223a8c39d330da2a41cef98b4e091c9b7", - "0x0000000000000000000000000000000000211f7059c97618280acecd75745235", - "0x000000000000000000000000000000044e4a5f8a66993f61ec86dfb978efde9c", - "0x0000000000000000000000000000000000090682734b33c06cd65ba8824167f6", - "0x0000000000000000000000000000007add80ab4d0d02238831551a2844a9f730", - "0x00000000000000000000000000000000000bb45a300640a05ece5fe1ad9b9ee5", - "0x0000000000000000000000000000007da2be4190c8f0f38b37f33d411b427a1b", - "0x000000000000000000000000000000000026098dd8b73e82d335f5e784cbf652", - "0x0000000000000000000000000000007ab032555b3b13f26ed0788c300e54c30a", - "0x00000000000000000000000000000000002a8c9e9e15de7b8b11220f4055bf04", - "0x000000000000000000000000000000f4ce25385f14112552f1512e2f4e99d0e8", - "0x000000000000000000000000000000000015873846a6e7648a844f037a03f737", - "0x00000000000000000000000000000076dbac5187affde31d2adfb3b5064f5a77", - "0x000000000000000000000000000000000020ef23c172d94df80288571d7e3ca3", - "0x000000000000000000000000000000e69eb7802e5d99aa20bc39dee1f6b84b8f", - "0x00000000000000000000000000000000002b2c9af00759a128112ed819b8b1b0", - "0x000000000000000000000000000000f74bd0fb26a604548c9068fef410612fb9", - "0x00000000000000000000000000000000002ca283b09804c9b7d8ca32dc3a2c75", - "0x000000000000000000000000000000c90052c50c0497cddef7e3a71872d14596", - "0x0000000000000000000000000000000000231d65742b933d5aef1ad67db52143", + "0x00000000000000000000000000000011563f48d0d3dd51be734dbb124b13caff", + "0x00000000000000000000000000000000001367c55b7f2c878f979048da0a639c", + "0x000000000000000000000000000000a5b150999d74bbf89905bf105d894ac49c", + "0x00000000000000000000000000000000002f3a14657345f22e74ae699345b95a", + "0x0000000000000000000000000000001f15507aa3fcd92ab0c9b181a58de8d0b1", + "0x00000000000000000000000000000000001a27cf1f76522ef8170b4740d231c4", + "0x000000000000000000000000000000bb856162dd484ec3496dc85ab704015749", + "0x00000000000000000000000000000000001b0c669ac88833692a032e131b8502", + "0x000000000000000000000000000000b963d6a9a36ec84202ed8345a98954e29b", + "0x00000000000000000000000000000000001c553266d1468f1cd299cc4dc0cc46", + "0x00000000000000000000000000000034e607fc0854c4215bf16d90732f68751d", + "0x00000000000000000000000000000000001c038f92562a75d698478b10e87d0f", + "0x000000000000000000000000000000e941c26347800041a810eb0347fec730dc", + "0x0000000000000000000000000000000000055b1be4a695c4f2ccbc4a65aa2330", + "0x000000000000000000000000000000886d69260c39f8d6dddc326684baaa6ea2", + "0x0000000000000000000000000000000000259636bd5f86fe44d6a1caa53a5916", + "0x000000000000000000000000000000cc265d17569f6b5ac07e1687159cddd8fd", + "0x000000000000000000000000000000000005d706fb7f59e37bb3f9538d46b5bf", + "0x000000000000000000000000000000d342da353422473f2f198569593ad09b5c", + "0x0000000000000000000000000000000000110f2d39f3a64bed83facd2d23ed03", + "0x000000000000000000000000000000918b3d472ad89e2cd16af3a50258e63b70", + "0x000000000000000000000000000000000000eb34cff07f9baed2d9fb45b0d81d", + "0x000000000000000000000000000000553a1412a8d785b232043f32a9c055b202", + "0x000000000000000000000000000000000020702274842c8705c977564752c7ac", + "0x000000000000000000000000000000634bd6393f19a264551175f883b8eeb1fc", + "0x00000000000000000000000000000000000068b54f7445119f94ac399e5afdc8", + "0x000000000000000000000000000000f680f59edc4da77e27467b8d587a6feef8", + "0x00000000000000000000000000000000000dce63ccd4a7c6f00af5c0d3e054b1", "0x000000000000000000000000000000b86b4223f0ebb39a8741b6ebba3a313095", "0x00000000000000000000000000000000001f853f71eaa7368db93d05eefb5256", "0x000000000000000000000000000000467ff45666661562c57d52de8c4f8f193c", @@ -53,78 +53,78 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000089d2777774ad5c33906740b3656fda53a0", - "0x0000000000000000000000000000000000133bedccd128dc4587817ae09af71b", - "0x000000000000000000000000000000641918e54723a119562889c1ff6239d13d", - "0x00000000000000000000000000000000002c14c2e4f17070e269f9903a383793", - "0x00000000000000000000000000000026c43cff4875a95471fe2c2008292fff78", - "0x00000000000000000000000000000000001224540abfac9c15d64e21d816b9dd", - "0x000000000000000000000000000000beb481b4d5d4eef75c1b133ca9b7efa690", - "0x000000000000000000000000000000000019b490637210bf2280a86ae0a1d7f7", - "0x000000000000000000000000000000e0b4e0795a8b1375e34eab2397b735ef03", - "0x00000000000000000000000000000000000effe6364fc31714fde11efcbe733c", - "0x0000000000000000000000000000005a1907824e164fc0fdd0f0e7c61f4d7398", - "0x00000000000000000000000000000000001cd6403b37da0361f243a3606ac383", - "0x0000000000000000000000000000006a48458b17770a4ad91f725dd01a8c486b", - "0x00000000000000000000000000000000000c395fd0e57de7d52c706e13918651", - "0x000000000000000000000000000000cde7b67f0a01ba051f06746ff7b56f59de", - "0x000000000000000000000000000000000020e0ab3fa354e260e0ac1855e128ca", + "0x00000000000000000000000000000008213b46863381382ea5fdad6571170143", + "0x000000000000000000000000000000000025928d69c7ac67a015cbcac330bd68", + "0x000000000000000000000000000000173201f0d9b8b12c10fbd2a0e1111fdca1", + "0x00000000000000000000000000000000001077cd43b91ad62e540071bd31088f", + "0x0000000000000000000000000000008824c31efb3d60a15a7f0563778f48a378", + "0x00000000000000000000000000000000002af5800f990d3bdf4d45ae0aed3a84", + "0x000000000000000000000000000000a099b3fa89113315a7046db3226bfb49bf", + "0x000000000000000000000000000000000017a49a2052cc89699e5e16c748d7c8", + "0x0000000000000000000000000000006dfdc41d84bff08492ba7513b8665a2388", + "0x00000000000000000000000000000000000bc2dee187d1196cd061bd41400f44", + "0x000000000000000000000000000000c2cb4dcb8499b1a38365218a476f3482fc", + "0x000000000000000000000000000000000014888d0cd6378b3fbf7cea2b9fe49c", + "0x0000000000000000000000000000001f19028523275beba9bb96f97311fe66a5", + "0x0000000000000000000000000000000000032c84ebef1424f4da0d8764c79627", + "0x000000000000000000000000000000ec661031b4280152732e67375fd41f22c8", + "0x00000000000000000000000000000000000b2d878cc3d73486fc594474104206", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000654fe84b50aced8eb7212098af0880ed53", - "0x00000000000000000000000000000000002b2fcb6b0ee568a71f92d2a9bbfad3", - "0x0000000000000000000000000000005d9f4f1e59fac32314c435fb51e2a25ff0", - "0x000000000000000000000000000000000009734092d4e035b968ae8ee337464c", - "0x000000000000000000000000000000a28867ea56c5fbf4aca51fdbbf965e5dae", - "0x00000000000000000000000000000000002feaf04057ed002c072833048ce9e0", - "0x000000000000000000000000000000f9b70bdcd41a1c0bade216b9d5284af115", - "0x00000000000000000000000000000000001ece78d726aaf44e37d9053ebd1534", - "0x000000000000000000000000000000c4e55b000805b017402a109a6b29805245", - "0x00000000000000000000000000000000001d999b7c6ca8df0cca3c57ee4c8be8", - "0x0000000000000000000000000000008820aa820991933af75b5d02d44d0bf685", - "0x0000000000000000000000000000000000039880d1fbfc627ab3421788858e66", - "0x000000000000000000000000000000514dfa671906947f5f640255bfc583eedc", - "0x00000000000000000000000000000000000b0e0c990016a1fdf37d3d6daea7ae", - "0x00000000000000000000000000000040dbbc0f6d52ba0ce246acf816373fbbc1", - "0x0000000000000000000000000000000000035ba8d570a6b7efa251b206e85c82", - "0x0000000000000000000000000000003ebdd6ba8db24c72ad85e8d10fb1346027", - "0x0000000000000000000000000000000000035c795b4ad27e20c934ac5ae517b8", - "0x0000000000000000000000000000005369721308b3dda5dbbab39f83bffcf79a", - "0x0000000000000000000000000000000000241a6ba1547bf3c8eb2ded3454d897", - "0x0000000000000000000000000000009f97bcbba8db2f8bda79a78c0eaefacc5a", - "0x00000000000000000000000000000000002c960a56441f3a00b2f8b48f3b3563", - "0x000000000000000000000000000000ffe2ad855d3522d6b3f8b544681949c713", - "0x00000000000000000000000000000000000002f9753e605a6cbf6dbc604046a6", - "0x0000000000000000000000000000008cfee82227443d00335c9ef376137f6217", - "0x00000000000000000000000000000000001708d8cb04ad71f327107dd3e73cfb", - "0x0000000000000000000000000000007872392082ec4533c6b70f690660ee498f", - "0x0000000000000000000000000000000000122a83a98d1d526cb57355616bb850", - "0x0000000000000000000000000000000a95a3eeae99b98360d61166e89954845a", - "0x0000000000000000000000000000000000202c82d7bd85e9243e7ed0801ebe64", - "0x00000000000000000000000000000027acbc73301fe1b0c21888c2722dd75b7a", - "0x00000000000000000000000000000000002ae7d3ca125bd531826422c7d1acf7", - "0x000000000000000000000000000000d761bb670a9ff734cc38f0d30238a2b28c", - "0x000000000000000000000000000000000005aa3fab8a429258028c4a4287a0e6", - "0x0000000000000000000000000000007a80c32a515f441ce80a5d6cdb53d50866", - "0x000000000000000000000000000000000017f409fea3a1680e6df2a07e9eb3af", - "0x0000000000000000000000000000001a93444f40b0bc09418c7894fe797e2736", - "0x0000000000000000000000000000000000171474b32205fc141e14cfb847a8d3", - "0x000000000000000000000000000000081188cb41c2b23f91bef3a8237fb5fa5d", - "0x00000000000000000000000000000000001ed9b478e77d9f60e9614dfd6014ba", - "0x00000000000000000000000000000042f9a2c111e62ef204c3851affea6af0ef", - "0x0000000000000000000000000000000000108601bd973a835e50fc521d6ec1d9", - "0x000000000000000000000000000000f92be9d44c6688723f37065c3af9521bd6", - "0x000000000000000000000000000000000022ed90948b7d0f29ee1ed4349cab5a", - "0x000000000000000000000000000000bf6e68585d4cb32aeb39412d4a3e6cd968", - "0x00000000000000000000000000000000000c8df79002571c9aef12bb6d7f3bca", - "0x000000000000000000000000000000046577d9d6782e8214d846d3a16aa8ceb7", - "0x0000000000000000000000000000000000249e158a2e56acae4de64894bb2366", - "0x0000000000000000000000000000004b4ecd7a5a335425433b11e098157c3557", - "0x0000000000000000000000000000000000152c2ebca43c64a74ea10b830e9f62", - "0x0000000000000000000000000000006e65e30a946db2c5e16462e3a487d614eb", - "0x0000000000000000000000000000000000294d7279cdf2f3a5a0f47d5d830d40", + "0x0000000000000000000000000000002cea2fea6e02d1d696f47ebaf857de960b", + "0x00000000000000000000000000000000001c364a377a48f887fc68cf7a37900b", + "0x00000000000000000000000000000011baad7450df1126e75ef43460d601a252", + "0x0000000000000000000000000000000000135f457c71b98071fe059e880dfa6c", + "0x000000000000000000000000000000c7c99c33c9c73258aa3260732ea9ff27c6", + "0x00000000000000000000000000000000001ce2cc95878479e2bca83914b9f573", + "0x0000000000000000000000000000007e89b3cbaf1a99e8eced625905b34d4638", + "0x00000000000000000000000000000000000b6934ecadaf34701878538778a730", + "0x000000000000000000000000000000d6231ad5f7f83e966ad09a146077eead7e", + "0x00000000000000000000000000000000000ab7b5147b8727e74be0cef1d03d00", + "0x000000000000000000000000000000917f018931a7cb7f78751671f344f2b190", + "0x00000000000000000000000000000000000f7e6e3ce86387c05bf4b2bec5a141", + "0x0000000000000000000000000000006b839d7a0ebf02f8c51d5f914a5fb3e750", + "0x00000000000000000000000000000000001b88dda46d56cec6b03de3cc31a9e0", + "0x0000000000000000000000000000007f1c78d5161a45f12172d2cec83354d6d9", + "0x00000000000000000000000000000000002b77637c7eabdf4171634b8c7414e8", + "0x000000000000000000000000000000b493defcea91383688114410d1d28d878c", + "0x000000000000000000000000000000000022e05a29d3898ea56326be2d8ad9b9", + "0x00000000000000000000000000000056b0b6456732bb57c560d67f7ae7edd546", + "0x000000000000000000000000000000000011917cb1cbce9c01749f765418eaf4", + "0x0000000000000000000000000000001c7786fbc810929682912244ae184f6ff3", + "0x00000000000000000000000000000000001452b4958d89eef6beec70117d191e", + "0x00000000000000000000000000000010ae5a0fd1deab1992ba82eb244fb0cde7", + "0x000000000000000000000000000000000011da18040b2c35944baccad5d9b568", + "0x0000000000000000000000000000000169eda5d290dab996a8c706ef81bf2664", + "0x00000000000000000000000000000000002c89c6c8b1c312da3be8451539f46d", + "0x000000000000000000000000000000665826f6be22c1e8366a54f6fafd6f964e", + "0x000000000000000000000000000000000003cc1682f239efee9d4f9f2f3018b6", + "0x000000000000000000000000000000c76319a11604acb2547ee4926b9bd0f181", + "0x0000000000000000000000000000000000010bd9544bfa73a13d36d44c06a154", + "0x000000000000000000000000000000f873b00e3e45a52a3941017c59b818f67c", + "0x00000000000000000000000000000000001c42e4b0a857a141dceb9a38294f3d", + "0x000000000000000000000000000000b51e20a786edc7a10671e9f109d817a7c1", + "0x00000000000000000000000000000000001ba7e7ada18e3fb5bdd97446f20e4a", + "0x0000000000000000000000000000005366493cff3922ba63dacf494b022dc02b", + "0x0000000000000000000000000000000000298707647bfe12ed8fbe700d0d2a16", + "0x00000000000000000000000000000053215d0d3090e68a5de3652637c3d34a86", + "0x0000000000000000000000000000000000164ff4b3856b85a178f9d83ae49063", + "0x0000000000000000000000000000002562e74c6140ce1cc1abf92627edee6047", + "0x00000000000000000000000000000000002f487595aac1f4f495f45876e4471f", + "0x0000000000000000000000000000001faa9be57d5d23a275fcf89395269d21c4", + "0x00000000000000000000000000000000001a95c75afb175ff8662d0dcda686ab", + "0x000000000000000000000000000000c980e5a60d92611ec9f0eaf66d4377fb12", + "0x000000000000000000000000000000000006b2be8b4931815bf4e070d03dfdfc", + "0x0000000000000000000000000000008d14744b77d826a4a1dda629dd6452076e", + "0x000000000000000000000000000000000021421b00b686a33f726ccc6fd65812", + "0x0000000000000000000000000000001d26c9d3d324fe2b3b9446297ac2ccd9ec", + "0x00000000000000000000000000000000001624a9f336ccb055b2233c70a98368", + "0x0000000000000000000000000000006dcf470e8960856d6f097947933a5d62b0", + "0x0000000000000000000000000000000000027b997cf8aa013e442ac3fb440557", + "0x00000000000000000000000000000002726bc9d04fdb56b9aa67527a0437880a", + "0x0000000000000000000000000000000000084b7c224f9c01f478fafa937a0a00", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -145,10 +145,10 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000034620fc4f5dc2f120b5673912cf04226e9", - "0x000000000000000000000000000000000025a6078d74c0fd7d4dd9e328ad4c94", - "0x00000000000000000000000000000019d834f9bb59a8e973ed867f0477fc8121", - "0x00000000000000000000000000000000001fdeb0dc3db761477a1a9feb00c906", + "0x000000000000000000000000000000599a08e2d4c0086a5af438d96cc138ccc2", + "0x0000000000000000000000000000000000281c8a4d206d94c435d22524003355", + "0x0000000000000000000000000000009039170f98bdc371b0fd62cd15af98733d", + "0x000000000000000000000000000000000019d6463aec3577b13256d70b01f367", "0x00000000000000000000000000000076959cf0870e0ae93bb69edc64b0cacdac", "0x0000000000000000000000000000000000269679f8c1a1ad2aadccaf8ba3100e", "0x000000000000000000000000000000bb028a742987d54246ffc933f8240d70ef", @@ -158,25 +158,25 @@ sibling_path = [ "0x00000000000000000000000000000071f09c1d3d2c8f9499c838fc966b04ada9", "0x00000000000000000000000000000000000f4504ac6f302739e9f2c7aa824d12" ] - hash = "0x297f9ac45dd6c9f333314227aacca93023e72710232e7120328d7e7c209ebc8f" + hash = "0x128985134809b0082950e81a10ca3f20f31c4d6a1e2f2a62a195019dff6db56b" [previous_kernel_public_inputs] min_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" -expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff293f" +expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a08ec3b" is_private_only = false -claimed_first_nullifier = "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef" +claimed_first_nullifier = "0x1e1b0cecb880ad2c476059d7c305e79ead1ca62a54632fb300bec115770fe3a5" claimed_revertible_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" [previous_kernel_public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" [previous_kernel_public_inputs.constants.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" + sponge_blob_hash = "0x0ade242f6fa0b4a29ba7650068c8b1fe2e07b89d79fec1f5f7c9f37e62850cea" total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [previous_kernel_public_inputs.constants.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" + root = "0x2837ee5efe77e51a259ecd28691e8b0465da3a851f9796aa09e2043606792bb7" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" [previous_kernel_public_inputs.constants.anchor_block_header.state.l1_to_l2_message_tree] @@ -184,26 +184,26 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x1446433cc1f922db5e78b099951e1c8b2cbeb2f02ef1d1a6d02ff80cf29620a4" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1b660c208f7f4a390a454b7e993264d0413b302e90484d2aabdc0f31828c0b8d" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x04a8cfff22b5f36332529dc15c6e219e7f3de73884f1d874533ee6c392a98816" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a079abc" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -214,7 +214,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [previous_kernel_public_inputs.constants.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" [previous_kernel_public_inputs.constants.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -233,22 +233,22 @@ fee_per_da_gas = "0x000000000000000000000000000000000000000000000000000000000000 fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x1520f4bb11a3a1d2248a03d8472e9af4bb8324eb1d2d8c83bce61894383464b9" +inner = "0x0f30810fccea5788a3695b883aa8c37e4fd1c79a0832891c54e4934cdf811264" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x26a43bf066852a7b1ec3c5b454f41735fea12e2ffbefed471058124b91d94018" +inner = "0x0de48b8ff9fe893cb66949a352f552cdfa408461b12244558718053fe2f1409c" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x1bd26c6831ebc53674b13ac69a0c534563c37e46c2cbb36f2deca107a26515fa" +inner = "0x0d816f861698134be2ab49828cf8130fd9cf10c139bad660c6654d72cbd169e8" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x06870c63132d2a4e3356a76d773240efe729e7d9b9380a7a3cf1798fc9031aed" +inner = "0x17f183cae8aba4157ebd8564a2a8126473ddcc286665db9d208b90aef331ec3c" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x0083c4dfb922796f1086d399f8f3d021159d1a87ba3b833dcdf9863c630ba643" +inner = "0x01f7f2a0fc5e871935a8f4d3accf162a02d6d7240128ce63fcd45abc0430aa42" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x0b4d3a9a7a3caf83f9c2060347e48cc28c7f04d2560d1cbf5bf08d4832128a97" +inner = "0x16cebfb579bb64f80479102113bf35626052c8c36674815d1e4ae3bd6885907b" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -2781,7 +2781,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" counter = "0x0000000000000000000000000000000000000000000000000000000000000001" [previous_kernel_public_inputs.end.nullifiers.array.inner.inner] - value = "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef" + value = "0x1e1b0cecb880ad2c476059d7c305e79ead1ca62a54632fb300bec115770fe3a5" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.end.nullifiers.array.contract_address] @@ -5596,13 +5596,13 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000001" [previous_kernel_public_inputs.end.public_call_requests.array.inner] is_static_call = false - calldata_hash = "0x16acf8ee72d77f214e5286307ed2710fda25445374c38debbef546a746b679ce" + calldata_hash = "0x280df32fa9c5d671c073a086d4509c0adf6862fce32aca699fe3fe40fb5f4a10" [previous_kernel_public_inputs.end.public_call_requests.array.inner.msg_sender] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [previous_kernel_public_inputs.end.public_call_requests.array.inner.contract_address] - inner = "0x16fc6ad8c94527d45832bb8631b0c1dedf3218fe7c3ca04e01850a3eff6a511a" + inner = "0x22a0174d2bf8314f2f65f114fd4f17783e2adddb4937c532eb8b7c365bf57be7" [[previous_kernel_public_inputs.end.public_call_requests.array]] counter = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -6309,7 +6309,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000000" inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [padded_side_effect_amounts] non_revertible_note_hashes = "0x0000000000000000000000000000000000000000000000000000000000000000" diff --git a/noir-projects/noir-protocol-circuits/crates/private-kernel-tail/Prover.toml b/noir-projects/noir-protocol-circuits/crates/private-kernel-tail/Prover.toml index e85826cf5411..3c4b17a4dec1 100644 --- a/noir-projects/noir-protocol-circuits/crates/private-kernel-tail/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/private-kernel-tail/Prover.toml @@ -1,15 +1,15 @@ -expiration_timestamp_upper_bound = "0x0000000000000000000000000000000000000000000000000000000069ff1b30" +expiration_timestamp_upper_bound = "0x000000000000000000000000000000000000000000000000000000006a08de2c" [previous_kernel.vk_data] leaf_index = "0x000000000000000000000000000000000000000000000000000000000000003d" sibling_path = [ - "0x1836f64afd38c3a05416bbcee658f4acce2576bbe554a445b33b8936297034e1", - "0x2c05a8ec2045319ea62b81134a53d4e0c1b021fed7877a3a8acc676cf26794f7", - "0x280ae800476659efd90f7ae6a3a2ae3958c1261ca9ae8ba3b2b8320fc9ef662d", - "0x1afa13b72352bab63bfdb391bbadee67783679a9b5ce7fbbcde44387ba5b0eae", - "0x2a99cb07c31aa5ee3a8af2c6db61485892e126a5eac56720fcbbbb002b19d015", - "0x0384c341c7892982bb9f5581098584a00bc572787bf4153d0a52532652ace783", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x29f367742df17da1ac2ae324c1aa8e9c08321a36e620d427df41edbe1a4843d2", + "0x1d6e7e74ecd7a93b75efb2928e8423283c8dc0a6db9a2e8389ff7804672f82f7", + "0x05791394be89b82e2d9ba2469402ffbd7d3776dc1e5f851aec3cbee850e26796", + "0x1eeb7c40bfe7984ae95a1aa6948a3c8e4cb2566c9e2330ac0fdf66da5e849829", + "0x01b9f30a261f6d1294ce4da1bee8dcf399181a88362801a08cc1adef5744be25", + "0x04cabcff7079e2d4d645ecb4808a25cb4b5b0b17f37c0e5db49c1dfda7453c4a", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [previous_kernel.vk_data.vk] @@ -17,34 +17,34 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000011", "0x000000000000000000000000000000000000000000000000000000000000001a", "0x0000000000000000000000000000000000000000000000000000000000000cad", - "0x0000000000000000000000000000002b2468b5f8f13bd482d710d25b291a02d4", - "0x000000000000000000000000000000000028799bf367c0778599b2b948882163", - "0x000000000000000000000000000000fe9b706fe16bc87d35001fd66356a746bc", - "0x000000000000000000000000000000000001ca485164bddf169d3fe6c29f62e7", - "0x00000000000000000000000000000075e09707371f536b6282e95e95cb185f37", - "0x000000000000000000000000000000000024009d9583c43b01bfe49bd946bf15", - "0x000000000000000000000000000000881a9c651f0a2aae2de99f5557fa22023f", - "0x00000000000000000000000000000000000068e5a5ca58bc35138b3847beeed4", - "0x000000000000000000000000000000f223a8c39d330da2a41cef98b4e091c9b7", - "0x0000000000000000000000000000000000211f7059c97618280acecd75745235", - "0x000000000000000000000000000000044e4a5f8a66993f61ec86dfb978efde9c", - "0x0000000000000000000000000000000000090682734b33c06cd65ba8824167f6", - "0x0000000000000000000000000000007add80ab4d0d02238831551a2844a9f730", - "0x00000000000000000000000000000000000bb45a300640a05ece5fe1ad9b9ee5", - "0x0000000000000000000000000000007da2be4190c8f0f38b37f33d411b427a1b", - "0x000000000000000000000000000000000026098dd8b73e82d335f5e784cbf652", - "0x0000000000000000000000000000007ab032555b3b13f26ed0788c300e54c30a", - "0x00000000000000000000000000000000002a8c9e9e15de7b8b11220f4055bf04", - "0x000000000000000000000000000000f4ce25385f14112552f1512e2f4e99d0e8", - "0x000000000000000000000000000000000015873846a6e7648a844f037a03f737", - "0x00000000000000000000000000000076dbac5187affde31d2adfb3b5064f5a77", - "0x000000000000000000000000000000000020ef23c172d94df80288571d7e3ca3", - "0x000000000000000000000000000000e69eb7802e5d99aa20bc39dee1f6b84b8f", - "0x00000000000000000000000000000000002b2c9af00759a128112ed819b8b1b0", - "0x000000000000000000000000000000f74bd0fb26a604548c9068fef410612fb9", - "0x00000000000000000000000000000000002ca283b09804c9b7d8ca32dc3a2c75", - "0x000000000000000000000000000000c90052c50c0497cddef7e3a71872d14596", - "0x0000000000000000000000000000000000231d65742b933d5aef1ad67db52143", + "0x00000000000000000000000000000011563f48d0d3dd51be734dbb124b13caff", + "0x00000000000000000000000000000000001367c55b7f2c878f979048da0a639c", + "0x000000000000000000000000000000a5b150999d74bbf89905bf105d894ac49c", + "0x00000000000000000000000000000000002f3a14657345f22e74ae699345b95a", + "0x0000000000000000000000000000001f15507aa3fcd92ab0c9b181a58de8d0b1", + "0x00000000000000000000000000000000001a27cf1f76522ef8170b4740d231c4", + "0x000000000000000000000000000000bb856162dd484ec3496dc85ab704015749", + "0x00000000000000000000000000000000001b0c669ac88833692a032e131b8502", + "0x000000000000000000000000000000b963d6a9a36ec84202ed8345a98954e29b", + "0x00000000000000000000000000000000001c553266d1468f1cd299cc4dc0cc46", + "0x00000000000000000000000000000034e607fc0854c4215bf16d90732f68751d", + "0x00000000000000000000000000000000001c038f92562a75d698478b10e87d0f", + "0x000000000000000000000000000000e941c26347800041a810eb0347fec730dc", + "0x0000000000000000000000000000000000055b1be4a695c4f2ccbc4a65aa2330", + "0x000000000000000000000000000000886d69260c39f8d6dddc326684baaa6ea2", + "0x0000000000000000000000000000000000259636bd5f86fe44d6a1caa53a5916", + "0x000000000000000000000000000000cc265d17569f6b5ac07e1687159cddd8fd", + "0x000000000000000000000000000000000005d706fb7f59e37bb3f9538d46b5bf", + "0x000000000000000000000000000000d342da353422473f2f198569593ad09b5c", + "0x0000000000000000000000000000000000110f2d39f3a64bed83facd2d23ed03", + "0x000000000000000000000000000000918b3d472ad89e2cd16af3a50258e63b70", + "0x000000000000000000000000000000000000eb34cff07f9baed2d9fb45b0d81d", + "0x000000000000000000000000000000553a1412a8d785b232043f32a9c055b202", + "0x000000000000000000000000000000000020702274842c8705c977564752c7ac", + "0x000000000000000000000000000000634bd6393f19a264551175f883b8eeb1fc", + "0x00000000000000000000000000000000000068b54f7445119f94ac399e5afdc8", + "0x000000000000000000000000000000f680f59edc4da77e27467b8d587a6feef8", + "0x00000000000000000000000000000000000dce63ccd4a7c6f00af5c0d3e054b1", "0x000000000000000000000000000000b86b4223f0ebb39a8741b6ebba3a313095", "0x00000000000000000000000000000000001f853f71eaa7368db93d05eefb5256", "0x000000000000000000000000000000467ff45666661562c57d52de8c4f8f193c", @@ -53,78 +53,78 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000089d2777774ad5c33906740b3656fda53a0", - "0x0000000000000000000000000000000000133bedccd128dc4587817ae09af71b", - "0x000000000000000000000000000000641918e54723a119562889c1ff6239d13d", - "0x00000000000000000000000000000000002c14c2e4f17070e269f9903a383793", - "0x00000000000000000000000000000026c43cff4875a95471fe2c2008292fff78", - "0x00000000000000000000000000000000001224540abfac9c15d64e21d816b9dd", - "0x000000000000000000000000000000beb481b4d5d4eef75c1b133ca9b7efa690", - "0x000000000000000000000000000000000019b490637210bf2280a86ae0a1d7f7", - "0x000000000000000000000000000000e0b4e0795a8b1375e34eab2397b735ef03", - "0x00000000000000000000000000000000000effe6364fc31714fde11efcbe733c", - "0x0000000000000000000000000000005a1907824e164fc0fdd0f0e7c61f4d7398", - "0x00000000000000000000000000000000001cd6403b37da0361f243a3606ac383", - "0x0000000000000000000000000000006a48458b17770a4ad91f725dd01a8c486b", - "0x00000000000000000000000000000000000c395fd0e57de7d52c706e13918651", - "0x000000000000000000000000000000cde7b67f0a01ba051f06746ff7b56f59de", - "0x000000000000000000000000000000000020e0ab3fa354e260e0ac1855e128ca", + "0x00000000000000000000000000000008213b46863381382ea5fdad6571170143", + "0x000000000000000000000000000000000025928d69c7ac67a015cbcac330bd68", + "0x000000000000000000000000000000173201f0d9b8b12c10fbd2a0e1111fdca1", + "0x00000000000000000000000000000000001077cd43b91ad62e540071bd31088f", + "0x0000000000000000000000000000008824c31efb3d60a15a7f0563778f48a378", + "0x00000000000000000000000000000000002af5800f990d3bdf4d45ae0aed3a84", + "0x000000000000000000000000000000a099b3fa89113315a7046db3226bfb49bf", + "0x000000000000000000000000000000000017a49a2052cc89699e5e16c748d7c8", + "0x0000000000000000000000000000006dfdc41d84bff08492ba7513b8665a2388", + "0x00000000000000000000000000000000000bc2dee187d1196cd061bd41400f44", + "0x000000000000000000000000000000c2cb4dcb8499b1a38365218a476f3482fc", + "0x000000000000000000000000000000000014888d0cd6378b3fbf7cea2b9fe49c", + "0x0000000000000000000000000000001f19028523275beba9bb96f97311fe66a5", + "0x0000000000000000000000000000000000032c84ebef1424f4da0d8764c79627", + "0x000000000000000000000000000000ec661031b4280152732e67375fd41f22c8", + "0x00000000000000000000000000000000000b2d878cc3d73486fc594474104206", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000654fe84b50aced8eb7212098af0880ed53", - "0x00000000000000000000000000000000002b2fcb6b0ee568a71f92d2a9bbfad3", - "0x0000000000000000000000000000005d9f4f1e59fac32314c435fb51e2a25ff0", - "0x000000000000000000000000000000000009734092d4e035b968ae8ee337464c", - "0x000000000000000000000000000000a28867ea56c5fbf4aca51fdbbf965e5dae", - "0x00000000000000000000000000000000002feaf04057ed002c072833048ce9e0", - "0x000000000000000000000000000000f9b70bdcd41a1c0bade216b9d5284af115", - "0x00000000000000000000000000000000001ece78d726aaf44e37d9053ebd1534", - "0x000000000000000000000000000000c4e55b000805b017402a109a6b29805245", - "0x00000000000000000000000000000000001d999b7c6ca8df0cca3c57ee4c8be8", - "0x0000000000000000000000000000008820aa820991933af75b5d02d44d0bf685", - "0x0000000000000000000000000000000000039880d1fbfc627ab3421788858e66", - "0x000000000000000000000000000000514dfa671906947f5f640255bfc583eedc", - "0x00000000000000000000000000000000000b0e0c990016a1fdf37d3d6daea7ae", - "0x00000000000000000000000000000040dbbc0f6d52ba0ce246acf816373fbbc1", - "0x0000000000000000000000000000000000035ba8d570a6b7efa251b206e85c82", - "0x0000000000000000000000000000003ebdd6ba8db24c72ad85e8d10fb1346027", - "0x0000000000000000000000000000000000035c795b4ad27e20c934ac5ae517b8", - "0x0000000000000000000000000000005369721308b3dda5dbbab39f83bffcf79a", - "0x0000000000000000000000000000000000241a6ba1547bf3c8eb2ded3454d897", - "0x0000000000000000000000000000009f97bcbba8db2f8bda79a78c0eaefacc5a", - "0x00000000000000000000000000000000002c960a56441f3a00b2f8b48f3b3563", - "0x000000000000000000000000000000ffe2ad855d3522d6b3f8b544681949c713", - "0x00000000000000000000000000000000000002f9753e605a6cbf6dbc604046a6", - "0x0000000000000000000000000000008cfee82227443d00335c9ef376137f6217", - "0x00000000000000000000000000000000001708d8cb04ad71f327107dd3e73cfb", - "0x0000000000000000000000000000007872392082ec4533c6b70f690660ee498f", - "0x0000000000000000000000000000000000122a83a98d1d526cb57355616bb850", - "0x0000000000000000000000000000000a95a3eeae99b98360d61166e89954845a", - "0x0000000000000000000000000000000000202c82d7bd85e9243e7ed0801ebe64", - "0x00000000000000000000000000000027acbc73301fe1b0c21888c2722dd75b7a", - "0x00000000000000000000000000000000002ae7d3ca125bd531826422c7d1acf7", - "0x000000000000000000000000000000d761bb670a9ff734cc38f0d30238a2b28c", - "0x000000000000000000000000000000000005aa3fab8a429258028c4a4287a0e6", - "0x0000000000000000000000000000007a80c32a515f441ce80a5d6cdb53d50866", - "0x000000000000000000000000000000000017f409fea3a1680e6df2a07e9eb3af", - "0x0000000000000000000000000000001a93444f40b0bc09418c7894fe797e2736", - "0x0000000000000000000000000000000000171474b32205fc141e14cfb847a8d3", - "0x000000000000000000000000000000081188cb41c2b23f91bef3a8237fb5fa5d", - "0x00000000000000000000000000000000001ed9b478e77d9f60e9614dfd6014ba", - "0x00000000000000000000000000000042f9a2c111e62ef204c3851affea6af0ef", - "0x0000000000000000000000000000000000108601bd973a835e50fc521d6ec1d9", - "0x000000000000000000000000000000f92be9d44c6688723f37065c3af9521bd6", - "0x000000000000000000000000000000000022ed90948b7d0f29ee1ed4349cab5a", - "0x000000000000000000000000000000bf6e68585d4cb32aeb39412d4a3e6cd968", - "0x00000000000000000000000000000000000c8df79002571c9aef12bb6d7f3bca", - "0x000000000000000000000000000000046577d9d6782e8214d846d3a16aa8ceb7", - "0x0000000000000000000000000000000000249e158a2e56acae4de64894bb2366", - "0x0000000000000000000000000000004b4ecd7a5a335425433b11e098157c3557", - "0x0000000000000000000000000000000000152c2ebca43c64a74ea10b830e9f62", - "0x0000000000000000000000000000006e65e30a946db2c5e16462e3a487d614eb", - "0x0000000000000000000000000000000000294d7279cdf2f3a5a0f47d5d830d40", + "0x0000000000000000000000000000002cea2fea6e02d1d696f47ebaf857de960b", + "0x00000000000000000000000000000000001c364a377a48f887fc68cf7a37900b", + "0x00000000000000000000000000000011baad7450df1126e75ef43460d601a252", + "0x0000000000000000000000000000000000135f457c71b98071fe059e880dfa6c", + "0x000000000000000000000000000000c7c99c33c9c73258aa3260732ea9ff27c6", + "0x00000000000000000000000000000000001ce2cc95878479e2bca83914b9f573", + "0x0000000000000000000000000000007e89b3cbaf1a99e8eced625905b34d4638", + "0x00000000000000000000000000000000000b6934ecadaf34701878538778a730", + "0x000000000000000000000000000000d6231ad5f7f83e966ad09a146077eead7e", + "0x00000000000000000000000000000000000ab7b5147b8727e74be0cef1d03d00", + "0x000000000000000000000000000000917f018931a7cb7f78751671f344f2b190", + "0x00000000000000000000000000000000000f7e6e3ce86387c05bf4b2bec5a141", + "0x0000000000000000000000000000006b839d7a0ebf02f8c51d5f914a5fb3e750", + "0x00000000000000000000000000000000001b88dda46d56cec6b03de3cc31a9e0", + "0x0000000000000000000000000000007f1c78d5161a45f12172d2cec83354d6d9", + "0x00000000000000000000000000000000002b77637c7eabdf4171634b8c7414e8", + "0x000000000000000000000000000000b493defcea91383688114410d1d28d878c", + "0x000000000000000000000000000000000022e05a29d3898ea56326be2d8ad9b9", + "0x00000000000000000000000000000056b0b6456732bb57c560d67f7ae7edd546", + "0x000000000000000000000000000000000011917cb1cbce9c01749f765418eaf4", + "0x0000000000000000000000000000001c7786fbc810929682912244ae184f6ff3", + "0x00000000000000000000000000000000001452b4958d89eef6beec70117d191e", + "0x00000000000000000000000000000010ae5a0fd1deab1992ba82eb244fb0cde7", + "0x000000000000000000000000000000000011da18040b2c35944baccad5d9b568", + "0x0000000000000000000000000000000169eda5d290dab996a8c706ef81bf2664", + "0x00000000000000000000000000000000002c89c6c8b1c312da3be8451539f46d", + "0x000000000000000000000000000000665826f6be22c1e8366a54f6fafd6f964e", + "0x000000000000000000000000000000000003cc1682f239efee9d4f9f2f3018b6", + "0x000000000000000000000000000000c76319a11604acb2547ee4926b9bd0f181", + "0x0000000000000000000000000000000000010bd9544bfa73a13d36d44c06a154", + "0x000000000000000000000000000000f873b00e3e45a52a3941017c59b818f67c", + "0x00000000000000000000000000000000001c42e4b0a857a141dceb9a38294f3d", + "0x000000000000000000000000000000b51e20a786edc7a10671e9f109d817a7c1", + "0x00000000000000000000000000000000001ba7e7ada18e3fb5bdd97446f20e4a", + "0x0000000000000000000000000000005366493cff3922ba63dacf494b022dc02b", + "0x0000000000000000000000000000000000298707647bfe12ed8fbe700d0d2a16", + "0x00000000000000000000000000000053215d0d3090e68a5de3652637c3d34a86", + "0x0000000000000000000000000000000000164ff4b3856b85a178f9d83ae49063", + "0x0000000000000000000000000000002562e74c6140ce1cc1abf92627edee6047", + "0x00000000000000000000000000000000002f487595aac1f4f495f45876e4471f", + "0x0000000000000000000000000000001faa9be57d5d23a275fcf89395269d21c4", + "0x00000000000000000000000000000000001a95c75afb175ff8662d0dcda686ab", + "0x000000000000000000000000000000c980e5a60d92611ec9f0eaf66d4377fb12", + "0x000000000000000000000000000000000006b2be8b4931815bf4e070d03dfdfc", + "0x0000000000000000000000000000008d14744b77d826a4a1dda629dd6452076e", + "0x000000000000000000000000000000000021421b00b686a33f726ccc6fd65812", + "0x0000000000000000000000000000001d26c9d3d324fe2b3b9446297ac2ccd9ec", + "0x00000000000000000000000000000000001624a9f336ccb055b2233c70a98368", + "0x0000000000000000000000000000006dcf470e8960856d6f097947933a5d62b0", + "0x0000000000000000000000000000000000027b997cf8aa013e442ac3fb440557", + "0x00000000000000000000000000000002726bc9d04fdb56b9aa67527a0437880a", + "0x0000000000000000000000000000000000084b7c224f9c01f478fafa937a0a00", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -145,10 +145,10 @@ sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000034620fc4f5dc2f120b5673912cf04226e9", - "0x000000000000000000000000000000000025a6078d74c0fd7d4dd9e328ad4c94", - "0x00000000000000000000000000000019d834f9bb59a8e973ed867f0477fc8121", - "0x00000000000000000000000000000000001fdeb0dc3db761477a1a9feb00c906", + "0x000000000000000000000000000000599a08e2d4c0086a5af438d96cc138ccc2", + "0x0000000000000000000000000000000000281c8a4d206d94c435d22524003355", + "0x0000000000000000000000000000009039170f98bdc371b0fd62cd15af98733d", + "0x000000000000000000000000000000000019d6463aec3577b13256d70b01f367", "0x00000000000000000000000000000076959cf0870e0ae93bb69edc64b0cacdac", "0x0000000000000000000000000000000000269679f8c1a1ad2aadccaf8ba3100e", "0x000000000000000000000000000000bb028a742987d54246ffc933f8240d70ef", @@ -158,25 +158,25 @@ sibling_path = [ "0x00000000000000000000000000000071f09c1d3d2c8f9499c838fc966b04ada9", "0x00000000000000000000000000000000000f4504ac6f302739e9f2c7aa824d12" ] - hash = "0x297f9ac45dd6c9f333314227aacca93023e72710232e7120328d7e7c209ebc8f" + hash = "0x128985134809b0082950e81a10ca3f20f31c4d6a1e2f2a62a195019dff6db56b" [previous_kernel_public_inputs] min_revertible_side_effect_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" -expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff293f" +expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a08ec3b" is_private_only = true -claimed_first_nullifier = "0x282b555a2f009837bd02f744ae119250934c991464481b5613f7f2112a615f7c" +claimed_first_nullifier = "0x1f164bf0251cd7584f5b55a6ac6d2de0252f53ea54f5bf820f4a11dbf11c430b" claimed_revertible_counter = "0x0000000000000000000000000000000000000000000000000000000000000005" [previous_kernel_public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" [previous_kernel_public_inputs.constants.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" + sponge_blob_hash = "0x0ade242f6fa0b4a29ba7650068c8b1fe2e07b89d79fec1f5f7c9f37e62850cea" total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [previous_kernel_public_inputs.constants.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" + root = "0x2837ee5efe77e51a259ecd28691e8b0465da3a851f9796aa09e2043606792bb7" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" [previous_kernel_public_inputs.constants.anchor_block_header.state.l1_to_l2_message_tree] @@ -184,26 +184,26 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x1446433cc1f922db5e78b099951e1c8b2cbeb2f02ef1d1a6d02ff80cf29620a4" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1b660c208f7f4a390a454b7e993264d0413b302e90484d2aabdc0f31828c0b8d" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [previous_kernel_public_inputs.constants.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x04a8cfff22b5f36332529dc15c6e219e7f3de73884f1d874533ee6c392a98816" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a079abc" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [previous_kernel_public_inputs.constants.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -214,7 +214,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [previous_kernel_public_inputs.constants.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" [previous_kernel_public_inputs.constants.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -233,22 +233,22 @@ fee_per_da_gas = "0x000000000000000000000000000000000000000000000000000000000000 fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x1520f4bb11a3a1d2248a03d8472e9af4bb8324eb1d2d8c83bce61894383464b9" +inner = "0x0f30810fccea5788a3695b883aa8c37e4fd1c79a0832891c54e4934cdf811264" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x26a43bf066852a7b1ec3c5b454f41735fea12e2ffbefed471058124b91d94018" +inner = "0x0de48b8ff9fe893cb66949a352f552cdfa408461b12244558718053fe2f1409c" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x1bd26c6831ebc53674b13ac69a0c534563c37e46c2cbb36f2deca107a26515fa" +inner = "0x0d816f861698134be2ab49828cf8130fd9cf10c139bad660c6654d72cbd169e8" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x06870c63132d2a4e3356a76d773240efe729e7d9b9380a7a3cf1798fc9031aed" +inner = "0x17f183cae8aba4157ebd8564a2a8126473ddcc286665db9d208b90aef331ec3c" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x0083c4dfb922796f1086d399f8f3d021159d1a87ba3b833dcdf9863c630ba643" +inner = "0x01f7f2a0fc5e871935a8f4d3accf162a02d6d7240128ce63fcd45abc0430aa42" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] -inner = "0x0b4d3a9a7a3caf83f9c2060347e48cc28c7f04d2560d1cbf5bf08d4832128a97" +inner = "0x16cebfb579bb64f80479102113bf35626052c8c36674815d1e4ae3bd6885907b" [[previous_kernel_public_inputs.constants.protocol_contracts.derived_addresses]] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -2263,7 +2263,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000002" [[previous_kernel_public_inputs.end.note_hashes.array]] [previous_kernel_public_inputs.end.note_hashes.array.inner] -inner = "0x2295fa9f079bf362a4f01c3b07d9f912f9b484e5ee527ad7a528025a165b9352" +inner = "0x0162e3d0bfdca3f950333293ef53a13c77e88f25132eac800ebbedfcfc28ecb4" counter = "0x000000000000000000000000000000000000000000000000000000000000000a" [previous_kernel_public_inputs.end.note_hashes.array.contract_address] @@ -2271,7 +2271,7 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[previous_kernel_public_inputs.end.note_hashes.array]] [previous_kernel_public_inputs.end.note_hashes.array.inner] -inner = "0x27f0738f58cf7f88e6845175913245e6f82475f464578de70619eceaff66402e" +inner = "0x0b68c0e7b00335884fb840b97b28fa622999a7fedc2ff6895ab664ba73e38cd7" counter = "0x000000000000000000000000000000000000000000000000000000000000000c" [previous_kernel_public_inputs.end.note_hashes.array.contract_address] @@ -2781,7 +2781,7 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000003" counter = "0x0000000000000000000000000000000000000000000000000000000000000001" [previous_kernel_public_inputs.end.nullifiers.array.inner.inner] - value = "0x282b555a2f009837bd02f744ae119250934c991464481b5613f7f2112a615f7c" + value = "0x1f164bf0251cd7584f5b55a6ac6d2de0252f53ea54f5bf820f4a11dbf11c430b" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.end.nullifiers.array.contract_address] @@ -2792,7 +2792,7 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" counter = "0x0000000000000000000000000000000000000000000000000000000000000009" [previous_kernel_public_inputs.end.nullifiers.array.inner.inner] - value = "0x1567c8c1ff81dda9727361df23c92849c46772567aa0bf3723db03c3751e9d2e" + value = "0x23e5fa8d3e3a9e808681c49b75f3057da3d8345fe8610ee09c92ad3b2e5295fe" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.end.nullifiers.array.contract_address] @@ -2803,7 +2803,7 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" counter = "0x000000000000000000000000000000000000000000000000000000000000000e" [previous_kernel_public_inputs.end.nullifiers.array.inner.inner] - value = "0x1cb96ed0bfe97ed05e23f013062425e5ce6599fb6430b162e69edfc317d5bf82" + value = "0x09335ab6cbd8de7f4238ea6f2f83844015ef16a361b4283ec65e1be5ef5cfcc4" note_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.end.nullifiers.array.contract_address] @@ -3599,22 +3599,22 @@ counter = "0x000000000000000000000000000000000000000000000000000000000000000b" [previous_kernel_public_inputs.end.private_logs.array.inner.inner.log] fields = [ - "0x2c3715409dc4762ec9a9a602d199ea9932d61edd3fd32c9891fe5ea5a722acde", - "0x10433733db106ed8336b9b799ec2debee9fe2da75f114f567eefde5abf9f74d3", - "0x17440c522b009a136c2207db86790b05464774690523c7fbf949ad381664d0ea", - "0x0a5e8928a4d74ad3256e8a697cfdf84b7baae32abad67b2de7c36ffd67acb665", - "0x0b1200621e156c6d79f463e17e81b96f11d18d716ca5222e7276e07d45845a26", - "0x04b2b64d09e487d10d557106046a94a97f2c40f4316e6667a2c2d9a99db05385", - "0x193da3d713c24b85e1c8f22dd8ef575e88d19c6732f8fd17e370cf64e65b3e04", - "0x08569203e8f3d028234ed200df77bca848c9b4b015ad8797c37669a5e5d1ee0c", - "0x13a9b2003409ad3d4f38caba797acc77092ddd431af25a955a83dc6f5b92cc93", - "0x16fece01bc0b0205bcbaca2904d5674d10573bfef038f94d3e5d526596da2ae9", - "0x0a438177a05071eaeb1862f154b187315de4dc804e275b0f2258baf4700c6d64", - "0x0959244a76e5e861ce5b8833101b91e19d758109d68cc174a6f9eec9c7afa008", - "0x03533d18a1c3ebcf22f820a243be161c9798ea59a506572e32e125c53b7aee7e", - "0x1e2b22ea302597bfcbcfdefcda48b60e35fce9c70f46c6cb90fa6db6e8d4dc6d", - "0x28fab93b8cd28d8d2a993badc3d1a080902feecfab019dc7c00af0ea9f6f403d", - "0x104c4c81c135af94af35a1eeb49b1262e5c53e25ee513731ddeb9f6496eea2ab" + "0x1557f927610f21534f2f8d0067bea8490e04666f6d8b89237cb8acc4c0101cfb", + "0x06ff9b3b93bba70f9c21e6b5880edab43e308bb7d5227fc891088f6c5a14d69e", + "0x2b0fbbf487324cb2f0edb4fab4ecf0dd09f72960c0dbdc596a3144772f862649", + "0x2d45846cceff71b849df506550879e68b2515456a1c28e6e8f9ce7c62d932616", + "0x3028e30830b1073a9473596f8d2eec47951d4f04db55304f46a04f9b8bbccf7c", + "0x12fc12157371bd83f1e4ca8135a825a017e030eb13a28e5ae58c75eb8905c268", + "0x1d35498edc65efe8e80ad650dd8a3aeac105a83b3a34025188f731731354cbd7", + "0x23459c522115ba6f3533b4cce2c389c08a977cfe9378b2ab463b67f4085136c7", + "0x10f229a1123cdbcfbb0335e704477cfe3e51efd8687b196fb45328ee1cdfe629", + "0x0b550f76b18b45c3d57d18cf17df9a73ec9884d74c96406b36f89a3efc4e9973", + "0x293d2c7dd9a5b78d0f9f8edc30aaca2fb05b29ebba4781aa05588ba91f84f6d3", + "0x1066f371acbf9508018d546a8ff5f2a054efbdb73858b2d7682735d982254355", + "0x07e5c4f50e210db75dcde8ba8a1ddc964ac67e184779d99f04871a300d0a15a5", + "0x0c5d16e577f3cb7554804894dbfe183b4144031582482b5a84d575e95dcefa26", + "0x2116733c464ea84c09fc06e61483add71f4d37fd506c9c657f2d97c926ee373e", + "0x100d57bf3192b424d7131656364e8b147e9c9d05ced35d8053a3aefaf7a7e83d" ] length = "0x0000000000000000000000000000000000000000000000000000000000000010" @@ -3630,22 +3630,22 @@ counter = "0x000000000000000000000000000000000000000000000000000000000000000d" [previous_kernel_public_inputs.end.private_logs.array.inner.inner.log] fields = [ - "0x1b7f52b7a346b47077bab6835a0810e5d75e977fc3f3fbb0436055bcdaa167ee", - "0x2320e89fb76918e7dc48b13861302dbf78af5ba8d5a20da77d19781ac32b9bc2", - "0x2a99619c0d4d380dbc3d53d03ed35011aa9c296a507fabcf712f43a0e5a10850", - "0x02e5d98e7dfbe7653dafb14afddd7e00f403b5a60816d7ab961823bd3cc4b628", - "0x223b37d6caffe87e91cddafdf65c4f641a609ff13350d02654b0fed1443088ab", - "0x2846b9aa4544f8f8851554f5d0c189c188756d734112e1eedd6840c8aeb0e66f", - "0x21cda3f228d55fb1b37f2b7c7a5d42066007143db17645669521ff58956fa7bf", - "0x1d8d79951d7389e5f9dfa963f93e399aebaa346e9ce3b3a5da1b45e4600a1553", - "0x15eabc8ed921f60621fa4fa35214748a7593f1c06a1e66b76092f789b4960bc5", - "0x16babb28d68725cb64d6d7558d49fb921c480359488fcdfb5292019239a50563", - "0x015e561b49da425d081b87bac01336defa1e29ee50d01b7be798ac28e05b24d6", - "0x04bf1a23807cb0711511a6140caf195df55fcf029842652243034ae2ca740648", - "0x2789cc422a86395739004c513cf6a15024e3adf5f2e238b18e1b4f1211a9383a", - "0x00c4e950cfe804e8a3623fe768c82b7340b0216f93c00351c53e2144364cfb51", - "0x2fd9827b4118b7ef401dff1727785e46fdd31947d2e733f4b39076f43652c18a", - "0x158ca7fba6e7fa7b3eb7c062751182d93b4e36b5c77d2e609e246b810650e59e" + "0x278bb654e266ec7a6c0a147c0c49c0e7d0ab73958ac2ccd9111b99293bcb2dfe", + "0x2f2f2563b76821a2493178ce03eb6ba47a3631a2054db997873312d49c135c32", + "0x00dac0ae5e7248fe1b318ecf117f24e113e9f94a0ec7bb383992ddabdf26fe5d", + "0x2fabd5e390e8760f9371c8edf177a8571445e585aa89c79fe949f615948c2716", + "0x0769d4e7c6de3d3b8e70f156acf86acebbebc68f1f2f83279fac825b1e56980c", + "0x171c2d2e26f0280874f78522d45217ae6ae7ea6b8f9b6bf609f85c15d853e8c0", + "0x168f29d22fd3e737b23c92d69e51612a099659556b5beebff7d4aed742bb6703", + "0x2aa940b475ddf50a79219f3fd960846d2b16c1fb087de59aaee12357763f5170", + "0x16ea97e235fe762c220b884d5c2891909d804a3ade951daf6d1b66d3e4df7d31", + "0x16a3f522b297aa55f2986ebb81f554d30d7935ed2ca85563803ef7519a70edbf", + "0x195bbc46f1328951aac2c05e0aa0f27ccda0454550d3c6ba1fd18446e94c66d8", + "0x1913cc0f140d9fb8d3530e5f4f2c90b0bc2632292fdc84f0e8ff180cd6d636e4", + "0x293577377ffffe4b16e7cfb44132fcdcb5d4adc214c150a2fc0c42de03caea5b", + "0x09d1a2bc2f2439861a980f4fa0e90b21c62ade6a49a63c16b384ba993d691167", + "0x00d81c4ec7d4be8e2ec46aad4c7950d4fc13375431c76274c9495d8c148095a3", + "0x068a6102eed1a459b6d5972dc60d952dd6a9eb831402ec71d0f3d34b6bbc6c3b" ] length = "0x0000000000000000000000000000000000000000000000000000000000000010" @@ -3661,22 +3661,22 @@ counter = "0x000000000000000000000000000000000000000000000000000000000000000f" [previous_kernel_public_inputs.end.private_logs.array.inner.inner.log] fields = [ - "0x07d20bd951900d3094f2894e3c76c117114e3150dc3197e9e325e42b4487c6e2", - "0x127157561e774918ba656738fb61ad37f92086431bd4f1e4842ab11928b0f8d2", - "0x2e5cf59c8f2eee7a06d14cdedb8fe58945357cb16f4c792094325909a12924b2", - "0x0e29376c31f2aa7a156c6ce6d1fc9529998251d8500604658f173ff86adffa98", - "0x20761b8be9a186cf6a1730b8a1e99049a07e45c005e66d27b6e0ef15a2833e2f", - "0x1adf679b2441cf3535241924a35164cf8309256721e3f9fcb860bc2acc462b46", - "0x06a613741497b7b7ee978a495bfed7d19bbf76c462d268cee17a3920b1b1abe0", - "0x10ade06e253c1cfd65f24246211fb703c157fd9b563ffaf6ab01b6fba4635155", - "0x2311c6b104555d4d9afc7d66be6b47a41f8aa96eb77f613a75fc952da5975ccf", - "0x08431c3838d7ad6198c1d33ff138953ace3520551bd95b69692609ee11ded216", - "0x1822c33cf8097138c896bb9f7aad7def909a6859d5e640919fd16ebcf153a0db", - "0x11203b31ef49d39fb85a5ea474116c334c156091ab468493a480f13ad1ec1849", - "0x207a4712bacadd2f631fe253cb62932a7acb586dd6dd1b10e0fbe733f61a8f11", - "0x2c862b0eb14b1325a0ca63dda4570f718541d998fb4aba96339b7913b80757c9", - "0x1bf17ee7d3cf2487dcf1eb7a3647b0920c9e68aacc0a33c9a424d4ee6601ded3", - "0x2c70c9b7da7d7df78fcae182d124d7041209070f76d920e5d5c2d7590c385ea1" + "0x1c1073b12837b8c365a6120e058e1470c273269c36da63e6e85b10032b5c4c89", + "0x13eeb5849c388f2983b9a1d5840a4bb78a0574fe6657dc1bb4d974e28f1355f9", + "0x0b342f5ecaba178c50ed2ed971a80f63611cf6e537114842ed26e6218b1e042c", + "0x0cf53f69e6ec600e728a52a5b5b1f58ee5c5c1bb2c78e208d937b096d6cbe772", + "0x0b2982efe76e0b0c4551378cfa80047d849bec6a916a8542add063d1ed5dbc6b", + "0x109326c0d699a320dbe2ac0497a17f24b699ab519dd70b9a41fdc9ab31d489bd", + "0x134d7e6307ae3459534f15b12c22204a95d4b632d92e6e2faff5d4e8ff1d3ed1", + "0x1df879ae04162ce6762b387ef36dc446c7f25f1e831f580736bf4c2672052478", + "0x0c7a1fa87f3564576fb2273a8ed1c7de25bb441de0bcc3adf13a7000a5696609", + "0x1480ab39ff4369658743e09c70b81d54c89eda558ab832619799d727f5e26f6f", + "0x1a380859f99a381b31992865ecbd21bfe608bc60992d5c23cb1e34dca0154aca", + "0x0a669fc16a50600e4ca5146d156eda32e672fa1dfeebaf9665df46d4f7bd241c", + "0x21e883b280f9fcb2033d00726a6e3344e61e7c2ff1895e8e4912f9821cb57173", + "0x1b472c162a06be1c9251f5f788c5028f2391736c8ec542f15b78c89aa904ba2e", + "0x26ee38448d1ffbf80145160e4b62b1123b888be3b9cb3db73fdde7d779932880", + "0x26d0e41ad428bd171966c237bfdfa476f4e6d16e47b8d94b438896cde08fa12c" ] length = "0x0000000000000000000000000000000000000000000000000000000000000010" @@ -6309,4 +6309,4 @@ length = "0x0000000000000000000000000000000000000000000000000000000000000000" inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [previous_kernel_public_inputs.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" diff --git a/noir-projects/noir-protocol-circuits/crates/protocol-test-utils/src/fixtures/contracts.nr b/noir-projects/noir-protocol-circuits/crates/protocol-test-utils/src/fixtures/contracts.nr index de6692fde7f3..c235de0b8a1d 100644 --- a/noir-projects/noir-protocol-circuits/crates/protocol-test-utils/src/fixtures/contracts.nr +++ b/noir-projects/noir-protocol-circuits/crates/protocol-test-utils/src/fixtures/contracts.nr @@ -27,17 +27,17 @@ pub global default_contract: ContractData = ContractData { public_bytecode_commitment: 0x256abef672381d551191d5bbecf2dec6ac9cc2a81189f886ac22e29e5c58c49c, private_functions_root: 0x2653ec1bf2be3a13fa9b645cec2557f2b543286fc39168ec42b705835a301bb6, address: AztecAddress { - inner: 0x136422d2d758eb9181240eee44720fa9bc433d3a16bc13163699dc4f47540b0d, + inner: 0x2b398ddae900c69937d768e0abe276a8baaa9593cd02cf31682a11a51aebfd5a, }, partial_address: PartialAddress { - inner: 0x1676695fc9a4f3bc8816e4dc82a8856b2ae565d4872691a6e944cc3ce8897e72, + inner: 0x13bf689e2b04d5a75694270c1872e74b0c998c3f7f2f3a0a95648f9f41600808, }, contract_class_id: ContractClassId { inner: 0x2888d24c26f34b139f0f1d30278df8f9007d06da3b63cfe6eeb9a710d51f4f4a, }, public_keys: PublicKeys::default(), salted_initialization_hash: SaltedInitializationHash { - inner: 0x1d83f43991ef3c393247a1796b194020c559aaf129e515adc6eace265f726452, + inner: 0x20b8accdca7010cfebfcc932f55e3acf5136dfe57ba51d386dac8e9d110d9567, }, deployer: AztecAddress { inner: 0x0000000000000000000000000000000000000000000000000000000000000000, @@ -52,17 +52,17 @@ pub global parent_contract: ContractData = ContractData { public_bytecode_commitment: 0x1cfb8e870870be1d102249b47923b63c2d54f33ca81e3028d74a06d8dd5944ca, private_functions_root: 0x03cca4d59a01776df283eb2c8915cb144ad3f40a0b0ba06e9c24c532c59e3c43, address: AztecAddress { - inner: 0x2e90a78904fdb353ddf6eda97aedcfc2b8bf5a942f10f57a1e85373b740e7eca, + inner: 0x1808d3140b9cf2e87db2303d5bcf3b34214abadf1bb3bd7d0c3b202a266d1391, }, partial_address: PartialAddress { - inner: 0x2cfac19f0c29a86d17b4c60b205376bbd4c8e45d1dfd02dcd33820638d1d6d1e, + inner: 0x09dba9fffbfd68d6828334a178433b7bfae9d07c3c6f424ee4afa0304655c5d3, }, contract_class_id: ContractClassId { inner: 0x2998b9cf4a582f068a01b43c141dbcc5fd8f5cd17a797484b5a5db2386cf7574, }, public_keys: PublicKeys::default(), salted_initialization_hash: SaltedInitializationHash { - inner: 0x2bfefc4cfdd56352f0d6cf62ae70abe702d7d948f5ccff4eeb51f9aefaece295, + inner: 0x1384ae0b0212cbeb6cd53d6c8d9dfc6334318553dd6f33fdaa97b5dae4ab9dbb, }, deployer: AztecAddress { inner: 0x0000000000000000000000000000000000000000000000000000000000000000, @@ -77,17 +77,17 @@ pub global updated_contract: ContractData = ContractData { public_bytecode_commitment: 0x225d884cfeaddc5292dadbf921e7699632336876c65a33459d3b2ad9b5ec0da3, private_functions_root: 0x2b26caef823c6be4c41ef1980dace9b61825f8e6a16792c765a2cd8cb2121e75, address: AztecAddress { - inner: 0x1a56e3cef400d47addbbf65a95ea505b8f628a2d65a096d0e4d46a8cc9bd72c3, + inner: 0x15a31fdbee15b9968a30c195a5ee82f7338db5f627908b15362edd9441cd78f7, }, partial_address: PartialAddress { - inner: 0x04a4ed87aa4cff86962b974fe3f79d76e4bf3f034d4e2bde2bb50765927fad40, + inner: 0x12b89345d5d63f8bf9f73f5890d5caa0c5f023c61d313b1abeea40e300a83755, }, contract_class_id: ContractClassId { inner: 0x07a63b1343bb8515d1115202c71cdc95f9bcda9c2237bdfc25435b89ffa06b46, }, public_keys: PublicKeys::default(), salted_initialization_hash: SaltedInitializationHash { - inner: 0x0bbf968b28a0a1fa3a90ceb4c7104d63e7a8dc845a9c885781d74018d1579e59, + inner: 0x1f121db378dbceaf871eed1b9f0b20efcdca988e76f8abeaa11b2cdc80474189, }, deployer: AztecAddress { inner: 0x0000000000000000000000000000000000000000000000000000000000000000, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-merge/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-merge/Prover.toml index f9937c534a5b..98750fce6576 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-merge/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-merge/Prover.toml @@ -484,7 +484,7 @@ proof = [ [inputs.previous_rollups.public_inputs] timestamp = "0x0000000000000000000000000000000000000000000000000000000000000186" - block_headers_hash = "0x22e5411ababf49ccdacb44202da8507dcac351bce3fab350c18dd0655abcf9c0" + block_headers_hash = "0x07d6c206790cf70b15b8243736ee089cda60cf2c3e85d131fa3ec16d1f5bdd36" in_hash = "0x00b0e02949c7c042e780651385688dcec114af3dbb3892bab1a9cd8e2bbafdc5" out_hash = "0x0018febbd74d861e38064a4ff9d3b5ed7a39b398576ef75e104848700819a700" accumulated_fees = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -493,8 +493,8 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" version = "0x0000000000000000000000000000000000000000000000000000000000000000" - vk_tree_root = "0x0141caf6779674bc31225636c4cc4259a731835c52fc462f2dcbfabf7de01a1d" - protocol_contracts_hash = "0x01af64239167dcc8333e25456aab71348f66d9f6de731a8b62181d16cf0818c1" + vk_tree_root = "0x0b701ee3d1002ca8a5a73a81bcb2e0d84e6c30222be65f508574f182569b718f" + protocol_contracts_hash = "0x0fcccdf7958e813bb1d24f764ae13ff08a999008434c2e4dec55f4401564b05e" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" slot_number = "0x000000000000000000000000000000000000000000000000000000000000000f" @@ -513,7 +513,7 @@ proof = [ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000001" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x0edef98680cbea2855c4f0f152a0ecd69358e68b10da7b7e301f35ce709c13fa" + root = "0x27b365d73aa1b8ac1eb39c75262e2b87a238d041cc98fcb795f4c597c620ce64" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000002" [inputs.previous_rollups.public_inputs.start_state.l1_to_l2_message_tree] @@ -576,10 +576,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x2077efe63b8c3de3bfdbc1e1be837185a8f1d817c8321418fcfe110cd518a922" ] state = [ - "0x08cdf544ec44d694936ed6a5aa580afb2a3b1a4b087ba80870d4d01c79cb5772", - "0x192972b72a1776fa9d30c1202807fca4f9272b156c9e1eafa5f93e94a13c439b", - "0x23ace986d5ee172559ce2153d8a166075599a4403288cbe1a150bda49415fae6", - "0x0f3ccb179877769f2d268206c1b45ab9af36d5e7e005de27ede90c1a29450039" + "0x13ec9d9b37f0599c5765a81513125e07305454198fecae73a69e7d41dfb27215", + "0x24fe963f8f4139d84f904228cfe1e10256e9106331e614b72ed86be8903e4259", + "0x114cba9fee3fa49ffd5f440aa162c6ce6e8410138a592e587337646bb8b04ca7", + "0x10325219e420881603ba4ea16613cf66fa1c43ff98bceb97acaaab599e3326b5" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" squeeze_mode = false @@ -587,134 +587,134 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.vk_data] leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" sibling_path = [ - "0x23d78e0b464510ddf15e00aafb3d9a34c4300cb431a0343efa8acc7ac7174e1f", - "0x24ebbcfd36a0a9ea7467ed78450dd4914d8c54a1434a5dfd9757f4f88c51b867", - "0x234d319aa3526e9e00d76d9b5b9b18b435756035ad00d8d716e1be50ac82ead3", - "0x2648004ca39ab2f7f01e8733c2de2d035675568a1c98d1410ce90ac2512e72e2", - "0x15313312ac8ca4825afd3891479fbb14626ca65499d939e23b1f653cd7d018ea", - "0x19de2a32662702dd872e529ad89836e16b013012f910daf2bc7c2a67356dd107", - "0x1f07bca7a14f9a969539c0afd388affa18926689f431fc541841a2a7604d388c" + "0x1276688c1c8f1024c963d35957328b73153c55580532254f0676c26e2ad55993", + "0x177b04fc814d3ca71e4c26c7a32c0c913574feaf5567348e99c5cc65f0f9ddfe", + "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", + "0x146274c75e0cce377b1764ae8c0ba9167cfb0632d9453ac4c5b521f5d45cee4c", + "0x10fa882cccd67cfee268da2a5d99ed42a34302ecebc26f4b3254e41507b3ee42", + "0x133dc174ef877c42d59ac5fe87733ce13f9355587db788e3b490832c7afbcfd2", + "0x13482b383bc59a6da6ab4e998b0986c23166d0aba121fc0789e9f14605af653b" ] [inputs.previous_rollups.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000015", "0x0000000000000000000000000000000000000000000000000000000000000046", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000000000e4ecee2341c2499228c4d2c83a9520cae8", - "0x000000000000000000000000000000000028d32ba99192667c15e398069c3240", - "0x0000000000000000000000000000006fb00058cacfb1b276d32fa36447360c8c", - "0x000000000000000000000000000000000001a8699458060a98552c6907a085e7", - "0x00000000000000000000000000000035e6b6b068c96f12086377d88703f3e07e", - "0x000000000000000000000000000000000015477ce75a652da3c7317382f97441", - "0x0000000000000000000000000000006b648f1adda6e61b44e9867b5f8e3b4f79", - "0x0000000000000000000000000000000000284a9d333412f98641932adc241a55", - "0x000000000000000000000000000000e4a1e119917387b63453afe2152f923081", - "0x000000000000000000000000000000000016f3a12e54e2b76aa8a0c2350c5b03", - "0x000000000000000000000000000000e6a6952f1b80d571443fb3a9782f7ba03a", - "0x0000000000000000000000000000000000115314dec35ce22a37e5e08838dd90", - "0x000000000000000000000000000000608fa42518b2ed1d41d26a56c4e7fd1cd0", - "0x00000000000000000000000000000000000e864b9635bc3ab6a2e8a63311af9a", - "0x000000000000000000000000000000089e6633599c12307e5d2315b0559fa3ff", - "0x0000000000000000000000000000000000188c6476388f9b0875dea7de1bc491", - "0x000000000000000000000000000000abca067961d5609684ecd2136ba688b8d5", - "0x000000000000000000000000000000000003650b02580ae03fa6c488d150619a", - "0x000000000000000000000000000000a7a66d3882208ec15d795f73ff135448cb", - "0x00000000000000000000000000000000000eda3b802a8c57b6007532ac4d3c73", - "0x0000000000000000000000000000001a0f5ebabaa07f627ed7025287560ef87d", - "0x0000000000000000000000000000000000081f627ebc9b282e50d5101f2fdc0b", - "0x000000000000000000000000000000af44c7ddc6ed98861741ef7d79b45171ab", - "0x0000000000000000000000000000000000189091a7b840d8a84827cc8270560e", - "0x000000000000000000000000000000c10049e49d4cd16c33bbc1e8eb3238ea26", - "0x00000000000000000000000000000000002578443465dd684c74b9c635f2c33e", - "0x000000000000000000000000000000770092209b5122c863dacecd7406bb2d48", - "0x00000000000000000000000000000000000f3fee6266059403a65308d4c5d7eb", - "0x000000000000000000000000000000533f8b9f4c4a0d43ef35dab7d27c1ea8da", - "0x00000000000000000000000000000000001adf8c6f547a4381844323d92940ac", - "0x0000000000000000000000000000003c366da2e86813e08788a4a283cff05948", - "0x000000000000000000000000000000000009d343f03cc09faee9ca1d918d51aa", - "0x0000000000000000000000000000004eff2a8415f5ebcbbb774b024c7cca829a", - "0x00000000000000000000000000000000001bdd73863935251e91860c886a55b1", - "0x0000000000000000000000000000003df888a4b79151f5f34eed566c6d247e55", - "0x00000000000000000000000000000000002d996ddc7dcf55af0fecfbe916441d", - "0x00000000000000000000000000000035a1c8de7d282962a240a6704a18d9aa9d", - "0x000000000000000000000000000000000022c5a65fc79d84f800459e76bd6ddc", - "0x000000000000000000000000000000f694c211bf5e8247c2ed4c9772d66b5320", - "0x00000000000000000000000000000000002254e08116deb9d889a0143317b65f", - "0x00000000000000000000000000000048358b74356aff020c99bcfffc97f02b91", - "0x00000000000000000000000000000000001d9bb0f7098bb21c970677fb97a3de", - "0x0000000000000000000000000000003fd980235a24687982d5bc1e10572d41bc", - "0x00000000000000000000000000000000002ad88fe0270c96dbf63278dd32b0eb", - "0x0000000000000000000000000000002aa721427068275b015588487a6dd9da77", - "0x000000000000000000000000000000000010ed5178cf97b67466833bb3e294fc", - "0x000000000000000000000000000000fc9b469311b99d851b65fb621b17172be3", - "0x0000000000000000000000000000000000058b714d3d803f8cea308e60246a25", - "0x000000000000000000000000000000ab189fd5ba15e2bc3843c70e4b6ccc5874", - "0x00000000000000000000000000000000001f0042de0aeed97be6e8b8e93e5484", - "0x000000000000000000000000000000990cfdb6f4a3699f168f757c1a663e2792", - "0x000000000000000000000000000000000029d9940fe4dfdae5c2cc1ebfdba6d8", - "0x00000000000000000000000000000006147c05564229442b8f35ada3f0f58754", - "0x00000000000000000000000000000000001ea24fc9d78495240f0fc072c3d6e9", - "0x0000000000000000000000000000008333bf707667d3ac3960826883a0d26107", - "0x00000000000000000000000000000000000e7f2da7e4a8b4ee0bca717b98686d", - "0x000000000000000000000000000000f80529b50987783f12df2e1ee9f91fdccc", - "0x00000000000000000000000000000000002fbee99a2fa069d2da029ad5a86c40", - "0x000000000000000000000000000000ea3704a764aeda63475f07b984b2297f60", - "0x00000000000000000000000000000000002cf75af466282247648425172dd45b", - "0x00000000000000000000000000000068754ac413cc462e8a87396033bafe80fc", - "0x0000000000000000000000000000000000138b5a95236c3755c228128437cb81", - "0x0000000000000000000000000000007c551a7f9f585f152f2899cd5c73cdf658", - "0x00000000000000000000000000000000001601277332a9e90e2af9bb57340356", - "0x0000000000000000000000000000007543dc89bcca355d7e34573dff53f933e2", - "0x0000000000000000000000000000000000170cb4ff2fe573d8a4f20d7e7b64ef", - "0x000000000000000000000000000000a32270e25bda22ff0b953eb2ccdd937551", - "0x00000000000000000000000000000000000b5603a198907b41d522094f42cad2", - "0x000000000000000000000000000000d0ff37f21975e21ddcaafdd3dd783ad7d6", - "0x00000000000000000000000000000000002d0a2f4c7e56c0c56b889f47c622c6", - "0x0000000000000000000000000000009472ecb153285dccdc60cf91dde517845e", - "0x000000000000000000000000000000000015e573aca14b7c5fd370bcfc540b27", - "0x000000000000000000000000000000c303cfdc251b35fff418176773aa2776e4", - "0x000000000000000000000000000000000026e160cb0be92aa253d24a3ef4762e", - "0x000000000000000000000000000000caa9c67bcb76b860aeb9f0f4b012671fbb", - "0x00000000000000000000000000000000001386aeb173c2f13bc20ed2b78147c1", - "0x0000000000000000000000000000002b385a5dfd8c9a7ffc125cfd6fa7f8fd45", - "0x00000000000000000000000000000000001597a3dd423660dbd9daa02d14e187", - "0x000000000000000000000000000000d563bdfaa101f554e342f7fe227dc29f16", - "0x0000000000000000000000000000000000090a2f765e614082aa702ded80dffe", - "0x0000000000000000000000000000002c13af1d7029f509b59a9d7902023a0783", - "0x000000000000000000000000000000000015f5fbf1568f18d113c76d8125b4c9", - "0x000000000000000000000000000000832350cc0d3066c6a9d8d4e59c38966d94", - "0x00000000000000000000000000000000002c0a8c5e6b3ad7b65677d02e3af4ca", - "0x0000000000000000000000000000004581bf4848fb500439bee9e9db80d8dce2", - "0x00000000000000000000000000000000001a7ae19bf5ba02728391e18925e760", - "0x000000000000000000000000000000d9b2acde6149cf8e6f308444a49c333a30", - "0x0000000000000000000000000000000000192e53bff5334c0fd6d7f110fc3552", - "0x00000000000000000000000000000095b5d8b7b4a63b05df652b0d10ef146d26", - "0x0000000000000000000000000000000000099e3bd5a0a00ab7fe18040105b9b3", - "0x0000000000000000000000000000002129af3a637f5a622a32440f860d1e2a7f", - "0x00000000000000000000000000000000000015b8d2515d76e2ccec99dcd19459", - "0x000000000000000000000000000000222b888108dc25d1aa450e0b4bc212c37e", - "0x00000000000000000000000000000000001b917517920bad3d8bc01c9595092a", - "0x000000000000000000000000000000482141c7ebe42000a1d58ccb74381f6d19", - "0x0000000000000000000000000000000000305e8992b148eedb22e6e992077a84", - "0x0000000000000000000000000000007c86847618681dc29d8a9363ab7c40e1c3", - "0x000000000000000000000000000000000016465a5ccbb550cd2c63bd58116fe4", - "0x000000000000000000000000000000439973ac12d7ca796d6fe98ca40e6ca6b7", - "0x00000000000000000000000000000000002e24d420fbf9508ed31de692db477b", - "0x00000000000000000000000000000028edd1a7e46c840d9c943fdf45521c64ce", - "0x0000000000000000000000000000000000043d063b130adfb37342af45d0155a", - "0x0000000000000000000000000000009330952ae74c573d1686d9cb4a00733854", - "0x0000000000000000000000000000000000261522c4089330646aff9673619494", - "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x000000000000000000000000000000ea6e74a6fa43b4810edc310e2d2b66dab4", + "0x000000000000000000000000000000000015c12f6f69bff32654e403b8e9a2b8", + "0x00000000000000000000000000000010f1d77dfb1e9178bab79124490d92915a", + "0x00000000000000000000000000000000000a9b89b1676b31989664a34260314d", + "0x000000000000000000000000000000a2d8941fda778834590a006f995557ff4c", + "0x00000000000000000000000000000000002dadd9e8063bfbee06194004949394", + "0x0000000000000000000000000000002036fe67ff22643d06461e1c8edcbc2dc9", + "0x000000000000000000000000000000000021c85b69f65f83d6cf1854a9563213", + "0x000000000000000000000000000000b19756d6156d0300b3ecb9be77605be1a8", + "0x0000000000000000000000000000000000014a4064a3b551e9b75fa13659629b", + "0x0000000000000000000000000000003491c66acf5693a16ec1f7241609c18f45", + "0x000000000000000000000000000000000023b0ed5030538c865d72cb8908352a", + "0x000000000000000000000000000000efedf593c1cfc28146ff68d9dcb1070ca7", + "0x00000000000000000000000000000000002a8174a5153b946abe57e2ed06d454", + "0x0000000000000000000000000000009c3212d084550b683558797af1477ceb8f", + "0x00000000000000000000000000000000002c32c65b02e59d9aae5b8a57ec27e4", + "0x0000000000000000000000000000007b88e113308893f906561837b9edc3baa5", + "0x00000000000000000000000000000000001a45b642b5e649f033eca82a810b8b", + "0x00000000000000000000000000000068591e612a0127878f63e7923f17854d2a", + "0x00000000000000000000000000000000001d50690ef0dd775e7f4fc0f17281bf", + "0x000000000000000000000000000000eece658386d09783fcc2d61a622eb6b121", + "0x00000000000000000000000000000000001d5b3af11c73d93414e18accc31071", + "0x0000000000000000000000000000007b1ee7fea7dfabee7dad1a5e3e816c2a2e", + "0x00000000000000000000000000000000000a5f02160bfa014a46b329f3618dc8", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000000000043bda12a99877a984942e29d821cd37870", + "0x000000000000000000000000000000000020b1906b429f07ca51070221399472", + "0x000000000000000000000000000000c185af02499653794e9d4c7fa1a6c5751c", + "0x00000000000000000000000000000000002927f8b050e657021afb2f572e0f84", + "0x000000000000000000000000000000ceda688bdd2aea1e5253ea0d86743abebd", + "0x00000000000000000000000000000000000072f93e3607e4ac8c369fb92fe33a", + "0x000000000000000000000000000000eaff91f9cc05f03c6d8546358d580ef17a", + "0x0000000000000000000000000000000000225d5df5771e53084f6e364ad8e3da", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000002218617f23e467fecd2e3c938179a2b578", + "0x00000000000000000000000000000000002497b7dd7eec4e260f8ca521f1109e", + "0x000000000000000000000000000000914e208f9621734ce56985cdd29d01a78b", + "0x00000000000000000000000000000000001092e497a21b124b279b86e029a993", + "0x0000000000000000000000000000002ef4ddf310bee1f74f655cbb0ceb9315d0", + "0x0000000000000000000000000000000000270b81bec5e6b0f455065b02f68a0f", + "0x000000000000000000000000000000ef21188ec62b59040e4f1b89dfa23be48e", + "0x000000000000000000000000000000000009ced6e0108e8e67b299d9e3bad9a9", + "0x000000000000000000000000000000f61d5b8425740d0df669b875491e615449", + "0x0000000000000000000000000000000000064a6a9bbcefc6ad4b2d4e1e03985f", + "0x000000000000000000000000000000d004ad7846785bcb0db2672f6e5292f7c2", + "0x00000000000000000000000000000000002114c1fc4a3c39cbc96baf3ba693af", + "0x0000000000000000000000000000005cc5465cd9391ce8e7799e91bf9aac8039", + "0x00000000000000000000000000000000001c59b40d18b5d06d88617f2ed5c568", + "0x0000000000000000000000000000008134581657d125ca542477d684313ad999", + "0x0000000000000000000000000000000000259435f2950ead4bad62f0635944d8", + "0x0000000000000000000000000000008e3beb4333afb6a1db12c0889130b8f7f7", + "0x00000000000000000000000000000000002d022d695e566dd0ddfd15b59ad6f6", + "0x00000000000000000000000000000019ac6e38521a0144c3d1abe706030d643e", + "0x00000000000000000000000000000000000961e2643f9317a4d6144abb77cae4", + "0x000000000000000000000000000000827e5482f658cec2661f8cf88c4558800d", + "0x00000000000000000000000000000000002bcc1992b1410cdd05f32c2148a800", + "0x000000000000000000000000000000049c1604c9e61fe1eb1a4e6c0044a88607", + "0x00000000000000000000000000000000001a50aafae1419fae00770a64d75a52", + "0x0000000000000000000000000000003a404091304c1a4935267fb66a90af706f", + "0x0000000000000000000000000000000000175f69e34efe02635c0450ff14d814", + "0x00000000000000000000000000000056a7488e33d23f5a7e31e8c24c4d32feb9", + "0x0000000000000000000000000000000000152b125831f20c0046084a92a3a01d", + "0x0000000000000000000000000000001bd75185387ebcf04a2d1541b418c93962", + "0x000000000000000000000000000000000007d44e382095a4ddb6c84d676f975b", + "0x000000000000000000000000000000e37e00ccdd16f0cfb118365311a964e475", + "0x00000000000000000000000000000000001c3ba17a670cdeca7019e1d2c17e93", + "0x000000000000000000000000000000ef2f893fc357863e53675b8dfdace77275", + "0x000000000000000000000000000000000013a4df076b371985ff93656b8e4483", + "0x0000000000000000000000000000007adddc444f0c602af7efaa9c977e9ab80f", + "0x0000000000000000000000000000000000138e76ae51938924778a06f02de461", + "0x000000000000000000000000000000f63ec082d951768fe05e6d3bc9d50bc72d", + "0x00000000000000000000000000000000002ac3a11527579ccbe6c1966976f6ad", + "0x00000000000000000000000000000066d0ea63d8dd4511ec55e666f7bf6d6c3d", + "0x00000000000000000000000000000000001fe7a9cb68d795240eaec0b6efe451", + "0x0000000000000000000000000000005309c6e2db27d4be273a758a178e1af682", + "0x00000000000000000000000000000000000962316a08cadc097d50603d1606c4", + "0x000000000000000000000000000000ab5c17e93d31a1c79c62d8597447920f36", + "0x000000000000000000000000000000000019ede1992f131cdd105f8afcde56a5", + "0x000000000000000000000000000000b03aa7f0563671be6a98678d8dac3ed963", + "0x00000000000000000000000000000000002c9acda51c7b3e6e04e82aaf0bbe35", + "0x000000000000000000000000000000b7eceb60b962a8108199e7506d967bf042", + "0x00000000000000000000000000000000000ab8ec69e3b26d13207351e2be7d7d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000019988ebb1316d375d71e97a8545a3c71a1", - "0x0000000000000000000000000000000000223ffc44e0e98747d5be232098b76c", - "0x00000000000000000000000000000039f06fcc03eb0ffcc95a6e4ffb19181791", - "0x00000000000000000000000000000000000d49dfcd43c5d2f7fd6edd6a818e5c" + "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", + "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", + "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", + "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", + "0x000000000000000000000000000000ab626198b0ffe754ee7a00134867d6524b", + "0x0000000000000000000000000000000000016d89d36083b0f55dba4523be0aff", + "0x00000000000000000000000000000081d7c7a641b523d79569cb352fd7652081", + "0x000000000000000000000000000000000023fdf5ec3df2b078ebe39feac15b55" ] - hash = "0x05ce98498d8e3590661695e0243b58df2e19f9b0e7229b9ef88ee6fb20c40442" + hash = "0x1cd81d6249bfece0299cdfaff8344081684997c787276db4fb5cdb25a0d6822d" [[inputs.previous_rollups]] proof = [ @@ -1202,7 +1202,7 @@ proof = [ [inputs.previous_rollups.public_inputs] timestamp = "0x0000000000000000000000000000000000000000000000000000000000000186" - block_headers_hash = "0x026f28b344918f22933d91a736c98c3d8f45258367baa5703621c045f634f02b" + block_headers_hash = "0x1953e1bdf126cbbbf44f73a3952cfe3ac37b665859467480ae6846d2539b6f7b" in_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" out_hash = "0x00abb50b8989a7f19fd4526d43e15a1ab5d2a43af413cc8ca91e82a3c8828625" accumulated_fees = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1211,8 +1211,8 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" version = "0x0000000000000000000000000000000000000000000000000000000000000000" - vk_tree_root = "0x0141caf6779674bc31225636c4cc4259a731835c52fc462f2dcbfabf7de01a1d" - protocol_contracts_hash = "0x01af64239167dcc8333e25456aab71348f66d9f6de731a8b62181d16cf0818c1" + vk_tree_root = "0x0b701ee3d1002ca8a5a73a81bcb2e0d84e6c30222be65f508574f182569b718f" + protocol_contracts_hash = "0x0fcccdf7958e813bb1d24f764ae13ff08a999008434c2e4dec55f4401564b05e" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" slot_number = "0x000000000000000000000000000000000000000000000000000000000000000f" @@ -1227,11 +1227,11 @@ proof = [ fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x0edef98680cbea2855c4f0f152a0ecd69358e68b10da7b7e301f35ce709c13fa" + root = "0x27b365d73aa1b8ac1eb39c75262e2b87a238d041cc98fcb795f4c597c620ce64" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000002" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x0d5581ddb590b1f2e972ae3399ac1639129b04a4b4282a219285a5dba6553cdf" + root = "0x10abfc1e58ab5ed471d9c7fedcf2b291ad533ac85d136968ea047db10d73d599" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000003" [inputs.previous_rollups.public_inputs.start_state.l1_to_l2_message_tree] @@ -1276,10 +1276,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x2077efe63b8c3de3bfdbc1e1be837185a8f1d817c8321418fcfe110cd518a922" ] state = [ - "0x08cdf544ec44d694936ed6a5aa580afb2a3b1a4b087ba80870d4d01c79cb5772", - "0x192972b72a1776fa9d30c1202807fca4f9272b156c9e1eafa5f93e94a13c439b", - "0x23ace986d5ee172559ce2153d8a166075599a4403288cbe1a150bda49415fae6", - "0x0f3ccb179877769f2d268206c1b45ab9af36d5e7e005de27ede90c1a29450039" + "0x13ec9d9b37f0599c5765a81513125e07305454198fecae73a69e7d41dfb27215", + "0x24fe963f8f4139d84f904228cfe1e10256e9106331e614b72ed86be8903e4259", + "0x114cba9fee3fa49ffd5f440aa162c6ce6e8410138a592e587337646bb8b04ca7", + "0x10325219e420881603ba4ea16613cf66fa1c43ff98bceb97acaaab599e3326b5" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" squeeze_mode = false @@ -1294,10 +1294,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x092658df33d4badeaa54da3bee987ed4b7a973d285a96229bbd71c564cad7449" ] state = [ - "0x186114d0d063d6e6ddee6515e508484b364b20eeca9ca340f8566e398b71b198", - "0x114fbdb8bc7b843c83778ba1c8780534af4f59451f33adcb6a437c245d4bed64", - "0x2808ea7e05edca8293485bb1dfde34257ab644659366d516601dd5beba26639c", - "0x0ba75ded1f1125dbe2d4e7a5b18a7b2e2c238a70c72ed529163eb34be09a36d2" + "0x06b7a09d376432aa2b0a7411a06aaad2d07f77fe65a5401eea06ab9d30b77ceb", + "0x06b7ab96aca0b2e842d7692f25a662728d09309529ca41b0e61eb20e19a7f38a", + "0x0b211453e69b20a81d2247120eae55ca5f80139276d8d9a7bb790996624e335d", + "0x1af797fb95b1713b94475070546774ffc67e4d61c261abb49048a7834cc7e665" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false @@ -1305,131 +1305,131 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.vk_data] leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000e" sibling_path = [ - "0x0d000c0ce80da2c814b0f1508b74728e2eb05f4fdfb0396e1e6939106be41f29", - "0x02e6f22eee7e3e5aa6291ccac5ee76b8a2f1e338a74bf57530740f36d19c9b2b", - "0x14c22836312c6ac50d8aae1289b45c06410355406e5af5ecf43bf59432dcdd17", - "0x2648004ca39ab2f7f01e8733c2de2d035675568a1c98d1410ce90ac2512e72e2", - "0x15313312ac8ca4825afd3891479fbb14626ca65499d939e23b1f653cd7d018ea", - "0x19de2a32662702dd872e529ad89836e16b013012f910daf2bc7c2a67356dd107", - "0x1f07bca7a14f9a969539c0afd388affa18926689f431fc541841a2a7604d388c" + "0x2781192850bee4946aa72958703bc69fec3ab04ecffc00c34abcb81befd3c88f", + "0x2a4b8973bfb7d252bd970f41d74702d12b8bc7f63b15188bc79d78bda4a9413d", + "0x07a849e820943807a1c5531526528e89be50a06725dee96179285d8108e565c9", + "0x146274c75e0cce377b1764ae8c0ba9167cfb0632d9453ac4c5b521f5d45cee4c", + "0x10fa882cccd67cfee268da2a5d99ed42a34302ecebc26f4b3254e41507b3ee42", + "0x133dc174ef877c42d59ac5fe87733ce13f9355587db788e3b490832c7afbcfd2", + "0x13482b383bc59a6da6ab4e998b0986c23166d0aba121fc0789e9f14605af653b" ] [inputs.previous_rollups.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000014", "0x0000000000000000000000000000000000000000000000000000000000000046", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000002fb0b1381b4486fbd49fa9fdb4d74afed8", - "0x00000000000000000000000000000000001b03700ad9942abf5144e1bd7393d2", - "0x0000000000000000000000000000007f3e184921857992c24753b966424214c6", - "0x0000000000000000000000000000000000283119b961cda64e529c68e135fa17", - "0x000000000000000000000000000000c251b282c34c8a6d712e6c12903362497c", - "0x00000000000000000000000000000000002c89e5571ae0b09fa870346cbd5cee", - "0x0000000000000000000000000000008eb0fcf7af2d945fd3266cd7b0b449e8d3", - "0x000000000000000000000000000000000021d78ef089716338837787911d13b0", - "0x0000000000000000000000000000007f691d58aee9d65248c5eecbbaddc13a98", - "0x0000000000000000000000000000000000098627646fa61b9928d6dc11c96e13", - "0x0000000000000000000000000000002c58cf39b7f2b04d82c4338ef8958a7473", - "0x00000000000000000000000000000000001aef806cf0aba5af2f1f8978cd56d8", - "0x00000000000000000000000000000082bb268c0e10a8bf5c0ef242f9906e4892", - "0x00000000000000000000000000000000000c90d93936cc598061c4d29f0b25a4", - "0x0000000000000000000000000000004d114fbbc4055f5761b7f8840f0da32908", - "0x00000000000000000000000000000000002957bebd162ed2169df723dde18c97", - "0x000000000000000000000000000000e9eea3e81c31b1aa9400fa13197b7393fb", - "0x0000000000000000000000000000000000218c3140bfb6edddbcb2d4cbc126bb", - "0x000000000000000000000000000000c0ff9e22fab79999e9ed7d78e138d2987d", - "0x000000000000000000000000000000000028bcfd13128cabc46955265a1e05dd", - "0x00000000000000000000000000000023a74d6f1a3fabe39ff7f0f6150be9ec00", - "0x00000000000000000000000000000000002e2507d7bf2a01aec6fd026fa0a409", - "0x0000000000000000000000000000000a0acda35b6f3d1a438d5fcf5783a50797", - "0x000000000000000000000000000000000021e1c9a570c3d0417707daa478fa20", - "0x000000000000000000000000000000c10049e49d4cd16c33bbc1e8eb3238ea26", - "0x00000000000000000000000000000000002578443465dd684c74b9c635f2c33e", - "0x000000000000000000000000000000770092209b5122c863dacecd7406bb2d48", - "0x00000000000000000000000000000000000f3fee6266059403a65308d4c5d7eb", - "0x00000000000000000000000000000093ed6cb8d6a2d5363b2c995ec9f930a714", - "0x0000000000000000000000000000000000276fea1e0f63f52d1e7564b9a81494", - "0x0000000000000000000000000000000389f3a2b3a8f8cc2f5f5d1cd72a8d196d", - "0x000000000000000000000000000000000013bcbd1229609722bcecd1798d4a4b", - "0x000000000000000000000000000000fe9ce7b1fd6536624c2fa96787f74d7bb0", - "0x00000000000000000000000000000000000c3c6d07104e24ea5acc68c3423208", - "0x000000000000000000000000000000b8da6eb9140a2d5588a8710a2d6d6318a2", - "0x00000000000000000000000000000000001b1f1fa538a3b66f72c15c53cca715", - "0x0000000000000000000000000000004730a9529ef0eb509d55e1379829c016c4", - "0x00000000000000000000000000000000001ce37c2c228f312b7c1e64bcca1dfd", - "0x000000000000000000000000000000a378c68d165ba8929cf5e20f479ed90e1d", - "0x000000000000000000000000000000000023024fd5c636e9ead7d63e4eac96d9", - "0x00000000000000000000000000000082a25f4e5374c7548fa507be32b596f423", - "0x000000000000000000000000000000000018ca6faa15b5b52e1ae8b15cb8b83f", - "0x000000000000000000000000000000091c75d9a46e8a66235f387c882bb14df2", - "0x000000000000000000000000000000000018f3db0dcead736435b7467239e00b", - "0x000000000000000000000000000000b87fb21960e7763dfd42205c459fdc41fa", - "0x00000000000000000000000000000000000267a4a344f85d00b6b0040d1c2150", - "0x0000000000000000000000000000000bd1017af78a6260c7d0f6eccb3a8d3890", - "0x000000000000000000000000000000000002641016e4e2bf5752b1e9472dde95", - "0x0000000000000000000000000000004697a8a794f990510a018a5b2c50f35b76", - "0x00000000000000000000000000000000000de0ab75e8b485639fe023a368024c", - "0x000000000000000000000000000000be33c35449966234d9bdf48ba396a57c4f", - "0x00000000000000000000000000000000000df556c20deb7a8ab0ee850f970c51", - "0x0000000000000000000000000000007e5366f459b2b033ca3664ff8f4a641d18", - "0x0000000000000000000000000000000000192f68a938c5a9ea9a5cc9f2181675", - "0x0000000000000000000000000000003a6f876985d4d54592c5b5c16ab8b16750", - "0x00000000000000000000000000000000002da0d2ee45300969c52f5ae43c7402", - "0x000000000000000000000000000000c0f7aa427b2ea5fe4f0e45dcb2eec42f83", - "0x000000000000000000000000000000000009739dbd1003e81acae3f329654c42", - "0x0000000000000000000000000000009191ff080e493eb7d3eb33ec9823178f09", - "0x00000000000000000000000000000000002c951c03d7dadfa04fdc92a298ea8f", - "0x000000000000000000000000000000245cbb1c8e9f243b94d55edca314c340d7", - "0x00000000000000000000000000000000000de0f174fce3433422830fdb869c6e", - "0x0000000000000000000000000000005348fbfc2bff27c23db0f849baac752835", - "0x00000000000000000000000000000000000fa0fe8cbbf06318ad99adc23d2e0c", - "0x000000000000000000000000000000b37df3b0cfe3793620f5315db38c0dcd29", - "0x0000000000000000000000000000000000011ef80549887e786cea0d08c13608", - "0x000000000000000000000000000000e085aac6fe78f6a3574c61f888eb0ace80", - "0x000000000000000000000000000000000015ea74a6e14e77ffea0611ecc18015", - "0x000000000000000000000000000000635cc32ee452dd83211c337fd3423850ff", - "0x000000000000000000000000000000000030399e012ea636c746005ba35a4536", - "0x000000000000000000000000000000c6c09fdb5d8cbc0266b956e5539ad94b8f", - "0x00000000000000000000000000000000000728658d282bb922ecff1634645aff", - "0x0000000000000000000000000000008fc753267c4b4393209eabc80d1c4fcac8", - "0x00000000000000000000000000000000001add24bab07f36d9d6e11beabf5bb8", - "0x0000000000000000000000000000001a38a11d04a6dc1d788b1cc4da1d171341", - "0x000000000000000000000000000000000004eadc7d1bcf2320272a6d96972ae7", - "0x0000000000000000000000000000004749834da45ee7f8ffc427cf41f3b715e3", - "0x000000000000000000000000000000000005e4285178878dbecdfd0c6eba227a", - "0x000000000000000000000000000000182e1a0661bfd39a43bcbbb18e3691b327", - "0x0000000000000000000000000000000000262b3f8b46fac1d385cc0f3bc24ee0", - "0x000000000000000000000000000000434d5dbebbf6fbc03531f25d963f155b9a", - "0x0000000000000000000000000000000000082a0f4d55eb1206313a4955f41f03", - "0x000000000000000000000000000000034001bbce1dcce343e80ff7a821fc3444", - "0x000000000000000000000000000000000013176cdf2f7fb58e75a4954f0bfd28", - "0x000000000000000000000000000000acb6987d4aafb95942bc208f40df86f426", - "0x00000000000000000000000000000000000e52fac6880e3f51e7641ab893e82a", - "0x0000000000000000000000000000002377224018803fe8e8922c797432d2d985", - "0x00000000000000000000000000000000000b3d671707c2cdc4842e4e8ffefc09", - "0x00000000000000000000000000000095b5d8b7b4a63b05df652b0d10ef146d26", - "0x0000000000000000000000000000000000099e3bd5a0a00ab7fe18040105b9b3", - "0x0000000000000000000000000000002129af3a637f5a622a32440f860d1e2a7f", - "0x00000000000000000000000000000000000015b8d2515d76e2ccec99dcd19459", - "0x000000000000000000000000000000222b888108dc25d1aa450e0b4bc212c37e", - "0x00000000000000000000000000000000001b917517920bad3d8bc01c9595092a", - "0x000000000000000000000000000000482141c7ebe42000a1d58ccb74381f6d19", - "0x0000000000000000000000000000000000305e8992b148eedb22e6e992077a84", - "0x0000000000000000000000000000007c86847618681dc29d8a9363ab7c40e1c3", - "0x000000000000000000000000000000000016465a5ccbb550cd2c63bd58116fe4", - "0x000000000000000000000000000000439973ac12d7ca796d6fe98ca40e6ca6b7", - "0x00000000000000000000000000000000002e24d420fbf9508ed31de692db477b", - "0x00000000000000000000000000000028edd1a7e46c840d9c943fdf45521c64ce", - "0x0000000000000000000000000000000000043d063b130adfb37342af45d0155a", - "0x0000000000000000000000000000009330952ae74c573d1686d9cb4a00733854", - "0x0000000000000000000000000000000000261522c4089330646aff9673619494", - "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x000000000000000000000000000000161e5bb10fa2b7c7380009239b649b4734", + "0x00000000000000000000000000000000000badbf533a087faffe865010dc5b37", + "0x000000000000000000000000000000381bfa95df551e67c494b29f07bfc5149c", + "0x00000000000000000000000000000000001bf4738c48442b6d952222d821547f", + "0x000000000000000000000000000000cdf67a2562ab96b4917ea73217efafd3b3", + "0x00000000000000000000000000000000001b0666d4bc44552a2ffc0223345a23", + "0x00000000000000000000000000000052e280645ffe873ef1e2cce244d3b23265", + "0x000000000000000000000000000000000029365e95dc11f595f23b37d9c475db", + "0x000000000000000000000000000000e0546cf49094bcd8d9e4a0e2f0b0d21d73", + "0x00000000000000000000000000000000001dd314bca6a6ded1a4a64266a516ce", + "0x000000000000000000000000000000c529043942840056e63f2fcffad4221afd", + "0x000000000000000000000000000000000011c2731f6fe0cb9f3c7d88d710950d", + "0x0000000000000000000000000000000dccca0374b5478a2414205ee24ca83668", + "0x000000000000000000000000000000000007e95f7cd90c21519b280c7c007fcc", + "0x00000000000000000000000000000004de3a9f180f0a4f01dab186eba8530269", + "0x00000000000000000000000000000000001372faf74b763ba502d7cc0845a54c", + "0x0000000000000000000000000000008aa4681b00633c2a5a63702641a6d36041", + "0x00000000000000000000000000000000002dc7f4ccd6922fc4b6654e175f2a80", + "0x000000000000000000000000000000d0d4f6ecbd8ee863fa3160211931061e33", + "0x0000000000000000000000000000000000263cb61cd13a131bdb313fa1159c3c", + "0x000000000000000000000000000000739ca3af1ec76a87a037f25bca5447ee69", + "0x0000000000000000000000000000000000065132cc73a764a9958eaf16937aac", + "0x0000000000000000000000000000004f397550e79074d0c4d3108fe675be5a4e", + "0x000000000000000000000000000000000012a58f58ab7bd421ca8f0fdf7990ed", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000dbe8bffec86d9a9c4e194450aafe44569a", + "0x00000000000000000000000000000000001ad711549791cb4bfb26753da71976", + "0x000000000000000000000000000000eef413cdd499365c5aff81234c29a8e9c8", + "0x00000000000000000000000000000000001c1a2f7052492deb0bf3831f1d659f", + "0x000000000000000000000000000000a430987c325c792662db95707eeb73bcda", + "0x00000000000000000000000000000000001fc6620d5b4b91a2bb7e967e4ca0a0", + "0x000000000000000000000000000000d3010833f9a0a6df8b842d2e94c7443271", + "0x00000000000000000000000000000000002b34c8b03764d6438d76005e33f136", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000000000090eb905a6ce8fdcfb3ad69b20f37b471a0", + "0x000000000000000000000000000000000015411f1068f3c41c0f03f763abc15a", + "0x000000000000000000000000000000afca164bedcee548eecb0590ec5abf1127", + "0x0000000000000000000000000000000000145ea9d00e643079977aa78cd2c109", + "0x000000000000000000000000000000854f1c53b1fafeaae64bc08161c77048b7", + "0x00000000000000000000000000000000001e235518c5c034960eec5fc45a716e", + "0x00000000000000000000000000000035145365e610d44ef42fa8ea613a9df4aa", + "0x00000000000000000000000000000000000f949d81fe0404cba9da3dbe012bd7", + "0x000000000000000000000000000000c5f55c78208dcda151683ee8cf95e8bc47", + "0x000000000000000000000000000000000012b17b8f64a8606a7817da004b71c1", + "0x0000000000000000000000000000007359e5ac4a48e1c4cf0e5665c6c059d99b", + "0x00000000000000000000000000000000001d7a0474a2bb254bf932f10146b961", + "0x00000000000000000000000000000024e0b7c596516bb0b5a2e8d6cb248b56a2", + "0x000000000000000000000000000000000012e9c9b3e8143abd574124134a05c8", + "0x000000000000000000000000000000dbc92535cff5ca03ba09ca111642d39fda", + "0x00000000000000000000000000000000002043571f43cad61de3a5e4328a4aee", + "0x00000000000000000000000000000079d599186f46e769fcc207b0cd6cbdc01e", + "0x00000000000000000000000000000000000c5c2f9466df09ea80f0ec14870034", + "0x0000000000000000000000000000005f94f587b12643ff51063a28353833f770", + "0x00000000000000000000000000000000000cf56aa28ed4b4beb7ff157d7da3ef", + "0x000000000000000000000000000000de4b43f87ff9317c8e9d9c4588fc2eef2d", + "0x000000000000000000000000000000000012d0aa842859d2ee838f5510f9bc22", + "0x0000000000000000000000000000006f2fdb4213da0129f8365bc86a01f6164d", + "0x00000000000000000000000000000000000bdc73bc5280a4afc7e65947531e51", + "0x000000000000000000000000000000f14874ba0df22c460d8352ca030bd9a861", + "0x00000000000000000000000000000000000885382903e5ffbd837b5e0e4bbf06", + "0x00000000000000000000000000000066e80b7e34ebe3899a4d07dea4f62cc7df", + "0x000000000000000000000000000000000013f829d0878ad53de418679f370067", + "0x0000000000000000000000000000002980ae9f85fad098e5a76ca9e6bdac5779", + "0x00000000000000000000000000000000001a774ae589e96cfbefb418dddcdaa2", + "0x000000000000000000000000000000327c44b0ed90d01976c32c94f04ef2cea8", + "0x0000000000000000000000000000000000225d757cb4f2bfbf6d13b8114d7b16", + "0x000000000000000000000000000000bdc629840f4a9d071f9fb1384008254135", + "0x000000000000000000000000000000000004e75cee70f3e11a2402faef92a73b", + "0x000000000000000000000000000000f40c508a906897027558980610fc4df4f2", + "0x00000000000000000000000000000000001f959d41e40d111d021ab23b4ef843", + "0x000000000000000000000000000000587fcafd86184e71ec3d650b3ba85f03fa", + "0x00000000000000000000000000000000000610c97af06081281e7404f44aee4b", + "0x0000000000000000000000000000007b029cc296434696323f9c37b5e4c9cf55", + "0x00000000000000000000000000000000000614733fbf8d375012614cce5e4aa0", + "0x000000000000000000000000000000bc102f5fba012ade36bbf671474a9afae2", + "0x00000000000000000000000000000000000d2b78d31298fc946624e482d61850", + "0x000000000000000000000000000000c1c26c3fbdd4fb7de13c6af78b90063442", + "0x00000000000000000000000000000000002da9dd34c453f3d5a99691ba052769", + "0x000000000000000000000000000000a788520d601038b7bcb1ef241547ddc5e1", + "0x00000000000000000000000000000000002a280445997573df993f3eaa9cc9bd", + "0x000000000000000000000000000000ec4d9274437dc457e7da9ee9f5d57b0825", + "0x000000000000000000000000000000000029454eff7f180c04c3dccd1d762531", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000005d656b6df65180c7833e41dc3231ba543d", - "0x000000000000000000000000000000000011345e9011207695e22c16713acdb8", - "0x0000000000000000000000000000007d63cb71b503d4b9abe5d31e76ac70ff93", - "0x000000000000000000000000000000000026b61287fe7afce1e989dc0d30a961" + "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", + "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", + "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", + "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", + "0x0000000000000000000000000000007cf4b5713ad71efb2e02fe45bb7fc9507f", + "0x000000000000000000000000000000000026cf1fe248bb52d3e86b9f64b3c2d3", + "0x0000000000000000000000000000000e590349a07b67f041c3c615e4f436aeab", + "0x000000000000000000000000000000000015a097ca4d6bfa82e4dd755b3ebb59" ] - hash = "0x15602bffd51fabacf870d678a216f360ee85085e4b283f99086a716d2be141c1" + hash = "0x0b292d3b888b2793be2b844d85cf1ee4c10e4646758de66819a7d9483c294c05" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-empty-tx/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-empty-tx/Prover.toml index b55f7bf5c86f..c82902e1d32e 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-empty-tx/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-empty-tx/Prover.toml @@ -478,140 +478,140 @@ new_archive_sibling_path = [ [inputs.parity_root.public_inputs] sha_root = "0x00b0e02949c7c042e780651385688dcec114af3dbb3892bab1a9cd8e2bbafdc5" converted_root = "0x2f7247450c6d856804ef9fade0d5af92e4b87b1576f07ec88359012bf4c21abf" - vk_tree_root = "0x0141caf6779674bc31225636c4cc4259a731835c52fc462f2dcbfabf7de01a1d" + vk_tree_root = "0x0b701ee3d1002ca8a5a73a81bcb2e0d84e6c30222be65f508574f182569b718f" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.parity_root.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000016" sibling_path = [ - "0x259832d81ade32c589e6ab56f6c2bc4acf0b711b10e539b4ee38d8bacefbdcc3", - "0x00a28019e6ca588777548cd5e154dbf4f567f886cc8a01a812b4d3122f308cb7", - "0x03762ae9136a49df4624f45517c27d99c8b81a305e36011a211dda34608a3daa", - "0x2740690820f0df46bcbf149ccb51f228fb81a46173ad1793687319f77d32d49f", - "0x026fbe21cffb22c458f7e07b206bdaf767d39af34024eefe88e3d8b56eb9f695", - "0x19de2a32662702dd872e529ad89836e16b013012f910daf2bc7c2a67356dd107", - "0x1f07bca7a14f9a969539c0afd388affa18926689f431fc541841a2a7604d388c" + "0x26cc9e64527e3b22ec4559bc77cf5a17da79641f2be800e6ecdcd1956333e85f", + "0x2ba2de2d2cb820a66a273f2ba930d43a4469119ad58fe01eaed0e0d615ffb426", + "0x18f1abfe1a07005f35a20c06b468f7a4d3b68ecc2c025c88271b6550a827d41b", + "0x2370b2e567b79fe42809d72237ad8694479d864b90033ecbded55e041404191e", + "0x2c420960f09a97665929b2c1b4c167142f9e188be47609019306d64a45249c19", + "0x133dc174ef877c42d59ac5fe87733ce13f9355587db788e3b490832c7afbcfd2", + "0x13482b383bc59a6da6ab4e998b0986c23166d0aba121fc0789e9f14605af653b" ] [inputs.parity_root.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000016", - "0x000000000000000000000000000000000000000000000000000000000000000b", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x00000000000000000000000000000078b17daee7ce0a5fb9f5a84a2842c3b468", - "0x00000000000000000000000000000000001e4a85b98d71b0d69292687e2c5e94", - "0x00000000000000000000000000000000c3c7c53f8d6f387d02cbd30b373f624a", - "0x0000000000000000000000000000000000027492d891507b7fb721f827ec2125", - "0x000000000000000000000000000000448da0795e65c2acddb6a180b618ca4500", - "0x000000000000000000000000000000000026376b31e8ce3bb070bfed46801c3c", - "0x000000000000000000000000000000a8b4423143eb061d06dcf70a9b88d96cc0", - "0x0000000000000000000000000000000000140986c98f877b30ce48cb90461312", - "0x000000000000000000000000000000dc3228da5397acec91842e0564247a3281", - "0x00000000000000000000000000000000002c26f116c4120584e7c05868b9e034", - "0x000000000000000000000000000000f5ebf083289c311ee2d289dc034b0031b5", - "0x000000000000000000000000000000000027e5ca168fcf7984917277bd63aeb3", - "0x000000000000000000000000000000087667ff676cfafa2db57dd50364cfe79c", - "0x00000000000000000000000000000000002bb973ea83e8487c41459600a6ef16", - "0x00000000000000000000000000000000a38ca13acac1410f3d7ca6db34fa63f0", - "0x00000000000000000000000000000000002068ffd126a125d99af872b91155ff", - "0x000000000000000000000000000000fdc1eeb335429c34b4488e1ce565edd0be", - "0x00000000000000000000000000000000001279bb6460b4bdefc838d4cb235155", - "0x0000000000000000000000000000005ef93e2a85a22e47a3b3eabb4e229dfb95", - "0x000000000000000000000000000000000002085147ee68b313f39acde522a5b1", - "0x0000000000000000000000000000003601a6e8eaee36ae589e4f3efd39aacdd0", - "0x000000000000000000000000000000000015b26c9be4890cbf333c9d18e023f8", - "0x0000000000000000000000000000002597739e1725777058acf8c41ece5bc230", - "0x0000000000000000000000000000000000127f2d8950de2d351261de15ad3692", - "0x000000000000000000000000000000f0707fa498b915bb84481f22c68f82f852", - "0x0000000000000000000000000000000000026e1e4979e0d760c48aba45674641", - "0x000000000000000000000000000000ea45d31bd10dd18ccc02388e6f8b291dcc", - "0x000000000000000000000000000000000023e937480766000ba36ae295ec1e48", - "0x00000000000000000000000000000031baaf67d48e00f988f210e567ddd2b45d", - "0x00000000000000000000000000000000002715a3d431eafcba537d10c3033057", - "0x000000000000000000000000000000bbb3120089d0de7b11c4a1f29199f88181", - "0x00000000000000000000000000000000000367ef60efb55665d6d840fa949717", - "0x000000000000000000000000000000ed04c2879b84b210376953f58ce48eba0e", - "0x00000000000000000000000000000000000b092c857d4a2e5520dfaafb203c03", - "0x0000000000000000000000000000005da6cf732c008d8d037ca34a818312a024", - "0x000000000000000000000000000000000029f868f7234099b8361cb3510e7d8a", - "0x000000000000000000000000000000a0843902e624f3adccde6cf44e08311d4b", - "0x00000000000000000000000000000000000373ffc7fce598489f487b9c8c0ebd", - "0x000000000000000000000000000000a7314c6ed61312feaff048ba4b49842b7e", - "0x000000000000000000000000000000000028ef66d9ba57db55d9037eee6292af", - "0x000000000000000000000000000000d6a3a1c9a17835658d11e6a5d0fe9cf907", - "0x00000000000000000000000000000000001716bd0d35f792b5b5d1b3d57bceeb", - "0x0000000000000000000000000000008997c4ec5fabfd7e709a9e39a9ade4f7bf", - "0x00000000000000000000000000000000000f0a6f177b950ddd7b7eb33d04db21", - "0x00000000000000000000000000000039501b07dae9c6fb88b4c42448be3cb384", - "0x00000000000000000000000000000000001eaf14768ccbf9c57b217dec1e31d8", - "0x000000000000000000000000000000dc531c7d21f7b45ffbca2717ec44b041e8", - "0x0000000000000000000000000000000000279bdd1d3a8e15802c608c6b4708e1", - "0x000000000000000000000000000000b37783542b31dce0d8c31c0852e1d763c3", - "0x00000000000000000000000000000000002f467244c882fabc33838b10b7eb2a", - "0x000000000000000000000000000000ca408d8763a614b172e9b946a7dbb2e74b", - "0x0000000000000000000000000000000000262b64694fd389afba33f2989accea", - "0x000000000000000000000000000000b61193261fec588db146c2170e4d2b0a0e", - "0x00000000000000000000000000000000002f32c65a1fe400d17787690e55d2c8", - "0x00000000000000000000000000000007fbc70d900496b6366e965b79a2113b36", - "0x00000000000000000000000000000000002be977d4f13c3e45b8aa682458f534", - "0x00000000000000000000000000000019ec1befb0c5f1cddfebc885efc6265f95", - "0x000000000000000000000000000000000005d3ab687eed8f108bc3a75ec3b8e1", - "0x00000000000000000000000000000051bb7f4b08721f57f545ebc0e07d3eebf6", - "0x00000000000000000000000000000000000d9503879b9bd744448b6eb9fb2f7a", - "0x0000000000000000000000000000005a02ba394e9d2d3e77bcccd895c10694fc", - "0x000000000000000000000000000000000027e25fdc49dc55b63ef3d1ca90b5b2", - "0x00000000000000000000000000000091db8035e2aaa8610742df1503300087f9", - "0x0000000000000000000000000000000000021dc3eaf7990b12e4468c2e28bab0", - "0x000000000000000000000000000000e846d69b700fdd8b078052da8b91c352d7", - "0x00000000000000000000000000000000000c951fe8e7eb4a6298b14be6382f93", - "0x000000000000000000000000000000ec89072912c27066e932cf77f821994c90", - "0x0000000000000000000000000000000000182e68039cceed32fdac710403b7da", - "0x0000000000000000000000000000008debe6230106974006084e7308b4b5feca", - "0x00000000000000000000000000000000001ebd658ddc30d75e5e721359395120", - "0x0000000000000000000000000000006d3b5839b70a5b60de45166b9c2a4be3f5", - "0x00000000000000000000000000000000002ecf96badf1253c40c1486fabbfcad", - "0x00000000000000000000000000000098213252fb5d3b6c5a9747469ebcf0dcd9", - "0x00000000000000000000000000000000002d869db2f87c96d3e31e66aa911dda", - "0x000000000000000000000000000000555c7af1975654730348730a11775c9759", - "0x00000000000000000000000000000000002b8d102334de6b8cbc22090f9dda68", - "0x000000000000000000000000000000d34433dab85ff5064014d6b58f60d67c25", - "0x0000000000000000000000000000000000139da62905bcf796f7101bbc76122c", - "0x0000000000000000000000000000003840706e6d07460c44d74cba5c2b34358d", - "0x00000000000000000000000000000000000aa2f8b6291279bea275b7c9913258", - "0x000000000000000000000000000000019eaa3b842224650e76c5cb0e94484c6d", - "0x000000000000000000000000000000000006c9f637fbb6502a38f91b85ace5f5", - "0x000000000000000000000000000000efc01f95fe550a9a9f1476758824a74301", - "0x000000000000000000000000000000000003eaa2fbce3122916d12c78b219b9b", - "0x000000000000000000000000000000a6eda6357e83ebf12fcf13845427e4a057", - "0x0000000000000000000000000000000000255208b91373b2dede462b7e8b0b52", - "0x0000000000000000000000000000006d2aecad4cd09ada8fea8abb2ebbf070f5", - "0x000000000000000000000000000000000012bfb11d7a805c6e591f874ae3637a", - "0x000000000000000000000000000000f4a6c6ffdf80a72db78762e237d58cd5f6", - "0x000000000000000000000000000000000026814a59803555635a3b6dfd056d19", - "0x000000000000000000000000000000f45b8d96069231f48e0d0c34d57593a6a6", - "0x00000000000000000000000000000000000b9dc32399025796005b2f68c15991", - "0x000000000000000000000000000000750e1b5cb997a3adf8540bf55bb9264ec4", - "0x00000000000000000000000000000000001f6cd5b6d43f67798ae4655c016f37", - "0x000000000000000000000000000000596cc6183848f32c60ec74fe2bcd76b20f", - "0x00000000000000000000000000000000000ed62d10b019355f008b46412d0e2d", - "0x0000000000000000000000000000002020dfdab8c9db8335bca3c8284b1585b2", - "0x000000000000000000000000000000000023a2906d03204aa4f79b5b80b92eaa", - "0x0000000000000000000000000000009116c4d15f7c9a51f17c3830fe7c1e3b42", - "0x000000000000000000000000000000000024aecae332db48e03b97fc645a7f05", - "0x000000000000000000000000000000834c5e938cf9e8bd4bd5847e2408407276", - "0x000000000000000000000000000000000008524b40cf87b668119022f691cfac", - "0x000000000000000000000000000000e699df860731437ec57f9890fe4b3a4205", - "0x00000000000000000000000000000000000e1e9d4327e635f547da67aef57e86", - "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x0000000000000000000000000000004f85c893bf8b1e843f2dffc48dc074f196", + "0x0000000000000000000000000000000000215339c99786f23abf06aa628e2bb5", + "0x00000000000000000000000000000021f56f1fd166b444f6945fef45a4260c98", + "0x000000000000000000000000000000000029832f088b0a8c0ed5fb1876da60ee", + "0x000000000000000000000000000000683bd852b0d5317d3104e00d57a7ff12fe", + "0x00000000000000000000000000000000000d2eb234e163af0321005edbadf074", + "0x00000000000000000000000000000043d1d78f4556dca95ed3ae27b1bb967956", + "0x00000000000000000000000000000000002406ce5529e27d341a34d8c9a819d2", + "0x000000000000000000000000000000d2bb936edd0bcb9cf33e24855aa3095d1e", + "0x000000000000000000000000000000000016629d2674b560633c3db0a21598ea", + "0x00000000000000000000000000000092c8bd15ab345a54468aba584a6f16e2b5", + "0x00000000000000000000000000000000001fbbe74a5bb8bad495a22f4a0384dd", + "0x000000000000000000000000000000d7dbc1eca647580a4a952821d02d282259", + "0x00000000000000000000000000000000002d68b4713f14d3be50ddb099e2b736", + "0x000000000000000000000000000000d4dfc475729d110ffc01eac27a1bb07187", + "0x000000000000000000000000000000000015026e1e1768366175d180725092cd", + "0x000000000000000000000000000000d799d0753526bf23193f9ab8f73c1c7307", + "0x0000000000000000000000000000000000052dcf1d1d89071ecfbfe34de96dff", + "0x0000000000000000000000000000008a7f1c8955fef499a04d57fa057c30e66a", + "0x00000000000000000000000000000000001fedcb5a5fb32238adaca91e2be32f", + "0x00000000000000000000000000000047c5bb126a6e6c788dec340b858f577f7d", + "0x000000000000000000000000000000000013e3b742ca471a245262fb2ecee07a", + "0x000000000000000000000000000000b6284febc7d58cc5491fee7334064865ef", + "0x00000000000000000000000000000000000038ae53da7215a286ebd0649136a1", + "0x0000000000000000000000000000006eed465622852dce8a0702c5327cff0583", + "0x000000000000000000000000000000000022b0941f412859d1cc37a757ca4375", + "0x0000000000000000000000000000008bef872c634b8c03bfe7ff37c00a727192", + "0x000000000000000000000000000000000004906c8767a040a562b166a360c43b", + "0x0000000000000000000000000000001770bcd5e95d6ed8c6299af5208e594351", + "0x00000000000000000000000000000000001170f991d5a8c2cece25a2eec45ac2", + "0x000000000000000000000000000000dd2567c65087f4413c4a68442f7838d361", + "0x00000000000000000000000000000000002b2e2b9fa7017ed5b534b950976cfb", + "0x00000000000000000000000000000060445810cd95870d181367a860937116e0", + "0x00000000000000000000000000000000000171fcd0debd9f9966aa439dafa69c", + "0x00000000000000000000000000000036d276aef0f30fea87630c34381ff63a36", + "0x000000000000000000000000000000000029a01a7f04aa1c5fc36c458ab5f806", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000e402279945a076c945901fca356628c525", - "0x000000000000000000000000000000000012fedcb7313f77c3006a35e9fb9f8d", - "0x00000000000000000000000000000084a3a7ab7d80d65ae1cf14ed89c99c143a", - "0x00000000000000000000000000000000002ece2d07ef9c9b1afa02b75b16e861" + "0x000000000000000000000000000000441c338c655b7e22f91724c986ec2a7d0a", + "0x00000000000000000000000000000000000988f7c276931907f533dfa99ae0ad", + "0x000000000000000000000000000000555d1bf8e49259a2b77c8e0caae5b13feb", + "0x00000000000000000000000000000000000716aa5a6148a8455d44f8759f22f5", + "0x0000000000000000000000000000006400f037f61c707f2729c70c5d912ce9d3", + "0x0000000000000000000000000000000000116682196031717f5d1cc4d903aafe", + "0x0000000000000000000000000000006459e7ac42c142260295108e744e33a0c1", + "0x000000000000000000000000000000000009228de1a4fbd3de4d757390f162da", + "0x00000000000000000000000000000067656846b7e2309e7c18c1cce38675bb00", + "0x000000000000000000000000000000000029e7406191ce46a9babc6ac5ff12cf", + "0x00000000000000000000000000000032e79eca379410f7ec358f9da21bac9fa9", + "0x00000000000000000000000000000000002c817548c195702d46fafe6ccd4faf", + "0x0000000000000000000000000000004fbb48b68f274f27d30cdcb82ee7cac9b2", + "0x0000000000000000000000000000000000068f9a71089873a24f8351d1e70d97", + "0x000000000000000000000000000000795c4af1416754d9625f084be947a93c64", + "0x000000000000000000000000000000000024e4ffd72d451203c5bc7d04a27116", + "0x0000000000000000000000000000008ca18e089457f9cceb58c823a944b03f26", + "0x00000000000000000000000000000000000422b4f22af36e628698a6865ddecd", + "0x000000000000000000000000000000fb52c4f612125db4012ed8a2e84e1d2c6c", + "0x000000000000000000000000000000000019dc534f8dd81d19f72590c6e1fb8e", + "0x000000000000000000000000000000fa01f84fdc11a5d03b14bee3a99a680c37", + "0x000000000000000000000000000000000022dad727328995272891d530216d61", + "0x000000000000000000000000000000b5f4bf23591d8b2447d60d61737c2c36bf", + "0x000000000000000000000000000000000002e2a075eaa9f4dd89c257af6cbab0", + "0x0000000000000000000000000000003561668a93cb72e95a340771ddc66e9c1a", + "0x00000000000000000000000000000000000026940a62997474ab260b2841eafb", + "0x00000000000000000000000000000075c66b2eeb9c27b8611335bafd53ed5e6b", + "0x000000000000000000000000000000000020720351df147e866486a5db6e8bf9", + "0x000000000000000000000000000000fa65c2574867f702f76ee91bf9721891f4", + "0x00000000000000000000000000000000000550d2b73072fe8ebb458db32bc272", + "0x0000000000000000000000000000005e45bf32b04d43d7d9e082552a7c6e3aab", + "0x0000000000000000000000000000000000156b9320b1c02a5ae4d5245079ef93", + "0x0000000000000000000000000000007dd31f38bd2d2529ea3d3537bddc4c2d8d", + "0x00000000000000000000000000000000001460b51e2428e23b3d5f0e0623a2a5", + "0x0000000000000000000000000000009973429339ccb353bf51ed2d258ab0c734", + "0x00000000000000000000000000000000002675f20f2783781dae8b8ceee4b947", + "0x000000000000000000000000000000f19f97ae0fa6b47d95ce8c99deff02825f", + "0x000000000000000000000000000000000008ac106283f7faa2a9523d6d3b6a65", + "0x000000000000000000000000000000ece35a6af0338418a01080dc9e20d76e8c", + "0x0000000000000000000000000000000000223186953dd9de4ffdf175c62fe17b", + "0x0000000000000000000000000000002cdb64ca6e6e3ae04f48e894d029463405", + "0x00000000000000000000000000000000002934e04d3c42257882836e1cd3c909", + "0x00000000000000000000000000000010928865f0c2b283d43e700debac484ce4", + "0x00000000000000000000000000000000001267fc086b1485e85ea3a8d0cd75de", + "0x000000000000000000000000000000f9cdf1ac824371f6761a75f1208a9ddfad", + "0x00000000000000000000000000000000000e0fdaaebe67864d0d5e9eadb9efc5", + "0x00000000000000000000000000000017a6567e4f95497a889a7d72f19789b322", + "0x0000000000000000000000000000000000288f112dfaacee642430e19b6959db", + "0x000000000000000000000000000000a16e293e7727181d85a1c007ac038f36fb", + "0x00000000000000000000000000000000000dd700294b3714e9f7b0e14b5d532b", + "0x0000000000000000000000000000008ac20e1e987aa4c40027fd4f9efd59fa05", + "0x0000000000000000000000000000000000154ef731c875ef2164785e8ff31c30", + "0x0000000000000000000000000000001911ff084795513c823a4fda7a38335e8c", + "0x0000000000000000000000000000000000302c54e62b85bc435230433f081725", + "0x000000000000000000000000000000c4779e7986fcf2ef065416576329f1c47c", + "0x00000000000000000000000000000000001ebeffb4dbaac41852670eeb9ede9d", + "0x000000000000000000000000000000f030e0b5c911d86aef1ef86fff6c540d91", + "0x00000000000000000000000000000000000bae7a5c23fa083c7231387cf8d78a", + "0x0000000000000000000000000000001942fc1702b7a2afec85c9a8473d44c487", + "0x000000000000000000000000000000000000210966c79a864b7f987cf31ab127", + "0x000000000000000000000000000000f77fcafc38ec30e711c06c5755d04144d6", + "0x00000000000000000000000000000000002db7460ea7c5e17383e5d1b8affeb4", + "0x0000000000000000000000000000007f430ccebae1fa38c07b989cb9ac4ccb2d", + "0x00000000000000000000000000000000001d815d190889cb37cacc2ccf4cfc96", + "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", + "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", + "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", + "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", + "0x0000000000000000000000000000003ef880305f8c4beb28f1f80f7cc0e7d3f2", + "0x00000000000000000000000000000000000483fb33808b70b4a034dca390e659", + "0x0000000000000000000000000000003d66a145da1b03e8dc9914efd105dac5e6", + "0x00000000000000000000000000000000002a25301cc6f9e024e87f0b58047b1e" ] - hash = "0x260bc49f0702223b7f21b3aa27a20c75348991d78be9041f06bde5d2b51a3fc3" + hash = "0x17df297aed2208dd702c20c31bd85e54e0984ff5f2e4c2032f507c647b261849" [inputs.previous_archive] root = "0x21d6f855045a944864d3132e6d985947abedb3c639bcfb1b67a0fd240dff64b1" @@ -636,8 +636,8 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" version = "0x0000000000000000000000000000000000000000000000000000000000000000" - vk_tree_root = "0x0141caf6779674bc31225636c4cc4259a731835c52fc462f2dcbfabf7de01a1d" - protocol_contracts_hash = "0x01af64239167dcc8333e25456aab71348f66d9f6de731a8b62181d16cf0818c1" + vk_tree_root = "0x0b701ee3d1002ca8a5a73a81bcb2e0d84e6c30222be65f508574f182569b718f" + protocol_contracts_hash = "0x0fcccdf7958e813bb1d24f764ae13ff08a999008434c2e4dec55f4401564b05e" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" slot_number = "0x000000000000000000000000000000000000000000000000000000000000000f" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-single-tx/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-single-tx/Prover.toml index b60a27ba98d5..d8e845bae703 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-single-tx/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-single-tx/Prover.toml @@ -28,10 +28,10 @@ new_l1_to_l2_message_subtree_root_sibling_path = [ "0x0aced6fe68143f4c7acd16345a8c1bb50c51a0692b760eb48728feb923d90757" ] new_archive_sibling_path = [ - "0x08c303b52910eab1e07d04de401bcbe8d8f36ca377c5168e795f7f5f4156bcd5", - "0x1cfdc3f191fd4278971f73de8ee4302bd29051bb0c93c1ba7a8a7feaa4e59846", + "0x1e3f5be5759fc6600d279549642c392a0ebb414ae75f9e0df03f21afb64537e4", + "0x2fe8312d1f90bd7174583fc16a7305105cab9fed2c0791ee341c0e92852bd7b1", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", - "0x2b3b2f80ea4227dfe7ab4edec33942ff08b95b023d6d15efb0abde90594c993b", + "0x0f732f793a5616e304457e5dba29fd5d2d14887c08d27a9e29c00f4ff813c417", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", @@ -477,19 +477,19 @@ new_archive_sibling_path = [ [inputs.parity_root.public_inputs] sha_root = "0x00de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d468223" converted_root = "0x0d04c63f36bd168215c9b09a227c7e8d3ad48e2f11b8202fd07c524bd30ee88f" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.parity_root.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000016" sibling_path = [ - "0x03c2794698e7be6401d02011dc2296136a6aeb5a9ea3e6d244ece148cf45e1d0", + "0x09e31f1470e1053f8c72fb6a54c2dc6bc35fff3e9236c629a064f37f5998d246", "0x2ba2de2d2cb820a66a273f2ba930d43a4469119ad58fe01eaed0e0d615ffb426", "0x18f1abfe1a07005f35a20c06b468f7a4d3b68ecc2c025c88271b6550a827d41b", - "0x268f759e38c9ff705a78c055b44e19f7d2b0227f3c4f2e31d6874550d498abec", - "0x09f661abe743a7c8125aa0498ca1d01914fdac9cadadb415e0d1a05934997b99", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x12b2fc2c75329888431e1f3abec5c810aea9fd591c813570cee181f1b665d1ae", + "0x15fd9e1a9ef5dc7fd655e1170456ed438f667f53ddcbd594d92aa1263c3c3120", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [inputs.parity_root.vk_data.vk] @@ -1103,12 +1103,12 @@ new_archive_sibling_path = [ accumulated_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [inputs.previous_rollup.public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" + protocol_contracts_hash = "0x0cf46d3e931602fb5a52d5f7f673d385dda8e2b9074db403ad47c7ce6612bf7d" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollup.public_inputs.constants.last_archive] - root = "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1" + root = "0x0b278a94e22fcce62157812cbb310c34be4caf2a3e07dc9fbaad60ccc9eec278" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" [inputs.previous_rollup.public_inputs.constants.l1_to_l2_tree_snapshot] @@ -1117,13 +1117,13 @@ new_archive_sibling_path = [ [inputs.previous_rollup.public_inputs.constants.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" block_number = "0x000000000000000000000000000000000000000000000000000000000000000b" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000043" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde108" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a07a404" [inputs.previous_rollup.public_inputs.constants.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [inputs.previous_rollup.public_inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1133,27 +1133,27 @@ new_archive_sibling_path = [ fee_per_l2_gas = "0x00000000000000000000000000000000000000000000000000000003699e8ba0" [inputs.previous_rollup.public_inputs.start_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x1ae1ba1521c28ae96f289a24da13c68b7bf85b3c0fd0e311fff69186ebcef456" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" [inputs.previous_rollup.public_inputs.start_tree_snapshots.nullifier_tree] -root = "0x0e8d32952999631ff527d706426177bdb3208db1d3b8dd4e74ba883610dc37e5" +root = "0x154a522176ba08866fe7f8131dbd338eb23d7b1ca1781cee200cf0bf3f22e0e3" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" [inputs.previous_rollup.public_inputs.start_tree_snapshots.public_data_tree] -root = "0x0d21d4944ca04ad548057c7362ba76b7370e29929fe9cdd32ec1d04c07e21179" +root = "0x2e7ff17c04a98616aeb38ae9eedd21e031fe42411e931dbb00d1e4361240e506" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollup.public_inputs.end_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x1ae1ba1521c28ae96f289a24da13c68b7bf85b3c0fd0e311fff69186ebcef456" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000340" [inputs.previous_rollup.public_inputs.end_tree_snapshots.nullifier_tree] -root = "0x28f8d2b1f0315d8539c1e4ff651e2eaac034de0a2271cd6f198f557ecf449cb1" +root = "0x074897b8ede56d92b94fb1320421a606f6fe33f4ac05d35f1cbfb75487172a1c" next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000003c0" [inputs.previous_rollup.public_inputs.end_tree_snapshots.public_data_tree] -root = "0x1a010e7a4312757d9349e0058c907064764c9836de016199dbd957ca46fefc3b" +root = "0x2c052c025e1e1b185b1a55691096cea0f71e91ffaaee39d6e894e244cd7be22e" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollup.public_inputs.start_sponge_blob] @@ -1181,13 +1181,13 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 cache = [ "0x00000000000000000000000000000000000000000000021e00afaeb15ed67ca0", "0x0000000000000000000000000000000000000000000000000000000000000af0", - "0x12d1296a2643b832fbd1d6d3ed3678833fce770084efd75adfd517de8214ccf3" + "0x0088ce9e6f50acd19bac39e3d5410556dae500da161f6ef2653eac5064718153" ] state = [ - "0x11cc4dd8716179a3121aa6820cf8805b0e65d61d2b958fe317a1ec807c461a21", - "0x0027ae2792755b030071ea296ff933c1fbc939538b5565420ed3e94832815961", - "0x20fa0000aefa41fd803dab187b732d999bc74c8fbd1093faea082ec34b9a2976", - "0x15a69510721f899245edece9d54fb2ab846e01ef0c7480c8a80c649d69839cbd" + "0x22d6b4fab5ddc890135072776b13ef2db0915b0c4e8712e4042e7bb60ca60e3b", + "0x1acd2858a01ffff236f463a69f06353969b0b2c660cc85debb4988b55a12e1e9", + "0x00793a85db5db659c3665a6d00187f4f9bb36359ca6c11c99925db3101891200", + "0x272a4e8bc6e7fb2cb51e1c1be39fa0372f0ab951ab7ed30eeac8ed285add3f83" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000001" squeeze_mode = false @@ -1198,10 +1198,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x09b4bb0061881fc354c5fadf8dc55f36b0c67dc3b2f58a18406363dfa0b079fa", "0x2136af42d41c58f3fd528f4e88c2de5152c2bb251a3c4d8950d4401a0c8ae6ff", "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", - "0x099ef6a9a40aaf85e056bda90684adf858addbb90af303d82f8157b86b705b92", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x0e082f8f9e14360692edbef3aaa01f560e21f8e13843258bdb09062767b97150", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [inputs.previous_rollup.vk_data.vk] @@ -1209,94 +1209,94 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000017", "0x0000000000000000000000000000000000000000000000000000000000000042", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000008a8843c678d444ced3a35d87626e56ed9f", - "0x0000000000000000000000000000000000060403e4feb303ebae0081cbad4e96", - "0x000000000000000000000000000000f0fe138760bd40aadc43c77ad160555212", - "0x0000000000000000000000000000000000154e802ee66f7a511a469adb8153e5", - "0x00000000000000000000000000000012b75e2667d243bc4bb7b0cde3bdc5eefc", - "0x000000000000000000000000000000000013e94fa83017e580a2e280e4f8c376", - "0x000000000000000000000000000000fb8b3161040e7a5502bf277aec7b82cb6b", - "0x000000000000000000000000000000000014e7113349a6d4f2b0d3c9bde42075", - "0x0000000000000000000000000000006bc15064df220ad5d2fea722296bf72c99", - "0x00000000000000000000000000000000002039216ff43d16e0a63e542794decf", - "0x000000000000000000000000000000f0d3e00b510ae4272fbba83d787c7e6b6e", - "0x000000000000000000000000000000000022f73b00c62c39fc49fbffa96081da", - "0x0000000000000000000000000000000ff9f67bc7c9b90987dbed3fadf40bacc4", - "0x00000000000000000000000000000000001dc87bb292ea49bdb5bb87509c9781", - "0x00000000000000000000000000000025239c23a65572724acdd6663984afc224", - "0x000000000000000000000000000000000005e345da6870bd306f04558f601b45", - "0x000000000000000000000000000000cb380ac3dc3f8788bab24fcb5d9eedc949", - "0x000000000000000000000000000000000017714c1fab296b76d2f78ed675c1ce", - "0x00000000000000000000000000000095bca1a9f9a186f7ec34e43c479e5d1b2f", - "0x000000000000000000000000000000000018d292be64529b7e9ec24c76e561d9", - "0x0000000000000000000000000000006f1bd711730ae2aaf83227b9d9f46daa43", - "0x00000000000000000000000000000000002df0b894f5971084c0a65839178a66", - "0x000000000000000000000000000000909f2efe0bffa95e984d456089f568f59b", - "0x00000000000000000000000000000000002908f2c7ddf9573df347d6c9f22fde", + "0x0000000000000000000000000000000bc7292369794887dd6e85b5b7088b272e", + "0x000000000000000000000000000000000007c1e92c0661b4bf814485a8b7c172", + "0x000000000000000000000000000000a3abb77769c4c67d9b6d587a6906fc6426", + "0x0000000000000000000000000000000000014ceb0ad0cef5a1a2cfbacfaa43e0", + "0x0000000000000000000000000000008beb8bc52bd33a94b34639f2b7b84fc6f6", + "0x00000000000000000000000000000000001079a2baa598b719d2f98be94a51b7", + "0x0000000000000000000000000000002055c1a7e1b37160c0d5a8b601a4ae56da", + "0x00000000000000000000000000000000002f36f24d697b10f06fb43eba312976", + "0x0000000000000000000000000000000a306def135b8714d766247f358919af8a", + "0x000000000000000000000000000000000019de60cd08d62b51e41e46017f05f4", + "0x0000000000000000000000000000000989e918a0f34f6a83be9a481614ec21c7", + "0x00000000000000000000000000000000000f342555533d1707a0f59fa43f0961", + "0x0000000000000000000000000000000dd7586366f6e462b268d86c432109ffd5", + "0x0000000000000000000000000000000000082db81513b7287658167352068a7b", + "0x000000000000000000000000000000867a08bb9ff9c11d0c8750179e29fc42d0", + "0x000000000000000000000000000000000008f9b57c3c802ffd42e1b464974974", + "0x000000000000000000000000000000cd46a027ac423f178d7c5a07c656da8ee8", + "0x0000000000000000000000000000000000166d4abeefdcfc954d41223475c5ef", + "0x00000000000000000000000000000064d9e375d296dbe94d49222881b38a22ab", + "0x00000000000000000000000000000000000b0a953f5484872aaaf67a864762fb", + "0x0000000000000000000000000000007f3b71f3ed8aedce3b237ae04032e2df86", + "0x00000000000000000000000000000000002a7e3caff514f612953d89ddf618ce", + "0x00000000000000000000000000000057417d0009c2e91c33169ad3203cb8757c", + "0x000000000000000000000000000000000001196a6c8ede41c1d10f2537b42ebb", "0x0000000000000000000000000000006f206a04895661d3bd004222a1f8a7fc73", "0x00000000000000000000000000000000001b12a59a820d3aa543a594a1b9d92f", "0x0000000000000000000000000000002103559842aca1e08af33bb1f714ebc02a", "0x00000000000000000000000000000000001b8936a0be628b58af9859c2a851d1", - "0x000000000000000000000000000000d2c67f3c526e05aa6d25558ae65cf0e3ac", - "0x000000000000000000000000000000000006cc97b785475ed3429d939fa00e96", - "0x000000000000000000000000000000c5240a725c016a35037b37f73c37b68de9", - "0x000000000000000000000000000000000015e6206f121de2aafe259c32889a4b", - "0x0000000000000000000000000000004cba3ce39736c272ff963bdbdfcb67c2ef", - "0x0000000000000000000000000000000000243b3786310485c3234295957c5222", - "0x0000000000000000000000000000002c3672eaf01e849995fc3f6dc99dcd1d60", - "0x00000000000000000000000000000000001449e8673b109f980a1542f1ddd670", - "0x000000000000000000000000000000f077af86375782052dfc713a0c67f9a08b", - "0x0000000000000000000000000000000000124108d868884e76f5ceeb60b2bdae", - "0x00000000000000000000000000000029c3fd985c5dd5867bd8fed36ad940e02d", - "0x0000000000000000000000000000000000146fedc34ca9246ab0df070f31ee14", - "0x000000000000000000000000000000706a32f5a8f5fa44205bb08662e0ef1396", - "0x000000000000000000000000000000000016ded7f7f0b72d3ecf256f5c2ee613", - "0x0000000000000000000000000000002eaf856304cdbbb4d0b926d9c9211028c0", - "0x000000000000000000000000000000000004696250db37878179b548105ff54e", - "0x000000000000000000000000000000047767298e4177562ddcbcae03c7ec6ccc", - "0x00000000000000000000000000000000001f29f52f5f45f28e462390b0f914f9", - "0x00000000000000000000000000000004e950f9459bf160429275bc6a733319ea", - "0x0000000000000000000000000000000000175f23657f8f899b10b84c1ffe432c", - "0x0000000000000000000000000000006e522620788963bd42d9ab48810f89afe4", - "0x00000000000000000000000000000000002243c76dbde36a37e42b92bae3eb16", - "0x0000000000000000000000000000005641fbcbddd5abb62d653fd7f1ed10ed7e", - "0x000000000000000000000000000000000007d25e6a46da918fdb902e1a78efb4", - "0x00000000000000000000000000000065f7509bb551cb061c5fd1e92bc85a4974", - "0x00000000000000000000000000000000002efbc0dd9b88baa9675d95ae595e68", - "0x00000000000000000000000000000046bdd1d7603fdb2ee53f8966b3069082a5", - "0x0000000000000000000000000000000000161d3346daa3f83e4416d59e8135b6", - "0x000000000000000000000000000000ec124a53466d06b5e0df3e77f9f6a6ae15", - "0x0000000000000000000000000000000000128b36a77e814ffa503da6fd061fc3", - "0x0000000000000000000000000000002cfa5f8d00fe2bbdd85db6b0179a4c7346", - "0x00000000000000000000000000000000002b7ce5f45710c4b113f7ca6b3291b0", - "0x00000000000000000000000000000054409cb824bb2028eb6a501f9585b13eda", - "0x000000000000000000000000000000000026412333aa334f56e0761374f0c38b", - "0x0000000000000000000000000000002a23ae58cbd13760028a699488d5a4300f", - "0x0000000000000000000000000000000000225067a42bdcd7d9eec23d250acc92", - "0x0000000000000000000000000000006e28e63b7d6bc65c15c009f5dd9304f8fd", - "0x00000000000000000000000000000000002648ab0c9cfefbb147853e364bef8d", - "0x000000000000000000000000000000f00a9e6c1594965b7c14b2310b489b52f9", - "0x00000000000000000000000000000000000a03f4283d5d64b7245827349741ee", - "0x00000000000000000000000000000073f3c5531dc194b7332ef4e765192e3962", - "0x0000000000000000000000000000000000088b01c6cab84d827c1d8eae1ebbbd", - "0x000000000000000000000000000000e197f3a024045bec491c28fc4b7594347b", - "0x000000000000000000000000000000000025bf29aee6c0dd8976574600dfacea", - "0x00000000000000000000000000000023cebfa19e1e206b1d71359821037c31b7", - "0x00000000000000000000000000000000000c2354b63a0bcd72350e606c3fa0e7", - "0x000000000000000000000000000000fcf564b220543fd0aea7b28c05df85fe3a", - "0x00000000000000000000000000000000000c2f035d78985f2c0e4ab138790e69", - "0x0000000000000000000000000000005129d16313e897118223bd963067e22700", - "0x000000000000000000000000000000000004c87b337be4b82e809af637daef82", - "0x000000000000000000000000000000279941b3633c9a8e9fc6e68ef4be5633f4", - "0x00000000000000000000000000000000002a9334f2cfa791a9bbc88cc234a5d2", - "0x000000000000000000000000000000ab1a8db808cb2b1b90ba26085c23154102", - "0x00000000000000000000000000000000002c04e8fdbd1f2154a1b42961e3b6b5", - "0x0000000000000000000000000000005729f9b6dcfc45fa934c44ad8800e2b7c6", - "0x00000000000000000000000000000000002c584d4df5aaa602e46e5033408d64", - "0x0000000000000000000000000000004daf206a533411e7b39ab99acaf3287ca2", - "0x000000000000000000000000000000000020d85db8daa0dd9c83ceda296cbe73", - "0x000000000000000000000000000000ab6d868729c089d55819b59b1df10e26ce", - "0x000000000000000000000000000000000004b5421430befd61f014813d315ade", + "0x000000000000000000000000000000e0d004b88bf497128aabad15d90a09c3aa", + "0x00000000000000000000000000000000001aa0e0855bf8184a93b8f5b151eaaf", + "0x00000000000000000000000000000068d6ca87ab423efe209461b5565284e769", + "0x00000000000000000000000000000000001f8b9a18397a772da9abca2fdcbdd7", + "0x00000000000000000000000000000069c5c7c45c6247224fa56f6c7e1dc8be88", + "0x00000000000000000000000000000000000e858e4f34dbc79ed3774f7f561544", + "0x000000000000000000000000000000d4bd1c842821e076efed984ce50b397ab4", + "0x0000000000000000000000000000000000185eb21325e9e184dbb263d371225c", + "0x000000000000000000000000000000547a59045406891cdaef59884c3b14a438", + "0x000000000000000000000000000000000011ecc9ee480d883f2b68cc99b4fb4c", + "0x00000000000000000000000000000089d71d72efd0e0b0b8bd188444d38db417", + "0x0000000000000000000000000000000000144b931cdeef5db75e10e40c70a6b6", + "0x0000000000000000000000000000000dd407d4235b28fc917535181ad5414b96", + "0x000000000000000000000000000000000024d7c82d5f109dd1e693aadf4d08a1", + "0x0000000000000000000000000000007587b9ce98a8824e4f9cf9cf5a659b63ae", + "0x00000000000000000000000000000000000aebce2598b610cf581987fe27c318", + "0x0000000000000000000000000000003c84378934b9f5df02312e55b0ad35f005", + "0x000000000000000000000000000000000020f8020d29a4db880db5024fbeea46", + "0x0000000000000000000000000000002b3a26fb2c7f7f3eb296c1ad66af469cc9", + "0x0000000000000000000000000000000000242ac70929bfb2e763d10048c52deb", + "0x0000000000000000000000000000005bd9ddb8855e194658f192c2c7bede7eaa", + "0x00000000000000000000000000000000002f04c65ba4dfd3d4fd8d1e475a9c86", + "0x000000000000000000000000000000b59e382b6cf7bf2439a947ecff6b37b422", + "0x00000000000000000000000000000000002d411c21ca0762a17795395b2cd873", + "0x000000000000000000000000000000b5aa1b1b41b3f4f3b198b1d7b3ba97248c", + "0x00000000000000000000000000000000000a25dc1f36ae5b8c2e861e75a437c4", + "0x000000000000000000000000000000c91242314a284a21e4fcc1674630f008a8", + "0x00000000000000000000000000000000001632f1672ee3e71d1a947b0ffc3acf", + "0x000000000000000000000000000000ffa9c2e6a39d5826f6bdf0b72cdba1c53e", + "0x00000000000000000000000000000000000828a106fe658ac66a06d967132a5d", + "0x000000000000000000000000000000f457690f4473bba39d4e050d3b2dadd213", + "0x00000000000000000000000000000000001840a68f759a8a2870e4e2bea015a9", + "0x00000000000000000000000000000017bee4b61fa373b8c55930a180bf3f535a", + "0x000000000000000000000000000000000012fbdc51830947318c606ead2ec30f", + "0x0000000000000000000000000000005c07fcdfb2540bc831874a77d24d9256a0", + "0x00000000000000000000000000000000002e2ff6ebf6f17012b6feed99c85a37", + "0x0000000000000000000000000000003f8bf7c5d8b76166b9a13ba8f486d76d15", + "0x000000000000000000000000000000000008f7142f101773058bb73f198bf009", + "0x00000000000000000000000000000082a93e0783a3b605379206d523fa4fe8dd", + "0x00000000000000000000000000000000001aa202500e5ae279b8d383987a560f", + "0x000000000000000000000000000000e7ec4ed26aecea025290c4463ae9a267fe", + "0x00000000000000000000000000000000001da93410597389e54033987d479754", + "0x000000000000000000000000000000d8f106fbc7e0653c971ba5a9dddb0f10de", + "0x00000000000000000000000000000000001e8e6426177cafc74103abd142e145", + "0x0000000000000000000000000000006a01975c649822c6ee97cc7e2493cea7f1", + "0x0000000000000000000000000000000000225f06ce058aee3d9ef1e14975b0ac", + "0x000000000000000000000000000000f7aaa8f7204275c2f7f12e18a6ed3d5c40", + "0x00000000000000000000000000000000002586c20d4e1a6bd8e5857f3e548bb2", + "0x000000000000000000000000000000e1dd97f030e451aaf931efc4e6b2bd84e6", + "0x0000000000000000000000000000000000140e19d56886ccdb0340ff4befbd54", + "0x000000000000000000000000000000339cafa72e6d0ac8552bcb5a3c477ce72d", + "0x00000000000000000000000000000000000710daf788e537b0bb24e704c98230", + "0x000000000000000000000000000000314133ba806cd1de483a00d90f8b672f6e", + "0x000000000000000000000000000000000022e910d2857c41cef944436f56c9ee", + "0x00000000000000000000000000000014711eb511b35a1c1db6936592591bea57", + "0x00000000000000000000000000000000001e37d2ab970566fd97d9b1eea74ad3", + "0x000000000000000000000000000000657e33485ee8e28d1725f1576ebccf11bc", + "0x000000000000000000000000000000000015b029421df8ce47504c59706ca805", + "0x0000000000000000000000000000002076411b8ac2c77035753faad9e944de48", + "0x00000000000000000000000000000000002675683f99a31de4c33426c4a7a7b1", "0x0000000000000000000000000000005eefcb3c6f69064ed55425945fcc74c2bc", "0x00000000000000000000000000000000001613278bd29c20c182e6f3b5e367ce", "0x0000000000000000000000000000006c39d4dd8c65752b9bc2628fcc3dbf415c", @@ -1317,12 +1317,12 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x000000000000000000000000000000bd9c096acdaa162e6c7ee9b718f7fbf759", - "0x00000000000000000000000000000000002c70947eefbeb3fcbc1953b2ccb88f", - "0x00000000000000000000000000000045e09e50b539ce6228369e4b4cb8530ce0", - "0x0000000000000000000000000000000000062cf2c7d023a38df32e6c8c04a8c1" + "0x000000000000000000000000000000da63ba5f311c31e33acd0d78a5d2594b3a", + "0x00000000000000000000000000000000000bc4e5e70275ccb38be84599abdaf6", + "0x000000000000000000000000000000a9152b56bdebe14a3d3182a45d159bb2f7", + "0x00000000000000000000000000000000000f3ab6e0517b7a295c64fd3f682cbe" ] - hash = "0x208d8b1ad2d688325416c8a23881e8b14753352851d7740b339ea2ebd455cdcc" + hash = "0x0dd78da07b6db671024b1f68c5ddf724ea0a44e8013e911edb3a132b996c90f3" [inputs.previous_l1_to_l2] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first/Prover.toml index 969d8532627b..d45fb06c0ced 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first/Prover.toml @@ -29,9 +29,9 @@ new_l1_to_l2_message_subtree_root_sibling_path = [ ] new_archive_sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x1cfdc3f191fd4278971f73de8ee4302bd29051bb0c93c1ba7a8a7feaa4e59846", + "0x2fe8312d1f90bd7174583fc16a7305105cab9fed2c0791ee341c0e92852bd7b1", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", - "0x2b3b2f80ea4227dfe7ab4edec33942ff08b95b023d6d15efb0abde90594c993b", + "0x0f732f793a5616e304457e5dba29fd5d2d14887c08d27a9e29c00f4ff813c417", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", @@ -477,19 +477,19 @@ new_archive_sibling_path = [ [inputs.parity_root.public_inputs] sha_root = "0x00de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d468223" converted_root = "0x0d04c63f36bd168215c9b09a227c7e8d3ad48e2f11b8202fd07c524bd30ee88f" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.parity_root.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000016" sibling_path = [ - "0x03c2794698e7be6401d02011dc2296136a6aeb5a9ea3e6d244ece148cf45e1d0", + "0x09e31f1470e1053f8c72fb6a54c2dc6bc35fff3e9236c629a064f37f5998d246", "0x2ba2de2d2cb820a66a273f2ba930d43a4469119ad58fe01eaed0e0d615ffb426", "0x18f1abfe1a07005f35a20c06b468f7a4d3b68ecc2c025c88271b6550a827d41b", - "0x268f759e38c9ff705a78c055b44e19f7d2b0227f3c4f2e31d6874550d498abec", - "0x09f661abe743a7c8125aa0498ca1d01914fdac9cadadb415e0d1a05934997b99", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x12b2fc2c75329888431e1f3abec5c810aea9fd591c813570cee181f1b665d1ae", + "0x15fd9e1a9ef5dc7fd655e1170456ed438f667f53ddcbd594d92aa1263c3c3120", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [inputs.parity_root.vk_data.vk] @@ -1099,16 +1099,16 @@ new_archive_sibling_path = [ [inputs.previous_rollups.public_inputs] num_txs = "0x0000000000000000000000000000000000000000000000000000000000000002" out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" - accumulated_fees = "0x00000000000000000000000000000000000000000000000000885bb87af2ece0" - accumulated_mana_used = "0x00000000000000000000000000000000000000000000000000000000001210e5" + accumulated_fees = "0x0000000000000000000000000000000000000000000000000095c0dcfd021d00" + accumulated_mana_used = "0x000000000000000000000000000000000000000000000000000000000013d738" [inputs.previous_rollups.public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" + protocol_contracts_hash = "0x0cf46d3e931602fb5a52d5f7f673d385dda8e2b9074db403ad47c7ce6612bf7d" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollups.public_inputs.constants.last_archive] - root = "0x25dd04dc7f0a4299651ea908c014de487c4be771db4d68b458d16aa041af02ba" + root = "0x2278d45cbe3fe955c253f69da260afed8377b4093203faceb8dd685e2ebbba0c" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.previous_rollups.public_inputs.constants.l1_to_l2_tree_snapshot] @@ -1117,13 +1117,13 @@ new_archive_sibling_path = [ [inputs.previous_rollups.public_inputs.constants.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" block_number = "0x000000000000000000000000000000000000000000000000000000000000000a" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000042" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde0c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a07a3bc" [inputs.previous_rollups.public_inputs.constants.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [inputs.previous_rollups.public_inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1133,27 +1133,27 @@ new_archive_sibling_path = [ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000078c3bcb60" [inputs.previous_rollups.public_inputs.start_tree_snapshots.note_hash_tree] -root = "0x11ea69a14ea9c12bed3f481dd61addfb2d90d96aa40b626c4d2e47b3466e7b88" +root = "0x1cf96971b488ea92b6c5f7b76c40e8d79e1c75b37af5acef8dd61c933e0a45e9" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" [inputs.previous_rollups.public_inputs.start_tree_snapshots.nullifier_tree] -root = "0x10e14d1e03084d8016d8018077d4e629cb58cbf3139897cdd78db40c002a04d7" +root = "0x22a5d1ce5187abfca0c7c566209135bfdcfa597fa5c379dfa0f6fb39ffceda4c" next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.previous_rollups.public_inputs.start_tree_snapshots.public_data_tree] -root = "0x1410b6658243b878037c23a953c69c3a138fdf38373efa0662a549111364b310" +root = "0x1f8fa50437b55da9c447c2939fd0830245d2c1fbcf9c93e29a25e03ab4eae7cf" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollups.public_inputs.end_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x1cf96971b488ea92b6c5f7b76c40e8d79e1c75b37af5acef8dd61c933e0a45e9" next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.previous_rollups.public_inputs.end_tree_snapshots.nullifier_tree] -root = "0x26fd6ffebb711b7b1d916a895bb8bf3c6b5fc915b1e5a22db0fb801072027d80" +root = "0x0ea125fa2d4e08ecbd6517299252b8218a3c71077433b64f9021522081d73f74" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000340" [inputs.previous_rollups.public_inputs.end_tree_snapshots.public_data_tree] -root = "0x2cef7e5e25fb54c99feb0d6fbc5bb44eb98d00d3022f4baf5e3f6025a7320293" +root = "0x2e28229bfe2b8aac32a96ff8a2a3992aeb10c08499973bb39262e38b5a898126" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollups.public_inputs.start_sponge_blob] @@ -1175,33 +1175,33 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 squeeze_mode = false [inputs.previous_rollups.public_inputs.end_sponge_blob] - num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000047" + num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000012" [inputs.previous_rollups.public_inputs.end_sponge_blob.sponge] cache = [ - "0x2a44787960631c708a6c54319236e2733f5bf18956a780d4f076e06d46e8c52f", - "0x21c2f9acd4cfd49d3570c4429b45c6dcf5658ac7592091682403c9468c8fbfc5", - "0x089c49b97c1e121fc3d9c0d7f3793cdd886de1fb26e735edbdae3790abaedd66" + "0x000000000000000000000000000000000000000000000000000000000000076c", + "0x0088ce9e6f50acd19bac39e3d5410556dae500da161f6ef2653eac5064718153", + "0x00000000000000000000000000000000000000000000021e010dc29bfcc487c0" ] state = [ - "0x0b196378726e6d2cbd4d793963bdda8cc494c766409365f6a0f3b9f8e2e2c277", - "0x29906675cd547621ba2ccf000d609acec4b304b7b4d929f9e586687d92c311a9", - "0x17ecd8ac459a19c262c431de5d01f6726a3b03485399398d69165cc195454006", - "0x254280886c6baee6bfedb4dae9055f680574d4b1bb6a4245fb1f24c70eedaa76" + "0x23eb0ddb4091731192efd004672191b0b23fb7cd0667557b544c4bac54332c21", + "0x19ef0a7230ea7278c1ce4bf41ffd4109a5ae7c3da4003e721957beeb68be3a5e", + "0x2476de09bd58a6efeecfc9c805d67751d3d3b9460bd959f3602b43822997557c", + "0x0bbbb4cab691c653b3569645fa832fd1b9f384b1434fb831c723e3ac2d776bca" ] - cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" + cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" squeeze_mode = false [inputs.previous_rollups.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" sibling_path = [ - "0x208d8b1ad2d688325416c8a23881e8b14753352851d7740b339ea2ebd455cdcc", + "0x0dd78da07b6db671024b1f68c5ddf724ea0a44e8013e911edb3a132b996c90f3", "0x2136af42d41c58f3fd528f4e88c2de5152c2bb251a3c4d8950d4401a0c8ae6ff", "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", - "0x099ef6a9a40aaf85e056bda90684adf858addbb90af303d82f8157b86b705b92", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x0e082f8f9e14360692edbef3aaa01f560e21f8e13843258bdb09062767b97150", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [inputs.previous_rollups.vk_data.vk] @@ -1811,16 +1811,16 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.public_inputs] num_txs = "0x0000000000000000000000000000000000000000000000000000000000000001" out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" - accumulated_fees = "0x000000000000000000000000000000000000000000000000004894bc72b69ca0" - accumulated_mana_used = "0x0000000000000000000000000000000000000000000000000000000000099dbf" + accumulated_fees = "0x000000000000000000000000000000000000000000000000003b2f97f0a76c80" + accumulated_mana_used = "0x000000000000000000000000000000000000000000000000000000000007d76c" [inputs.previous_rollups.public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" + protocol_contracts_hash = "0x0cf46d3e931602fb5a52d5f7f673d385dda8e2b9074db403ad47c7ce6612bf7d" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollups.public_inputs.constants.last_archive] - root = "0x25dd04dc7f0a4299651ea908c014de487c4be771db4d68b458d16aa041af02ba" + root = "0x2278d45cbe3fe955c253f69da260afed8377b4093203faceb8dd685e2ebbba0c" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.previous_rollups.public_inputs.constants.l1_to_l2_tree_snapshot] @@ -1829,13 +1829,13 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.public_inputs.constants.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" block_number = "0x000000000000000000000000000000000000000000000000000000000000000a" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000042" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde0c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a07a3bc" [inputs.previous_rollups.public_inputs.constants.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [inputs.previous_rollups.public_inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1845,45 +1845,45 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000078c3bcb60" [inputs.previous_rollups.public_inputs.start_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x1cf96971b488ea92b6c5f7b76c40e8d79e1c75b37af5acef8dd61c933e0a45e9" next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.previous_rollups.public_inputs.start_tree_snapshots.nullifier_tree] -root = "0x26fd6ffebb711b7b1d916a895bb8bf3c6b5fc915b1e5a22db0fb801072027d80" +root = "0x0ea125fa2d4e08ecbd6517299252b8218a3c71077433b64f9021522081d73f74" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000340" [inputs.previous_rollups.public_inputs.start_tree_snapshots.public_data_tree] -root = "0x2cef7e5e25fb54c99feb0d6fbc5bb44eb98d00d3022f4baf5e3f6025a7320293" +root = "0x2e28229bfe2b8aac32a96ff8a2a3992aeb10c08499973bb39262e38b5a898126" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollups.public_inputs.end_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x1ae1ba1521c28ae96f289a24da13c68b7bf85b3c0fd0e311fff69186ebcef456" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" [inputs.previous_rollups.public_inputs.end_tree_snapshots.nullifier_tree] -root = "0x0e8d32952999631ff527d706426177bdb3208db1d3b8dd4e74ba883610dc37e5" +root = "0x154a522176ba08866fe7f8131dbd338eb23d7b1ca1781cee200cf0bf3f22e0e3" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" [inputs.previous_rollups.public_inputs.end_tree_snapshots.public_data_tree] -root = "0x0d21d4944ca04ad548057c7362ba76b7370e29929fe9cdd32ec1d04c07e21179" +root = "0x2e7ff17c04a98616aeb38ae9eedd21e031fe42411e931dbb00d1e4361240e506" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollups.public_inputs.start_sponge_blob] - num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000047" + num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000012" [inputs.previous_rollups.public_inputs.start_sponge_blob.sponge] cache = [ - "0x2a44787960631c708a6c54319236e2733f5bf18956a780d4f076e06d46e8c52f", - "0x21c2f9acd4cfd49d3570c4429b45c6dcf5658ac7592091682403c9468c8fbfc5", - "0x089c49b97c1e121fc3d9c0d7f3793cdd886de1fb26e735edbdae3790abaedd66" + "0x000000000000000000000000000000000000000000000000000000000000076c", + "0x0088ce9e6f50acd19bac39e3d5410556dae500da161f6ef2653eac5064718153", + "0x00000000000000000000000000000000000000000000021e010dc29bfcc487c0" ] state = [ - "0x0b196378726e6d2cbd4d793963bdda8cc494c766409365f6a0f3b9f8e2e2c277", - "0x29906675cd547621ba2ccf000d609acec4b304b7b4d929f9e586687d92c311a9", - "0x17ecd8ac459a19c262c431de5d01f6726a3b03485399398d69165cc195454006", - "0x254280886c6baee6bfedb4dae9055f680574d4b1bb6a4245fb1f24c70eedaa76" + "0x23eb0ddb4091731192efd004672191b0b23fb7cd0667557b544c4bac54332c21", + "0x19ef0a7230ea7278c1ce4bf41ffd4109a5ae7c3da4003e721957beeb68be3a5e", + "0x2476de09bd58a6efeecfc9c805d67751d3d3b9460bd959f3602b43822997557c", + "0x0bbbb4cab691c653b3569645fa832fd1b9f384b1434fb831c723e3ac2d776bca" ] - cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" + cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" squeeze_mode = false [inputs.previous_rollups.public_inputs.end_sponge_blob] @@ -1891,124 +1891,124 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.public_inputs.end_sponge_blob.sponge] cache = [ - "0x00000000000000000000000000000000000000000000021e00d293040c1d1b40", - "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec", - "0x12d1296a2643b832fbd1d6d3ed3678833fce770084efd75adfd517de8214ccf3" + "0x2d856d952f1a783cb4987ee5071915ab49bd501bfa20433173d43cbd306f809e", + "0x12d29eabd52a2f9869e3777b9db81b491d74cf70bad917c06134d764d21f21c3", + "0x19ea1efeeef7949ea076ac9b4d9f34cfcb9f4730013503fde5ae095bdf58aa11" ] state = [ - "0x046ca01947e306f5aad217a20c357e8720e466bf48af683e5dc034abe73721f0", - "0x14686ac6e82fd9bd26ab09d349ce45506d9c0d1dee28a4967817015ea73b887b", - "0x0b7d5bc95988dfda6650240e060e449c0ec3d312f8da80bd59a897a3ce57c1ee", - "0x1ea8a35effe09689490c7037df5f38ebfc4f6641047f2e4bcab5542979b4667c" + "0x27be3622bf19fa5e505e170e4ec1ed3de7207d8d2b8e175c5bf13a23d0b582de", + "0x1d1b1ea4d6e8ce5f97cdc6df9dcf0b07e1aee2847cebd8e9a9016a7a1dc6425a", + "0x015e9605f462249cc148a1865f6c5280867f0766ebda2b3cd706e802b9291296", + "0x195e0670df5d2821814656c53d9738b8859c8bbdd0372f4d41cef5c12148a1ac" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000001" squeeze_mode = false [inputs.previous_rollups.vk_data] - leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" + leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000007" sibling_path = [ - "0x09b4bb0061881fc354c5fadf8dc55f36b0c67dc3b2f58a18406363dfa0b079fa", - "0x2136af42d41c58f3fd528f4e88c2de5152c2bb251a3c4d8950d4401a0c8ae6ff", - "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", - "0x099ef6a9a40aaf85e056bda90684adf858addbb90af303d82f8157b86b705b92", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x1ef80142d10a45fb61f3a4192d352f1d813530777b10ca6db9613ccf5d025640", + "0x0a2d5d1c88992fa153310bc96af4c750c81353526f8c7dfe2b069ed57136e696", + "0x2cb287e44a86260e823a69c4147a1e336d20cfc156f7c490265be56d9b41fc2b", + "0x1b91692937095aca39fbbb5fc34c0ed7c582756a3dd1d032ebe0405639b2c6ef", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [inputs.previous_rollups.vk_data.vk] key = [ - "0x0000000000000000000000000000000000000000000000000000000000000017", + "0x0000000000000000000000000000000000000000000000000000000000000016", "0x0000000000000000000000000000000000000000000000000000000000000042", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000008a8843c678d444ced3a35d87626e56ed9f", - "0x0000000000000000000000000000000000060403e4feb303ebae0081cbad4e96", - "0x000000000000000000000000000000f0fe138760bd40aadc43c77ad160555212", - "0x0000000000000000000000000000000000154e802ee66f7a511a469adb8153e5", - "0x00000000000000000000000000000012b75e2667d243bc4bb7b0cde3bdc5eefc", - "0x000000000000000000000000000000000013e94fa83017e580a2e280e4f8c376", - "0x000000000000000000000000000000fb8b3161040e7a5502bf277aec7b82cb6b", - "0x000000000000000000000000000000000014e7113349a6d4f2b0d3c9bde42075", - "0x0000000000000000000000000000006bc15064df220ad5d2fea722296bf72c99", - "0x00000000000000000000000000000000002039216ff43d16e0a63e542794decf", - "0x000000000000000000000000000000f0d3e00b510ae4272fbba83d787c7e6b6e", - "0x000000000000000000000000000000000022f73b00c62c39fc49fbffa96081da", - "0x0000000000000000000000000000000ff9f67bc7c9b90987dbed3fadf40bacc4", - "0x00000000000000000000000000000000001dc87bb292ea49bdb5bb87509c9781", - "0x00000000000000000000000000000025239c23a65572724acdd6663984afc224", - "0x000000000000000000000000000000000005e345da6870bd306f04558f601b45", - "0x000000000000000000000000000000cb380ac3dc3f8788bab24fcb5d9eedc949", - "0x000000000000000000000000000000000017714c1fab296b76d2f78ed675c1ce", - "0x00000000000000000000000000000095bca1a9f9a186f7ec34e43c479e5d1b2f", - "0x000000000000000000000000000000000018d292be64529b7e9ec24c76e561d9", - "0x0000000000000000000000000000006f1bd711730ae2aaf83227b9d9f46daa43", - "0x00000000000000000000000000000000002df0b894f5971084c0a65839178a66", - "0x000000000000000000000000000000909f2efe0bffa95e984d456089f568f59b", - "0x00000000000000000000000000000000002908f2c7ddf9573df347d6c9f22fde", + "0x0000000000000000000000000000003f557273f3723ac427671e7e0241709f42", + "0x00000000000000000000000000000000001a4c7c79f45cd9c3b2730b1014fb2c", + "0x000000000000000000000000000000a0758982a879da262fb5d4a283eb0b2fbd", + "0x00000000000000000000000000000000001cd980c7d658817fc07f56422786c8", + "0x0000000000000000000000000000001116c0ef394a159d7d04035e2d2b1df210", + "0x00000000000000000000000000000000001fc719cba8f7ef0eec1facb64807b8", + "0x00000000000000000000000000000030ae5b7a71f6a3350eb91e843430327027", + "0x000000000000000000000000000000000010623eeba8739fad768943b6a32cd7", + "0x00000000000000000000000000000075f511068970271dc3805b753a601ff6bf", + "0x0000000000000000000000000000000000087d083bd0a030d3e8d20a44cac510", + "0x0000000000000000000000000000008a1d365a7e9c0cdce156eefc77f82c324b", + "0x00000000000000000000000000000000000caa3c2fe3eec6d3abba790f3fdb0f", + "0x000000000000000000000000000000226b13400df89aa52dc04c9ba11ec76d0b", + "0x00000000000000000000000000000000000f98a2766e0e9bfae8946b711ef013", + "0x0000000000000000000000000000003795e58e429596f55168217c1397f38a8a", + "0x00000000000000000000000000000000002e1f8ca27b32c2497816dd49c983e2", + "0x00000000000000000000000000000024169a17177b075798734095f9cc8daf09", + "0x0000000000000000000000000000000000221931eec1149ebc68293392b42121", + "0x000000000000000000000000000000ba47588390fa3d72b699d8b0917b7e3406", + "0x00000000000000000000000000000000000e598a4916409aaf3745b4c6185f93", + "0x000000000000000000000000000000b749616c0462fced8081f284a03518d1a8", + "0x0000000000000000000000000000000000241ceb3abe3289083ce8c8c8bc28d0", + "0x0000000000000000000000000000001d9bd025c3e2e26266d41ff2e384400b47", + "0x00000000000000000000000000000000001e259846a94808bed66227cf262eff", "0x0000000000000000000000000000006f206a04895661d3bd004222a1f8a7fc73", "0x00000000000000000000000000000000001b12a59a820d3aa543a594a1b9d92f", "0x0000000000000000000000000000002103559842aca1e08af33bb1f714ebc02a", "0x00000000000000000000000000000000001b8936a0be628b58af9859c2a851d1", - "0x000000000000000000000000000000d2c67f3c526e05aa6d25558ae65cf0e3ac", - "0x000000000000000000000000000000000006cc97b785475ed3429d939fa00e96", - "0x000000000000000000000000000000c5240a725c016a35037b37f73c37b68de9", - "0x000000000000000000000000000000000015e6206f121de2aafe259c32889a4b", - "0x0000000000000000000000000000004cba3ce39736c272ff963bdbdfcb67c2ef", - "0x0000000000000000000000000000000000243b3786310485c3234295957c5222", - "0x0000000000000000000000000000002c3672eaf01e849995fc3f6dc99dcd1d60", - "0x00000000000000000000000000000000001449e8673b109f980a1542f1ddd670", - "0x000000000000000000000000000000f077af86375782052dfc713a0c67f9a08b", - "0x0000000000000000000000000000000000124108d868884e76f5ceeb60b2bdae", - "0x00000000000000000000000000000029c3fd985c5dd5867bd8fed36ad940e02d", - "0x0000000000000000000000000000000000146fedc34ca9246ab0df070f31ee14", - "0x000000000000000000000000000000706a32f5a8f5fa44205bb08662e0ef1396", - "0x000000000000000000000000000000000016ded7f7f0b72d3ecf256f5c2ee613", - "0x0000000000000000000000000000002eaf856304cdbbb4d0b926d9c9211028c0", - "0x000000000000000000000000000000000004696250db37878179b548105ff54e", - "0x000000000000000000000000000000047767298e4177562ddcbcae03c7ec6ccc", - "0x00000000000000000000000000000000001f29f52f5f45f28e462390b0f914f9", - "0x00000000000000000000000000000004e950f9459bf160429275bc6a733319ea", - "0x0000000000000000000000000000000000175f23657f8f899b10b84c1ffe432c", - "0x0000000000000000000000000000006e522620788963bd42d9ab48810f89afe4", - "0x00000000000000000000000000000000002243c76dbde36a37e42b92bae3eb16", - "0x0000000000000000000000000000005641fbcbddd5abb62d653fd7f1ed10ed7e", - "0x000000000000000000000000000000000007d25e6a46da918fdb902e1a78efb4", - "0x00000000000000000000000000000065f7509bb551cb061c5fd1e92bc85a4974", - "0x00000000000000000000000000000000002efbc0dd9b88baa9675d95ae595e68", - "0x00000000000000000000000000000046bdd1d7603fdb2ee53f8966b3069082a5", - "0x0000000000000000000000000000000000161d3346daa3f83e4416d59e8135b6", - "0x000000000000000000000000000000ec124a53466d06b5e0df3e77f9f6a6ae15", - "0x0000000000000000000000000000000000128b36a77e814ffa503da6fd061fc3", - "0x0000000000000000000000000000002cfa5f8d00fe2bbdd85db6b0179a4c7346", - "0x00000000000000000000000000000000002b7ce5f45710c4b113f7ca6b3291b0", - "0x00000000000000000000000000000054409cb824bb2028eb6a501f9585b13eda", - "0x000000000000000000000000000000000026412333aa334f56e0761374f0c38b", - "0x0000000000000000000000000000002a23ae58cbd13760028a699488d5a4300f", - "0x0000000000000000000000000000000000225067a42bdcd7d9eec23d250acc92", - "0x0000000000000000000000000000006e28e63b7d6bc65c15c009f5dd9304f8fd", - "0x00000000000000000000000000000000002648ab0c9cfefbb147853e364bef8d", - "0x000000000000000000000000000000f00a9e6c1594965b7c14b2310b489b52f9", - "0x00000000000000000000000000000000000a03f4283d5d64b7245827349741ee", - "0x00000000000000000000000000000073f3c5531dc194b7332ef4e765192e3962", - "0x0000000000000000000000000000000000088b01c6cab84d827c1d8eae1ebbbd", - "0x000000000000000000000000000000e197f3a024045bec491c28fc4b7594347b", - "0x000000000000000000000000000000000025bf29aee6c0dd8976574600dfacea", - "0x00000000000000000000000000000023cebfa19e1e206b1d71359821037c31b7", - "0x00000000000000000000000000000000000c2354b63a0bcd72350e606c3fa0e7", - "0x000000000000000000000000000000fcf564b220543fd0aea7b28c05df85fe3a", - "0x00000000000000000000000000000000000c2f035d78985f2c0e4ab138790e69", - "0x0000000000000000000000000000005129d16313e897118223bd963067e22700", - "0x000000000000000000000000000000000004c87b337be4b82e809af637daef82", - "0x000000000000000000000000000000279941b3633c9a8e9fc6e68ef4be5633f4", - "0x00000000000000000000000000000000002a9334f2cfa791a9bbc88cc234a5d2", - "0x000000000000000000000000000000ab1a8db808cb2b1b90ba26085c23154102", - "0x00000000000000000000000000000000002c04e8fdbd1f2154a1b42961e3b6b5", - "0x0000000000000000000000000000005729f9b6dcfc45fa934c44ad8800e2b7c6", - "0x00000000000000000000000000000000002c584d4df5aaa602e46e5033408d64", - "0x0000000000000000000000000000004daf206a533411e7b39ab99acaf3287ca2", - "0x000000000000000000000000000000000020d85db8daa0dd9c83ceda296cbe73", - "0x000000000000000000000000000000ab6d868729c089d55819b59b1df10e26ce", - "0x000000000000000000000000000000000004b5421430befd61f014813d315ade", + "0x0000000000000000000000000000005eab99fc5c34cd0a9cf32bc53d04beea68", + "0x00000000000000000000000000000000002eea4190ba69ef934f8be916a217a9", + "0x0000000000000000000000000000005429ed84e5768b172fc483197bcfb786df", + "0x00000000000000000000000000000000000387e378a43d625a53900bde3ff4ad", + "0x0000000000000000000000000000006073a1bf82ba61c51ce96d6cb7030a22b4", + "0x00000000000000000000000000000000001ebaecf236ff2932e24e68d8e1be3b", + "0x00000000000000000000000000000006abf6369ec441190fb054e33c764fb032", + "0x00000000000000000000000000000000001bdbd38b557395b30427017524ba12", + "0x0000000000000000000000000000001d7bb00201b0efb3035f5048c3df84c772", + "0x000000000000000000000000000000000024548bcd56a9ef16c14feae610f806", + "0x000000000000000000000000000000e5655012ed18fcd1d8e339226dd0ba4078", + "0x0000000000000000000000000000000000227c2110109edbbc3955d0465bbc22", + "0x0000000000000000000000000000007bf8464ca9aa703f1e8a25d6e20221d3e9", + "0x000000000000000000000000000000000024963361ceb6d7756c3c2c42a845fe", + "0x00000000000000000000000000000048c96ec4485788f3ccdc37c4ae2a71f1a4", + "0x0000000000000000000000000000000000262b455b6cd2796327e461304e18f7", + "0x000000000000000000000000000000f750d5b7b2337529d40ced8d774f0283e6", + "0x0000000000000000000000000000000000120ef244fda086bafa6f4eccaf97fd", + "0x000000000000000000000000000000fc90ae3789baa78d1d13220b4f34c98f4e", + "0x00000000000000000000000000000000000d60e7b02c8af3cfd72fe199d6a8f6", + "0x0000000000000000000000000000000b9c9b15d9b55b4a49d449b2cd9dbf2dc2", + "0x0000000000000000000000000000000000129d1259178a85eee0f4d95edf2756", + "0x000000000000000000000000000000e8f0abccd4a45c69a68832f6ef8851f04a", + "0x00000000000000000000000000000000000b977396722d8361fecf325e0e32bc", + "0x000000000000000000000000000000645575d035dbf0dc7a5012097524a972d3", + "0x00000000000000000000000000000000001b4b534173d70982fcd6c9544d725d", + "0x0000000000000000000000000000000410cceb82ec7354128465ac80a1ffa862", + "0x00000000000000000000000000000000002acddfed4a484b2d862b4ca275b4d7", + "0x00000000000000000000000000000022d1618e485430a15465e219a117d3edfe", + "0x000000000000000000000000000000000007b06e6eb92e0b7a34acf20a1369f8", + "0x000000000000000000000000000000e856ca1b174973f3af5310a7e38cb305e6", + "0x000000000000000000000000000000000010be0fec1c7598a1c63ec216db4681", + "0x000000000000000000000000000000f0639c87f66ace434ddb4fe65ab243bfde", + "0x00000000000000000000000000000000000c3c99921dee4f0506f5127627f327", + "0x000000000000000000000000000000aa1c283b5ed1b8b43addafd2bb63ecf30d", + "0x00000000000000000000000000000000002b9dc475b4a10275550d8b8d8fbe3b", + "0x00000000000000000000000000000032af5ee654ac1bb41937bb3add8e38ba3e", + "0x00000000000000000000000000000000001491fed9838cf1fe30a73db7421ab1", + "0x0000000000000000000000000000007c9bcd4ba41aac07ea382a61e7b79bc6dd", + "0x0000000000000000000000000000000000064fbc9678a0191e9974927405e063", + "0x000000000000000000000000000000cf990fc7f643af435bd552d6c21f4f12d9", + "0x0000000000000000000000000000000000170bb10fc59004dae5b55d43a9f478", + "0x00000000000000000000000000000019a1d0ed8d637f1c2afba5fdd385d5fcd2", + "0x00000000000000000000000000000000001aeb885acef6da1ab84b4be20c558c", + "0x000000000000000000000000000000a11da3a0f3c7903c1b8119a3727c1d92a6", + "0x0000000000000000000000000000000000054448cc8cc704196f0ee4b52a9d63", + "0x0000000000000000000000000000000e44ab863c917d81428b86f84af8cd1a25", + "0x000000000000000000000000000000000024d7a2087fcd46a69fd94e824dfff2", + "0x0000000000000000000000000000009f11cf3ef8d440c8e83a8eacfe48155eaf", + "0x0000000000000000000000000000000000255afe02ffbc3178db86e228039ff5", + "0x0000000000000000000000000000004a9ad3947e4b5066ad0b4a731d994fa3a4", + "0x0000000000000000000000000000000000092b00146ab98c77c752c32098468c", + "0x000000000000000000000000000000165a72693efa48c7ecebf3f1fea42db4a6", + "0x00000000000000000000000000000000002e108deabceced2338790d19ba16b2", + "0x0000000000000000000000000000001722f48e7ed1f6f73faaf4007e165811f2", + "0x00000000000000000000000000000000002d43d6af66193fced48fd6f89e74f8", + "0x000000000000000000000000000000ac5108d90de1d0e6ce3d6186c769e8b2aa", + "0x00000000000000000000000000000000000de8c8ad0bfcca457220d03c5eb698", + "0x000000000000000000000000000000ab4c7dff5c06e3ad269e8e48dcb13f0a20", + "0x0000000000000000000000000000000000139a57f59fdf3ec29554b9179adc03", "0x0000000000000000000000000000005eefcb3c6f69064ed55425945fcc74c2bc", "0x00000000000000000000000000000000001613278bd29c20c182e6f3b5e367ce", "0x0000000000000000000000000000006c39d4dd8c65752b9bc2628fcc3dbf415c", @@ -2029,12 +2029,12 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x000000000000000000000000000000bd9c096acdaa162e6c7ee9b718f7fbf759", - "0x00000000000000000000000000000000002c70947eefbeb3fcbc1953b2ccb88f", - "0x00000000000000000000000000000045e09e50b539ce6228369e4b4cb8530ce0", - "0x0000000000000000000000000000000000062cf2c7d023a38df32e6c8c04a8c1" + "0x00000000000000000000000000000027dd7a7146d1c4ff9332e930ec54b6ea2e", + "0x0000000000000000000000000000000000251eb2367a907e55626a07bbea7e2b", + "0x000000000000000000000000000000ed074fc7f9cd09872a83d8c368c93a0725", + "0x00000000000000000000000000000000002621701db780a70b161ef185f06af9" ] - hash = "0x208d8b1ad2d688325416c8a23881e8b14753352851d7740b339ea2ebd455cdcc" + hash = "0x0a7fb889325f39bec13ee8f853c529ad8458c39c703cf4277c5b066d8d2eee15" [inputs.previous_l1_to_l2] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-single-tx/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-single-tx/Prover.toml index 9e681460ac92..4041bc024fee 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-single-tx/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-single-tx/Prover.toml @@ -1,7 +1,7 @@ [inputs] new_archive_sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x300378810ae25edf6021ba94b4ba9ad6eafaf9caec8c6504ba8ef81f3240f780", + "0x21decddb0e57243b3ec2d7320d3979efb6efebd4352375c223cf4f8efd1dbef3", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", "0x30105bad22ddcc508b739b7c9ad87a561c569ff5cb0098a853c1c4ac21b7a037", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", @@ -523,12 +523,12 @@ new_archive_sibling_path = [ accumulated_mana_used = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup.public_inputs.constants] - vk_tree_root = "0x0141caf6779674bc31225636c4cc4259a731835c52fc462f2dcbfabf7de01a1d" - protocol_contracts_hash = "0x01af64239167dcc8333e25456aab71348f66d9f6de731a8b62181d16cf0818c1" + vk_tree_root = "0x0b701ee3d1002ca8a5a73a81bcb2e0d84e6c30222be65f508574f182569b718f" + protocol_contracts_hash = "0x0fcccdf7958e813bb1d24f764ae13ff08a999008434c2e4dec55f4401564b05e" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup.public_inputs.constants.last_archive] - root = "0x0edef98680cbea2855c4f0f152a0ecd69358e68b10da7b7e301f35ce709c13fa" + root = "0x27b365d73aa1b8ac1eb39c75262e2b87a238d041cc98fcb795f4c597c620ce64" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000002" [inputs.previous_rollup.public_inputs.constants.l1_to_l2_tree_snapshot] @@ -586,10 +586,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x2077efe63b8c3de3bfdbc1e1be837185a8f1d817c8321418fcfe110cd518a922" ] state = [ - "0x08cdf544ec44d694936ed6a5aa580afb2a3b1a4b087ba80870d4d01c79cb5772", - "0x192972b72a1776fa9d30c1202807fca4f9272b156c9e1eafa5f93e94a13c439b", - "0x23ace986d5ee172559ce2153d8a166075599a4403288cbe1a150bda49415fae6", - "0x0f3ccb179877769f2d268206c1b45ab9af36d5e7e005de27ede90c1a29450039" + "0x13ec9d9b37f0599c5765a81513125e07305454198fecae73a69e7d41dfb27215", + "0x24fe963f8f4139d84f904228cfe1e10256e9106331e614b72ed86be8903e4259", + "0x114cba9fee3fa49ffd5f440aa162c6ce6e8410138a592e587337646bb8b04ca7", + "0x10325219e420881603ba4ea16613cf66fa1c43ff98bceb97acaaab599e3326b5" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" squeeze_mode = false @@ -604,10 +604,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000000000000000000000000000b7e5c34c" ] state = [ - "0x1b111ef987a8412d74666407b504b312064231fbf5c26a46f410fa863d95c877", - "0x1be482b447910939727d105aa8f4722d4300002a9481483a5a47b5be0d458a69", - "0x0918650d25d3222c18bf60663bf62753764ad8b75fc3ce5e74c3fa9c9470b1b8", - "0x1eba072dced35bc1bb87f4b50410109a790c58dd87ad9eebd46f50a25112d9b4" + "0x02a5b53c7efb068bc743feca8874f269cfe88163e97fef0ae200aa662ada3895", + "0x17a9dc2d3bc5a2ba2f0435e36c8441f5a18e087f04a9812a1261c97a3988bed6", + "0x1848e27196daf1ad40d8564e8b84be69d789d47c42ba2035af49d5c522d4cd43", + "0x29c59fa7664efcf9d55dd4bfdecbc4a442e78f6a405b6b5846d6c0ba49f78ca7" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false @@ -615,131 +615,131 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollup.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" sibling_path = [ - "0x0f8f726e833df2994b5e4f7236bb20b770b92eeddaa5e11c229e396b784aac56", - "0x24d3d34d155de7ba76e941299ef9b12edeb7de094e758c30ab32f54a32954ae5", - "0x234d319aa3526e9e00d76d9b5b9b18b435756035ad00d8d716e1be50ac82ead3", - "0x2648004ca39ab2f7f01e8733c2de2d035675568a1c98d1410ce90ac2512e72e2", - "0x15313312ac8ca4825afd3891479fbb14626ca65499d939e23b1f653cd7d018ea", - "0x19de2a32662702dd872e529ad89836e16b013012f910daf2bc7c2a67356dd107", - "0x1f07bca7a14f9a969539c0afd388affa18926689f431fc541841a2a7604d388c" + "0x09b4bb0061881fc354c5fadf8dc55f36b0c67dc3b2f58a18406363dfa0b079fa", + "0x2136af42d41c58f3fd528f4e88c2de5152c2bb251a3c4d8950d4401a0c8ae6ff", + "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", + "0x146274c75e0cce377b1764ae8c0ba9167cfb0632d9453ac4c5b521f5d45cee4c", + "0x10fa882cccd67cfee268da2a5d99ed42a34302ecebc26f4b3254e41507b3ee42", + "0x133dc174ef877c42d59ac5fe87733ce13f9355587db788e3b490832c7afbcfd2", + "0x13482b383bc59a6da6ab4e998b0986c23166d0aba121fc0789e9f14605af653b" ] [inputs.previous_rollup.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000017", "0x0000000000000000000000000000000000000000000000000000000000000042", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000008580b9a8c85e4a3c1e7b1089bd79f3bc28", - "0x000000000000000000000000000000000022dc01e3ed0e1b10bdcff9d093431a", - "0x00000000000000000000000000000054f9950035e8ffae852707e9d1a9032e59", - "0x0000000000000000000000000000000000276c56cb94e0545b3bfd85919a8ce8", - "0x0000000000000000000000000000009352ff9d82645804416a2b338260fa235d", - "0x000000000000000000000000000000000010a253776d2bdcb7129acfa2e91ac5", - "0x00000000000000000000000000000095babbbc4a6d5a9b68707c3a8e1e9508e2", - "0x000000000000000000000000000000000030157ca77e90f7ee9155c1009b06a1", - "0x000000000000000000000000000000068047e82e283284235befaa9cc7a1838d", - "0x00000000000000000000000000000000000bcd70cc5042e81e440b1ea5ef3c3f", - "0x0000000000000000000000000000007702a95c1bf5e2923ca69f26cc2d7efe0f", - "0x00000000000000000000000000000000000adeb0e8b1074c68de2b2172f21c5e", - "0x000000000000000000000000000000520354133ccbbccfc69be0c01b92abdf0f", - "0x00000000000000000000000000000000002dea248e3c2fe054c698a861bf4c27", - "0x000000000000000000000000000000f93b6112b7de5c27298a81c68d502b7beb", - "0x00000000000000000000000000000000002be3a33fc9502b0cc8b9427fcfe50f", - "0x000000000000000000000000000000168f01ff83f4a014a90db19e5d882a0a0a", - "0x000000000000000000000000000000000008876edc3cc7e3825dc194e21cb011", - "0x0000000000000000000000000000006d1df389f06e514e1829af3744dc64294a", - "0x000000000000000000000000000000000022e86ef68622bd107e5080cc062a4f", - "0x000000000000000000000000000000d137fc89e86049cb1b141b67b3361b6298", - "0x00000000000000000000000000000000001d7ad7d0634dc08d7d9816b5b6814c", - "0x000000000000000000000000000000defd2454e2c3a75ec8e0730bd3640b9408", - "0x00000000000000000000000000000000000b189f6ee9395b1ca5771c361501d7", - "0x00000000000000000000000000000001fccf755f5b30a7d544b2f78ce075cb5d", - "0x000000000000000000000000000000000026f5423942948047e155a519b195e8", - "0x000000000000000000000000000000a9efc76daffb8dfe2a39570b2d5d046767", - "0x000000000000000000000000000000000026e7dd89fe96952a4603c2b5555538", - "0x00000000000000000000000000000008262b430328dcaab242dd8acc504e8ac9", - "0x000000000000000000000000000000000015f3ab1410f0e5dd3e00f03b9f563b", - "0x0000000000000000000000000000008fca5ff8ed9a5d41fe9b451f02502dd1c9", - "0x0000000000000000000000000000000000266aa6e4947434ef18adeba3700713", - "0x000000000000000000000000000000d93cecd04341f5da304f3c92f0670afc43", - "0x000000000000000000000000000000000020165b3fd2bfb72a4de3dc68f66eed", - "0x000000000000000000000000000000094a6d376eb3cc1ba94b4da00dea583eac", - "0x00000000000000000000000000000000001caf7742d251b04f3517f0f1e5a625", - "0x0000000000000000000000000000003be5647cd472ad0b06a48f632997e3eea2", - "0x000000000000000000000000000000000015fb4d9ecb8125b3243cee37698c48", - "0x0000000000000000000000000000000854a3ab5bcbca1e86d4949b1b7c5f4b0e", - "0x000000000000000000000000000000000015450314fbf315448dc3379dc82214", - "0x0000000000000000000000000000009c2c55d2ea5bdf5fc5e28f1a78b1d29625", - "0x000000000000000000000000000000000020b36a8406ec64352600587cf04194", - "0x000000000000000000000000000000f14d08d9dab6a54412d741166146188ae6", - "0x00000000000000000000000000000000001b5a34ccd7eaf5cd09ab920011552f", - "0x00000000000000000000000000000074b7827a59faf701f7f41df26e5476c40c", - "0x00000000000000000000000000000000002decbab1c87b933da1625951860793", - "0x000000000000000000000000000000751aab48a0e01094128242ea0aaab63ff7", - "0x00000000000000000000000000000000001a2a334289adf8d23d4d52caf4cfe6", - "0x000000000000000000000000000000f6a41261290460b25e1e7d7bf69b564ae6", - "0x00000000000000000000000000000000000296925feaed4585bb03319f126d96", - "0x00000000000000000000000000000055b70d653ebd7df04f720951e76a27369b", - "0x000000000000000000000000000000000019744937a687edc9f46fb8323a46d9", - "0x00000000000000000000000000000047978fda5b64d8fc4571f09da3e8ccc7de", - "0x0000000000000000000000000000000000139de6a387109f47ecbacc74e03742", - "0x0000000000000000000000000000007f5afdfcb7bcd85aa293676e18e899a03e", - "0x000000000000000000000000000000000006a2971c1c947f4cadb07ebc9bc980", - "0x0000000000000000000000000000006cdb69a57b7f7a25b99e18fc0f83c1bc70", - "0x000000000000000000000000000000000028f2a76a01dc3cc927cdba29383e9b", - "0x0000000000000000000000000000001bbc4d6033de44907975ce473bc0f4f148", - "0x00000000000000000000000000000000002642f26fc1850c4b9b7fc4cd860ab9", - "0x000000000000000000000000000000ac996074e35eb268f6ebbe99e9c7d26c47", - "0x00000000000000000000000000000000002262620617978a01f75646f1909969", - "0x000000000000000000000000000000e63aa32bcc098428f407b5e07d9cb26118", - "0x000000000000000000000000000000000022b294b6a7dc4c17319f9a91a1b443", - "0x000000000000000000000000000000649d9ce9147431632893f55d3c6bbc158e", - "0x000000000000000000000000000000000020698c9b0787f14aa66a57bc232ec1", - "0x000000000000000000000000000000b4fde29f9bde909609d70bf9862dd65cf1", - "0x000000000000000000000000000000000005fcac9b75cac50d87ca827678c070", - "0x00000000000000000000000000000071e27b0a0dd0e2180985072f4a949f0c1d", - "0x000000000000000000000000000000000025d2d1388eddcf016213f1cadc763f", - "0x000000000000000000000000000000b216bad715cdfa7c382d30d7a368cc1346", - "0x0000000000000000000000000000000000302dbbf78b13a6d71d1978b5607145", - "0x00000000000000000000000000000002ebdec49969d2ff9220240bbcb8730617", - "0x000000000000000000000000000000000027f41cad8540e47008c1da90340ef6", - "0x000000000000000000000000000000e8259148321315cc34166a206fe910c6cb", - "0x000000000000000000000000000000000013444efc30c7688d961f36de252af6", - "0x0000000000000000000000000000005b7c7ad432291e9dff1dfad51159e50dbf", - "0x0000000000000000000000000000000000205ec973a0d1c898c1def7852353b3", - "0x0000000000000000000000000000007940a7e88fe5ce47af688975c92be1b62a", - "0x000000000000000000000000000000000015bdab44fe41eec6ee62ed58f55ff5", - "0x0000000000000000000000000000003693b90aedcd664eede665df6f376cf526", - "0x0000000000000000000000000000000000207c38fd6851d1568fe18a83585f31", - "0x000000000000000000000000000000f1a8a60975b9b092aab1421166be08c2f5", - "0x000000000000000000000000000000000015450d2e8ea17db209302582b886f1", - "0x000000000000000000000000000000526e857040a344bd434bfdbf94d3a49196", - "0x00000000000000000000000000000000000d0112b922a852c4754ab3929d6d02", - "0x000000000000000000000000000000d88041fa28c8118a58ceacbcc8780844b5", - "0x00000000000000000000000000000000002584170ebef150b71c5e6aa93e2fbb", - "0x0000000000000000000000000000006363c23486d6a7a313beac4e2d9611968a", - "0x0000000000000000000000000000000000085acee4523161ab1e268a4f0c1b0f", - "0x000000000000000000000000000000b250d5a528a555d96d498fc9af4f8cc5c2", - "0x000000000000000000000000000000000017080f8d1d21b541de1c64d8b794df", - "0x000000000000000000000000000000621557759a0775ea5575adc9c6fbd96d56", - "0x00000000000000000000000000000000001cd60c23a37c42d7e46e1e19e966ae", - "0x0000000000000000000000000000000d52081b2311a7e9bf52407cf3d2c336b3", - "0x0000000000000000000000000000000000003b2312f2f2f419434a1440d40c69", - "0x000000000000000000000000000000d26082083660d6ac8bffb639994e4500e7", - "0x000000000000000000000000000000000019d6ef8ce569e7fa55b8aab7f5eea6", - "0x00000000000000000000000000000078d8a04f7b6c536d3a8a35c790b4dc7ddc", - "0x00000000000000000000000000000000001111470a41156a530334d2c08511a5", - "0x0000000000000000000000000000008ab4119a5478448b7ec3573de2cdfd8e56", - "0x0000000000000000000000000000000000263c7bd4cde5591308156c458d2989", - "0x0000000000000000000000000000004a676142c9eca140ac96ab9ca49633e141", - "0x00000000000000000000000000000000001de62520faa095ad7513f753e0a73e", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000a2c4fbcbebac01e208127093cbf44780d4", - "0x00000000000000000000000000000000001ca34545a074b1cb689aa0b343402d", - "0x000000000000000000000000000000a58c28598055d8818a6dbadd0018904386", - "0x0000000000000000000000000000000000152154cbc213630f5c7ec1ee37751b" + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x000000000000000000000000000000f944590031f1d3b251c3dc90ea2821c71d", + "0x00000000000000000000000000000000000d31fd1a4942efade625e012c77df1", + "0x0000000000000000000000000000001e9acd89b92c18e3d89b881b26312bb12b", + "0x000000000000000000000000000000000000736f00a23cbea07da614d8b767e4", + "0x00000000000000000000000000000012167fb1f0d3b9afea7d534404e3b36b53", + "0x0000000000000000000000000000000000021e6d056d0d40c720927abd39c872", + "0x0000000000000000000000000000004ea3f0c21ee1056b3e2ad9c082242e5a2e", + "0x00000000000000000000000000000000000c574204fd079871ae599e192d72c8", + "0x0000000000000000000000000000002654c5b2b175f95fdb2ab405dcc4220545", + "0x00000000000000000000000000000000001fd13a35df71290c2354c6c5f610de", + "0x000000000000000000000000000000d5e3b3464d67c82f035b33016912264b04", + "0x000000000000000000000000000000000009fcdab45c12d2f313f95b94a1dcb8", + "0x000000000000000000000000000000768c5a9d8ca0081f67ff3171a7ffe3ba49", + "0x00000000000000000000000000000000001cd676b8d32bb0bb898d83a9f49a2b", + "0x00000000000000000000000000000028650bc3473de217fbfec1e9fb10e4e999", + "0x0000000000000000000000000000000000260c000ea0ebc3db3ba672328007a5", + "0x000000000000000000000000000000f1948fbf68599bf0628f118156de61f57f", + "0x00000000000000000000000000000000000033e796d200425f6a499de18dbfeb", + "0x00000000000000000000000000000016a35cf8fc5f017037adf860723e6346e5", + "0x0000000000000000000000000000000000088cf6d72197800bb1300677f734a7", + "0x00000000000000000000000000000047169c153b6cc24bbac1e4126410779ccb", + "0x000000000000000000000000000000000022b70bfb92e8c7944ae65a49b7effa", + "0x000000000000000000000000000000425c661c37104ad33c2054f3cfde9954d0", + "0x000000000000000000000000000000000000c36b8ecc5963bef022dea4dfadcc", + "0x0000000000000000000000000000006f206a04895661d3bd004222a1f8a7fc73", + "0x00000000000000000000000000000000001b12a59a820d3aa543a594a1b9d92f", + "0x0000000000000000000000000000002103559842aca1e08af33bb1f714ebc02a", + "0x00000000000000000000000000000000001b8936a0be628b58af9859c2a851d1", + "0x000000000000000000000000000000862e0c485b99696417d296ecc2b2bac316", + "0x00000000000000000000000000000000000ae46fcce211297d2d7fcab27fc041", + "0x000000000000000000000000000000551700c158e12cb40d8ea4ef2563b6fb43", + "0x00000000000000000000000000000000000b515d88939b250a4a4758e4e2ea53", + "0x000000000000000000000000000000f4bae0ad0baeb9d42c7fe2ae3d18c98fad", + "0x00000000000000000000000000000000002a20d66bd435a17fdf1eaf345d5933", + "0x000000000000000000000000000000ed8a8ba528c7088b1ae4730572e1ec32c8", + "0x000000000000000000000000000000000009506de430d6b9f9863e6f10cd35fb", + "0x000000000000000000000000000000682b627744ce0319f4d9191675057282fb", + "0x000000000000000000000000000000000017de059961f8c12752abd299396f86", + "0x000000000000000000000000000000b975958ec262178729e94350c0e7543fb0", + "0x0000000000000000000000000000000000220ce50e394560e53f025e094d17aa", + "0x0000000000000000000000000000001fca3a68a28d438e85e9dc955856752779", + "0x000000000000000000000000000000000028f8f3400bb3b9d19b02ec709e2ee4", + "0x0000000000000000000000000000004e35d073460b0634ebe216d49a3dca9b36", + "0x00000000000000000000000000000000000cb0f5827b08075c405353f10ba632", + "0x0000000000000000000000000000001ece860550ce14fae74eda0123ded56a74", + "0x00000000000000000000000000000000000a34b258bd3daaf8f9edd201c25ed3", + "0x0000000000000000000000000000008cb28ae85d58a75302229585a9ad114c2b", + "0x000000000000000000000000000000000014aac1da344ad32659c3036510fcc1", + "0x000000000000000000000000000000822b45036d5c2befa8a20df910513570c4", + "0x000000000000000000000000000000000011244b388e709fbcb7f54658cfac43", + "0x000000000000000000000000000000389de9951eb8fad7e25e4ad0a9229d2275", + "0x0000000000000000000000000000000000136e6eb0ee251f9b12336cb7bb46ee", + "0x00000000000000000000000000000088f21d9f6c7c54ce4e9a4c103a91b54a58", + "0x0000000000000000000000000000000000187f2beab9a05ca29d2137ee7cbc19", + "0x0000000000000000000000000000009c703a5eb43dcef0686e08fa57ef452f68", + "0x000000000000000000000000000000000012caebb183f1490d3e4f2a2c583ab6", + "0x0000000000000000000000000000009dab4a0aa8d4954a8e1761db3da148a746", + "0x0000000000000000000000000000000000230a08da3b62fd6479b4230760b686", + "0x00000000000000000000000000000081a00a1e38bbd5212603f18ef982a5189d", + "0x000000000000000000000000000000000021ae0f9df38f1e70fa3c26867f4ee8", + "0x0000000000000000000000000000001a722dbd34f841b4823cd055149fce642f", + "0x000000000000000000000000000000000002df2693a9b134670cfe72bf29b363", + "0x00000000000000000000000000000007c906c328630b844b0797e34cedccd1ec", + "0x00000000000000000000000000000000002ab2ae39dd9c0259f7dfb1dda47e81", + "0x000000000000000000000000000000ac6642a4923aa2df07a00a9d3e462b0ed1", + "0x000000000000000000000000000000000015afb7af6c0fc23a24457aa887df9c", + "0x0000000000000000000000000000004d916ec23ef29c0b6134f208e3535671d4", + "0x00000000000000000000000000000000000d37c6c25852903d79475133d414e8", + "0x00000000000000000000000000000029ad212431ba1972de7ee0ba9f12113be3", + "0x000000000000000000000000000000000005c2393db23155844d4f71bead84d0", + "0x000000000000000000000000000000c69074efa82a4910eaf8ab8689d7aafcad", + "0x000000000000000000000000000000000029f3d77437006a0eacf1a149c4b8a0", + "0x00000000000000000000000000000030926853da69d4016eca2f1f0df5e5316f", + "0x000000000000000000000000000000000014841d3291aecd45ea0e05657dbed2", + "0x00000000000000000000000000000052fdb060fe666a3f686088f1f6996a1cf9", + "0x00000000000000000000000000000000002be878eb09939603b391aa9ee0393a", + "0x000000000000000000000000000000d99de3b49476e64c0138037838cfc63803", + "0x0000000000000000000000000000000000260874b43f32c373783efe7ef200a2", + "0x0000000000000000000000000000004951edbb25e9c6b65d446e3418b2b3f16e", + "0x00000000000000000000000000000000002300fac13ab48d40a91114d1ff9627", + "0x00000000000000000000000000000090b8d216da73861ee276dddb17428d8c09", + "0x000000000000000000000000000000000028f906106984e5fa78812869cc1aee", + "0x000000000000000000000000000000ce2aff6eda49d5b8be6ee42104d2aa21e0", + "0x000000000000000000000000000000000002833f671993d2b772b5dec0e12056", + "0x0000000000000000000000000000008be4e7cfb1fdf317a33b7bc3530625e6b8", + "0x000000000000000000000000000000000023404bed8e224a350755410e5c96b2", + "0x000000000000000000000000000000cd9a812fad3fe3a89983e416b70529445b", + "0x00000000000000000000000000000000000b66296ff191a2cf6dbe6ca03dcd0c", + "0x0000000000000000000000000000005eefcb3c6f69064ed55425945fcc74c2bc", + "0x00000000000000000000000000000000001613278bd29c20c182e6f3b5e367ce", + "0x0000000000000000000000000000006c39d4dd8c65752b9bc2628fcc3dbf415c", + "0x00000000000000000000000000000000000d4b721e385647b57de3efbc9952db", + "0x000000000000000000000000000000e26e87fb5ad793c153110c1e55129d9ee7", + "0x00000000000000000000000000000000001986fe851f46fd25818f580f9d55f1", + "0x0000000000000000000000000000007a7eb895f6f2419aafb58de3f81b3f6739", + "0x00000000000000000000000000000000000d1289085013119c588fbcdbb11f5e", + "0x00000000000000000000000000000061358ce9820bc7ced39ca91d017f767cfa", + "0x000000000000000000000000000000000018a26c04d92048605adf6b40fbe696", + "0x000000000000000000000000000000924ee754d49e43f0991a540ece79958ad1", + "0x00000000000000000000000000000000001faa0f64d400addf955b2f4a8181ec", + "0x0000000000000000000000000000000c13651a87f101a4d0bf32619d4326c45b", + "0x000000000000000000000000000000000002809feb719732fbf341dd249e671d", + "0x0000000000000000000000000000003523e8c751d17a4dcd30540a4f9261403b", + "0x00000000000000000000000000000000001466cc1bd7c1743fca0477c4ea4481", + "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", + "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", + "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", + "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", + "0x0000000000000000000000000000003e895e3756deb16393c59a6a9d3669ce0f", + "0x0000000000000000000000000000000000262d7f27b9058ca9bd2e0620f9a3d3", + "0x000000000000000000000000000000b98c4ce00d755cb57daf4bc1b860536fc3", + "0x0000000000000000000000000000000000017137ecc6753555f49859a34eeb62" ] - hash = "0x0c9b0fab06de495eb1835dc184eb51d6584a970a90bb9c9dba17ab97e9b6dee6" + hash = "0x05df4d5edfe80160c2f684f683ed1ef5fb3a539be4cfb97957b2d7f5c3ab9ead" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-root/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-root/Prover.toml index 4536a33189ef..110c6d4f6505 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-root/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-root/Prover.toml @@ -523,8 +523,8 @@ new_archive_sibling_path = [ accumulated_mana_used = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants] - vk_tree_root = "0x0141caf6779674bc31225636c4cc4259a731835c52fc462f2dcbfabf7de01a1d" - protocol_contracts_hash = "0x01af64239167dcc8333e25456aab71348f66d9f6de731a8b62181d16cf0818c1" + vk_tree_root = "0x0b701ee3d1002ca8a5a73a81bcb2e0d84e6c30222be65f508574f182569b718f" + protocol_contracts_hash = "0x0fcccdf7958e813bb1d24f764ae13ff08a999008434c2e4dec55f4401564b05e" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants.last_archive] @@ -604,10 +604,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000000000000000000000000000b7e5c34c" ] state = [ - "0x095ff6c475ee1af84257c77b73b727e6ebf0cc7015e0318ea5ceb14044e637a8", - "0x28810b36811d26c3700f0c7867fc191986df3ef57ea3a195b396ae8e1516b1a7", - "0x0d0d075374c48ade348ced65280060db0bfe6c16752688a5d65a07afc55cf16c", - "0x0b29f6eee3031f85d7f5ce02982c80e8fc06b552319a441c5b0fc3521d9c801c" + "0x019c8b37514a1a54433fb4ee411ccaf6da8c99234b4e5d11cc5f6b95c3989bb5", + "0x026875d420939d38c5495ee684f0a31efd5cab908193ae929d1c426d68bb9409", + "0x1a8c7e8add3b6e5ee547b84164a1d59756426ff82c71128c0627a7c01c830220", + "0x081d1fadf8d9a49f296a172486009b0c5f64d52de31142cfc01bc2b08387210a" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false @@ -615,134 +615,134 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" sibling_path = [ - "0x0c9b0fab06de495eb1835dc184eb51d6584a970a90bb9c9dba17ab97e9b6dee6", - "0x24d3d34d155de7ba76e941299ef9b12edeb7de094e758c30ab32f54a32954ae5", - "0x234d319aa3526e9e00d76d9b5b9b18b435756035ad00d8d716e1be50ac82ead3", - "0x2648004ca39ab2f7f01e8733c2de2d035675568a1c98d1410ce90ac2512e72e2", - "0x15313312ac8ca4825afd3891479fbb14626ca65499d939e23b1f653cd7d018ea", - "0x19de2a32662702dd872e529ad89836e16b013012f910daf2bc7c2a67356dd107", - "0x1f07bca7a14f9a969539c0afd388affa18926689f431fc541841a2a7604d388c" + "0x05df4d5edfe80160c2f684f683ed1ef5fb3a539be4cfb97957b2d7f5c3ab9ead", + "0x2136af42d41c58f3fd528f4e88c2de5152c2bb251a3c4d8950d4401a0c8ae6ff", + "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", + "0x146274c75e0cce377b1764ae8c0ba9167cfb0632d9453ac4c5b521f5d45cee4c", + "0x10fa882cccd67cfee268da2a5d99ed42a34302ecebc26f4b3254e41507b3ee42", + "0x133dc174ef877c42d59ac5fe87733ce13f9355587db788e3b490832c7afbcfd2", + "0x13482b383bc59a6da6ab4e998b0986c23166d0aba121fc0789e9f14605af653b" ] [inputs.previous_rollups.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000015", "0x0000000000000000000000000000000000000000000000000000000000000042", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000000000cd83c7ffbb8a401156e168f37116ffb187", - "0x000000000000000000000000000000000004c9803d25f3aa3d87971ec69e9a09", - "0x0000000000000000000000000000002b8e3b59ff58ee5825f04add8396938ab7", - "0x00000000000000000000000000000000000ca92b3e71dca284819687b09058a5", - "0x000000000000000000000000000000f13a4c94014267f0fb20df8d4745321157", - "0x0000000000000000000000000000000000228ccf8e5e66edf617fe9cdffaa9f3", - "0x0000000000000000000000000000008bedbc082dc889634e668f035d885cb110", - "0x000000000000000000000000000000000000d1506f1dee82696f1132266cd876", - "0x000000000000000000000000000000eed1511734ae738d49eddd8c477030de23", - "0x0000000000000000000000000000000000185f94db8b977ecb674f578da3d454", - "0x00000000000000000000000000000052efb8157e56280d78c004328b104e22ee", - "0x00000000000000000000000000000000001e61e2eda64fdcef0aa3f7086d25ae", - "0x000000000000000000000000000000a7ba8e154b7cb9b052f03b722d1fada3ab", - "0x00000000000000000000000000000000001b74f30f877fcb688c4d7942a512ea", - "0x000000000000000000000000000000a64cc9925a82d55b5c8ed69024e76a1002", - "0x0000000000000000000000000000000000051a307beab7624f895eac2d7b107e", - "0x000000000000000000000000000000b71a10e4cb199c53f8ab26f4b5750e6ff1", - "0x000000000000000000000000000000000026ae3964368b4d1a78b494281305a6", - "0x00000000000000000000000000000070e6d26eeb2ae247b554ade309575fc966", - "0x00000000000000000000000000000000001b72f55e4403556e86319b26bac156", - "0x0000000000000000000000000000008d27b4ec306af3043276b465679e8bd42f", - "0x0000000000000000000000000000000000235c5f58ac9d6dca390a516970b4b2", - "0x000000000000000000000000000000f9cc90e3b5b8897ba1b69b74148d74cfc5", - "0x00000000000000000000000000000000002b2e95de9addf042a25f2539a53d1e", - "0x0000000000000000000000000000004288fb745aa3b78da694bc2f3c28178b53", - "0x0000000000000000000000000000000000029292ff399aa7b20eb1f743696c46", - "0x0000000000000000000000000000003582186b8e684671a476f80b8d0e114d5d", - "0x00000000000000000000000000000000001b3109c18b36e49b5ef30578b4bc60", - "0x00000000000000000000000000000083d976f2c2c90d81da35771e3f1822b38f", - "0x000000000000000000000000000000000004e8a3defd811d412647bd93ce9086", - "0x000000000000000000000000000000c2c94de698986ec3786d6f5b13b0a476b4", - "0x000000000000000000000000000000000004d6d12b482b85c51eb055c92d5560", - "0x000000000000000000000000000000d9fb425aa4b440ae16c1b17731a6529ec7", - "0x0000000000000000000000000000000000009388e6b80710c3afdbff80db6e84", - "0x0000000000000000000000000000002775ccd14fc93fee7d75f048054b1cbcd7", - "0x000000000000000000000000000000000000142a9e45b6b4b0b28a54737e0901", - "0x000000000000000000000000000000d88146894fb0088baf74ad347a6fa92dde", - "0x0000000000000000000000000000000000019df6a3b49d4de18dbe387aac8372", - "0x0000000000000000000000000000001775a3327c99e192a79ee17db4e2c514e2", - "0x0000000000000000000000000000000000062b76de133a235165e878faa5619f", - "0x000000000000000000000000000000c8383897bcdda98939560cf15dfefd9c0b", - "0x00000000000000000000000000000000001b84d621bc2ee73d81ad2bd595f2a8", - "0x00000000000000000000000000000093ec3803f444457ef388287856eaccad0b", - "0x0000000000000000000000000000000000103b731d15612e1b8ac234c501b92d", - "0x000000000000000000000000000000d83455ed5536ab998435ffd929486967f5", - "0x00000000000000000000000000000000000870e19f1fc3e0921179828f3dd48b", - "0x0000000000000000000000000000008a0b19fe136076435faa22c077837f88bb", - "0x00000000000000000000000000000000000039184f52378de1cbba4a757335f4", - "0x00000000000000000000000000000019bba41ff000f1c9a2800dff26a0ba56ce", - "0x000000000000000000000000000000000012a445925f8b47a193556076199e49", - "0x0000000000000000000000000000005ba24d7fb287fc15134264f129609a2bd8", - "0x000000000000000000000000000000000007076816a94acb232f9ce3c1ae86f4", - "0x000000000000000000000000000000f85d9c960786d5542ee7fb2b2413a6d377", - "0x00000000000000000000000000000000001501ca79d9e60002f03f2b2b7b650a", - "0x000000000000000000000000000000af9fa7ef32ca1cb5f5abfbcc106009b7d9", - "0x00000000000000000000000000000000000a3631ac245c1bcbc41500fbe90c39", - "0x000000000000000000000000000000c20fa79072822cd75c97c5b81e20ca8378", - "0x00000000000000000000000000000000001c6e3d83b0c29f88cf55cb349764c7", - "0x00000000000000000000000000000094269c5b70a400d545ff6927eb4ff34d94", - "0x0000000000000000000000000000000000179a075c118abe5e19ec509b92c329", - "0x000000000000000000000000000000f7bf1c1f7d4dd3e707966c05f1d2cf0efa", - "0x00000000000000000000000000000000002dfb152b58a74c48565f0dba30108d", - "0x000000000000000000000000000000cc8f8c54c07a2909a5e4dd79a7fee3e9f9", - "0x0000000000000000000000000000000000111875cd09b6d83b8c85d81902de1d", - "0x00000000000000000000000000000067879f62b49d4ec18a05fc15c67e61c1f0", - "0x000000000000000000000000000000000007d113480afafd29d13ea18ad95bc2", - "0x000000000000000000000000000000ff6cd4cc6b0f04ecadac8b0370831197bc", - "0x00000000000000000000000000000000002cf71926c179ee1544ddcdef962d3b", - "0x00000000000000000000000000000011dac3e4f0a624a359d0577b6ad0c6a9ea", - "0x0000000000000000000000000000000000021c6d473c1f38d00361a916aa5c57", - "0x00000000000000000000000000000003b3480a0434d1d1f33e1c9f1a7d0cb25d", - "0x00000000000000000000000000000000002c5c8e4157e553f3188d193d1b9569", - "0x00000000000000000000000000000019b738d9ea76f9cb03a4bcdb7533944a36", - "0x00000000000000000000000000000000001c8f2968fe3967d675bdc3dd95ae45", - "0x00000000000000000000000000000081ead652a5562e48d2271eb63e0b53f517", - "0x00000000000000000000000000000000000252e44fb0d2cd6daafe79b8a7ce1f", - "0x0000000000000000000000000000008fa4d0b6af4adecb0c882b3550bf708e3a", - "0x0000000000000000000000000000000000026f63ebffc62201b820a594862e6c", - "0x000000000000000000000000000000a9e22eecb21492cfdd0820eddc2392ecad", - "0x0000000000000000000000000000000000100eff1372735728c7d857bbe751cd", - "0x00000000000000000000000000000098c24dca66ff39798ffef0819d63447c2b", - "0x0000000000000000000000000000000000117ee5d863045ed0f1f8a3268a44cd", - "0x000000000000000000000000000000c42efe335044bad810e4db5ca3a9a90b33", - "0x00000000000000000000000000000000001eea6c61e4ba0267d212d7d6a01fde", - "0x000000000000000000000000000000278bf3b77e15b280c8d91851ef86e22130", - "0x000000000000000000000000000000000007d1cb6e175db110b93183dc69610a", - "0x000000000000000000000000000000d7d26293651d377457c5f70fc897df4d02", - "0x00000000000000000000000000000000000ee609268fa9ca425545724809dec0", - "0x0000000000000000000000000000006363c23486d6a7a313beac4e2d9611968a", - "0x0000000000000000000000000000000000085acee4523161ab1e268a4f0c1b0f", - "0x000000000000000000000000000000b250d5a528a555d96d498fc9af4f8cc5c2", - "0x000000000000000000000000000000000017080f8d1d21b541de1c64d8b794df", - "0x000000000000000000000000000000621557759a0775ea5575adc9c6fbd96d56", - "0x00000000000000000000000000000000001cd60c23a37c42d7e46e1e19e966ae", - "0x0000000000000000000000000000000d52081b2311a7e9bf52407cf3d2c336b3", - "0x0000000000000000000000000000000000003b2312f2f2f419434a1440d40c69", - "0x000000000000000000000000000000d26082083660d6ac8bffb639994e4500e7", - "0x000000000000000000000000000000000019d6ef8ce569e7fa55b8aab7f5eea6", - "0x00000000000000000000000000000078d8a04f7b6c536d3a8a35c790b4dc7ddc", - "0x00000000000000000000000000000000001111470a41156a530334d2c08511a5", - "0x0000000000000000000000000000008ab4119a5478448b7ec3573de2cdfd8e56", - "0x0000000000000000000000000000000000263c7bd4cde5591308156c458d2989", - "0x0000000000000000000000000000004a676142c9eca140ac96ab9ca49633e141", - "0x00000000000000000000000000000000001de62520faa095ad7513f753e0a73e", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000059f7a0ea97f63ad48cd0ace39569e0e2cf", - "0x0000000000000000000000000000000000104032af6f298e3ac85696d4973026", - "0x000000000000000000000000000000a4c46e1adb8515fa5ddcd4296d689f8e51", - "0x0000000000000000000000000000000000172a0575991ea836ef0e3040f33e6e" + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x0000000000000000000000000000004a89413217aa26a02d1673611c718e3f40", + "0x00000000000000000000000000000000002a74011d7b1576ee63e514f36d2ca7", + "0x000000000000000000000000000000fc6ccc829e509138e5ecaf67c0a21ae3ea", + "0x000000000000000000000000000000000025ff9c29534f6fc12896ca920730a7", + "0x0000000000000000000000000000002709461b8a6badd93121132b357506ad42", + "0x000000000000000000000000000000000018979b97518955d80ea51e8795dd65", + "0x0000000000000000000000000000002086ceef11774f164dc1826039e29a08b2", + "0x000000000000000000000000000000000002706e4d78635695a83b8ee7fe2852", + "0x000000000000000000000000000000f48fa484144b68aabb48f3c67447f619c4", + "0x00000000000000000000000000000000002c00e7b78d2dbb440843c2b8bb9d5c", + "0x000000000000000000000000000000de8ddbcaefce22d2dd0f1a9cf8505ad74c", + "0x00000000000000000000000000000000001d75f1ae876350f117464d47581ea3", + "0x0000000000000000000000000000004bbb761087bee09db612cd1683c9991da0", + "0x00000000000000000000000000000000000a1f0b2bc8f3940a7767ca70f869dc", + "0x000000000000000000000000000000e4d6e66fe44086d4e95043082d7660511d", + "0x00000000000000000000000000000000002857e0d300379ee0a5657b0628ac68", + "0x000000000000000000000000000000377899dd24559db542bb2da421c7aa5b2e", + "0x00000000000000000000000000000000000f954842d0809f870031c014244349", + "0x0000000000000000000000000000004500fe7e27caadb3185ec74d1d8c9c23c6", + "0x000000000000000000000000000000000011e0156211bae38b72e70774aad837", + "0x000000000000000000000000000000d64abf570d80329272f3ac73e763a56074", + "0x00000000000000000000000000000000002221eb3028e13e02824a2cdbebb343", + "0x000000000000000000000000000000e6ac6ff13cde0a60ccaefe09ee9f6e4951", + "0x000000000000000000000000000000000000042f684a98fd028e51ed457fb6d2", + "0x000000000000000000000000000000b1795305b34f2f47e00fefef8e3ff03117", + "0x0000000000000000000000000000000000219d203b492d7debf5d8e7df9d2059", + "0x000000000000000000000000000000bfa96395c8478bacb512c36590c5b7b901", + "0x00000000000000000000000000000000001088537efb9ccd4bbaf4c519fb15ef", + "0x000000000000000000000000000000a63a7e103f77ddd62d4a2aca5a18595bc2", + "0x00000000000000000000000000000000000ffe27c096d9d37613d28524ee24bb", + "0x0000000000000000000000000000008b2aa8f75dabd90ee7f9d45da83109530f", + "0x000000000000000000000000000000000029197cfde9aa521758643b088ca6d9", + "0x0000000000000000000000000000000c60bc3c5493f56066aeaf379eff701730", + "0x0000000000000000000000000000000000045592a6815997cad253c4d4360857", + "0x000000000000000000000000000000fe9bb200d66804b00fe6af2cbd06b90be1", + "0x00000000000000000000000000000000002dfca6770dcd191d2cdcd25959b927", + "0x000000000000000000000000000000d638a6a9b28e4cda3be3200ca416f090a6", + "0x00000000000000000000000000000000002912073cf985c4e403f2e81c78f0c4", + "0x00000000000000000000000000000017b813b81461e0af074adb3ee3a06a2dbd", + "0x0000000000000000000000000000000000193d82b9851cb7b79be69631dbed9d", + "0x000000000000000000000000000000585192fdba2a34dfe3cf05bc74f14aa04b", + "0x000000000000000000000000000000000019c364971252aebd3f848754f68cc0", + "0x000000000000000000000000000000d6c225cba31833473b544e439b76525948", + "0x0000000000000000000000000000000000172a802a4ccf4f87a056c01096e603", + "0x0000000000000000000000000000008a86fac91395708a05f2bf567c42624355", + "0x00000000000000000000000000000000001c5122e5aa5acc0563a65f2fadb548", + "0x000000000000000000000000000000c7ba316af264f3d0c9ffdfa37abe8449af", + "0x00000000000000000000000000000000001e4e1e04112cc99e43eaa819700377", + "0x000000000000000000000000000000171f9151f102c97ebaf8155f92f2818ad4", + "0x00000000000000000000000000000000002b9c517d5a5ca458d9a42ae50a21e3", + "0x000000000000000000000000000000a9ab641f6b11aa7b449f9d162ee4b41c4a", + "0x0000000000000000000000000000000000083f917d6f05453ad4449a07cb2db9", + "0x0000000000000000000000000000000fd8ba5a6cbe569669fa504b146a11e1c2", + "0x00000000000000000000000000000000002d96c1b0fb6b92bbdf9028c918ab12", + "0x00000000000000000000000000000001b66bc49279fdcee016dc50f445385e2b", + "0x00000000000000000000000000000000002b27073221dc103e65d22ef60f7565", + "0x000000000000000000000000000000d9f07543a10843697cb26aeb1e0fa41864", + "0x00000000000000000000000000000000001af76ea4d294fd82e82426b2247091", + "0x000000000000000000000000000000c95c82ccbed1535404379be4d37b661a7b", + "0x000000000000000000000000000000000004c2eb0e09fa417808cf776e09d9bd", + "0x000000000000000000000000000000f7ecd4caac36af30f57c88f8aa8758994f", + "0x000000000000000000000000000000000007a8712e54abef6a5800fb6c9f797d", + "0x00000000000000000000000000000032261b0e19195842c9e13efbf6677d3e7b", + "0x00000000000000000000000000000000001a77dd002f088f48be1c495240a4f4", + "0x0000000000000000000000000000007a9784569003accf3b18631652c41efd9c", + "0x00000000000000000000000000000000001a3bc8c8561c039ee8dd33dcf97bfb", + "0x0000000000000000000000000000008a638165173e41c0baef2a580cca67198a", + "0x00000000000000000000000000000000000ecceac0ea7acc23801d0b99315ed8", + "0x0000000000000000000000000000009c864dd9c99b9871c3cfb939d4197834ef", + "0x0000000000000000000000000000000000131aac5ec5b228a425c6a1d954f41a", + "0x00000000000000000000000000000011cae94a9b789855cde56a72734268be61", + "0x000000000000000000000000000000000015c8120597f6b5302046b58b445198", + "0x00000000000000000000000000000058f4333384b72ecdfc0a66a3b34a9870b9", + "0x000000000000000000000000000000000013db543b79ebed9f63c95904240a6e", + "0x000000000000000000000000000000c71b7fdef4cdc241adcddb23c473ad222c", + "0x00000000000000000000000000000000001823079555cf386247dbe609c2fd06", + "0x000000000000000000000000000000e46930d371eafddab0c6053b1ae159c463", + "0x00000000000000000000000000000000000c0bc40e324750ba1c752c09daed25", + "0x000000000000000000000000000000137e3a04a63f70a2f6971ca99b7844dc67", + "0x000000000000000000000000000000000014c957a738079d071b3d181b99c0e7", + "0x000000000000000000000000000000815544c36c3b22a89d3a78b3553bec6f68", + "0x000000000000000000000000000000000009c2204fe3bd67f8872d6e75792d19", + "0x000000000000000000000000000000d3e085f947f7511f7d7f87a504e99f5546", + "0x00000000000000000000000000000000001d1e1a783d6fde70d844bc2c83c3ae", + "0x000000000000000000000000000000109b3d637fe0d1d5013b3710fc1cddf89f", + "0x000000000000000000000000000000000006101682027f56bffe9486a672801a", + "0x000000000000000000000000000000797993b995dba1e0e98de672a76a776c3f", + "0x00000000000000000000000000000000002765c3ceee9f9d0f11bd159621fa1e", + "0x0000000000000000000000000000005eefcb3c6f69064ed55425945fcc74c2bc", + "0x00000000000000000000000000000000001613278bd29c20c182e6f3b5e367ce", + "0x0000000000000000000000000000006c39d4dd8c65752b9bc2628fcc3dbf415c", + "0x00000000000000000000000000000000000d4b721e385647b57de3efbc9952db", + "0x000000000000000000000000000000e26e87fb5ad793c153110c1e55129d9ee7", + "0x00000000000000000000000000000000001986fe851f46fd25818f580f9d55f1", + "0x0000000000000000000000000000007a7eb895f6f2419aafb58de3f81b3f6739", + "0x00000000000000000000000000000000000d1289085013119c588fbcdbb11f5e", + "0x00000000000000000000000000000061358ce9820bc7ced39ca91d017f767cfa", + "0x000000000000000000000000000000000018a26c04d92048605adf6b40fbe696", + "0x000000000000000000000000000000924ee754d49e43f0991a540ece79958ad1", + "0x00000000000000000000000000000000001faa0f64d400addf955b2f4a8181ec", + "0x0000000000000000000000000000000c13651a87f101a4d0bf32619d4326c45b", + "0x000000000000000000000000000000000002809feb719732fbf341dd249e671d", + "0x0000000000000000000000000000003523e8c751d17a4dcd30540a4f9261403b", + "0x00000000000000000000000000000000001466cc1bd7c1743fca0477c4ea4481", + "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", + "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", + "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", + "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", + "0x0000000000000000000000000000003ac18237da8d96caddaa1c49a178b8b47d", + "0x0000000000000000000000000000000000174dfd5c124039dc6e2a38f0f99775", + "0x0000000000000000000000000000005790969811e28ed4e16d2729036649f344", + "0x00000000000000000000000000000000000f9c6e462a5b03759c42538b9b7c36" ] - hash = "0x0f8f726e833df2994b5e4f7236bb20b770b92eeddaa5e11c229e396b784aac56" + hash = "0x09b4bb0061881fc354c5fadf8dc55f36b0c67dc3b2f58a18406363dfa0b079fa" [[inputs.previous_rollups]] proof = [ @@ -1235,8 +1235,8 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 accumulated_mana_used = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants] - vk_tree_root = "0x0141caf6779674bc31225636c4cc4259a731835c52fc462f2dcbfabf7de01a1d" - protocol_contracts_hash = "0x01af64239167dcc8333e25456aab71348f66d9f6de731a8b62181d16cf0818c1" + vk_tree_root = "0x0b701ee3d1002ca8a5a73a81bcb2e0d84e6c30222be65f508574f182569b718f" + protocol_contracts_hash = "0x0fcccdf7958e813bb1d24f764ae13ff08a999008434c2e4dec55f4401564b05e" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants.last_archive] @@ -1298,10 +1298,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000000000000000000000000000b7e5c34c" ] state = [ - "0x095ff6c475ee1af84257c77b73b727e6ebf0cc7015e0318ea5ceb14044e637a8", - "0x28810b36811d26c3700f0c7867fc191986df3ef57ea3a195b396ae8e1516b1a7", - "0x0d0d075374c48ade348ced65280060db0bfe6c16752688a5d65a07afc55cf16c", - "0x0b29f6eee3031f85d7f5ce02982c80e8fc06b552319a441c5b0fc3521d9c801c" + "0x019c8b37514a1a54433fb4ee411ccaf6da8c99234b4e5d11cc5f6b95c3989bb5", + "0x026875d420939d38c5495ee684f0a31efd5cab908193ae929d1c426d68bb9409", + "0x1a8c7e8add3b6e5ee547b84164a1d59756426ff82c71128c0627a7c01c830220", + "0x081d1fadf8d9a49f296a172486009b0c5f64d52de31142cfc01bc2b08387210a" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false @@ -1316,10 +1316,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000000000000000000000000000b7f9d34d" ] state = [ - "0x23a9bf42f5fb21102f92950e5a129127b977ad0e0d8cc6f021b0fc620b733c63", - "0x04c04f44462b3c2c334fe3f7466d2202283eb1f9c7e8b4ee679f2942ef98b57a", - "0x1a1e433d1ede575233704d82d0e09b65957a4d70d9e9184fa3aee3879ef746f1", - "0x06f9428dc4495436f76a28564601d6e45f10a9db4334941163eeea845fdab3a8" + "0x05153cbf60a272f44025c5df22636b8efe554dad1522a47a40dd5b3441326171", + "0x23fd331bfec83c48528be67bfbea84585a5f6d5b5528c5f030c222fc26331f3f", + "0x04c2cf5ad5cc66f41b327d1a4cd4bb4bc6006cc48ccda31a9bb943c40cfe4137", + "0x05df9fe44f2dd2bc21e2883077c78aed05e35c3b27b4acaf603aa29e7e17ea82" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000001" squeeze_mode = false @@ -1327,131 +1327,131 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" sibling_path = [ - "0x0f8f726e833df2994b5e4f7236bb20b770b92eeddaa5e11c229e396b784aac56", - "0x24d3d34d155de7ba76e941299ef9b12edeb7de094e758c30ab32f54a32954ae5", - "0x234d319aa3526e9e00d76d9b5b9b18b435756035ad00d8d716e1be50ac82ead3", - "0x2648004ca39ab2f7f01e8733c2de2d035675568a1c98d1410ce90ac2512e72e2", - "0x15313312ac8ca4825afd3891479fbb14626ca65499d939e23b1f653cd7d018ea", - "0x19de2a32662702dd872e529ad89836e16b013012f910daf2bc7c2a67356dd107", - "0x1f07bca7a14f9a969539c0afd388affa18926689f431fc541841a2a7604d388c" + "0x09b4bb0061881fc354c5fadf8dc55f36b0c67dc3b2f58a18406363dfa0b079fa", + "0x2136af42d41c58f3fd528f4e88c2de5152c2bb251a3c4d8950d4401a0c8ae6ff", + "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", + "0x146274c75e0cce377b1764ae8c0ba9167cfb0632d9453ac4c5b521f5d45cee4c", + "0x10fa882cccd67cfee268da2a5d99ed42a34302ecebc26f4b3254e41507b3ee42", + "0x133dc174ef877c42d59ac5fe87733ce13f9355587db788e3b490832c7afbcfd2", + "0x13482b383bc59a6da6ab4e998b0986c23166d0aba121fc0789e9f14605af653b" ] [inputs.previous_rollups.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000017", "0x0000000000000000000000000000000000000000000000000000000000000042", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000008580b9a8c85e4a3c1e7b1089bd79f3bc28", - "0x000000000000000000000000000000000022dc01e3ed0e1b10bdcff9d093431a", - "0x00000000000000000000000000000054f9950035e8ffae852707e9d1a9032e59", - "0x0000000000000000000000000000000000276c56cb94e0545b3bfd85919a8ce8", - "0x0000000000000000000000000000009352ff9d82645804416a2b338260fa235d", - "0x000000000000000000000000000000000010a253776d2bdcb7129acfa2e91ac5", - "0x00000000000000000000000000000095babbbc4a6d5a9b68707c3a8e1e9508e2", - "0x000000000000000000000000000000000030157ca77e90f7ee9155c1009b06a1", - "0x000000000000000000000000000000068047e82e283284235befaa9cc7a1838d", - "0x00000000000000000000000000000000000bcd70cc5042e81e440b1ea5ef3c3f", - "0x0000000000000000000000000000007702a95c1bf5e2923ca69f26cc2d7efe0f", - "0x00000000000000000000000000000000000adeb0e8b1074c68de2b2172f21c5e", - "0x000000000000000000000000000000520354133ccbbccfc69be0c01b92abdf0f", - "0x00000000000000000000000000000000002dea248e3c2fe054c698a861bf4c27", - "0x000000000000000000000000000000f93b6112b7de5c27298a81c68d502b7beb", - "0x00000000000000000000000000000000002be3a33fc9502b0cc8b9427fcfe50f", - "0x000000000000000000000000000000168f01ff83f4a014a90db19e5d882a0a0a", - "0x000000000000000000000000000000000008876edc3cc7e3825dc194e21cb011", - "0x0000000000000000000000000000006d1df389f06e514e1829af3744dc64294a", - "0x000000000000000000000000000000000022e86ef68622bd107e5080cc062a4f", - "0x000000000000000000000000000000d137fc89e86049cb1b141b67b3361b6298", - "0x00000000000000000000000000000000001d7ad7d0634dc08d7d9816b5b6814c", - "0x000000000000000000000000000000defd2454e2c3a75ec8e0730bd3640b9408", - "0x00000000000000000000000000000000000b189f6ee9395b1ca5771c361501d7", - "0x00000000000000000000000000000001fccf755f5b30a7d544b2f78ce075cb5d", - "0x000000000000000000000000000000000026f5423942948047e155a519b195e8", - "0x000000000000000000000000000000a9efc76daffb8dfe2a39570b2d5d046767", - "0x000000000000000000000000000000000026e7dd89fe96952a4603c2b5555538", - "0x00000000000000000000000000000008262b430328dcaab242dd8acc504e8ac9", - "0x000000000000000000000000000000000015f3ab1410f0e5dd3e00f03b9f563b", - "0x0000000000000000000000000000008fca5ff8ed9a5d41fe9b451f02502dd1c9", - "0x0000000000000000000000000000000000266aa6e4947434ef18adeba3700713", - "0x000000000000000000000000000000d93cecd04341f5da304f3c92f0670afc43", - "0x000000000000000000000000000000000020165b3fd2bfb72a4de3dc68f66eed", - "0x000000000000000000000000000000094a6d376eb3cc1ba94b4da00dea583eac", - "0x00000000000000000000000000000000001caf7742d251b04f3517f0f1e5a625", - "0x0000000000000000000000000000003be5647cd472ad0b06a48f632997e3eea2", - "0x000000000000000000000000000000000015fb4d9ecb8125b3243cee37698c48", - "0x0000000000000000000000000000000854a3ab5bcbca1e86d4949b1b7c5f4b0e", - "0x000000000000000000000000000000000015450314fbf315448dc3379dc82214", - "0x0000000000000000000000000000009c2c55d2ea5bdf5fc5e28f1a78b1d29625", - "0x000000000000000000000000000000000020b36a8406ec64352600587cf04194", - "0x000000000000000000000000000000f14d08d9dab6a54412d741166146188ae6", - "0x00000000000000000000000000000000001b5a34ccd7eaf5cd09ab920011552f", - "0x00000000000000000000000000000074b7827a59faf701f7f41df26e5476c40c", - "0x00000000000000000000000000000000002decbab1c87b933da1625951860793", - "0x000000000000000000000000000000751aab48a0e01094128242ea0aaab63ff7", - "0x00000000000000000000000000000000001a2a334289adf8d23d4d52caf4cfe6", - "0x000000000000000000000000000000f6a41261290460b25e1e7d7bf69b564ae6", - "0x00000000000000000000000000000000000296925feaed4585bb03319f126d96", - "0x00000000000000000000000000000055b70d653ebd7df04f720951e76a27369b", - "0x000000000000000000000000000000000019744937a687edc9f46fb8323a46d9", - "0x00000000000000000000000000000047978fda5b64d8fc4571f09da3e8ccc7de", - "0x0000000000000000000000000000000000139de6a387109f47ecbacc74e03742", - "0x0000000000000000000000000000007f5afdfcb7bcd85aa293676e18e899a03e", - "0x000000000000000000000000000000000006a2971c1c947f4cadb07ebc9bc980", - "0x0000000000000000000000000000006cdb69a57b7f7a25b99e18fc0f83c1bc70", - "0x000000000000000000000000000000000028f2a76a01dc3cc927cdba29383e9b", - "0x0000000000000000000000000000001bbc4d6033de44907975ce473bc0f4f148", - "0x00000000000000000000000000000000002642f26fc1850c4b9b7fc4cd860ab9", - "0x000000000000000000000000000000ac996074e35eb268f6ebbe99e9c7d26c47", - "0x00000000000000000000000000000000002262620617978a01f75646f1909969", - "0x000000000000000000000000000000e63aa32bcc098428f407b5e07d9cb26118", - "0x000000000000000000000000000000000022b294b6a7dc4c17319f9a91a1b443", - "0x000000000000000000000000000000649d9ce9147431632893f55d3c6bbc158e", - "0x000000000000000000000000000000000020698c9b0787f14aa66a57bc232ec1", - "0x000000000000000000000000000000b4fde29f9bde909609d70bf9862dd65cf1", - "0x000000000000000000000000000000000005fcac9b75cac50d87ca827678c070", - "0x00000000000000000000000000000071e27b0a0dd0e2180985072f4a949f0c1d", - "0x000000000000000000000000000000000025d2d1388eddcf016213f1cadc763f", - "0x000000000000000000000000000000b216bad715cdfa7c382d30d7a368cc1346", - "0x0000000000000000000000000000000000302dbbf78b13a6d71d1978b5607145", - "0x00000000000000000000000000000002ebdec49969d2ff9220240bbcb8730617", - "0x000000000000000000000000000000000027f41cad8540e47008c1da90340ef6", - "0x000000000000000000000000000000e8259148321315cc34166a206fe910c6cb", - "0x000000000000000000000000000000000013444efc30c7688d961f36de252af6", - "0x0000000000000000000000000000005b7c7ad432291e9dff1dfad51159e50dbf", - "0x0000000000000000000000000000000000205ec973a0d1c898c1def7852353b3", - "0x0000000000000000000000000000007940a7e88fe5ce47af688975c92be1b62a", - "0x000000000000000000000000000000000015bdab44fe41eec6ee62ed58f55ff5", - "0x0000000000000000000000000000003693b90aedcd664eede665df6f376cf526", - "0x0000000000000000000000000000000000207c38fd6851d1568fe18a83585f31", - "0x000000000000000000000000000000f1a8a60975b9b092aab1421166be08c2f5", - "0x000000000000000000000000000000000015450d2e8ea17db209302582b886f1", - "0x000000000000000000000000000000526e857040a344bd434bfdbf94d3a49196", - "0x00000000000000000000000000000000000d0112b922a852c4754ab3929d6d02", - "0x000000000000000000000000000000d88041fa28c8118a58ceacbcc8780844b5", - "0x00000000000000000000000000000000002584170ebef150b71c5e6aa93e2fbb", - "0x0000000000000000000000000000006363c23486d6a7a313beac4e2d9611968a", - "0x0000000000000000000000000000000000085acee4523161ab1e268a4f0c1b0f", - "0x000000000000000000000000000000b250d5a528a555d96d498fc9af4f8cc5c2", - "0x000000000000000000000000000000000017080f8d1d21b541de1c64d8b794df", - "0x000000000000000000000000000000621557759a0775ea5575adc9c6fbd96d56", - "0x00000000000000000000000000000000001cd60c23a37c42d7e46e1e19e966ae", - "0x0000000000000000000000000000000d52081b2311a7e9bf52407cf3d2c336b3", - "0x0000000000000000000000000000000000003b2312f2f2f419434a1440d40c69", - "0x000000000000000000000000000000d26082083660d6ac8bffb639994e4500e7", - "0x000000000000000000000000000000000019d6ef8ce569e7fa55b8aab7f5eea6", - "0x00000000000000000000000000000078d8a04f7b6c536d3a8a35c790b4dc7ddc", - "0x00000000000000000000000000000000001111470a41156a530334d2c08511a5", - "0x0000000000000000000000000000008ab4119a5478448b7ec3573de2cdfd8e56", - "0x0000000000000000000000000000000000263c7bd4cde5591308156c458d2989", - "0x0000000000000000000000000000004a676142c9eca140ac96ab9ca49633e141", - "0x00000000000000000000000000000000001de62520faa095ad7513f753e0a73e", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000a2c4fbcbebac01e208127093cbf44780d4", - "0x00000000000000000000000000000000001ca34545a074b1cb689aa0b343402d", - "0x000000000000000000000000000000a58c28598055d8818a6dbadd0018904386", - "0x0000000000000000000000000000000000152154cbc213630f5c7ec1ee37751b" + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x000000000000000000000000000000f944590031f1d3b251c3dc90ea2821c71d", + "0x00000000000000000000000000000000000d31fd1a4942efade625e012c77df1", + "0x0000000000000000000000000000001e9acd89b92c18e3d89b881b26312bb12b", + "0x000000000000000000000000000000000000736f00a23cbea07da614d8b767e4", + "0x00000000000000000000000000000012167fb1f0d3b9afea7d534404e3b36b53", + "0x0000000000000000000000000000000000021e6d056d0d40c720927abd39c872", + "0x0000000000000000000000000000004ea3f0c21ee1056b3e2ad9c082242e5a2e", + "0x00000000000000000000000000000000000c574204fd079871ae599e192d72c8", + "0x0000000000000000000000000000002654c5b2b175f95fdb2ab405dcc4220545", + "0x00000000000000000000000000000000001fd13a35df71290c2354c6c5f610de", + "0x000000000000000000000000000000d5e3b3464d67c82f035b33016912264b04", + "0x000000000000000000000000000000000009fcdab45c12d2f313f95b94a1dcb8", + "0x000000000000000000000000000000768c5a9d8ca0081f67ff3171a7ffe3ba49", + "0x00000000000000000000000000000000001cd676b8d32bb0bb898d83a9f49a2b", + "0x00000000000000000000000000000028650bc3473de217fbfec1e9fb10e4e999", + "0x0000000000000000000000000000000000260c000ea0ebc3db3ba672328007a5", + "0x000000000000000000000000000000f1948fbf68599bf0628f118156de61f57f", + "0x00000000000000000000000000000000000033e796d200425f6a499de18dbfeb", + "0x00000000000000000000000000000016a35cf8fc5f017037adf860723e6346e5", + "0x0000000000000000000000000000000000088cf6d72197800bb1300677f734a7", + "0x00000000000000000000000000000047169c153b6cc24bbac1e4126410779ccb", + "0x000000000000000000000000000000000022b70bfb92e8c7944ae65a49b7effa", + "0x000000000000000000000000000000425c661c37104ad33c2054f3cfde9954d0", + "0x000000000000000000000000000000000000c36b8ecc5963bef022dea4dfadcc", + "0x0000000000000000000000000000006f206a04895661d3bd004222a1f8a7fc73", + "0x00000000000000000000000000000000001b12a59a820d3aa543a594a1b9d92f", + "0x0000000000000000000000000000002103559842aca1e08af33bb1f714ebc02a", + "0x00000000000000000000000000000000001b8936a0be628b58af9859c2a851d1", + "0x000000000000000000000000000000862e0c485b99696417d296ecc2b2bac316", + "0x00000000000000000000000000000000000ae46fcce211297d2d7fcab27fc041", + "0x000000000000000000000000000000551700c158e12cb40d8ea4ef2563b6fb43", + "0x00000000000000000000000000000000000b515d88939b250a4a4758e4e2ea53", + "0x000000000000000000000000000000f4bae0ad0baeb9d42c7fe2ae3d18c98fad", + "0x00000000000000000000000000000000002a20d66bd435a17fdf1eaf345d5933", + "0x000000000000000000000000000000ed8a8ba528c7088b1ae4730572e1ec32c8", + "0x000000000000000000000000000000000009506de430d6b9f9863e6f10cd35fb", + "0x000000000000000000000000000000682b627744ce0319f4d9191675057282fb", + "0x000000000000000000000000000000000017de059961f8c12752abd299396f86", + "0x000000000000000000000000000000b975958ec262178729e94350c0e7543fb0", + "0x0000000000000000000000000000000000220ce50e394560e53f025e094d17aa", + "0x0000000000000000000000000000001fca3a68a28d438e85e9dc955856752779", + "0x000000000000000000000000000000000028f8f3400bb3b9d19b02ec709e2ee4", + "0x0000000000000000000000000000004e35d073460b0634ebe216d49a3dca9b36", + "0x00000000000000000000000000000000000cb0f5827b08075c405353f10ba632", + "0x0000000000000000000000000000001ece860550ce14fae74eda0123ded56a74", + "0x00000000000000000000000000000000000a34b258bd3daaf8f9edd201c25ed3", + "0x0000000000000000000000000000008cb28ae85d58a75302229585a9ad114c2b", + "0x000000000000000000000000000000000014aac1da344ad32659c3036510fcc1", + "0x000000000000000000000000000000822b45036d5c2befa8a20df910513570c4", + "0x000000000000000000000000000000000011244b388e709fbcb7f54658cfac43", + "0x000000000000000000000000000000389de9951eb8fad7e25e4ad0a9229d2275", + "0x0000000000000000000000000000000000136e6eb0ee251f9b12336cb7bb46ee", + "0x00000000000000000000000000000088f21d9f6c7c54ce4e9a4c103a91b54a58", + "0x0000000000000000000000000000000000187f2beab9a05ca29d2137ee7cbc19", + "0x0000000000000000000000000000009c703a5eb43dcef0686e08fa57ef452f68", + "0x000000000000000000000000000000000012caebb183f1490d3e4f2a2c583ab6", + "0x0000000000000000000000000000009dab4a0aa8d4954a8e1761db3da148a746", + "0x0000000000000000000000000000000000230a08da3b62fd6479b4230760b686", + "0x00000000000000000000000000000081a00a1e38bbd5212603f18ef982a5189d", + "0x000000000000000000000000000000000021ae0f9df38f1e70fa3c26867f4ee8", + "0x0000000000000000000000000000001a722dbd34f841b4823cd055149fce642f", + "0x000000000000000000000000000000000002df2693a9b134670cfe72bf29b363", + "0x00000000000000000000000000000007c906c328630b844b0797e34cedccd1ec", + "0x00000000000000000000000000000000002ab2ae39dd9c0259f7dfb1dda47e81", + "0x000000000000000000000000000000ac6642a4923aa2df07a00a9d3e462b0ed1", + "0x000000000000000000000000000000000015afb7af6c0fc23a24457aa887df9c", + "0x0000000000000000000000000000004d916ec23ef29c0b6134f208e3535671d4", + "0x00000000000000000000000000000000000d37c6c25852903d79475133d414e8", + "0x00000000000000000000000000000029ad212431ba1972de7ee0ba9f12113be3", + "0x000000000000000000000000000000000005c2393db23155844d4f71bead84d0", + "0x000000000000000000000000000000c69074efa82a4910eaf8ab8689d7aafcad", + "0x000000000000000000000000000000000029f3d77437006a0eacf1a149c4b8a0", + "0x00000000000000000000000000000030926853da69d4016eca2f1f0df5e5316f", + "0x000000000000000000000000000000000014841d3291aecd45ea0e05657dbed2", + "0x00000000000000000000000000000052fdb060fe666a3f686088f1f6996a1cf9", + "0x00000000000000000000000000000000002be878eb09939603b391aa9ee0393a", + "0x000000000000000000000000000000d99de3b49476e64c0138037838cfc63803", + "0x0000000000000000000000000000000000260874b43f32c373783efe7ef200a2", + "0x0000000000000000000000000000004951edbb25e9c6b65d446e3418b2b3f16e", + "0x00000000000000000000000000000000002300fac13ab48d40a91114d1ff9627", + "0x00000000000000000000000000000090b8d216da73861ee276dddb17428d8c09", + "0x000000000000000000000000000000000028f906106984e5fa78812869cc1aee", + "0x000000000000000000000000000000ce2aff6eda49d5b8be6ee42104d2aa21e0", + "0x000000000000000000000000000000000002833f671993d2b772b5dec0e12056", + "0x0000000000000000000000000000008be4e7cfb1fdf317a33b7bc3530625e6b8", + "0x000000000000000000000000000000000023404bed8e224a350755410e5c96b2", + "0x000000000000000000000000000000cd9a812fad3fe3a89983e416b70529445b", + "0x00000000000000000000000000000000000b66296ff191a2cf6dbe6ca03dcd0c", + "0x0000000000000000000000000000005eefcb3c6f69064ed55425945fcc74c2bc", + "0x00000000000000000000000000000000001613278bd29c20c182e6f3b5e367ce", + "0x0000000000000000000000000000006c39d4dd8c65752b9bc2628fcc3dbf415c", + "0x00000000000000000000000000000000000d4b721e385647b57de3efbc9952db", + "0x000000000000000000000000000000e26e87fb5ad793c153110c1e55129d9ee7", + "0x00000000000000000000000000000000001986fe851f46fd25818f580f9d55f1", + "0x0000000000000000000000000000007a7eb895f6f2419aafb58de3f81b3f6739", + "0x00000000000000000000000000000000000d1289085013119c588fbcdbb11f5e", + "0x00000000000000000000000000000061358ce9820bc7ced39ca91d017f767cfa", + "0x000000000000000000000000000000000018a26c04d92048605adf6b40fbe696", + "0x000000000000000000000000000000924ee754d49e43f0991a540ece79958ad1", + "0x00000000000000000000000000000000001faa0f64d400addf955b2f4a8181ec", + "0x0000000000000000000000000000000c13651a87f101a4d0bf32619d4326c45b", + "0x000000000000000000000000000000000002809feb719732fbf341dd249e671d", + "0x0000000000000000000000000000003523e8c751d17a4dcd30540a4f9261403b", + "0x00000000000000000000000000000000001466cc1bd7c1743fca0477c4ea4481", + "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", + "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", + "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", + "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", + "0x0000000000000000000000000000003e895e3756deb16393c59a6a9d3669ce0f", + "0x0000000000000000000000000000000000262d7f27b9058ca9bd2e0620f9a3d3", + "0x000000000000000000000000000000b98c4ce00d755cb57daf4bc1b860536fc3", + "0x0000000000000000000000000000000000017137ecc6753555f49859a34eeb62" ] - hash = "0x0c9b0fab06de495eb1835dc184eb51d6584a970a90bb9c9dba17ab97e9b6dee6" + hash = "0x05df4d5edfe80160c2f684f683ed1ef5fb3a539be4cfb97957b2d7f5c3ab9ead" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-merge/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-merge/Prover.toml index 28d9ad79f9c8..6e1259c36f56 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-merge/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-merge/Prover.toml @@ -484,7 +484,7 @@ proof = [ [inputs.previous_rollups.public_inputs] checkpoint_header_hashes = [ - "0x004d16fb29611dba53004101a433c88fddade0ec60446fddec1589851839a774", + "0x00f69c1fcb0861db0c3231bc6b8f370301ccadab2f3011812ceb42eb9971d715", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -520,17 +520,17 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" + protocol_contracts_hash = "0x0cf46d3e931602fb5a52d5f7f673d385dda8e2b9074db403ad47c7ce6612bf7d" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x00f30d99838de8d9e0b40bb5f19c53ebd2cea2e4e324a6b48a4db2655906ad63" + root = "0x2c031ebed6898291670fe35864c461640453222210fd1af2e3bf21cd6c843e7c" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x25dd04dc7f0a4299651ea908c014de487c4be771db4d68b458d16aa041af02ba" + root = "0x2278d45cbe3fe955c253f69da260afed8377b4093203faceb8dd685e2ebbba0c" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.previous_rollups.public_inputs.previous_out_hash] @@ -545,7 +545,7 @@ proof = [ value = "0x000000000000000000000000000000000000000000000000003b2f97f0a76c80" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [[inputs.previous_rollups.public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -772,15 +772,15 @@ proof = [ ] [inputs.previous_rollups.public_inputs.end_blob_accumulator] - blob_commitments_hash_acc = "0x00c6080f82da97cd32a6e6f96167937982d1b1d102f2670358d457217207a2a5" - z_acc = "0x1ff8cc937c58f2d72966f69b2e490b6dc7f6704680430ac91ea6c0e6207d4d96" - gamma_acc = "0x1684547681775fced98c96d09e82919f729d14549da6323b669a8512c9b3802e" + blob_commitments_hash_acc = "0x0026ec2d49b1e73612d164c1f828ecdf29cdd23a9b6721bdbf994bb82a6d83e5" + z_acc = "0x15c2562f507635161d909b0e0dfa81f00a41380b77cbe70dcc882a5fc1e32c13" + gamma_acc = "0x1485f2f861fd70f2a6cc9b8700254a16a1092e665127acbae28868e8991055f7" [inputs.previous_rollups.public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0xd2054ab1639ea442bd23a5b1c57cf5", - "0x4b6135801975f6ab44b107b0a1e000", - "0x677b" + "0x9b22546377085d163eda7020cfd960", + "0xcf8c57513231a39aedcfe5e52be369", + "0x1672" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc] @@ -788,35 +788,35 @@ proof = [ [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.x] limbs = [ - "0xca945aeef9c954013ca54795553295", - "0x9c13e59f13d27ea1d0bbfde41965a9", - "0xf7f9f09f06a5e9f04fb45ab0edb363", - "0x18f7d5" + "0x833da851f11b00befad787200fa0b9", + "0xc29799f31efeab9439ed31160cf8da", + "0x84f5e60058cc8dca58a8fd41748d73", + "0x02940d" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.y] limbs = [ - "0xb04ef08577b05403570538b51898a0", - "0x2797dcc9fb92375446462d46b4ccbb", - "0x39156e19c6155c4ef0f97030dc5d90", - "0x0ad01d" + "0xd512964a4d984362f861677049e371", + "0x7789a3fd48cb4a8b26f71486f25803", + "0xfd88f17f64dd7f367bd24ac216820d", + "0x0238cc" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x97853facdf3008deec021a5ad216e4", + "0x48ea1437fdf6155eb11409e3d48fe8", + "0x2feb" ] [inputs.previous_rollups.public_inputs.final_blob_challenges] - z = "0x0f20024c268f33a3baa0f8f38bddd3d70a7fe791632d4914d95c44e2099fa150" + z = "0x15ac535122173a1c359780151037ece00f36c85b773b939d59694ca158b3fd5a" [inputs.previous_rollups.public_inputs.final_blob_challenges.gamma] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x97853facdf3008deec021a5ad216e4", + "0x48ea1437fdf6155eb11409e3d48fe8", + "0x2feb" ] [inputs.previous_rollups.vk_data] @@ -824,11 +824,11 @@ proof = [ sibling_path = [ "0x1edc2329182e13c58f5ced1e4ca120ba845e074e81d59ee64d0bbd583ecdd429", "0x1f502972a4bdd0353e082932afca85331d93e89c99ab3a78511939c18eb14641", - "0x1f0a3ab28f16510e4f9a5682a8b5f2826f55082cd639c6b76e6e970d8bb4224d", - "0x268f759e38c9ff705a78c055b44e19f7d2b0227f3c4f2e31d6874550d498abec", - "0x09f661abe743a7c8125aa0498ca1d01914fdac9cadadb415e0d1a05934997b99", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x077df93ce467a49dde4acac6583cb935dceb05e4fc9e46b89acaa84893f27b5e", + "0x12b2fc2c75329888431e1f3abec5c810aea9fd591c813570cee181f1b665d1ae", + "0x15fd9e1a9ef5dc7fd655e1170456ed438f667f53ddcbd594d92aa1263c3c3120", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [inputs.previous_rollups.vk_data.vk] @@ -1437,7 +1437,7 @@ proof = [ [inputs.previous_rollups.public_inputs] checkpoint_header_hashes = [ - "0x00db58820ef17b4cb952c006ed78296097c3fcf7fd0fc3e3cec1f8260fc64045", + "0x00238a4dce891405b197250d63713fe14db40d01c4faa5f7fa8bc084117cbb6c", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1473,17 +1473,17 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" + protocol_contracts_hash = "0x0cf46d3e931602fb5a52d5f7f673d385dda8e2b9074db403ad47c7ce6612bf7d" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x25dd04dc7f0a4299651ea908c014de487c4be771db4d68b458d16aa041af02ba" + root = "0x2278d45cbe3fe955c253f69da260afed8377b4093203faceb8dd685e2ebbba0c" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1" + root = "0x0b278a94e22fcce62157812cbb310c34be4caf2a3e07dc9fbaad60ccc9eec278" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" [inputs.previous_rollups.public_inputs.previous_out_hash] @@ -1498,7 +1498,7 @@ proof = [ value = "0x00000000000000000000000000000000000000000000000000d0f074eda98980" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [[inputs.previous_rollups.public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1687,15 +1687,15 @@ proof = [ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.start_blob_accumulator] - blob_commitments_hash_acc = "0x00c6080f82da97cd32a6e6f96167937982d1b1d102f2670358d457217207a2a5" - z_acc = "0x1ff8cc937c58f2d72966f69b2e490b6dc7f6704680430ac91ea6c0e6207d4d96" - gamma_acc = "0x1684547681775fced98c96d09e82919f729d14549da6323b669a8512c9b3802e" + blob_commitments_hash_acc = "0x0026ec2d49b1e73612d164c1f828ecdf29cdd23a9b6721bdbf994bb82a6d83e5" + z_acc = "0x15c2562f507635161d909b0e0dfa81f00a41380b77cbe70dcc882a5fc1e32c13" + gamma_acc = "0x1485f2f861fd70f2a6cc9b8700254a16a1092e665127acbae28868e8991055f7" [inputs.previous_rollups.public_inputs.start_blob_accumulator.y_acc] limbs = [ - "0xd2054ab1639ea442bd23a5b1c57cf5", - "0x4b6135801975f6ab44b107b0a1e000", - "0x677b" + "0x9b22546377085d163eda7020cfd960", + "0xcf8c57513231a39aedcfe5e52be369", + "0x1672" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc] @@ -1703,37 +1703,37 @@ proof = [ [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.x] limbs = [ - "0xca945aeef9c954013ca54795553295", - "0x9c13e59f13d27ea1d0bbfde41965a9", - "0xf7f9f09f06a5e9f04fb45ab0edb363", - "0x18f7d5" + "0x833da851f11b00befad787200fa0b9", + "0xc29799f31efeab9439ed31160cf8da", + "0x84f5e60058cc8dca58a8fd41748d73", + "0x02940d" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.y] limbs = [ - "0xb04ef08577b05403570538b51898a0", - "0x2797dcc9fb92375446462d46b4ccbb", - "0x39156e19c6155c4ef0f97030dc5d90", - "0x0ad01d" + "0xd512964a4d984362f861677049e371", + "0x7789a3fd48cb4a8b26f71486f25803", + "0xfd88f17f64dd7f367bd24ac216820d", + "0x0238cc" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.gamma_pow_acc] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x97853facdf3008deec021a5ad216e4", + "0x48ea1437fdf6155eb11409e3d48fe8", + "0x2feb" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator] - blob_commitments_hash_acc = "0x00ff28bea8c07e7b060d248cb2071f813aa6e39e07e3a527c1739e6a7793c093" - z_acc = "0x11b2ee0dde26d315a246f5bdc01db8abe8200c6581201debd1cffc51ad26f95d" - gamma_acc = "0x152f389c138d41dde799d4f4fc748753332ddcd5bcd19fe35e4fbe60581534c2" + blob_commitments_hash_acc = "0x007430efeb9d4b71724707dec9df1317387dc0805f1e661f908399cb1e232cc9" + z_acc = "0x14e62a9182ef4d3cf985da852c472f211a6495dd7b9c0448614881fde7976d59" + gamma_acc = "0x2c3670eb9f5aa72fa641db94ee3cb6b20702995bb5e01778d878bf817a29c4bc" [inputs.previous_rollups.public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0x4183756e36181f92164c36776c2ba3", - "0xaff710205b13b83794ee63e35bb424", - "0x411e" + "0x4aeed62cda4bb0eea23d7ffa757f71", + "0xae909a196e9f6447e1d153223cc584", + "0x50d4" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc] @@ -1741,35 +1741,35 @@ proof = [ [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.x] limbs = [ - "0x6e2f87b978f4bca529d7ad90a41cd8", - "0x734aa1582c8aee32f8334cfc594ab0", - "0x21aa57d7e1012415e25e37ee62bbcb", - "0x015e58" + "0xc4cf9275c846c8448a3449c55e4826", + "0x6f07fe62607e3db61aee13d5838eaa", + "0x194a0c5c594fa5cace2268d4bed15a", + "0x190354" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.y] limbs = [ - "0xd8e530734ccb89f49a545e13ead68c", - "0x914523b3ef75387e032ac9fef36157", - "0x5342c94a6ba1df16b871173b323290", - "0x1604f8" + "0x0344a60f1f687d55ae4c6c259b18d8", + "0x7593ef1d5fc17f53588bc22b05346f", + "0x0a20d77412cab087efa30275962f72", + "0x115fb4" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0xc0250cc6b8725b2b00687dab94d327", - "0xd7f65a721538376d885811c9aafe6f", - "0x297f" + "0xc4e929443732dab664e16101a80293", + "0x530f6a6622e8402d54f45fcf586972", + "0x67a1" ] [inputs.previous_rollups.public_inputs.final_blob_challenges] - z = "0x0f20024c268f33a3baa0f8f38bddd3d70a7fe791632d4914d95c44e2099fa150" + z = "0x15ac535122173a1c359780151037ece00f36c85b773b939d59694ca158b3fd5a" [inputs.previous_rollups.public_inputs.final_blob_challenges.gamma] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x97853facdf3008deec021a5ad216e4", + "0x48ea1437fdf6155eb11409e3d48fe8", + "0x2feb" ] [inputs.previous_rollups.vk_data] @@ -1777,11 +1777,11 @@ proof = [ sibling_path = [ "0x1edc2329182e13c58f5ced1e4ca120ba845e074e81d59ee64d0bbd583ecdd429", "0x1f502972a4bdd0353e082932afca85331d93e89c99ab3a78511939c18eb14641", - "0x1f0a3ab28f16510e4f9a5682a8b5f2826f55082cd639c6b76e6e970d8bb4224d", - "0x268f759e38c9ff705a78c055b44e19f7d2b0227f3c4f2e31d6874550d498abec", - "0x09f661abe743a7c8125aa0498ca1d01914fdac9cadadb415e0d1a05934997b99", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x077df93ce467a49dde4acac6583cb935dceb05e4fc9e46b89acaa84893f27b5e", + "0x12b2fc2c75329888431e1f3abec5c810aea9fd591c813570cee181f1b665d1ae", + "0x15fd9e1a9ef5dc7fd655e1170456ed438f667f53ddcbd594d92aa1263c3c3120", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [inputs.previous_rollups.vk_data.vk] diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-root-single-block/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-root-single-block/Prover.toml index d140961b168f..fba2a1fc9843 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-root-single-block/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-root-single-block/Prover.toml @@ -483,8 +483,8 @@ proof = [ ] [inputs.previous_rollup.public_inputs] - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde108" - block_headers_hash = "0x04c025c44ceb642aa54659bf652c91b00ccb432f9837ec84c1c282e567c223fc" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a07a404" + block_headers_hash = "0x23ec0b0b5482e63efdf9e4670a13ef9444406524f73cb2c227923dca9bddd96d" in_hash = "0x00de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d468223" out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" accumulated_fees = "0x0000000000000000000000000000000000000000000000000022e452ad469ea0" @@ -492,14 +492,14 @@ proof = [ [inputs.previous_rollup.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" + protocol_contracts_hash = "0x0cf46d3e931602fb5a52d5f7f673d385dda8e2b9074db403ad47c7ce6612bf7d" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000043" [inputs.previous_rollup.public_inputs.constants.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [inputs.previous_rollup.public_inputs.constants.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -509,11 +509,11 @@ proof = [ fee_per_l2_gas = "0x00000000000000000000000000000000000000000000000000000003699e8ba0" [inputs.previous_rollup.public_inputs.previous_archive] - root = "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1" + root = "0x0b278a94e22fcce62157812cbb310c34be4caf2a3e07dc9fbaad60ccc9eec278" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" [inputs.previous_rollup.public_inputs.new_archive] - root = "0x0f84849714aa969caef587fe17273c9fae12f846c68db0f1ab092faf93a29145" + root = "0x1d10869d0b732d24fdfaeba4212f8d8f161cb06bbdd67e98fcbde51be7f54af0" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000c" [inputs.previous_rollup.public_inputs.start_state.l1_to_l2_message_tree] @@ -521,15 +521,15 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002800" [inputs.previous_rollup.public_inputs.start_state.partial.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x1ae1ba1521c28ae96f289a24da13c68b7bf85b3c0fd0e311fff69186ebcef456" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" [inputs.previous_rollup.public_inputs.start_state.partial.nullifier_tree] -root = "0x0e8d32952999631ff527d706426177bdb3208db1d3b8dd4e74ba883610dc37e5" +root = "0x154a522176ba08866fe7f8131dbd338eb23d7b1ca1781cee200cf0bf3f22e0e3" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" [inputs.previous_rollup.public_inputs.start_state.partial.public_data_tree] -root = "0x0d21d4944ca04ad548057c7362ba76b7370e29929fe9cdd32ec1d04c07e21179" +root = "0x2e7ff17c04a98616aeb38ae9eedd21e031fe42411e931dbb00d1e4361240e506" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollup.public_inputs.end_state.l1_to_l2_message_tree] @@ -537,15 +537,15 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002c00" [inputs.previous_rollup.public_inputs.end_state.partial.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x1ae1ba1521c28ae96f289a24da13c68b7bf85b3c0fd0e311fff69186ebcef456" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000340" [inputs.previous_rollup.public_inputs.end_state.partial.nullifier_tree] -root = "0x28f8d2b1f0315d8539c1e4ff651e2eaac034de0a2271cd6f198f557ecf449cb1" +root = "0x074897b8ede56d92b94fb1320421a606f6fe33f4ac05d35f1cbfb75487172a1c" next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000003c0" [inputs.previous_rollup.public_inputs.end_state.partial.public_data_tree] -root = "0x1a010e7a4312757d9349e0058c907064764c9836de016199dbd957ca46fefc3b" +root = "0x2c052c025e1e1b185b1a55691096cea0f71e91ffaaee39d6e894e244cd7be22e" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.previous_rollup.public_inputs.start_sponge_blob] @@ -571,15 +571,15 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollup.public_inputs.end_sponge_blob.sponge] cache = [ - "0x1a010e7a4312757d9349e0058c907064764c9836de016199dbd957ca46fefc3b", + "0x2c052c025e1e1b185b1a55691096cea0f71e91ffaaee39d6e894e244cd7be22e", "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a", - "0x28f8d2b1f0315d8539c1e4ff651e2eaac034de0a2271cd6f198f557ecf449cb1" + "0x074897b8ede56d92b94fb1320421a606f6fe33f4ac05d35f1cbfb75487172a1c" ] state = [ - "0x0e1dd9cced5f0826c6e4058004b9cb3a696b39c148c0354124d03d9ed9b4ef46", - "0x0e88efccb1b5effd0110855538123edbbdb2e94b791607a00b954bece2a9bfc9", - "0x1957ffd20204e64443fb09410f7b76cfb098ff3becc10b9e08208fad4d4b03cb", - "0x0c822003a2f7fd4b344c8b039a0d20ff579eed35b7d7e49c8d2fbda1d2e1560c" + "0x162fd50416c3c03e5e4466b530815cc007e1b9f663771c193753dfba56bfa4e0", + "0x0fc4b0817900af6ae329b0b6fc67d1cd33e198f2c63fe2fab6dffec3e8dea7d0", + "0x174417cc431545fca6b51ef87e8fb61b04cf6c0fbb0efdd114fc921e9a7394e1", + "0x23a9a7651c2e94ec8ff5a0e713917317b7397bbe17f2d9c6f817375f9f541073" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false @@ -588,12 +588,12 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" sibling_path = [ "0x1276688c1c8f1024c963d35957328b73153c55580532254f0676c26e2ad55993", - "0x1025a6a71839d2ab10e9652312547fd6944d80234a52379f6a944c2500ebc294", + "0x1c8b5080263f6bb323b486ce73a5203f0aefe15ee394175cea55fc27fcbc7c2b", "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", - "0x099ef6a9a40aaf85e056bda90684adf858addbb90af303d82f8157b86b705b92", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x0e082f8f9e14360692edbef3aaa01f560e21f8e13843258bdb09062767b97150", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [inputs.previous_rollup.vk_data.vk] @@ -719,9 +719,9 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.hints] previous_archive_sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x1cfdc3f191fd4278971f73de8ee4302bd29051bb0c93c1ba7a8a7feaa4e59846", + "0x2fe8312d1f90bd7174583fc16a7305105cab9fed2c0791ee341c0e92852bd7b1", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", - "0x2b3b2f80ea4227dfe7ab4edec33942ff08b95b023d6d15efb0abde90594c993b", + "0x0f732f793a5616e304457e5dba29fd5d2d14887c08d27a9e29c00f4ff813c417", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", @@ -758,21 +758,21 @@ new_out_hash_sibling_path = [ ] blobs_fields = [ "0x00000000009c707518000000010000000300000000000000000000000000000a", - "0x2ca391890a7afa0a4098cceb64d9aa356e84a1055e6e2b3df10e2a5033f0b691", + "0x2a4d72bacea0e2ef7aa31e93ddc963f0b52826981b8f6914b4250e001ee9a4c2", "0x0000000000000000000000000000000000000000000000000022e452ad469ea0", - "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef", - "0x2935995b8343928a25acdb09654bdc27aeef345ec185caa48fb0048bd475fbcb", + "0x1e1b0cecb880ad2c476059d7c305e79ead1ca62a54632fb300bec115770fe3a5", + "0x03c770e8e5287862a7c4c3460cc28a4365f8c8eb50b23f93ef4c206fc57a3804", "0x0000000000000000000000000000000000000000000000000000000000001c20", - "0x0dc02e099550676b3dcfd522010d4db9d2c47a4556dfa28aa20a4a0eb35c54a4", + "0x13166971bec47d3b28329bcb0996f2cf0f24a0164b474f783a5fbdcfb9240f5c", "0x0000000000000000000000000000000000000000000000000000000000000af0", - "0x12d1296a2643b832fbd1d6d3ed3678833fce770084efd75adfd517de8214ccf3", + "0x0088ce9e6f50acd19bac39e3d5410556dae500da161f6ef2653eac5064718153", "0x00000000000000000000000000000000000000000000021e00afaeb15ed67ca0", - "0x0000000000000000000000000000eb8dcdbf0000000069fde1080000000b0001", + "0x0000000000000000000000000000eb8dcdbf000000006a07a4040000000b0001", "0x000000000000000002c0000000000d0000000003c0000000008b0000000a3979", - "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1", - "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f", - "0x28f8d2b1f0315d8539c1e4ff651e2eaac034de0a2271cd6f198f557ecf449cb1", - "0x1a010e7a4312757d9349e0058c907064764c9836de016199dbd957ca46fefc3b", + "0x0b278a94e22fcce62157812cbb310c34be4caf2a3e07dc9fbaad60ccc9eec278", + "0x1ae1ba1521c28ae96f289a24da13c68b7bf85b3c0fd0e311fff69186ebcef456", + "0x074897b8ede56d92b94fb1320421a606f6fe33f4ac05d35f1cbfb75487172a1c", + "0x2c052c025e1e1b185b1a55691096cea0f71e91ffaaee39d6e894e244cd7be22e", "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a", "0x0000000000000000000000000000000000000000000000008c63744300000012", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -25334,15 +25334,15 @@ blobs_fields = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000" ] -blobs_hash = "0x0098dfcc50238facc959eceef09a4ed661501b8a94815f8d69ad5b265956d2f1" +blobs_hash = "0x00d878b495e30b280e7e604c224fa2ef113b04f382ede976a35561b2105c4ca0" [inputs.hints.previous_block_header] - sponge_blob_hash = "0x208b2bb1ace451b93e09ef0119c861c986fb26bb867456eb5c93661b83befc33" + sponge_blob_hash = "0x2ec05dc81497369ed055a49803fb1b45901daf7eb17378c025aa48dad9c199a7" total_fees = "0x00000000000000000000000000000000000000000000000000d0f074eda98980" total_mana_used = "0x00000000000000000000000000000000000000000000000000000000001baea4" [inputs.hints.previous_block_header.last_archive] - root = "0x25dd04dc7f0a4299651ea908c014de487c4be771db4d68b458d16aa041af02ba" + root = "0x2278d45cbe3fe955c253f69da260afed8377b4093203faceb8dd685e2ebbba0c" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.hints.previous_block_header.state.l1_to_l2_message_tree] @@ -25350,26 +25350,26 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002800" [inputs.hints.previous_block_header.state.partial.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" +root = "0x1ae1ba1521c28ae96f289a24da13c68b7bf85b3c0fd0e311fff69186ebcef456" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" [inputs.hints.previous_block_header.state.partial.nullifier_tree] -root = "0x0e8d32952999631ff527d706426177bdb3208db1d3b8dd4e74ba883610dc37e5" +root = "0x154a522176ba08866fe7f8131dbd338eb23d7b1ca1781cee200cf0bf3f22e0e3" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" [inputs.hints.previous_block_header.state.partial.public_data_tree] -root = "0x0d21d4944ca04ad548057c7362ba76b7370e29929fe9cdd32ec1d04c07e21179" +root = "0x2e7ff17c04a98616aeb38ae9eedd21e031fe42411e931dbb00d1e4361240e506" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.hints.previous_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" block_number = "0x000000000000000000000000000000000000000000000000000000000000000a" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000042" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde0c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a07a3bc" [inputs.hints.previous_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [inputs.hints.previous_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -25383,15 +25383,15 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000002" [inputs.hints.start_blob_accumulator] - blob_commitments_hash_acc = "0x00ff28bea8c07e7b060d248cb2071f813aa6e39e07e3a527c1739e6a7793c093" - z_acc = "0x11b2ee0dde26d315a246f5bdc01db8abe8200c6581201debd1cffc51ad26f95d" - gamma_acc = "0x152f389c138d41dde799d4f4fc748753332ddcd5bcd19fe35e4fbe60581534c2" + blob_commitments_hash_acc = "0x007430efeb9d4b71724707dec9df1317387dc0805f1e661f908399cb1e232cc9" + z_acc = "0x14e62a9182ef4d3cf985da852c472f211a6495dd7b9c0448614881fde7976d59" + gamma_acc = "0x2c3670eb9f5aa72fa641db94ee3cb6b20702995bb5e01778d878bf817a29c4bc" [inputs.hints.start_blob_accumulator.y_acc] limbs = [ - "0x4183756e36181f92164c36776c2ba3", - "0xaff710205b13b83794ee63e35bb424", - "0x411e" + "0x4aeed62cda4bb0eea23d7ffa757f71", + "0xae909a196e9f6447e1d153223cc584", + "0x50d4" ] [inputs.hints.start_blob_accumulator.c_acc] @@ -25399,35 +25399,35 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.hints.start_blob_accumulator.c_acc.x] limbs = [ - "0x6e2f87b978f4bca529d7ad90a41cd8", - "0x734aa1582c8aee32f8334cfc594ab0", - "0x21aa57d7e1012415e25e37ee62bbcb", - "0x015e58" + "0xc4cf9275c846c8448a3449c55e4826", + "0x6f07fe62607e3db61aee13d5838eaa", + "0x194a0c5c594fa5cace2268d4bed15a", + "0x190354" ] [inputs.hints.start_blob_accumulator.c_acc.y] limbs = [ - "0xd8e530734ccb89f49a545e13ead68c", - "0x914523b3ef75387e032ac9fef36157", - "0x5342c94a6ba1df16b871173b323290", - "0x1604f8" + "0x0344a60f1f687d55ae4c6c259b18d8", + "0x7593ef1d5fc17f53588bc22b05346f", + "0x0a20d77412cab087efa30275962f72", + "0x115fb4" ] [inputs.hints.start_blob_accumulator.gamma_pow_acc] limbs = [ - "0xc0250cc6b8725b2b00687dab94d327", - "0xd7f65a721538376d885811c9aafe6f", - "0x297f" + "0xc4e929443732dab664e16101a80293", + "0x530f6a6622e8402d54f45fcf586972", + "0x67a1" ] [inputs.hints.final_blob_challenges] - z = "0x0f20024c268f33a3baa0f8f38bddd3d70a7fe791632d4914d95c44e2099fa150" + z = "0x15ac535122173a1c359780151037ece00f36c85b773b939d59694ca158b3fd5a" [inputs.hints.final_blob_challenges.gamma] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x97853facdf3008deec021a5ad216e4", + "0x48ea1437fdf6155eb11409e3d48fe8", + "0x2feb" ] [[inputs.hints.blob_commitments]] @@ -25435,18 +25435,18 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.hints.blob_commitments.x] limbs = [ - "0x1f41ee1ce165ab1325a3d58dcce4b0", - "0x8cc2d9c146e110aecfd6e1d0a88478", - "0x5f035ed6b113a1d400984d75519e9c", - "0x0c2ecb" + "0x9344c994d7cda5e4c3abbe4f45e77c", + "0x4a7c88cbd5689ac9fc884dc0bed9fe", + "0xb4e3f070acbd6050b2befcfe4720ab", + "0x0d9117" ] [inputs.hints.blob_commitments.y] limbs = [ - "0x6e4b336ccd13490195783945cd06c4", - "0x87ab466617f89f75e1b4e5cc2de3cf", - "0x5c00c3065f22ed5a6511f4ef9144d8", - "0x0290b1" + "0x0ed4834eedc037ff8a5cfbff337fed", + "0xbd721a974be3d960193b2d82a14339", + "0x211589bc8190061b626eb47b0dd389", + "0x114107" ] [[inputs.hints.blob_commitments]] diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-root/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-root/Prover.toml index 98a0feb10878..e2377934e954 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-root/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-root/Prover.toml @@ -484,7 +484,7 @@ proof = [ [inputs.previous_rollups.public_inputs] timestamp = "0x0000000000000000000000000000000000000000000000000000000000000186" - block_headers_hash = "0x09f6fe2394de36a32f372c238a502348b0b79debb779fecfd9de7388dc2df8d3" + block_headers_hash = "0x092d9c9b723f4a91d24cb333dd118c5f17feddbcec1eb988d00b2dcca8a12aa4" in_hash = "0x00b0e02949c7c042e780651385688dcec114af3dbb3892bab1a9cd8e2bbafdc5" out_hash = "0x00bd3da907cbb210cd100bd369f8dd7eb04b938c69dce277dc1efea8403ed88e" accumulated_fees = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -493,8 +493,8 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" version = "0x0000000000000000000000000000000000000000000000000000000000000000" - vk_tree_root = "0x0141caf6779674bc31225636c4cc4259a731835c52fc462f2dcbfabf7de01a1d" - protocol_contracts_hash = "0x01af64239167dcc8333e25456aab71348f66d9f6de731a8b62181d16cf0818c1" + vk_tree_root = "0x0b701ee3d1002ca8a5a73a81bcb2e0d84e6c30222be65f508574f182569b718f" + protocol_contracts_hash = "0x0fcccdf7958e813bb1d24f764ae13ff08a999008434c2e4dec55f4401564b05e" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" slot_number = "0x000000000000000000000000000000000000000000000000000000000000000f" @@ -513,7 +513,7 @@ proof = [ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000001" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x0d5581ddb590b1f2e972ae3399ac1639129b04a4b4282a219285a5dba6553cdf" + root = "0x10abfc1e58ab5ed471d9c7fedcf2b291ad533ac85d136968ea047db10d73d599" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000003" [inputs.previous_rollups.public_inputs.start_state.l1_to_l2_message_tree] @@ -576,10 +576,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x092658df33d4badeaa54da3bee987ed4b7a973d285a96229bbd71c564cad7449" ] state = [ - "0x186114d0d063d6e6ddee6515e508484b364b20eeca9ca340f8566e398b71b198", - "0x114fbdb8bc7b843c83778ba1c8780534af4f59451f33adcb6a437c245d4bed64", - "0x2808ea7e05edca8293485bb1dfde34257ab644659366d516601dd5beba26639c", - "0x0ba75ded1f1125dbe2d4e7a5b18a7b2e2c238a70c72ed529163eb34be09a36d2" + "0x06b7a09d376432aa2b0a7411a06aaad2d07f77fe65a5401eea06ab9d30b77ceb", + "0x06b7ab96aca0b2e842d7692f25a662728d09309529ca41b0e61eb20e19a7f38a", + "0x0b211453e69b20a81d2247120eae55ca5f80139276d8d9a7bb790996624e335d", + "0x1af797fb95b1713b94475070546774ffc67e4d61c261abb49048a7834cc7e665" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false @@ -587,134 +587,134 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.vk_data] leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000f" sibling_path = [ - "0x15602bffd51fabacf870d678a216f360ee85085e4b283f99086a716d2be141c1", - "0x02e6f22eee7e3e5aa6291ccac5ee76b8a2f1e338a74bf57530740f36d19c9b2b", - "0x14c22836312c6ac50d8aae1289b45c06410355406e5af5ecf43bf59432dcdd17", - "0x2648004ca39ab2f7f01e8733c2de2d035675568a1c98d1410ce90ac2512e72e2", - "0x15313312ac8ca4825afd3891479fbb14626ca65499d939e23b1f653cd7d018ea", - "0x19de2a32662702dd872e529ad89836e16b013012f910daf2bc7c2a67356dd107", - "0x1f07bca7a14f9a969539c0afd388affa18926689f431fc541841a2a7604d388c" + "0x0b292d3b888b2793be2b844d85cf1ee4c10e4646758de66819a7d9483c294c05", + "0x2a4b8973bfb7d252bd970f41d74702d12b8bc7f63b15188bc79d78bda4a9413d", + "0x07a849e820943807a1c5531526528e89be50a06725dee96179285d8108e565c9", + "0x146274c75e0cce377b1764ae8c0ba9167cfb0632d9453ac4c5b521f5d45cee4c", + "0x10fa882cccd67cfee268da2a5d99ed42a34302ecebc26f4b3254e41507b3ee42", + "0x133dc174ef877c42d59ac5fe87733ce13f9355587db788e3b490832c7afbcfd2", + "0x13482b383bc59a6da6ab4e998b0986c23166d0aba121fc0789e9f14605af653b" ] [inputs.previous_rollups.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000015", "0x0000000000000000000000000000000000000000000000000000000000000046", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000000000bc40d1d77d5f27602c7a5c9dcfdd10a577", - "0x0000000000000000000000000000000000290d95127ce2d246f860afc4417008", - "0x0000000000000000000000000000005cbd5faf5f59e15c010fc58d3fe9e540b1", - "0x00000000000000000000000000000000001c1664bcd931f8720205c14774d342", - "0x000000000000000000000000000000e387aea29d37cb480af72d484d55b6db6c", - "0x000000000000000000000000000000000009819e8a531a4e83e8b585a5144e20", - "0x000000000000000000000000000000a1608d0aac1cba0b1a9be724adb7bad88c", - "0x00000000000000000000000000000000001dd226cbaf4d26d6530c6515111999", - "0x0000000000000000000000000000009cd23598a766328147bb89f172954d7b29", - "0x00000000000000000000000000000000000d423e810f78ea0c2de42822af19e7", - "0x000000000000000000000000000000a55922fba9387fb37978bbd6af4459e04a", - "0x00000000000000000000000000000000000006ecc1eebeaa91b95f82ddf0e88f", - "0x00000000000000000000000000000043557bb0d6f710fca0eb9026bf8a98125a", - "0x000000000000000000000000000000000009ff26fbd0bad0ae72c988daff6c0c", - "0x00000000000000000000000000000006859f9f51510814ee09ad960084d53608", - "0x00000000000000000000000000000000001acfe8b3a2dd74d8013a77c604ada6", - "0x000000000000000000000000000000584d59b5e078a46e2662eba84435d2e4bd", - "0x000000000000000000000000000000000006482f6bf0fb0b343d0f97ef69c6b2", - "0x0000000000000000000000000000009d06b99a519e14ae6c8cea34c266f500c7", - "0x000000000000000000000000000000000025948c8dade30c58b5de9219f2ca95", - "0x00000000000000000000000000000093d02ec5125183c643276a59b448fed664", - "0x00000000000000000000000000000000000e27bbd8a3f92cf1dd4964e4973b73", - "0x0000000000000000000000000000005f8e948b5bb98b37d2cfa364c13bf016c1", - "0x0000000000000000000000000000000000111bc97b3a794e05e394f12e060ce6", - "0x000000000000000000000000000000de739fa0af1b1abc39f66b36bf6babfc93", - "0x00000000000000000000000000000000002ec2db775d5362c26b1211d0c67b33", - "0x00000000000000000000000000000092bff11ad703ff9e37f33e0254b1cae0b3", - "0x00000000000000000000000000000000001f2e9c9949c5722f9c0f27d4c01426", - "0x0000000000000000000000000000003627cef107994ae39ad4e69391443a0997", - "0x00000000000000000000000000000000001fb58a2ef67ec15c272e5d7d9fdd12", - "0x000000000000000000000000000000f49addd07ba78c471bfce78c0e211de5e0", - "0x00000000000000000000000000000000000f8a586c69ee00ea0e41154296c359", - "0x00000000000000000000000000000064ef2ac931af2758da6f7f50962ac3aee8", - "0x000000000000000000000000000000000025844bfa45c1614111a515cc924942", - "0x000000000000000000000000000000030d10358e7c9ac3f42b647f523d169a58", - "0x000000000000000000000000000000000018749a4984c4b5f9f4776ee6119102", - "0x00000000000000000000000000000034847db5296ad05fc68d47d76af31b3fbe", - "0x00000000000000000000000000000000000b15d1ae95f4b0db468e55ac0124d8", - "0x000000000000000000000000000000ed9af9fc0f97291c7f59f97bbe779da8be", - "0x0000000000000000000000000000000000188ff968dd82e23e5fdbbbd17a1d9f", - "0x0000000000000000000000000000009484b03063127bfe6d86b88c8ae47c01bb", - "0x0000000000000000000000000000000000108ae749d0d2eeb1996779852c330a", - "0x000000000000000000000000000000c6ebd746a8b5176e70a61f91162a6d4e2d", - "0x00000000000000000000000000000000000b89bcdd866b9cd89975b5ad0e6d89", - "0x0000000000000000000000000000003a110dd7b65b005ebf4c552b3c67ef1555", - "0x000000000000000000000000000000000029162ed048f542c4f7b03cb25b49e6", - "0x00000000000000000000000000000068316453bc8319f06cedcfd6c32608cd1f", - "0x00000000000000000000000000000000000e251b62bf239581fb597eed6740e0", - "0x00000000000000000000000000000025b00fdba3615375ed7d3976b356e495ab", - "0x000000000000000000000000000000000019f6c87da0b230ac04532351fe4b1d", - "0x0000000000000000000000000000001e23899052e207e75d15ce3d53d5e32847", - "0x0000000000000000000000000000000000019b9ff1c73b02d0f4517a97cee440", - "0x00000000000000000000000000000098bdab2108ae94ca4f485f5d02848d78d4", - "0x000000000000000000000000000000000004286964c20572873b6cf4da257471", - "0x0000000000000000000000000000000f611fb20ca3f9a6e05b17a755e0d55789", - "0x00000000000000000000000000000000000bd64babea596e197f373eb7aa8a43", - "0x0000000000000000000000000000008b37d49bd8ea21edbcaed541649fa8bdf5", - "0x0000000000000000000000000000000000267b1d48ccf67020ae08c7626a6c1c", - "0x000000000000000000000000000000cc687415f8c3305515f13d525e24085188", - "0x00000000000000000000000000000000002ca0b4b1f880019458bb2cd76f1f6e", - "0x00000000000000000000000000000030225fa6aa96e3972e46e3696527aae07d", - "0x00000000000000000000000000000000002b4de086c87a07bba4c423443feeab", - "0x0000000000000000000000000000000185f97c684593ba3560c433759c004853", - "0x000000000000000000000000000000000023cb3980074547c96e69cf1b54a618", - "0x0000000000000000000000000000009f864e1df408fd077100e0708be9692950", - "0x00000000000000000000000000000000002d465fd67c5262361e605c6e12915e", - "0x000000000000000000000000000000d4d9d690e0e19ef0a850cc44aeb72d291d", - "0x00000000000000000000000000000000001a1575ccf82dc1999e30c8bc1cd879", - "0x0000000000000000000000000000007b9c3ed13d551bfbc79f7216b917bdd693", - "0x00000000000000000000000000000000001c7905dbeeeafe6a96e0005768c3ad", - "0x000000000000000000000000000000abeca755a49df461a20ac6f0d8aa21bc90", - "0x00000000000000000000000000000000002ea0bedd06b133984bc27df51d6cb1", - "0x000000000000000000000000000000b07d6e88b09f97805879886a4f6f2d38ea", - "0x00000000000000000000000000000000001d0d1ffb001c9b3899d7be3d350184", - "0x00000000000000000000000000000007edda6116badb825639e5ac0bc35bcc72", - "0x000000000000000000000000000000000000c8ef5f1d8a85d3f564339779a623", - "0x000000000000000000000000000000e98b4e97afce7c1eda4af175ea75a95ff5", - "0x00000000000000000000000000000000001fc215448b3315991812153c3ff4c6", - "0x000000000000000000000000000000a05a9ffcb63515d19bd5c987c9d9c8e29f", - "0x00000000000000000000000000000000003018d45fe1f2d7b5ad3f1be15c2f2a", - "0x000000000000000000000000000000f7b12583d31b279777eff4b5cdcb77fdb8", - "0x00000000000000000000000000000000002d8ba043960803f8bdecd1765200ca", - "0x000000000000000000000000000000904912e20bb0691aaf85e36dce6b473d7f", - "0x00000000000000000000000000000000001c69cd654d955bce8b4edb9c7f1fe1", - "0x000000000000000000000000000000bf797dee8dfb0567fb3985708d7e353387", - "0x00000000000000000000000000000000002743e0b1f32f249b5ae16902fb391c", - "0x000000000000000000000000000000d82e431c626c79dbf17adb5fe768f904b2", - "0x00000000000000000000000000000000001bc72b2ac20d87b289025c21613b39", - "0x0000000000000000000000000000006363c23486d6a7a313beac4e2d9611968a", - "0x0000000000000000000000000000000000085acee4523161ab1e268a4f0c1b0f", - "0x000000000000000000000000000000b250d5a528a555d96d498fc9af4f8cc5c2", - "0x000000000000000000000000000000000017080f8d1d21b541de1c64d8b794df", - "0x000000000000000000000000000000621557759a0775ea5575adc9c6fbd96d56", - "0x00000000000000000000000000000000001cd60c23a37c42d7e46e1e19e966ae", - "0x0000000000000000000000000000000d52081b2311a7e9bf52407cf3d2c336b3", - "0x0000000000000000000000000000000000003b2312f2f2f419434a1440d40c69", - "0x000000000000000000000000000000d26082083660d6ac8bffb639994e4500e7", - "0x000000000000000000000000000000000019d6ef8ce569e7fa55b8aab7f5eea6", - "0x00000000000000000000000000000078d8a04f7b6c536d3a8a35c790b4dc7ddc", - "0x00000000000000000000000000000000001111470a41156a530334d2c08511a5", - "0x0000000000000000000000000000008ab4119a5478448b7ec3573de2cdfd8e56", - "0x0000000000000000000000000000000000263c7bd4cde5591308156c458d2989", - "0x0000000000000000000000000000004a676142c9eca140ac96ab9ca49633e141", - "0x00000000000000000000000000000000001de62520faa095ad7513f753e0a73e", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000dc4a993f7acd99b494105345a2fdaa0a2", - "0x0000000000000000000000000000000000250b675604342cefa92c43e49384e4", - "0x000000000000000000000000000000b042a664238ae53b3e5a3c1c332c3c26d7", - "0x00000000000000000000000000000000000bb7745eec39ba256f4e95e5c1b96f" + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x00000000000000000000000000000089079e540b719b4976bc29d819da265672", + "0x00000000000000000000000000000000000169511d89b1b0e96da32e525c72fc", + "0x000000000000000000000000000000e06e062182e6dfad1e73262298e47b4942", + "0x000000000000000000000000000000000022b5e38bf07cca64a821cb6a1c50be", + "0x000000000000000000000000000000844e6f07bcbb405a7eccb53cbe0dcdac25", + "0x000000000000000000000000000000000019ccf675743a22e6910df635b6c02d", + "0x000000000000000000000000000000b3f7c9c54170a598243436c12b5e714430", + "0x00000000000000000000000000000000002565cbc85f940dbde932bfc4eb2b46", + "0x000000000000000000000000000000df6dd669dda6e917c2ac2ef5dee2599599", + "0x00000000000000000000000000000000000871514dca64f33dcef23979db5be6", + "0x000000000000000000000000000000a6a76f61c436e1325c59d9ca45156088cf", + "0x0000000000000000000000000000000000253be2ad6c1112a4293bfd778dcac0", + "0x00000000000000000000000000000061b34f5bbdfec177f721dc5f52ce5dfce8", + "0x00000000000000000000000000000000000c45d1ecf903c7083b085bd11e7a18", + "0x00000000000000000000000000000092b8c18509dc81b2af5c0dd4eab9e950c6", + "0x00000000000000000000000000000000000285d5abda6e0c8cc477b2b6d5a7c8", + "0x000000000000000000000000000000c31ba9fc26a1b329bf3a87101fe6e021ee", + "0x00000000000000000000000000000000001906c827ab4161488be3c186420748", + "0x0000000000000000000000000000003705e273cf24eef2d204884b0490063d93", + "0x00000000000000000000000000000000002a897d4386a8d79d754334ed1f277e", + "0x000000000000000000000000000000ef186aa03a1ea746fdfff4df4032261232", + "0x0000000000000000000000000000000000039bf4b51ed17830647b92c603871a", + "0x000000000000000000000000000000bd63d8fb924d2dcb07408e87c266c7b98e", + "0x00000000000000000000000000000000000824ca926bc6de275907dba25bdd31", + "0x0000000000000000000000000000004724cde9ce06e5411caabd7dd4fe2dcf89", + "0x0000000000000000000000000000000000267e7e5f0e6e2991964e87475f961b", + "0x0000000000000000000000000000001f11b31d10d889999d1f1349f99703a55f", + "0x00000000000000000000000000000000001ca2da1bd75c23c6533fc450360e0a", + "0x00000000000000000000000000000027909050e7b7eb67e7c9a4d6345f0eb69e", + "0x000000000000000000000000000000000011db3d79dd9d93947d2b7dc1c10672", + "0x000000000000000000000000000000353c06fb739bccbdcc744f38fcd0508a03", + "0x0000000000000000000000000000000000182f67bb76281c69170de22262dc6a", + "0x000000000000000000000000000000aee4088b33f36d708509b67a51df161c1b", + "0x00000000000000000000000000000000001f0af39954e92ebe02d2d09a9c019a", + "0x000000000000000000000000000000bbabc0cbdb5576ed44ba86792c4f0f3778", + "0x000000000000000000000000000000000001f9dcf9530d2449c557570860964f", + "0x000000000000000000000000000000e712b7c295c2913bc21ecd1c4fd978aeae", + "0x000000000000000000000000000000000020e9f99d67ea5e7fc51a2e22bfee4a", + "0x000000000000000000000000000000cfeace77443d79774754135c7968bf9d09", + "0x0000000000000000000000000000000000200ef4e004b1a6adf1c77145207df9", + "0x00000000000000000000000000000041d5b70488ce0785e27d77408b6085664a", + "0x0000000000000000000000000000000000206ee6f2103341c45c9b7671f392dd", + "0x0000000000000000000000000000008835d9dc525cd7f5221558932b0c0b79dd", + "0x00000000000000000000000000000000000547db4cde23842669a45900d460fe", + "0x000000000000000000000000000000aa8e1629d9ad0470808401bde58b032ad1", + "0x0000000000000000000000000000000000268f1b5be84cb1098c37af45c316e0", + "0x00000000000000000000000000000093192140c3ddeecebf383c332418a14eeb", + "0x00000000000000000000000000000000000129bf9dd7ef08589bd72fb388080f", + "0x000000000000000000000000000000ba08e502a40fe2d53953e74922703c4dd1", + "0x00000000000000000000000000000000001832a1f9489f19b4cabaeefd71ee29", + "0x00000000000000000000000000000007c6d0327de911d59b21bdaa35b13c198c", + "0x000000000000000000000000000000000021711257b12d37f6cc6bf0563cb71b", + "0x00000000000000000000000000000078540776e3fd93faf9c54d5168a662f856", + "0x0000000000000000000000000000000000002d078a43ad1d6c7f5b3d402a6611", + "0x000000000000000000000000000000ae81eb3cc1ae191ee4aa4214664d38a1d6", + "0x000000000000000000000000000000000015bddad4ba217f293029f383450df8", + "0x0000000000000000000000000000008b6c95adb242724e37da69f7a7ea68a5bd", + "0x000000000000000000000000000000000003b5e4a74d1e95b020f39d30eeca27", + "0x0000000000000000000000000000003102092e740ebecabc67864cd9cb36bc7a", + "0x000000000000000000000000000000000025ecef72137002818caafefff75640", + "0x000000000000000000000000000000a1a6659848b5210b9dcb9cbb0ea37359af", + "0x00000000000000000000000000000000001fd1df39bd8e442aa9ed4ec9818bca", + "0x0000000000000000000000000000005bdf45263c9710d45361e5a2a3f368d632", + "0x00000000000000000000000000000000002f00901bb28669af54074c0319ea4c", + "0x00000000000000000000000000000052d2ac68ce89bbd7c109c1ee22951430dd", + "0x0000000000000000000000000000000000291b0c8ec2d5a8ffabec390a97a0af", + "0x0000000000000000000000000000007332fb2757456b72c08ba53f2a6cbfdb99", + "0x00000000000000000000000000000000001c0e1cecfbdc2bce36f4446718039d", + "0x000000000000000000000000000000df0a10f65a3b192b15683732a7af4d35fb", + "0x00000000000000000000000000000000002d21b2fdc09d5c66d9cd3cdf1155d2", + "0x000000000000000000000000000000a419c6200eeceddf7c2310c1d55843fe57", + "0x0000000000000000000000000000000000164d6ede4c1c9cfad8019f4fef5607", + "0x000000000000000000000000000000155a288f925fc795dd91d8ffb9607e7588", + "0x00000000000000000000000000000000001d1a7044ac92e07e3f7a4d1adb808c", + "0x0000000000000000000000000000005006485f5f919139ac4cf8f2b48806c330", + "0x00000000000000000000000000000000002f38995bad2db25ab25059fdf2b6f7", + "0x0000000000000000000000000000000fa857db14df227f02ccb383869d141032", + "0x0000000000000000000000000000000000035df66ed51a2c5ebe05f09679be0e", + "0x000000000000000000000000000000ccd13789864d814c1c8e1d1896cf6d0d77", + "0x0000000000000000000000000000000000138d6ef3e6963f4fe192b274487006", + "0x0000000000000000000000000000001ef73e731e5c4ce7164d5fdb07175ea87d", + "0x0000000000000000000000000000000000178a3808d159a83c5c9966694f8ab0", + "0x0000000000000000000000000000008bca1f7f73e29b028b131da2a003bcc042", + "0x0000000000000000000000000000000000252d50a4729066a33228a590d3eca1", + "0x000000000000000000000000000000b027810138d0953c2b6ea7e149e4565004", + "0x0000000000000000000000000000000000303c0f2b5d507eb93d0ac0ebd043c2", + "0x00000000000000000000000000000002743dd7f3f2b76f827352e8e6b866e3ef", + "0x00000000000000000000000000000000000876c0bf77208a49e0cdd002dc3d55", + "0x000000000000000000000000000000720c42b7569cc2f3149f891bea025eb3e1", + "0x00000000000000000000000000000000000a4a472694ec96876785ee52db9117", + "0x000000000000000000000000000000899f74d8c6cb5d6913934ce86bf7a8fd2f", + "0x00000000000000000000000000000000002351d8cf62e447a6ad623d1576c70e", + "0x000000000000000000000000000000eff011caee40885a1228037bacd671c917", + "0x000000000000000000000000000000000028a9e4afdebabed8c9db5043f651d9", + "0x000000000000000000000000000000df5feae8869502a1c8b84f2bfa88460397", + "0x00000000000000000000000000000000002a4aea8df3da995b6993d106db01d7", + "0x0000000000000000000000000000007865f93da8894da5579d078bc52c865a23", + "0x000000000000000000000000000000000008ff54796b152dd8613c8b78175f0f", + "0x000000000000000000000000000000a6451fa917a48400fa444deb67a7ae56c5", + "0x00000000000000000000000000000000000ae3e2509278517f5cde67366a90c5", + "0x0000000000000000000000000000005e1f735a0fcf0b9170f0fb96b149aa6bfa", + "0x0000000000000000000000000000000000121155b0e2aa30081d1cd787338972", + "0x000000000000000000000000000000507a37d65b4307ff81bc9bb1dda679defa", + "0x00000000000000000000000000000000000eb66dc9635ca0b929275cbaccb034", + "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", + "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", + "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", + "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", + "0x000000000000000000000000000000cec3be02d424d395a16063578c12504acb", + "0x00000000000000000000000000000000001a583a66b4ace72db0600f3285f6d4", + "0x000000000000000000000000000000ef5f8bd3e2da9628dfa8917ab2f40afb41", + "0x000000000000000000000000000000000025c530a8f279e6cc4fb10e10984f2a" ] - hash = "0x0d000c0ce80da2c814b0f1508b74728e2eb05f4fdfb0396e1e6939106be41f29" + hash = "0x2781192850bee4946aa72958703bc69fec3ab04ecffc00c34abcb81befd3c88f" [[inputs.previous_rollups]] proof = [ @@ -1202,7 +1202,7 @@ proof = [ [inputs.previous_rollups.public_inputs] timestamp = "0x0000000000000000000000000000000000000000000000000000000000000186" - block_headers_hash = "0x26882f9b919de7921bc48927adca4121d39e03766a0f70e268c967ac959fdda1" + block_headers_hash = "0x1349b8af6fa1399d3367ec1646ea31a8eb527fa0a93f7df141a99b8087c242a5" in_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" out_hash = "0x009be21298b4428b38b9b314446eef3243121c400edd3780e34da475ea5f17c3" accumulated_fees = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1211,8 +1211,8 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" version = "0x0000000000000000000000000000000000000000000000000000000000000000" - vk_tree_root = "0x0141caf6779674bc31225636c4cc4259a731835c52fc462f2dcbfabf7de01a1d" - protocol_contracts_hash = "0x01af64239167dcc8333e25456aab71348f66d9f6de731a8b62181d16cf0818c1" + vk_tree_root = "0x0b701ee3d1002ca8a5a73a81bcb2e0d84e6c30222be65f508574f182569b718f" + protocol_contracts_hash = "0x0fcccdf7958e813bb1d24f764ae13ff08a999008434c2e4dec55f4401564b05e" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" slot_number = "0x000000000000000000000000000000000000000000000000000000000000000f" @@ -1227,11 +1227,11 @@ proof = [ fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x0d5581ddb590b1f2e972ae3399ac1639129b04a4b4282a219285a5dba6553cdf" + root = "0x10abfc1e58ab5ed471d9c7fedcf2b291ad533ac85d136968ea047db10d73d599" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000003" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x215f1b994274f12963668b1b1e69654c637c40187eb26d2f7bdf49fa7d1960de" + root = "0x2f6a583f6610c5573c95d4b79eafb659b67b4428dbf13990edf928f599a03ef9" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000004" [inputs.previous_rollups.public_inputs.start_state.l1_to_l2_message_tree] @@ -1276,10 +1276,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x092658df33d4badeaa54da3bee987ed4b7a973d285a96229bbd71c564cad7449" ] state = [ - "0x186114d0d063d6e6ddee6515e508484b364b20eeca9ca340f8566e398b71b198", - "0x114fbdb8bc7b843c83778ba1c8780534af4f59451f33adcb6a437c245d4bed64", - "0x2808ea7e05edca8293485bb1dfde34257ab644659366d516601dd5beba26639c", - "0x0ba75ded1f1125dbe2d4e7a5b18a7b2e2c238a70c72ed529163eb34be09a36d2" + "0x06b7a09d376432aa2b0a7411a06aaad2d07f77fe65a5401eea06ab9d30b77ceb", + "0x06b7ab96aca0b2e842d7692f25a662728d09309529ca41b0e61eb20e19a7f38a", + "0x0b211453e69b20a81d2247120eae55ca5f80139276d8d9a7bb790996624e335d", + "0x1af797fb95b1713b94475070546774ffc67e4d61c261abb49048a7834cc7e665" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false @@ -1294,10 +1294,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x06d941e09284387689272aef891ff6ec71993e808f3a832c4d1fd74955b1901e" ] state = [ - "0x17da65d95854743f81498e2d569a4d11fe47a652ce11c27768e392475e503771", - "0x0fdf668913527d70795bd6225710f94e802493ca2ded968c29e45816b9366662", - "0x0de554ab6116e8d6245bfb791eb15006e14be4f10497002ec9a426a760a73974", - "0x28dc4bfd4e171c7418cda7f902dfd3e22433e1341085ae4d528f8b7082131ae7" + "0x1525d886fd143dc1893161cc7bc9a7a29cebdd09a955543f883ea4d2823b10e0", + "0x19060008e02e5f734643d2a087bae8c913fb8e79e47b50c5718e729cdedacade", + "0x21ebef3c51c070c1f17b925d3d30851b9afaa56d85745d6b8c0ab8586a014c29", + "0x124caee5596391b2756e5c3339afc57827b191b7e89529ef096b427cd6c19f89" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000001" squeeze_mode = false @@ -1305,134 +1305,134 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.vk_data] leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000e" sibling_path = [ - "0x0d000c0ce80da2c814b0f1508b74728e2eb05f4fdfb0396e1e6939106be41f29", - "0x02e6f22eee7e3e5aa6291ccac5ee76b8a2f1e338a74bf57530740f36d19c9b2b", - "0x14c22836312c6ac50d8aae1289b45c06410355406e5af5ecf43bf59432dcdd17", - "0x2648004ca39ab2f7f01e8733c2de2d035675568a1c98d1410ce90ac2512e72e2", - "0x15313312ac8ca4825afd3891479fbb14626ca65499d939e23b1f653cd7d018ea", - "0x19de2a32662702dd872e529ad89836e16b013012f910daf2bc7c2a67356dd107", - "0x1f07bca7a14f9a969539c0afd388affa18926689f431fc541841a2a7604d388c" + "0x2781192850bee4946aa72958703bc69fec3ab04ecffc00c34abcb81befd3c88f", + "0x2a4b8973bfb7d252bd970f41d74702d12b8bc7f63b15188bc79d78bda4a9413d", + "0x07a849e820943807a1c5531526528e89be50a06725dee96179285d8108e565c9", + "0x146274c75e0cce377b1764ae8c0ba9167cfb0632d9453ac4c5b521f5d45cee4c", + "0x10fa882cccd67cfee268da2a5d99ed42a34302ecebc26f4b3254e41507b3ee42", + "0x133dc174ef877c42d59ac5fe87733ce13f9355587db788e3b490832c7afbcfd2", + "0x13482b383bc59a6da6ab4e998b0986c23166d0aba121fc0789e9f14605af653b" ] [inputs.previous_rollups.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000014", "0x0000000000000000000000000000000000000000000000000000000000000046", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000002fb0b1381b4486fbd49fa9fdb4d74afed8", - "0x00000000000000000000000000000000001b03700ad9942abf5144e1bd7393d2", - "0x0000000000000000000000000000007f3e184921857992c24753b966424214c6", - "0x0000000000000000000000000000000000283119b961cda64e529c68e135fa17", - "0x000000000000000000000000000000c251b282c34c8a6d712e6c12903362497c", - "0x00000000000000000000000000000000002c89e5571ae0b09fa870346cbd5cee", - "0x0000000000000000000000000000008eb0fcf7af2d945fd3266cd7b0b449e8d3", - "0x000000000000000000000000000000000021d78ef089716338837787911d13b0", - "0x0000000000000000000000000000007f691d58aee9d65248c5eecbbaddc13a98", - "0x0000000000000000000000000000000000098627646fa61b9928d6dc11c96e13", - "0x0000000000000000000000000000002c58cf39b7f2b04d82c4338ef8958a7473", - "0x00000000000000000000000000000000001aef806cf0aba5af2f1f8978cd56d8", - "0x00000000000000000000000000000082bb268c0e10a8bf5c0ef242f9906e4892", - "0x00000000000000000000000000000000000c90d93936cc598061c4d29f0b25a4", - "0x0000000000000000000000000000004d114fbbc4055f5761b7f8840f0da32908", - "0x00000000000000000000000000000000002957bebd162ed2169df723dde18c97", - "0x000000000000000000000000000000e9eea3e81c31b1aa9400fa13197b7393fb", - "0x0000000000000000000000000000000000218c3140bfb6edddbcb2d4cbc126bb", - "0x000000000000000000000000000000c0ff9e22fab79999e9ed7d78e138d2987d", - "0x000000000000000000000000000000000028bcfd13128cabc46955265a1e05dd", - "0x00000000000000000000000000000023a74d6f1a3fabe39ff7f0f6150be9ec00", - "0x00000000000000000000000000000000002e2507d7bf2a01aec6fd026fa0a409", - "0x0000000000000000000000000000000a0acda35b6f3d1a438d5fcf5783a50797", - "0x000000000000000000000000000000000021e1c9a570c3d0417707daa478fa20", - "0x000000000000000000000000000000c10049e49d4cd16c33bbc1e8eb3238ea26", - "0x00000000000000000000000000000000002578443465dd684c74b9c635f2c33e", - "0x000000000000000000000000000000770092209b5122c863dacecd7406bb2d48", - "0x00000000000000000000000000000000000f3fee6266059403a65308d4c5d7eb", - "0x00000000000000000000000000000093ed6cb8d6a2d5363b2c995ec9f930a714", - "0x0000000000000000000000000000000000276fea1e0f63f52d1e7564b9a81494", - "0x0000000000000000000000000000000389f3a2b3a8f8cc2f5f5d1cd72a8d196d", - "0x000000000000000000000000000000000013bcbd1229609722bcecd1798d4a4b", - "0x000000000000000000000000000000fe9ce7b1fd6536624c2fa96787f74d7bb0", - "0x00000000000000000000000000000000000c3c6d07104e24ea5acc68c3423208", - "0x000000000000000000000000000000b8da6eb9140a2d5588a8710a2d6d6318a2", - "0x00000000000000000000000000000000001b1f1fa538a3b66f72c15c53cca715", - "0x0000000000000000000000000000004730a9529ef0eb509d55e1379829c016c4", - "0x00000000000000000000000000000000001ce37c2c228f312b7c1e64bcca1dfd", - "0x000000000000000000000000000000a378c68d165ba8929cf5e20f479ed90e1d", - "0x000000000000000000000000000000000023024fd5c636e9ead7d63e4eac96d9", - "0x00000000000000000000000000000082a25f4e5374c7548fa507be32b596f423", - "0x000000000000000000000000000000000018ca6faa15b5b52e1ae8b15cb8b83f", - "0x000000000000000000000000000000091c75d9a46e8a66235f387c882bb14df2", - "0x000000000000000000000000000000000018f3db0dcead736435b7467239e00b", - "0x000000000000000000000000000000b87fb21960e7763dfd42205c459fdc41fa", - "0x00000000000000000000000000000000000267a4a344f85d00b6b0040d1c2150", - "0x0000000000000000000000000000000bd1017af78a6260c7d0f6eccb3a8d3890", - "0x000000000000000000000000000000000002641016e4e2bf5752b1e9472dde95", - "0x0000000000000000000000000000004697a8a794f990510a018a5b2c50f35b76", - "0x00000000000000000000000000000000000de0ab75e8b485639fe023a368024c", - "0x000000000000000000000000000000be33c35449966234d9bdf48ba396a57c4f", - "0x00000000000000000000000000000000000df556c20deb7a8ab0ee850f970c51", - "0x0000000000000000000000000000007e5366f459b2b033ca3664ff8f4a641d18", - "0x0000000000000000000000000000000000192f68a938c5a9ea9a5cc9f2181675", - "0x0000000000000000000000000000003a6f876985d4d54592c5b5c16ab8b16750", - "0x00000000000000000000000000000000002da0d2ee45300969c52f5ae43c7402", - "0x000000000000000000000000000000c0f7aa427b2ea5fe4f0e45dcb2eec42f83", - "0x000000000000000000000000000000000009739dbd1003e81acae3f329654c42", - "0x0000000000000000000000000000009191ff080e493eb7d3eb33ec9823178f09", - "0x00000000000000000000000000000000002c951c03d7dadfa04fdc92a298ea8f", - "0x000000000000000000000000000000245cbb1c8e9f243b94d55edca314c340d7", - "0x00000000000000000000000000000000000de0f174fce3433422830fdb869c6e", - "0x0000000000000000000000000000005348fbfc2bff27c23db0f849baac752835", - "0x00000000000000000000000000000000000fa0fe8cbbf06318ad99adc23d2e0c", - "0x000000000000000000000000000000b37df3b0cfe3793620f5315db38c0dcd29", - "0x0000000000000000000000000000000000011ef80549887e786cea0d08c13608", - "0x000000000000000000000000000000e085aac6fe78f6a3574c61f888eb0ace80", - "0x000000000000000000000000000000000015ea74a6e14e77ffea0611ecc18015", - "0x000000000000000000000000000000635cc32ee452dd83211c337fd3423850ff", - "0x000000000000000000000000000000000030399e012ea636c746005ba35a4536", - "0x000000000000000000000000000000c6c09fdb5d8cbc0266b956e5539ad94b8f", - "0x00000000000000000000000000000000000728658d282bb922ecff1634645aff", - "0x0000000000000000000000000000008fc753267c4b4393209eabc80d1c4fcac8", - "0x00000000000000000000000000000000001add24bab07f36d9d6e11beabf5bb8", - "0x0000000000000000000000000000001a38a11d04a6dc1d788b1cc4da1d171341", - "0x000000000000000000000000000000000004eadc7d1bcf2320272a6d96972ae7", - "0x0000000000000000000000000000004749834da45ee7f8ffc427cf41f3b715e3", - "0x000000000000000000000000000000000005e4285178878dbecdfd0c6eba227a", - "0x000000000000000000000000000000182e1a0661bfd39a43bcbbb18e3691b327", - "0x0000000000000000000000000000000000262b3f8b46fac1d385cc0f3bc24ee0", - "0x000000000000000000000000000000434d5dbebbf6fbc03531f25d963f155b9a", - "0x0000000000000000000000000000000000082a0f4d55eb1206313a4955f41f03", - "0x000000000000000000000000000000034001bbce1dcce343e80ff7a821fc3444", - "0x000000000000000000000000000000000013176cdf2f7fb58e75a4954f0bfd28", - "0x000000000000000000000000000000acb6987d4aafb95942bc208f40df86f426", - "0x00000000000000000000000000000000000e52fac6880e3f51e7641ab893e82a", - "0x0000000000000000000000000000002377224018803fe8e8922c797432d2d985", - "0x00000000000000000000000000000000000b3d671707c2cdc4842e4e8ffefc09", - "0x00000000000000000000000000000095b5d8b7b4a63b05df652b0d10ef146d26", - "0x0000000000000000000000000000000000099e3bd5a0a00ab7fe18040105b9b3", - "0x0000000000000000000000000000002129af3a637f5a622a32440f860d1e2a7f", - "0x00000000000000000000000000000000000015b8d2515d76e2ccec99dcd19459", - "0x000000000000000000000000000000222b888108dc25d1aa450e0b4bc212c37e", - "0x00000000000000000000000000000000001b917517920bad3d8bc01c9595092a", - "0x000000000000000000000000000000482141c7ebe42000a1d58ccb74381f6d19", - "0x0000000000000000000000000000000000305e8992b148eedb22e6e992077a84", - "0x0000000000000000000000000000007c86847618681dc29d8a9363ab7c40e1c3", - "0x000000000000000000000000000000000016465a5ccbb550cd2c63bd58116fe4", - "0x000000000000000000000000000000439973ac12d7ca796d6fe98ca40e6ca6b7", - "0x00000000000000000000000000000000002e24d420fbf9508ed31de692db477b", - "0x00000000000000000000000000000028edd1a7e46c840d9c943fdf45521c64ce", - "0x0000000000000000000000000000000000043d063b130adfb37342af45d0155a", - "0x0000000000000000000000000000009330952ae74c573d1686d9cb4a00733854", - "0x0000000000000000000000000000000000261522c4089330646aff9673619494", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000005d656b6df65180c7833e41dc3231ba543d", - "0x000000000000000000000000000000000011345e9011207695e22c16713acdb8", - "0x0000000000000000000000000000007d63cb71b503d4b9abe5d31e76ac70ff93", - "0x000000000000000000000000000000000026b61287fe7afce1e989dc0d30a961" + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x000000000000000000000000000000161e5bb10fa2b7c7380009239b649b4734", + "0x00000000000000000000000000000000000badbf533a087faffe865010dc5b37", + "0x000000000000000000000000000000381bfa95df551e67c494b29f07bfc5149c", + "0x00000000000000000000000000000000001bf4738c48442b6d952222d821547f", + "0x000000000000000000000000000000cdf67a2562ab96b4917ea73217efafd3b3", + "0x00000000000000000000000000000000001b0666d4bc44552a2ffc0223345a23", + "0x00000000000000000000000000000052e280645ffe873ef1e2cce244d3b23265", + "0x000000000000000000000000000000000029365e95dc11f595f23b37d9c475db", + "0x000000000000000000000000000000e0546cf49094bcd8d9e4a0e2f0b0d21d73", + "0x00000000000000000000000000000000001dd314bca6a6ded1a4a64266a516ce", + "0x000000000000000000000000000000c529043942840056e63f2fcffad4221afd", + "0x000000000000000000000000000000000011c2731f6fe0cb9f3c7d88d710950d", + "0x0000000000000000000000000000000dccca0374b5478a2414205ee24ca83668", + "0x000000000000000000000000000000000007e95f7cd90c21519b280c7c007fcc", + "0x00000000000000000000000000000004de3a9f180f0a4f01dab186eba8530269", + "0x00000000000000000000000000000000001372faf74b763ba502d7cc0845a54c", + "0x0000000000000000000000000000008aa4681b00633c2a5a63702641a6d36041", + "0x00000000000000000000000000000000002dc7f4ccd6922fc4b6654e175f2a80", + "0x000000000000000000000000000000d0d4f6ecbd8ee863fa3160211931061e33", + "0x0000000000000000000000000000000000263cb61cd13a131bdb313fa1159c3c", + "0x000000000000000000000000000000739ca3af1ec76a87a037f25bca5447ee69", + "0x0000000000000000000000000000000000065132cc73a764a9958eaf16937aac", + "0x0000000000000000000000000000004f397550e79074d0c4d3108fe675be5a4e", + "0x000000000000000000000000000000000012a58f58ab7bd421ca8f0fdf7990ed", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000dbe8bffec86d9a9c4e194450aafe44569a", + "0x00000000000000000000000000000000001ad711549791cb4bfb26753da71976", + "0x000000000000000000000000000000eef413cdd499365c5aff81234c29a8e9c8", + "0x00000000000000000000000000000000001c1a2f7052492deb0bf3831f1d659f", + "0x000000000000000000000000000000a430987c325c792662db95707eeb73bcda", + "0x00000000000000000000000000000000001fc6620d5b4b91a2bb7e967e4ca0a0", + "0x000000000000000000000000000000d3010833f9a0a6df8b842d2e94c7443271", + "0x00000000000000000000000000000000002b34c8b03764d6438d76005e33f136", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000000000090eb905a6ce8fdcfb3ad69b20f37b471a0", + "0x000000000000000000000000000000000015411f1068f3c41c0f03f763abc15a", + "0x000000000000000000000000000000afca164bedcee548eecb0590ec5abf1127", + "0x0000000000000000000000000000000000145ea9d00e643079977aa78cd2c109", + "0x000000000000000000000000000000854f1c53b1fafeaae64bc08161c77048b7", + "0x00000000000000000000000000000000001e235518c5c034960eec5fc45a716e", + "0x00000000000000000000000000000035145365e610d44ef42fa8ea613a9df4aa", + "0x00000000000000000000000000000000000f949d81fe0404cba9da3dbe012bd7", + "0x000000000000000000000000000000c5f55c78208dcda151683ee8cf95e8bc47", + "0x000000000000000000000000000000000012b17b8f64a8606a7817da004b71c1", + "0x0000000000000000000000000000007359e5ac4a48e1c4cf0e5665c6c059d99b", + "0x00000000000000000000000000000000001d7a0474a2bb254bf932f10146b961", + "0x00000000000000000000000000000024e0b7c596516bb0b5a2e8d6cb248b56a2", + "0x000000000000000000000000000000000012e9c9b3e8143abd574124134a05c8", + "0x000000000000000000000000000000dbc92535cff5ca03ba09ca111642d39fda", + "0x00000000000000000000000000000000002043571f43cad61de3a5e4328a4aee", + "0x00000000000000000000000000000079d599186f46e769fcc207b0cd6cbdc01e", + "0x00000000000000000000000000000000000c5c2f9466df09ea80f0ec14870034", + "0x0000000000000000000000000000005f94f587b12643ff51063a28353833f770", + "0x00000000000000000000000000000000000cf56aa28ed4b4beb7ff157d7da3ef", + "0x000000000000000000000000000000de4b43f87ff9317c8e9d9c4588fc2eef2d", + "0x000000000000000000000000000000000012d0aa842859d2ee838f5510f9bc22", + "0x0000000000000000000000000000006f2fdb4213da0129f8365bc86a01f6164d", + "0x00000000000000000000000000000000000bdc73bc5280a4afc7e65947531e51", + "0x000000000000000000000000000000f14874ba0df22c460d8352ca030bd9a861", + "0x00000000000000000000000000000000000885382903e5ffbd837b5e0e4bbf06", + "0x00000000000000000000000000000066e80b7e34ebe3899a4d07dea4f62cc7df", + "0x000000000000000000000000000000000013f829d0878ad53de418679f370067", + "0x0000000000000000000000000000002980ae9f85fad098e5a76ca9e6bdac5779", + "0x00000000000000000000000000000000001a774ae589e96cfbefb418dddcdaa2", + "0x000000000000000000000000000000327c44b0ed90d01976c32c94f04ef2cea8", + "0x0000000000000000000000000000000000225d757cb4f2bfbf6d13b8114d7b16", + "0x000000000000000000000000000000bdc629840f4a9d071f9fb1384008254135", + "0x000000000000000000000000000000000004e75cee70f3e11a2402faef92a73b", + "0x000000000000000000000000000000f40c508a906897027558980610fc4df4f2", + "0x00000000000000000000000000000000001f959d41e40d111d021ab23b4ef843", + "0x000000000000000000000000000000587fcafd86184e71ec3d650b3ba85f03fa", + "0x00000000000000000000000000000000000610c97af06081281e7404f44aee4b", + "0x0000000000000000000000000000007b029cc296434696323f9c37b5e4c9cf55", + "0x00000000000000000000000000000000000614733fbf8d375012614cce5e4aa0", + "0x000000000000000000000000000000bc102f5fba012ade36bbf671474a9afae2", + "0x00000000000000000000000000000000000d2b78d31298fc946624e482d61850", + "0x000000000000000000000000000000c1c26c3fbdd4fb7de13c6af78b90063442", + "0x00000000000000000000000000000000002da9dd34c453f3d5a99691ba052769", + "0x000000000000000000000000000000a788520d601038b7bcb1ef241547ddc5e1", + "0x00000000000000000000000000000000002a280445997573df993f3eaa9cc9bd", + "0x000000000000000000000000000000ec4d9274437dc457e7da9ee9f5d57b0825", + "0x000000000000000000000000000000000029454eff7f180c04c3dccd1d762531", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", + "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", + "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", + "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", + "0x0000000000000000000000000000007cf4b5713ad71efb2e02fe45bb7fc9507f", + "0x000000000000000000000000000000000026cf1fe248bb52d3e86b9f64b3c2d3", + "0x0000000000000000000000000000000e590349a07b67f041c3c615e4f436aeab", + "0x000000000000000000000000000000000015a097ca4d6bfa82e4dd755b3ebb59" ] - hash = "0x15602bffd51fabacf870d678a216f360ee85085e4b283f99086a716d2be141c1" + hash = "0x0b292d3b888b2793be2b844d85cf1ee4c10e4646758de66819a7d9483c294c05" [inputs.hints] previous_archive_sibling_path = [ @@ -1476,7 +1476,7 @@ new_out_hash_sibling_path = [ ] blobs_fields = [ "0x00000000009c707518004000400008004000400400000000000000000000054b", - "0x149ec99267de2c967f076659b1ce7c2ef1e39b2de7a3c8fca6144e419a0274c0", + "0x1fa8c9e190ef51acc5e052f31c13e3b45f6a971ff92a5b3a128ab4debc2980a4", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x00000000000000000000000000000000000000000000000000000000b7d1b000", "0x00000000000000000000000000000000000000000000000000000000b7d1b001", @@ -2838,7 +2838,7 @@ blobs_fields = [ "0x1fe2338f2916a0bd017ff73606723336792d97d6c91a387862c4d5ab893a6f29", "0x2077efe63b8c3de3bfdbc1e1be837185a8f1d817c8321418fcfe110cd518a922", "0x00000000009c707518004000400008004000400400000000000000000000054b", - "0x12ca038fdc7a689a9ef836b5edc09fc0ebba53d29405ede497d098f12b33c642", + "0x10b5b722c0807e2bbfb09230febb255d9c0fff9c50469e2389e88d9ee38a3189", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x00000000000000000000000000000000000000000000000000000000b7e5c000", "0x00000000000000000000000000000000000000000000000000000000b7e5c001", @@ -4194,12 +4194,12 @@ blobs_fields = [ "0x00000000000000000000000000000000000000000000000000000000b7e5c34e", "0x0000000000000000000000000000eb8dcdbf0000000000000186000000020001", "0x00000000000000000040000000000200000000010000000000fe000000000000", - "0x0edef98680cbea2855c4f0f152a0ecd69358e68b10da7b7e301f35ce709c13fa", + "0x27b365d73aa1b8ac1eb39c75262e2b87a238d041cc98fcb795f4c597c620ce64", "0x092658df33d4badeaa54da3bee987ed4b7a973d285a96229bbd71c564cad7449", "0x2fd0dfe2f0d0f4977a6c6d880237e4462686a8caf9e3eacf34b6a5159feac6f8", "0x0bb359d329306f1fc12b8b3a551903d4732e3e8814b2de27816ea59c24f1a2f8", "0x00000000009c707518004000400008004000400400000000000000000000054b", - "0x26fd006fd312bdf184fc64451856f788e40cf4aeb9d9a50da4c4be19d40adb31", + "0x1be1bf28dec1713b8bf50f30d29338963f2661a98cc83b0d7edf2010ac8b6e26", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x00000000000000000000000000000000000000000000000000000000b7f9d000", "0x00000000000000000000000000000000000000000000000000000000b7f9d001", @@ -5555,7 +5555,7 @@ blobs_fields = [ "0x00000000000000000000000000000000000000000000000000000000b7f9d34e", "0x0000000000000000000000000000eb8dcdbf0000000000000186000000030001", "0x000000000000000000400000000003000000000140000000013d000000000000", - "0x0d5581ddb590b1f2e972ae3399ac1639129b04a4b4282a219285a5dba6553cdf", + "0x10abfc1e58ab5ed471d9c7fedcf2b291ad533ac85d136968ea047db10d73d599", "0x0058e56291a20ba5208dec6c4e6f93513a7e475709e9292d09b7ca1c7147703e", "0x06d941e09284387689272aef891ff6ec71993e808f3a832c4d1fd74955b1901e", "0x0ed4dc2f0161f133a04ebd27d3f9b7ab3d7046c1443c15bc9530cb3f5d9e9e08", @@ -26052,7 +26052,7 @@ blobs_fields = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000" ] -blobs_hash = "0x004081e2169fa22b2772ab0bde677d1c43254458e4af0c5884cf49ba3f4b72ea" +blobs_hash = "0x00031d7de335de20811f08b722d4fba78989fa94027ff1a8eec54aaea67fe5b0" [inputs.hints.previous_block_header] sponge_blob_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -26139,13 +26139,13 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] [inputs.hints.final_blob_challenges] - z = "0x0d9e4f48a791aec62f6b7d1fc9035386da8a75d4a5eb234257b0e38a4cc7b9ae" + z = "0x0b4ef7a0f91b1c53bd4db4aec602254a28846ae5a42f2d8980d1912799c4b733" [inputs.hints.final_blob_challenges.gamma] limbs = [ - "0x810f80bc31d4ee4b1bc2e3cb4c28f5", - "0xcbb430183357d87fc1f80f3d1d31da", - "0x0b30" + "0x3fdb267131d938840645510fbcb081", + "0x65bb921ac3dc8dd116a3f59bb3183b", + "0x121b" ] [[inputs.hints.blob_commitments]] @@ -26153,18 +26153,18 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.hints.blob_commitments.x] limbs = [ - "0xcce5778469f0cecc548341f35f9ebb", - "0x8280546f7e9cb753aedf0a06fa034c", - "0xaf119193234c6f715aac4220979f16", - "0x130f08" + "0x665c40a423c8604a17e3da76ccc812", + "0xfe81e0faede6060a8108ca85ba9088", + "0x82c2811283002382832fef00453c0b", + "0x12b897" ] [inputs.hints.blob_commitments.y] limbs = [ - "0x5d218e9fd26f0a1c61e85eefe76e5b", - "0x571b53682bb7dd0ffcc88ba0f592a8", - "0x3058c697809e40f6e414aecb1c9a0a", - "0x078a44" + "0xcf949ef8ac7b342c359434c38b287d", + "0x129b3a7a403691b2c1b2b8ec052995", + "0xf4dbd895942ad8f1d6ab389ccfa412", + "0x070c7b" ] [[inputs.hints.blob_commitments]] diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml index 64ff802314a0..ff15cf4562c7 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml @@ -484,8 +484,8 @@ proof = [ [inputs.previous_rollups.public_inputs] checkpoint_header_hashes = [ - "0x004d16fb29611dba53004101a433c88fddade0ec60446fddec1589851839a774", - "0x00db58820ef17b4cb952c006ed78296097c3fcf7fd0fc3e3cec1f8260fc64045", + "0x00f69c1fcb0861db0c3231bc6b8f370301ccadab2f3011812ceb42eb9971d715", + "0x00238a4dce891405b197250d63713fe14db40d01c4faa5f7fa8bc084117cbb6c", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -520,17 +520,17 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" + protocol_contracts_hash = "0x0cf46d3e931602fb5a52d5f7f673d385dda8e2b9074db403ad47c7ce6612bf7d" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x00f30d99838de8d9e0b40bb5f19c53ebd2cea2e4e324a6b48a4db2655906ad63" + root = "0x2c031ebed6898291670fe35864c461640453222210fd1af2e3bf21cd6c843e7c" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1" + root = "0x0b278a94e22fcce62157812cbb310c34be4caf2a3e07dc9fbaad60ccc9eec278" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" [inputs.previous_rollups.public_inputs.previous_out_hash] @@ -545,13 +545,13 @@ proof = [ value = "0x000000000000000000000000000000000000000000000000003b2f97f0a76c80" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [[inputs.previous_rollups.public_inputs.fees]] value = "0x00000000000000000000000000000000000000000000000000d0f074eda98980" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [[inputs.previous_rollups.public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -772,15 +772,15 @@ proof = [ ] [inputs.previous_rollups.public_inputs.end_blob_accumulator] - blob_commitments_hash_acc = "0x00ff28bea8c07e7b060d248cb2071f813aa6e39e07e3a527c1739e6a7793c093" - z_acc = "0x11b2ee0dde26d315a246f5bdc01db8abe8200c6581201debd1cffc51ad26f95d" - gamma_acc = "0x152f389c138d41dde799d4f4fc748753332ddcd5bcd19fe35e4fbe60581534c2" + blob_commitments_hash_acc = "0x007430efeb9d4b71724707dec9df1317387dc0805f1e661f908399cb1e232cc9" + z_acc = "0x14e62a9182ef4d3cf985da852c472f211a6495dd7b9c0448614881fde7976d59" + gamma_acc = "0x2c3670eb9f5aa72fa641db94ee3cb6b20702995bb5e01778d878bf817a29c4bc" [inputs.previous_rollups.public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0x4183756e36181f92164c36776c2ba3", - "0xaff710205b13b83794ee63e35bb424", - "0x411e" + "0x4aeed62cda4bb0eea23d7ffa757f71", + "0xae909a196e9f6447e1d153223cc584", + "0x50d4" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc] @@ -788,35 +788,35 @@ proof = [ [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.x] limbs = [ - "0x6e2f87b978f4bca529d7ad90a41cd8", - "0x734aa1582c8aee32f8334cfc594ab0", - "0x21aa57d7e1012415e25e37ee62bbcb", - "0x015e58" + "0xc4cf9275c846c8448a3449c55e4826", + "0x6f07fe62607e3db61aee13d5838eaa", + "0x194a0c5c594fa5cace2268d4bed15a", + "0x190354" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.y] limbs = [ - "0xd8e530734ccb89f49a545e13ead68c", - "0x914523b3ef75387e032ac9fef36157", - "0x5342c94a6ba1df16b871173b323290", - "0x1604f8" + "0x0344a60f1f687d55ae4c6c259b18d8", + "0x7593ef1d5fc17f53588bc22b05346f", + "0x0a20d77412cab087efa30275962f72", + "0x115fb4" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0xc0250cc6b8725b2b00687dab94d327", - "0xd7f65a721538376d885811c9aafe6f", - "0x297f" + "0xc4e929443732dab664e16101a80293", + "0x530f6a6622e8402d54f45fcf586972", + "0x67a1" ] [inputs.previous_rollups.public_inputs.final_blob_challenges] - z = "0x0f20024c268f33a3baa0f8f38bddd3d70a7fe791632d4914d95c44e2099fa150" + z = "0x15ac535122173a1c359780151037ece00f36c85b773b939d59694ca158b3fd5a" [inputs.previous_rollups.public_inputs.final_blob_challenges.gamma] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x97853facdf3008deec021a5ad216e4", + "0x48ea1437fdf6155eb11409e3d48fe8", + "0x2feb" ] [inputs.previous_rollups.vk_data] @@ -824,11 +824,11 @@ proof = [ sibling_path = [ "0x1be72f1f471a29db247f7c4f19c03e11631575edec0695c29deba92770cce437", "0x0c0e71d61b37e5093a79987574f6a04cf58c7a6b47f650ec04b30cb9c9b3ccec", - "0x1f0a3ab28f16510e4f9a5682a8b5f2826f55082cd639c6b76e6e970d8bb4224d", - "0x268f759e38c9ff705a78c055b44e19f7d2b0227f3c4f2e31d6874550d498abec", - "0x09f661abe743a7c8125aa0498ca1d01914fdac9cadadb415e0d1a05934997b99", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x077df93ce467a49dde4acac6583cb935dceb05e4fc9e46b89acaa84893f27b5e", + "0x12b2fc2c75329888431e1f3abec5c810aea9fd591c813570cee181f1b665d1ae", + "0x15fd9e1a9ef5dc7fd655e1170456ed438f667f53ddcbd594d92aa1263c3c3120", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [inputs.previous_rollups.vk_data.vk] @@ -1437,7 +1437,7 @@ proof = [ [inputs.previous_rollups.public_inputs] checkpoint_header_hashes = [ - "0x009751d5fc5ec4f92e16f7b70c3b084aced0c7e9416fae20ebc6fcbca6b9501c", + "0x00fc681501d1718cd1798115dd644c4c4174f4e483403407d56610120866ae51", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1473,17 +1473,17 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" + protocol_contracts_hash = "0x0cf46d3e931602fb5a52d5f7f673d385dda8e2b9074db403ad47c7ce6612bf7d" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1" + root = "0x0b278a94e22fcce62157812cbb310c34be4caf2a3e07dc9fbaad60ccc9eec278" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x0f84849714aa969caef587fe17273c9fae12f846c68db0f1ab092faf93a29145" + root = "0x1d10869d0b732d24fdfaeba4212f8d8f161cb06bbdd67e98fcbde51be7f54af0" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000c" [inputs.previous_rollups.public_inputs.previous_out_hash] @@ -1498,7 +1498,7 @@ proof = [ value = "0x0000000000000000000000000000000000000000000000000022e452ad469ea0" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [[inputs.previous_rollups.public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1687,15 +1687,15 @@ proof = [ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.start_blob_accumulator] - blob_commitments_hash_acc = "0x00ff28bea8c07e7b060d248cb2071f813aa6e39e07e3a527c1739e6a7793c093" - z_acc = "0x11b2ee0dde26d315a246f5bdc01db8abe8200c6581201debd1cffc51ad26f95d" - gamma_acc = "0x152f389c138d41dde799d4f4fc748753332ddcd5bcd19fe35e4fbe60581534c2" + blob_commitments_hash_acc = "0x007430efeb9d4b71724707dec9df1317387dc0805f1e661f908399cb1e232cc9" + z_acc = "0x14e62a9182ef4d3cf985da852c472f211a6495dd7b9c0448614881fde7976d59" + gamma_acc = "0x2c3670eb9f5aa72fa641db94ee3cb6b20702995bb5e01778d878bf817a29c4bc" [inputs.previous_rollups.public_inputs.start_blob_accumulator.y_acc] limbs = [ - "0x4183756e36181f92164c36776c2ba3", - "0xaff710205b13b83794ee63e35bb424", - "0x411e" + "0x4aeed62cda4bb0eea23d7ffa757f71", + "0xae909a196e9f6447e1d153223cc584", + "0x50d4" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc] @@ -1703,37 +1703,37 @@ proof = [ [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.x] limbs = [ - "0x6e2f87b978f4bca529d7ad90a41cd8", - "0x734aa1582c8aee32f8334cfc594ab0", - "0x21aa57d7e1012415e25e37ee62bbcb", - "0x015e58" + "0xc4cf9275c846c8448a3449c55e4826", + "0x6f07fe62607e3db61aee13d5838eaa", + "0x194a0c5c594fa5cace2268d4bed15a", + "0x190354" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.y] limbs = [ - "0xd8e530734ccb89f49a545e13ead68c", - "0x914523b3ef75387e032ac9fef36157", - "0x5342c94a6ba1df16b871173b323290", - "0x1604f8" + "0x0344a60f1f687d55ae4c6c259b18d8", + "0x7593ef1d5fc17f53588bc22b05346f", + "0x0a20d77412cab087efa30275962f72", + "0x115fb4" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.gamma_pow_acc] limbs = [ - "0xc0250cc6b8725b2b00687dab94d327", - "0xd7f65a721538376d885811c9aafe6f", - "0x297f" + "0xc4e929443732dab664e16101a80293", + "0x530f6a6622e8402d54f45fcf586972", + "0x67a1" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator] - blob_commitments_hash_acc = "0x00e314212187820bcccc75acc041531f0e6f2139db72f9962951480b5eb309b4" - z_acc = "0x0f20024c268f33a3baa0f8f38bddd3d70a7fe791632d4914d95c44e2099fa150" - gamma_acc = "0x28a8c47b24266cbe95e6e5df4d8f583081a6e7d873a03dfabcf3fad3204acc2f" + blob_commitments_hash_acc = "0x000943f055f897ec226ed93872f748ef8ffdc4117e4e58942534aa407e19f9b6" + z_acc = "0x15ac535122173a1c359780151037ece00f36c85b773b939d59694ca158b3fd5a" + gamma_acc = "0x023bccb5cf9363a497e9460ebdcab9fca2cf81c09ad9ca4036277e38baa207e6" [inputs.previous_rollups.public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0xca8704c4fce27431f9bc6cf6bc5ee8", - "0x2e59181e0640e995e15724147eea98", - "0x5a08" + "0x1f75287134b2dfa2c5d8247c27c628", + "0x7c30f772ab2bc32a05d2536d16c6ee", + "0x6b1e" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc] @@ -1741,35 +1741,35 @@ proof = [ [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.x] limbs = [ - "0x1fc2db53f95236761d435a3d7a82eb", - "0x4f0266217c841c706ff759bcd9619a", - "0x6b2dfe9b2403f250a44b3a4a85c7a7", - "0x09f649" + "0xf13d1c4726963cf2451ad86a4996c0", + "0xa7d27652a38811be292b85e482d7ea", + "0x4d7f357aef496cde52355452ebcea3", + "0x0811b4" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.y] limbs = [ - "0xdf0f6a879571ea5e99241f6a774cc6", - "0x962be4a71909fb2b0c13c6d8aa4780", - "0xd7e987a1f4d2937f67abc39e2ce5d4", - "0x042b58" + "0x7c287ccbf3cd2b92361fbffa629ab5", + "0x2a3016310b8a23eb1ff0f322a61ec3", + "0x42cfa24cfab6161f1059441c212958", + "0x055571" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0xed650727d9732d1fc427beb2dcf581", - "0xdcd9e8dc02a33765f813f467a095de", - "0x0e9c" + "0xd517f1f19d34904d88614ff618fa39", + "0x76554aa46ed2bfefa6ad05b06badef", + "0x113f" ] [inputs.previous_rollups.public_inputs.final_blob_challenges] - z = "0x0f20024c268f33a3baa0f8f38bddd3d70a7fe791632d4914d95c44e2099fa150" + z = "0x15ac535122173a1c359780151037ece00f36c85b773b939d59694ca158b3fd5a" [inputs.previous_rollups.public_inputs.final_blob_challenges.gamma] limbs = [ - "0x551bcc798b08297e8823944cd61ccd", - "0xa11af380fa73225d8ac70a4862f1cc", - "0x24db" + "0x97853facdf3008deec021a5ad216e4", + "0x48ea1437fdf6155eb11409e3d48fe8", + "0x2feb" ] [inputs.previous_rollups.vk_data] @@ -1777,11 +1777,11 @@ proof = [ sibling_path = [ "0x1edc2329182e13c58f5ced1e4ca120ba845e074e81d59ee64d0bbd583ecdd429", "0x1f502972a4bdd0353e082932afca85331d93e89c99ab3a78511939c18eb14641", - "0x1f0a3ab28f16510e4f9a5682a8b5f2826f55082cd639c6b76e6e970d8bb4224d", - "0x268f759e38c9ff705a78c055b44e19f7d2b0227f3c4f2e31d6874550d498abec", - "0x09f661abe743a7c8125aa0498ca1d01914fdac9cadadb415e0d1a05934997b99", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x077df93ce467a49dde4acac6583cb935dceb05e4fc9e46b89acaa84893f27b5e", + "0x12b2fc2c75329888431e1f3abec5c810aea9fd591c813570cee181f1b665d1ae", + "0x15fd9e1a9ef5dc7fd655e1170456ed438f667f53ddcbd594d92aa1263c3c3120", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [inputs.previous_rollups.vk_data.vk] diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-private/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-private/Prover.toml index 0daea78c3d23..ef661cd232ff 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-private/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-private/Prover.toml @@ -3,7 +3,7 @@ anchor_block_archive_sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x19f1a0c09db4cd026f686e9c8fb45501a9fefb4eb1b4c6c328a51343a0094eeb", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", - "0x2b3b2f80ea4227dfe7ab4edec33942ff08b95b023d6d15efb0abde90594c993b", + "0x0f732f793a5616e304457e5dba29fd5d2d14887c08d27a9e29c00f4ff813c417", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", @@ -3061,1017 +3061,1017 @@ contract_class_log_fields = [ [inputs.hiding_kernel_proof_data] proof = [ - "0x00ffd75efda6e34b65121fde81a69ba5f2a45acc69b143f1e333d23658e80f55", - "0x0094776a12fb89f4b79a211bfa3a123207f9ad5633b79be105497666fb335bf5", - "0x00d17297ba98cbb8657cb604ec67599c7a85328c46b50b54b0cbc52943fd2264", - "0x009dff5d1b2b67b894899ebcc54bca90dd7480e42a685a692c75d0f8055bec2c", - "0x00c0d25d3d357e684dbb3e1b28e7aabf97967a5ff28a67c38886575be5b6babd", - "0x0022cb2794ffb670f60a8dff4602cf5e93ca43bf651c52fc0919a8fb973374e9", - "0x00adf3b1bad196cacf4bbced5c5901d3efebf39d6b89e517f94d45ccfb1efbd3", - "0x0028c69ebe9961c53434f6c4d4f3e9921ff5b652674b535f132a1fc7c8228de3", - "0x00fe3ad1f7d405ad161fe64ba928307a2fbdb9ac1157dbe82e2d6d72f5044edf", - "0x002dc6b27c1b5fbabceb49c8ed5d3c2dec4fb00afe60324b03cca49974726d60", - "0x000f1525f80fe686760ef1f3b292c309ab7452b0c3678b4c0654b5ae25a3f32d", - "0x00dbcbc18aef1cd4c03e4335ecd088883fd93e6a2ba98c10d2ac34cda77dfc48", - "0x00f4e56686b75cd63c78b800bc9a5fe549ca6bcd9d6eca61c1fa5a104fce5546", - "0x0054e54c83d00911ef88f8f1ed287779c630a34045420201d0669f14c1b4de66", - "0x0018c65a26ab7e3b8ebac5221afa73da55ae5c36c08d9a0018da7d5d17e29872", - "0x00711647e952591a6ca41f5620fa9a03bb75790f8f81db6dfa82c31548480456", - "0x0013925676e49ac65094b4d49d52e1a170e5039602fcf864b0ac6f7e9da2e562", - "0x00d91b375ddef300c30fbb8aeab90cf398034b025f3a80928e5648caa4305977", - "0x005482eb58c00660408674a52b2dbcf144f6cd81e8eae46f8472f23e676656a2", - "0x00eaca2a637d4108f9d875a6894f7b6d422c7866620003ae177a6e3d0f8144f4", - "0x00e94a79f13f9ac53694a4f4a7937305f9ee22511b40f32cdc5295f811329b1d", - "0x0092a64411b0146c87875de91204ed5887e86adc0e1420b95095a40c3bebe4e4", - "0x000b8ee89f7b2e5b15306b27947219fa81b6ed217c7e2f062405610b17a3eac3", - "0x00cb681d138ffcd55f855e933bb676a70e00ee0cfe6b052c3ad9bd98b0f2830a", - "0x004ad7e724966e80273dd1cbc4438c33753f51003cfa7a9539e655b5500b916e", - "0x00da0e801b70978301c27e0932a556f858dae29306da56a5e9fc4d12ae81d4bc", - "0x003c88b248de4edcb308ffabca61a81d0badf09ab8c0db324115cac211a33315", - "0x00fa54e31397b715b3b4f78d101a92f46182627272e4bcaa9661c18423b7aad2", - "0x004bf3e6103dbc0f11e88e4a96ae979650b453fb23293d6042f422ecee105c8e", - "0x00aa32266a8e4a7794d11c5cdc0b3a94828fdec171940886f71c481595573c45", - "0x004d234cff37718289fedc718cbc31527aedea95dc6dbfda696e03b7eabf9023", - "0x0072505be5605360c6974f2456aa1ef0a20a9d080af340cf4ca3a9a605398257", - "0x0027fb05374784e684c91cc9d14237550a7c4f394cd83dc375629c0992093892", - "0x005a78001cf50b1003c738fb1d5bafa348bd87a995a627ea058d269df6467538", - "0x00f5a712d8697c55a2d079a425ea01b2d5f1835a6024452a4dee96d8d84ce12e", - "0x0049b1ac87b46fb780996fea081b31f7fc3a48e93b44c74b961086fac1dec208", - "0x00fad978518359b69586fd3898da97a077f2c7cef71f5092a187a0c514c3af05", - "0x00c59283427a17f123d663975bd19939ee89775b8e7c94fcd9bd5b3241ccaab4", - "0x00923ee87ab5358cec0dbd2a80b8692b4bf7f4dad1f8d844f4a7f9ab4d8bac8c", - "0x006b4cfa0700b36c4eba18ff146692a3280bbfd3ca77afff2ed4f28b77279806", - "0x00b3df44b2ede48afd7f8623cc1effc2ba735a26f84c7bab2fbefcec7811f5e8", - "0x001c2661dc49f216ea9d0a8aa92b42bd3b47d33fd14489514cb7f8bc27904e48", - "0x002dd11f2ea077b2dae65a51527862c022df36c0307acd228dcfeaaad24c348f", - "0x00cce3192f03077621ac9dfa9d3c74578df9fc4cd92279c5424a5005bd96d494", - "0x0019b5385a04d7a04bc5e959cf3c7ab40161643e708d0e7fb4ed3e041ea05b27", - "0x00c69e7eee0f2d74ab6f09f20334f09d71c70aa1debc9ea6982a4466a1b0d940", - "0x000470dac797cee8c98eff759b080f250f4741af184c23ce815aea4cfc4e8c48", - "0x0077db2fa409a80393e0e0a2c11e9d70c2e5a8638c1c9437699dec6294712973", - "0x00dbe9cc8ea14f3af035459adf3a81e8907f6825ecff3d23339995592e3ef0ab", - "0x0005cd8fa6df56ff6bea8aca5174379bc05b1be3005208151bc6ff12127acfed", - "0x00fe3a1af45ef5e3ad0e4600434f0d35e2f2497d0f2b8af16731563ca0e61964", - "0x009e0611af494263d72231e5bd024838ee9d685df45054adc5605287dd911383", - "0x00cb244e2dc1b125f1b63565440a6b12d7fadd2f224dd9398eef59dec2c519f2", - "0x00ab953633f658117abda1c94812bf746724499504dab6d9f73ca4b1e5b479ad", - "0x00a5e839bb44dff0b346d4785e34274d2efbfc96466adbb951531aa23745fdec", - "0x004081ac19c5d624029d58663f1a2d81fb43559ee9f4a0ada6939ee3cbcb59d0", - "0x00fc77c7714e75ddd629369407eacc37d4f06ebb6408e1a674c2e6f7458486d4", - "0x00200f4567c708d8bf6305e1596756bf740c1565b6685bed4acbec81c21e334d", - "0x005190221e0ed1fadb52805279274d6070b4e66e8f99d6d677c5ac7698c5585d", - "0x00c060759e742ac60dee8624e7bef11d95c25a75752ba54a9756cd8a3ad29b49", - "0x0088bfdbc2d149a96860d92213b3efffe302b8047b685f2f070f92ffd11f126b", - "0x00a9709e3d7c990f3e9df6aa1158b267befce727676a06470440a3d439493fa5", - "0x00481b00e3ea9fed099f355ff7d93f845461ff60187d1a93048e185fb3fa17b0", - "0x00b0ad26295afe5052a8a146fcdd7256616c8502f52c581d39939284c10b88e7", - "0x00f37729095752021c4c756ec5f82a1665dccac4838106225af649aba0719466", - "0x00896364974c0f4ab9ddf0ff8efc0ea0291196a724c38c9f0bfaa824669e735d", - "0x00ca06d90a05cfa04f1f12c01b554b77ed4a1803ef900d1739e5b7e0fcc4298f", - "0x005cf219fa11cdaaeecc9111a3c6d5d9f6b6ac48d73cf2ca8459f0001a7252aa", - "0x00a0dcacf4d8909895fa74ac2fb19dac071f3eebaa87a9b288569545d3d4a459", - "0x00560885c50c9b3330f2883185fb9fb889d8274b7aad7c09287602cb34b57736", - "0x0014091ac9016c73f76c16da9ee2d7c0fcb1923dff44069f3e0c48516a489dff", - "0x0011f6cc01f0c634990c827ed8ce622106bca44d800dfceab72eaca7b97aaf26", - "0x00062a8bdd4c181da3c0d8db39fd5e3fb4a2c73502e74d1582545241cee24f6d", - "0x0002dcdf3ef72c76dc4f2db72b71f0c38092e7336e4819ab3071674f1e213948", - "0x00d300b5e4bc03e1786182b5e2acb06b9bcecf220dcfedf8282cb66daa14b336", - "0x0098bd593aba34edd8c5ab0196ef9decf21b554fdefd3d65e20e0bd10615f893", - "0x00bdae3b00f52e096681762b639eadc26f8d5ae0152e435103664816630998ab", - "0x000d4377eb4b67c45637153ce4e9d91ed9cfb974ecc78b839f6accdacb71dd92", - "0x0074b62778d941a2539ff5f3c5612df968c04a5edc39722fa9c58fc6d79531b9", - "0x00d4ebaa8947bf046bf3d9c56661d4974fcd2c59db6b00534c338a65567759eb", - "0x00a53e0d5d5a57bc2b20f0a6212d3dee63816e0ac3adbfd7c3c688a6477d306f", - "0x003dd28b3becf359f1038832484168f47ccfb88daf62379251f125c14c75000d", - "0x00049973f1c05f070fe62138443073bbe3f28dbe2e0389ba7350220dbf127c8e", - "0x00450aa2c34fbfcbfa2ff9c037426f06c3fb1686ee6f4f12f5b4f5afc073272c", - "0x004f8dc9c25c46adf54e838982fcc9ab2396a13a8810d4cf32cde4168ca64f56", - "0x006e8e03f85bc18191b58538adccb21ad65246f59e591f97f48733f7d6bea23b", - "0x006cd3fb83405999e677cf5d7487887acc7b1cc496aa44e297166bc89ce65024", - "0x00960212536689cdbba2bb302a06be296fafa80c8188d0f63e081c7c8024e9c5", - "0x00544a83d08c93b1389d7725528861b5026c2c3e85cbd85ecb68f3082908a73e", - "0x000e7a9088d83afd167463f0837390214f4000db121bae34a90bca1f159b7e8a", - "0x00f98fc88ea73c8f6942d155ef39829684cb33dc0a9b408309fc4c1bfe22b894", - "0x008e676979c9c2c35c2e53e771cd34706c337f220952e07aec75be0d51145027", - "0x00f3f80db41e4d5b34a48bcfbcc7f82f3b878d81da4ee41d739eca84037b9e2f", - "0x0054af458a4daff7aaa295af26733ea8d49749b759bccef54de69638fc93799a", - "0x009d699fadc87947ea6d2c12445c1a5265ff01ad0c91582fa4bfac62d95cd3ad", - "0x00a2a16b2d92288b9f954d012ae4db21e50d538a94c38558cba0899d7e73e2ad", - "0x0067b4a5355b3b0087041a43f2ab03ee7745df904fef5ea244d039c903ceb091", - "0x00d7a48abc04a190ba3912271166e8dc93fc86be702a6411d7d66d6ecb9b293e", - "0x00d38a3a570b4d0e3bd2a304c34898351936db4e8e9278f331247f77c736b210", - "0x00872ddb3e904029c680fb188e5475e855fece2fedd07f2a4ae1bad46ede51d3", - "0x009075efaeaa2b761ac8520a05f8d633d5018f63fd4b27bb140fda33483b33a2", - "0x0074283d7872f1ea5f1b97b8f9921faea86c1cdbd66164eb39dffc6bede8558d", - "0x00c56fc456899d3e6ce3f1affbb9b7b070b7606a4378c1878555c38dda18ccd8", - "0x0077628608d0615b89905aecfc878a2e56ece2359ef12a196f200d094862a2b9", - "0x0028bf28f847b0f28ea3bcf441390d6688d6f388d6c14d056bf810c0a2e36012", - "0x0094b752463346e22191e752f55e58adca12af840b7491b8630e12e5bd53d87d", - "0x001f60ab6e2bfdac64e66e9d67553501cf841d8ae37fe2aa8f469ee7680760c7", - "0x00dfb73cb441dab864f6ca5fdbf5cc6278ba1905b663970340175eeefcbf90bb", - "0x005c57d2a80127b9902f9799f172fe384852ba94a84e8454b823bea37b6c6bc6", - "0x008350a4f1a5bbca102bafd6aa0fdb0d547cefef0f251f0fac0bfdbf45f6f535", - "0x007e1655610eca51be0a6518710cd90ff44cdd78a60ad37bca7a6a99e784c81b", - "0x00c896fd7f29c3be28f83c987ed24a96883034b4e2c86afca477b70ce3bb48a5", - "0x00ac938106af7be51e768d9f6c0b31b2e8a5aae4f948fcb965e8b512b1b115c1", - "0x00821ca77be45ecab881a47a312782959c9910da5c92ec3b465363bb9318eaea", - "0x000379a5292696b0c00395f7a88f399d57d1e82553fbf2b00edbbdfc4b1cd670", - "0x006a4a43463fb2797c2a64e82f5ba9cd0aada8500947b370a2b6c1509eeb96ef", - "0x002320aebd6d209852a8b20bc96027da97ffe47230146f331c3b2fe3ef5fd166", - "0x00084900fa32b26e930cf45f312d3c951b715d8c0d92b6d7b15ddc6cd2dda6f6", - "0x00094fe8e88d007793fbbd41812b45ef1bb92bce16f1759c030f0f30e5a78b35", - "0x001c4ae4a057fce62c55a015018840fbce0155f39dcd90f1c85bf0d3cd478320", - "0x000df43e5f53ebcf4dd664c94eb5cd93afb3abe811d9dc9da7b1679ece9bcbbe", - "0x00c373b8a8e96f6c15f165aa1f44677c65ffb3cf2586d235017d2ec7202a83af", - "0x005ac0d0316e9e5b58c9cda198618bf934350ca446e1d89b9678d8febfa7097f", - "0x00db546a5ffc90afe616014af94fba468e0bf9294a9fdc9cc018fce0bd187f79", - "0x006f0f795c70daa026780016ab81ae08f980dcbb16f5b66a48bdc8c1d8ed78ac", - "0x0053112e3ef6b8bff7d3c974890bd8f21f73fcd29104743047857d1b28cd5272", - "0x0012dfe8535397ca222b82fd8d1f81049b6b329fc8e8c04b9df4b6b7a31d8d5a", - "0x004c579a0cabef2ba7b850c224d97eafe93ed023c801ce34d404542dc699ef11", - "0x006438d149b3d5c954b5c2c6bd432ba51f72db66407335f43b20487cbcc1526f", - "0x00e710daf787f00e5b597f9bdc0d9a4386ef718fd709986b1a8d0b28a5eb81b4", - "0x00729aa5d89c00f22753a7b1e4a2cd1266de1d310b8f7d3bad6082bd857b7bd5", - "0x00403c0b7e953a13c5256b9462c07ea69472714235189cd7734e0d538b8db887", - "0x00fd4ef4be186ba095017acc419a1a8d7ebcc5d3973c4cc77cc164beaba73754", - "0x0099e12b2609e52f328f354774bd596258bdb35f33480df2474ea08696b87f50", - "0x00b82de1aa129698cca68f2628bab1079b35b17e437002ca53ed3255e1d9da34", - "0x0065c3db031004b4a6e4990921825f56f6f422d1286d4979c7f9d26c6358e712", - "0x00b9d89ee4ec898236d76f64d2dfc13960d34c857f9f14d1bcde5a6b3e34b7b3", - "0x00e6fb2d7923e923471898b2a6abd8e68b1e633fb5d8f2a97fe606e6da15543d", - "0x006bbfa2f0f0daef13ab7e09bb0ef99b279a6b7ebbbc12ba5a9f47b9106de112", - "0x006595e5c105f34c8c4c4d4e67d31ea16155682a65c1ba7f79cf27212b8d361c", - "0x00d1a2660dde4ab6a0ad877f0df31e2ff0cd0dc5323c01821f599d642b951be0", - "0x0081d8bcbe038387d02c809fadc3bce26132a1ad7a47e330ffe839ea1c89b3e5", - "0x00576b8bd38a2dcb3ec1b8ad9e096c202ee4fb55aebffc89a03d2d47f26add5e", - "0x001cba28aaf197f41e1dc41a81d0c88fee35fffb6d042d4487154caa422a6d8c", - "0x006b81e2330ab8f4d1ce4db000b983bfce4791b7abf2efe5595b55360dca7969", - "0x00b4401865c0c3946f1d81289ab27a6033fcbe235401c37f22bd02c7c2e24428", - "0x0006127b874f1cecb3957e777b4ca2fe721a97d2fdad5a2af4f68413ba979959", - "0x00bb7c0a9934bd781f9f1c681acc25f427f07bd2e78aad85a501d3b606984495", - "0x005d76103ead6a757f8fabb9c72020d6bb90ec103d3e6ea2f8692046cdcbb45d", - "0x0019709bd085b1f93613b32fdca2c6dedd0730a646912fc2f49339ad308144f0", - "0x006eeca96beb05e0f9f698616df386f9712d15f0cf1c1c5cfd6afc5225c66948", - "0x001eb5e07beca7bd38bf6c4b02e7997ecd13980eaadaa86d6ef58c2d3918c62d", - "0x00fe00922708a2aad3a04daa28a593b6bf6acdcd823d4625a931c0a6485a5aec", - "0x009f237894bb526fce60e5c637901a1d3e08d385a075700e6b022717c8f447a7", - "0x001cc87573a2403b57c33c7183741d6d36c15842cdda37d23778d145d14da4de", - "0x00a9adcd8429ef9b8f3d3ae132171c592dc0802fad274195e50ddb73824694c6", - "0x0047dc2ffb61192b0c493947c88b1ad1ad7dc0ffdc3e0c04cbafaf769c536220", - "0x00c059a88961db19f636a82854f64d1ded34fecd9c585ebf9d4aca2394379e28", - "0x009351d93deb3b3ee7a35aa01333ea9ca7d61c992964c07401b25647bb37ea37", - "0x00db6b15ffa6ec93d39147b7a9af6aa98bcadc690909f308f2503a780811cf9a", - "0x00fd6c330d8dfd651c813ca035f477797596fb899bb11a768f1b1a52ea85755d", - "0x00c7774db0f4e18244137cb81719fc2eab000d9d153103ed8dd8f32c4edf1c13", - "0x00afc4f9d1ff14d489dd68521e0ded5455d70830991dd6e2708a58356ca12e7d", - "0x00929192a946977e99104ee11d804b4a08e3d3da6485657ca0627e4997379710", - "0x006f0745aadf72ab233cfecfd29b3597360c903c1e84df03e0520ceee23b4a57", - "0x0046f5e6db10eb3714b755db5c5e7c2b3ac2668774fdc08c735441279ad42d3f", - "0x00ebd085fbfc64309b050d27d23aa593384f8675192df988f0622d2326d4b5fa", - "0x0051d30985d7420fef891dcf954577f43f72442dd14958007069161715fb81b4", - "0x00412c89c8f0decc36298b1fc5ba23469ac29cbc49c69daaead41bd19dc09582", - "0x00f8fce0cbef040beb905b34ae2c996a0ef885682bbca113f8285d2db57577b8", - "0x006c0ceaba27ceda641a17b1427740c990e1e437c77d5e23266872cf00a36c2e", - "0x00893b6de2c88c4a7683f0ff07674b3df94027059859af2e7dc961c5dc5ef422", - "0x0035e01687f7b8d267ddbd5d06d920c1dd38bd2df81ea60b19c5462473a330ce", - "0x00859df0bc08c635e533612e5076771e2828591753e04d3334e3e0d05433f144", - "0x00cd9272cff295baaf871105b6ec5122314d3ac7c2ee1b2f9d0e7879318634a6", - "0x002c87cda016444dbc917e11d0d8335f61ede22f4fe50626bb5f6ef828730dac", - "0x008224e5fe0d50a304acd9ee9c68e192b08f6467a546e34706768c971ad66147", - "0x003f1a06b9f95b85a086f203180d62e04cf14a37d78619467625a2d1f1633f78", - "0x005cc6b58453d764cd710d8ab736495432f18e38d08c003727dd87bae7b42c93", - "0x004454633281b2a338fa9c95968a5b275f6e1e5aafad780934864602f1cd2087", - "0x00e5c8023938a790e06abc1b8106aa928f46c2250bbbd4775d1a54cce7baaacd", - "0x001f916f9091b389c433ffdc4213efaa669981e189ebb69d3c284978e61bc15b", - "0x00e98e83d99d75d0fea9fefc315b8948d0f9a7acf672da99de21c3404da94718", - "0x00feceb7c5e1072097e2a845688360588446cbe818d5839cef07ad1e2993bae6", - "0x0005cb012c5aad05df939c952d4aeccf8fe41c374f89cceeec9f052b9e4d36ae", - "0x00c5120938da314252f6bcecd19c59c6dba4ec7b5c8e520d843d4a2de4f1b600", - "0x008a994849701000b98dd8fcf80ce7b201a879c16669149dff6402bc40e5a7c0", - "0x00c97d832d3751bc73fc6fede1bd7cfa98dd2c4bbb68a6c8383839300e682450", - "0x00b28f05bbfec9df9bab03e383b61e03be7eab8296ea15b4dc9ae7018b05f410", - "0x0045d0948a36255ead2a4e3f67a7998d1f43ee582cf8e2fe33956ecfbd94a3f3", - "0x00803739861d21c9fed48738f35ef388d3f824a867c3adcc13867a00f7aaa841", - "0x00cbf27734572c73b5a951d1d670c4424d6a334eb0df45d45eb6e4e32bbcc1bb", - "0x006626f2d2e74ed28ce5e8e928a6cad27acc9af56f54bcc011c5e82c797f635b", - "0x00ed10c007e316321f34cfb631ff8260203cae956ae96e5af80c6422a3898917", - "0x0063d2fdb6e2c228381da5d260f4b417408d813df544d3a6e8bb00801d051bc8", - "0x00fa593e59765b7a27b7c31f5328abbc901fcd4984bb548637760c7d9626a442", - "0x00b97fa0058eeb124eef202db8a976dfb69ed659cacb39f23bf56f948fd7c796", - "0x00f94c2010645d948185e5c3a2ac60462840e4a871a92af1f64df8886a580286", - "0x00cac18445eceba6c8725cd0de1263d5c4173e5d0cf7aab73d738b6a31a45a85", - "0x000a2113239fe3d27b3120542813e1bebd70cdfcfaa953296fa32af0d0737178", - "0x009f960132dc779a78675640b618f3752d1790204bfaf8159cff245718f7241a", - "0x00e67a98c71548b543e46295c54f2231970d238c26b24b9daed786aba53a2545", - "0x00fb5df950e6965168f0a8f3f66864b1b620d6a96fbae80716c76f59c3a281df", - "0x00ed3914ebc916dcf26e790381aed9a941d5c69b262037cd75736e96362e2094", - "0x0087f910e892ab621049823d5631488bb2258fa10af61e8ca5b7dee6ff5422dd", - "0x0039d386b2a5d26debe8f0fd33593877c4d511c07f036693aa8a7bffd79479bb", - "0x00bf53f9ef776b2dad1e14cf570da2b3c6ec5188abab81f5b629d7a6331c43b1", - "0x007ec3f9527a354470924841e137b1df52cf2eba5ccf5b9f5d9b886749bff249", - "0x0053071b4a36a52a417530d34c3591139d44ce602dd2c8eaf988a95746395db3", - "0x000587592f2468934db51946107a54558d95367c0576c1ce536744fba4492d71", - "0x0065af317f0fd32d37e628f8e18c9174fbb669203ff313a65166b7431668cb6c", - "0x0044e779e4e05417f85967929a69a34f86ec199d2ce31c4848271b9daedce37d", - "0x009d0d7d8695c61575a96975e8ad5bd95322eddfde0a6af9e1a7df016fc070cf", - "0x00c187c9f42d0b9e52ec528b8010a89dad2195422406a6e3985fe3d93fc67b23", - "0x003435fdf41c90a3026d126b5c7d27a4613961d4e9140781c2d9da7cb93c5177", - "0x00a4d559a67cfafa5586f4dd41a127feb8922538dc5fa6f674df6d63b2c51ecc", - "0x00a9226ab679d1fa7fddad4a15866812cb88b3a4c4b36c2026390fea5b69b389", - "0x006c9b8b90fa6126ec0aace713ba6b250b0667032cfddfca72b473d92a5007cd", - "0x00a0af11b05e1aa5560947d6c7addf8ca31018d34f2dc6d32b3d0ab074e63738", - "0x00db831fc2d3815776aaba48befcd028892967d4699164bd5074f8d157853d53", - "0x00cdbbff416de0f6e41582566437308ba8c076848019d74ad8b49627c51a4f73", - "0x008179ea3b56e7a97e80c54948dca87bfc121970837357339727f1620c444fee", - "0x00569197e1d57f2e55dc558445e60eb39874afa6398f62d7e5b13c7122f0920e", - "0x0033b1475d787c2328f268fa21ae15aa7f23c91f1807c4252b4af906b0a5017d", - "0x00ba222d8faab6bab3fe7924f542c42703a4532ec2b12db64941d6da94042baf", - "0x00440007981d35f9807cec4ab3c1fccb1a7663b4b519319a8ff702168148cedd", - "0x004b6a9db0814e8745b843820b311ef303424f7d59b36e8196b431eb4ad1b5e2", - "0x009974c2cf09239241ef41cc58a9876f8e139cb9901a4fd601661e61738effe7", - "0x00497d94e7ee3502f82e0372b6dcb2c7d6a6baae2806e8f33e1102b8b09b9a42", - "0x00caf15f143864b6d30bc45cf25e31b4e44d059e9ee5d3b680a0cefd653efe0d", - "0x00434f6eb2de9d610084a97a35db3c96eb243fd1c32f05c2838366978de98723", - "0x00c295e4bbdc97aa43b76749cc47e59454add92f808ffb8da24578bcfe3172d6", - "0x006f9d8f49484fbfce068b40e5a8a861c2f337bda1d4a9f2798b7b6930df2812", - "0x005bd671744dfe868cd0d6cb537aa55aa06384c9c6a996cb4c9ed464c7dd57e3", - "0x001c3d99745d675ba6ecd235d74dbfd695e266a4d81305f4b5657ad324874b27", - "0x00a2f2e6e5c4841bc4b10bdca84461f16fc075f1571b5755f05630cc92fa14e2", - "0x006b1592c2792f603b60674378f9497d74c510028b91e488de73febe4861ab07", - "0x00bd696fd25342d9857e95ed3ec8f9e98d115f47e6bb66036785e8883939987d", - "0x0015c4a748cadd901e0c9b8349b807c87b6831e006005fc9b413c8c9bd698fee", - "0x00e107f7e3ff4ecbc45df43d5d1cec06baa93f01d4b4615a9453414084f403a9", - "0x00efb6503304bcb43f887f3f0486c57dc0ff4e4e669e32687e889f3e5d46b9af", - "0x007a9dbf1a582cf78d81a3a40e932e2bc00ea172b755d780920034f5ea6e1b60", - "0x00e7eecf2c063dde782cd63eda3ba4b42f9827e68711d317e414949fe9cb0710", - "0x0008935dcb8e91efc2b9831d4bac1dc4e56b98a8159a40cd232c178d5fc5cfde", - "0x00cf1838d052786e8dfef6a7883190317f4a73357652d5d665202cca1429deb2", - "0x0010c3ddf277ebd93bb2d5fee0bc7d0edb843359e64c5dfe82c3b0d48efa873a", - "0x00c824a9533b66ab045697eedd253fa18cb1e95d850249d3f09c2a938dcae0d4", - "0x007156d6b02b018cba8760a0af3756a3b94144076ce812e11ea9b00d050c0efa", - "0x00b4d9bf8ede6d11f69b972edbf54e36e94707f49fdbb17300caff5b7a1d070a", - "0x00013d8a25340fedd8e15e8d25ccb630aedb822013524edb278818c9cfcaa81b", - "0x00394cd7963cd247252695b972c18ce9682a027a22a351d06181645c929e82d6", - "0x00de672f48d3d8eb72d64a03e3672b70f9239c913e3fe02eb0c35f722406e1ac", - "0x004508757a2c12e60f996b6848ca330fb8cf405e12865aab691bf974752ff42f", - "0x006d7f4d16aa07e6c931e737cc01a9415c9b02373acfca42f3dae9526f71fae2", - "0x004e7f67cc8442552e1c0e09d9f758a3e5a869e284fd3f8bbaec144c7e9a3bac", - "0x00afb991b35b029c85b0ce6acf7ea08c11e33a5e7fb6d92fcba5217e5ffd1a62", - "0x003f485ce8bf7b480c4c4734ead950995025911a1d48fbcbee5095fbccaecc0e", - "0x000d579c7b1e0ec1f4730f510b9c72f956117d17c8a3e6e5446feaf5b9d4a50f", - "0x004c890392d4210e246aa06c0053b88d0bd1a53f5e4f64bd3bab3f5d9ae99c82", - "0x00625cf279886246d867cd940c2b3bcc756668c95c8ed06025055e7d38c675a6", - "0x00b1d6b739b9d1b27a244adf9bb95e7de44f940729d73bc50928bbf4e7a075ad", - "0x0056dbd27a9debfc94f76a80513b02c16280ff7015f6231530bd24d860650416", - "0x00d25dac66eaa0d1bec2a3e5a4a477a4d5478d15c628f0c1ddbcbc1631bcc567", - "0x0063e82a55d1561156305314214f1ad41985feb85435f9a31dfdc7503446a8d8", - "0x005e83f1c176cc85d3196e495e6d2418374c83b2e945e632ac5ebcb51e5ba22b", - "0x00b82bd386fdeed319d28d5c0c7b979759b86cd6112475169a5dbd8c447743ae", - "0x0043f95a57b0747d61d6528638f74c23a9292bf01c68fa7c9a2ed646300605fd", - "0x00b6a28c85cfceaa33b6ff1e7b633844f464ea90fe4803ab8d6c70cf789ddd27", - "0x0061eba3447dccb6af71f4d2ee1a0a2b1c536e4e9719b034783e668ee4d22c93", - "0x00da3da7305e90e2470ad554f72c3fa39f0ab2ff4a027da47d6fa339eb54d458", - "0x009aa07e92693637da6b27b1a59b7269ddc3f6fde9c2f7f0b0757709ad5f10d9", - "0x0095e4e9ebc98e0fd1a463945051c4fad05fe8e7a40de7ba0955481c23246e5f", - "0x00786591f30ea8cca4d2e6cf5e8e167280fc88b492ba3d66a4e820c4b58ddf31", - "0x00d293eced477f1b512b571a896748fa28fd7b959de24a27d18931cdec7f95ca", - "0x00488fb8bebf5aa9a9bb8fb15d198700f164dc312c78b13d7a549bd7302093d7", - "0x00ece734a1714105e1efca2a23fa52b530221dfbc77068d6102ff528a2a5bcc0", - "0x0004dfd8541ee0983ee999f8fb3319729345ae2b3874e3dba25d9e1cb2a86136", - "0x0045f7705a9d879316b815a2168c2aa064bac071079da801743be070c219399d", - "0x00080b5740d36fe624daa440e93a2726b3c06d73f7fff4ee665a2fa7348b43d5", - "0x00d7ca72828209ef2e035b944b77626bf623f4d5a47efac129ddd51080dbfc3e", - "0x00a8532039dd04a051582395ccce3f4b0ca8aa0bd97a14ad5a596795bc55bab7", - "0x00d3b7dc8a994af1eb3b4cf640a038752d50e6b13ce2ab32ae9fa3c4094bda53", - "0x006cc4a20d6fec9047e3216c530863d6937f07a772545c8a5b0a6d7c440b1ea8", - "0x001ce20b88ba8332c8dd90f2b68f22cc0485ec1dedea804e2cacbc8678ad069c", - "0x0026104e7b5f85abd4de1a71197f15ad38742bd9e760914368c4b18670379c36", - "0x00b01e7c7738117af7cebe580cce6d7a7e612f682d56ec276cb1996eb8900d37", - "0x00f4485c9ef6dda339253649b1f9d67e09508c3bf3da93953a5fca7e6e3978bc", - "0x00793bcbe79176a6c421979524aa30b789772322ba10fae14225b629fe602a56", - "0x00ff6805402adc003952288a2353935c668264ab168c10ab655a1d77ce168d1d", - "0x0068cec87c83f4ba2cbbb2ec4dc16984e6d86261e02900d88e17f89b8a8eed7e", - "0x001d932cb122169859d58ec76cea9a7e93322ae34e59fdf0d69fe03731a23b1b", - "0x00c31104b882eabdb66a593989ba644f242cf5bd93bc558be98baf02f595946d", - "0x0073547358ef777cb56870a820a78f20697c40498b51d11e0dc34d6711f4e24e", - "0x000851cac7427e53b2f70000c0a2c7c96d31f80566f35986a22730f35a9fcf91", - "0x0035d7defd9d73f7a6bd058f93938e352e372f580d7098058b2d8751043f9b16", - "0x006a5adf37eeb382765b95f83ae4e95c9df07d89fb47481b299664aa254babc6", - "0x003980f4a613aa9dde7568b58f4a86c9c832cecf63d2800e6ce4466fa47a95c9", - "0x0010b01decd2829c49145c579cc8e6b8b1066ab168df17c7f2ae4b218c396225", - "0x007cf6b636072af9ac70356d3d42b567e39d1c0c725c1dea9a8dd2000185a4da", - "0x004dd769682eb9d81c506a8305de20847da1a6b6f1b0b62c9003ad4cafaa6a9e", - "0x007194cfe26ae27ce1aef7afe598369b3d08cddda1175f059174c81f391a9885", - "0x00322d54b321e759ff7d83d1e28aadb279abe9d4d1baeaa8de5ccdf42c2e0d16", - "0x00f3f115f2b7025c38ea32578820435340af0036dc7360d1a3cfa69979090872", - "0x001f7bee2bf91a6d0ea6a10496489f6aca2a383905803c545c7ff40f0f711142", - "0x0011a91dba977a45fbdaf8adfff1eb57b66b8f87e7db1de8b8d4c4eb9ccebe8f", - "0x001e57696e18d9a688cf0002eccdc684c15cad451e679215e8a65f862e3320e1", - "0x006421b1cb7bd2b13311a859c59da97fbc3d5d5bc25aefd900ad4e16b8b3b0cf", - "0x0026b17fc8bc48c88e047c8b528edb21835a18af2e0d874d381303aa904eff0f", - "0x00c1961652e30e94d73fda8d799e423d8bc764f6d97dd8ede1a19c6c5dc70464", - "0x004a6e001397659e7a0bb279be9b7903f532e7b44590f00b6848754bae009d42", - "0x008a9dc9489f4523e93daa72821dd65ffaaec5717b18598c93ec6ac079be3069", - "0x00da341e23397c124f0d53ac401cbcdac3c44747c1bac1096c6d98c0da183d5d", - "0x006c58a3f37c5df707e8d94c2972beb52f15e47355539b9addc0174d6c6be209", - "0x00cb187f0e15164cefa73998eb47927a9916aa3260c64b60a3d2d6f652904e21", - "0x00ba08f432383d58568473298f2de33e1f8ff2166a2c0ec30fa2f77c55d4a045", - "0x003462a547dae02a2afc2acabbc6bdd6d564c04cd3adc5ecfcee0851646d7e60", - "0x0004498ebc76965512143e2f787b1616d4f25a3dc0faff3e8683c587ee70d949", - "0x0021f3ce4afb60658b25454056f963f050534837c6ba9e4a7644623ca7f54783", - "0x006d6e9c5e2ea31cafffb24c503396b596cee93175fafdc93727e4e3e6c700f1", - "0x00ef307836469011447a855cb184a328141b2263b4cdc9b1e7414f7c419b801b", - "0x00390b4f404ecfff6e61d5ea37e9d75f30d3dfc700b2555495d1f31ac8341c8e", - "0x00b887045c4b1a3daaa05c483381500a4d462982b2ea46b255886f513fa8ccd1", - "0x005d616f0e3db7ee09628b2b5f553b7af1ed979b2c627b15feb2e2a3655c390d", - "0x008cb16a58c81f3ac9242693bea36dab1c50b074ef01ac832250d6a4302071a3", - "0x00e12fa70a8ecafaef84b55ba80724b6cacea2737fbe24cf88abddbb787ac08c", - "0x0009afb6dfdb9ffd01daafafb6286cfe2bac31f92985a50964163072902afef1", - "0x00a8bd1773264a1d771aaa2af0b6acd9123bae285aa5514f984b16723d012868", - "0x001416245c921a142996e804c835df3f152603640503b91e1695efbdaba4dc2b", - "0x00c918d3e883e038e1622256e0b92f6e2b483dc6d18c306efad62b49e82ae128", - "0x00f3b35c543b95d32e7bba0a9d40d8f2707e7761e25122b1641b028920750774", - "0x00b76f6e2559d53433fd0f7a199bf872490e516ee6cad92a6b5ba4cd3ae186c1", - "0x0089ba99c77ef9780b4d155011a2f4be68102064f5de3c9b7e2e301e40526dc0", - "0x00be2d0597949f9d9c9504d62cf42800915108f7874bdb80227ba6eac6ef21f9", - "0x004a2801a7cde7cc3f2832a3679272e0a3e5d8392b8e2ee39ea2af9e44c329ce", - "0x003a6669029fb7fdb889d5f2a61bed8afde5b92658cfb1b9790740b7709dc500", - "0x00744d53993651b565cf3ac0be186f072b57d58e01790106af3ea9adae1dd9fb", - "0x0072c624b81dd98e2341f99652ced6e5534b0a3f0c0ae34eb18f1eaedc384a5e", - "0x00a9ade86c9d45af0b9d462a5b73cc0fcf8d23948da0d8a879e5d319e0c466f5", - "0x0080b54ef2ded4dedbfd66ef0ba785c940d875fcfc8046d6376bf027f65b696b", - "0x00ce8285bff4f9bd5f1fd8871ee0cb94afa7495c6d23111b7269db4028a6c80c", - "0x004033d9de20b0a2adbf35cfc89a91148b1a3c0cfc810ae87e978f7ab158bdfa", - "0x00fb37db0763807dc792922432f401e2aa6f0b43b3b0d99f0fc505c41deacb9c", - "0x009042c835698764223756a75e4e754d7872882ec1b6487892dd40fe7e947581", - "0x0019469e129651a23956b741323800a8003ad1f154c82057536f1479fcbc8eb9", - "0x0085a7dd1da394824ebcd8c349512ab79109e2d69e120aca982a54e6253efad6", - "0x001654187a7ddf702ed68ff0314da3400e77c69f205d62f8d4c4829f9c0e4f7d", - "0x00b032c8a30c02ecfaff36a090c65c5ed0204d83a2508ec5b930ebf9ec3c2a94", - "0x002537946c16ad9446d343d31d6b3a6da11b522106b62da38fae227827ca4c61", - "0x00ee302398f310892e0dfd2c30dfe79895528ec3cbf6dc19b898c2970729ffff", - "0x00acc97dd23e719129e5990eedaf3d1e21da53ebbdc0385f7632ee42c28e8ed0", - "0x00266d99956b450493165e43a9bac9c75e2fecdfe698cde7198f9825a0307abb", - "0x00c0891aeb4aca038b55ead25ed2b2a6fd08d2e03617c0ba507869b5ffab3ec9", - "0x00661e6ba65aa316a460e18997db703d4f419e24fccb80e45c8ec5778d1068a8", - "0x00a9c9a8c5cf6fb7ad0407acbce39711c602305c9acd0ab571a4ae022aa1fbdc", - "0x006ca97c7f6f9b6e5e6ca99572bdb5ef6ea1ef1674ed72b0b65e860db70534c9", - "0x00f646a9d6393cb8a6d739fee207bdcee1e4ef5885e293e91f8837f2f9dfbce6", - "0x00409f54eaa65d9fde410ed788caf4328dc8c11c7da7fea0bc65e02543e32d09", - "0x0007f5c48dcd6dd9badabd9be9b0ae377d1235818ca2e7dd23869a4bc1d05a8d", - "0x0047e7238f9a0789b896bd145b1cd27d89615ff4e02f24b69c4df920970fdeb7", - "0x00b1870d17a845e1d321dbf9df2782a031ba2c1694ac17048ea39e3a279b32e4", - "0x0097ed075b27eda5a524bb0c33d1c16000aa42c945ace6a6b3f6cba29bd55486", - "0x0047e4a3c59ef42a2439c4054e2092f634d1e4be71edda6016a9e36c66b75818", - "0x00b6cba9846a1c443e1384be55cb8289a37de3e01ef6ea93338e615213ae71a5", - "0x0055c2809553071e3328238505be68c0f6b92943120e337930599823f072cbbf", - "0x00ea39ea4611fe1dfc8233d0c9c849ab55488df89dff6de6dfca46888ca192b8", - "0x00f0bdc36eb0e9dad5ff34bcc9f0b41bc48d07509698463a874bef497c861016", - "0x00217d4617657a01b0e5718bef2c24a9046f291f5472b19b43ee97852898e8d6", - "0x0032dac077fc4d8b956ce1317d9469ed367482415297e1e90b685b1fc43ff436", - "0x00b8711e7a071cb7b56a056ab9fd6177c38e671449c65cc4e6a9a8c3f23d038b", - "0x00561fff112ca35dc86d3324a8c34e951a9ed2d9805100c8c87d35241702681f", - "0x001672d552d381810c18254aa00e15ff776c5624bab1856437824b1c022392ce", - "0x00f60c036bd0d0f20d2c717cd667cd36f290048676938ca2eee79fa9acc28119", - "0x0080ed0fb199b0258cdfe5ce1bba69aeef285f775b497a30134f26bf3b218911", - "0x00484720db954a7287a71b3aafb3c309a20175e377529c70f8fe949492339e05", - "0x0028cf2c06b89102b18a48d58cf628e98487ebc4325fbeb78d9c0b39f7eb6236", - "0x00db83e1058527ef71062910be25fbe1244a6761d60cc2710ebfebb2531658c9", - "0x00cd66e2b6d3cc96966047f2a6d210628de71d4579116df407aa8713c5816f58", - "0x007210d79dd986fc766d83f84b26d47889394345fa0bdba93f4b1fc927924375", - "0x0078fbe505229973b34f50bc7d800eb5e54f38584ebf346075b4b91c6575eec3", - "0x00cfa6bda52b6b9b5260308cc6ef7673e7a816deb11240175bb24f3f44121255", - "0x0077d6ee969ace06ff026c4232e04b9a7d91ff661b4aa595984f78fc2fc647be", - "0x005c9a73b0dc3b552016b09f935c13851dcf923b38b0f9b565185e1322ee1049", - "0x007005acd61cc31a25bcb1c86f7fd494c96b2c6edb1bcff9c963e91c4f937c9a", - "0x0093f62703055f2acfb1ce64b01d997072503f2b6739225cf46f1b0b2fff76fc", - "0x004f95a24b9ec9b5debdeda93b837ec389825cc41b2b0d4ad99cbb9b34e1399a", - "0x008bbc99bb2931303f81974758301d3667bca9c61b7cff15b4e98d6c51a2d40b", - "0x0012d93de24b10defac6d8ab6cc14cf17099a58d55c74519efcd6db0cda04c2d", - "0x0012d2045aa8610ead37eb583bd8883b55ec25e97e07de162caa530676b24c4d", - "0x008948c810a65d05b43102985960cbabc1351bcafc9c57b005300e197e4b89ec", - "0x0065751b37243be79651133c8a9dafc3a434999bb33f82c743ca826ad40b7e24", - "0x006de73468028ec48414e25e31bb6154c4c9d71d7c40396b9a9dcceee76907e0", - "0x00d5fa9707a1c546be3dd8ed53c83c701e5ac9f5ae5efac8e6bbd98fb0d336eb", - "0x00a8edcda29f05d7fe0e83ec541e7d5e0650162decb4cb19623ff358f5be62f7", - "0x00a3d83bb966e0f8a72a78d4758432c19c77054980a8fc622cc826c885a5c219", - "0x00c5c2500b03d552f2ec0cf6b96247c38d3f96042376752832d93b895e3656d4", - "0x008a2d8206f35775723a2b8b7c0d7c6d5ddf0562d9e360db11857dc9e92b9fd8", - "0x008c3a1409f27172db6c7fc7adc05a6a3b693de2824648b36533e03543ab8181", - "0x009eaeafcea45fe3ea3919d8ae2f55e057779d4ca17f65b9e86b0e8e337a4b38", - "0x00a03033165e54784b15dc62c28eaaa7f1f4e2ff511e1729717e3045cbe83013", - "0x00998960de16b36ef856cb58a5076f93fc6778993b83220acf056c9d55f9a6b7", - "0x00a496017feb079dec75831874e7f10b7cde8df653af66c19984f534383943bb", - "0x00d2ddc484cd66a011147f0b759478413ffaeb2803d5ad9e3615d5d635fe7144", - "0x00dcf5b0287874dd87c97dceda2702f398087a25e3f5f0a5e0b9ed68e8d464bf", - "0x00f210ce35ab7693a0437187f16a7928dec107197d9430942875250080cee682", - "0x0005db2d6c79fd4fbd599a298b2c936ac244d283cf3814ff42d61a77da755364", - "0x00480de62399d8f975b616c06de7e5f89334051b1e35d91d5bdebccc2e2859fc", - "0x00afc8d62a7d2b953635e396ed755c2c8a9130827f6bc416a9676b2fb452d72e", - "0x000e595ce3aeea011114b7f0458bcf35dd112f5f84b65ac8b6d87e14a126da08", - "0x000fb0493b58d3a8541b39685a930a569118a285877a389664a54800dd8d0999", - "0x0048762dd339e3d7c2b2ffa7659ff832408439df6d6a12a7d74e805a64e9e437", - "0x00d596b111641be8ce5560ccb7909fa2d1396fcc014d0a1b85a7428ff86978a1", - "0x00f12241e3d6682392e65c7277353b477bf2a1db9cfa2be44065f63822dfc4e0", - "0x00aa8231b45f9c7e2fd0210affac698932fa89f78dda34a21c7690f119d0f4b5", - "0x00dfe4f32cd8929f7edfb45424ea5123054ff8b3cf3c0e1fb40a7bb7775b3d21", - "0x0059fb6fdd15b4c49a247816956ab5ccca31a7533bf6e4962f0b32ffb48be944", - "0x0038bf7726e4aabd1a6ee826ee8249a35bc792b134e848ac350efb9ec1d14c2f", - "0x0096ea99f28904f5059cd6ff82e80a9e99923053abb9148f04aca00ceb486aa8", - "0x006556e173193ae07fb43041162ef5e009e33433ae6bd7df4b20c9d7b372e71d", - "0x0095df3415298995a4087cd4f1582205efd7754f6ef946a1b73b7ac949eeb1ed", - "0x00b7eda6d48e90c26712b625efcbf9727e5aed6d36200d9e1a5833321ce3b5f6", - "0x0033c17c709b639e33b568dd4f60c7d2c71af4d28ff90570e6e193d26b5bdfba", - "0x0060153aeed79ca04c20b4070468dbc26faf5891a5df6c915843030620b5b614", - "0x0029c3bfc42b9cfc82e2bf4d52cb47670af49bf1028cad6e6894767813b2be1a", - "0x0014b72401d4bf7b31114d0c3c26b136937b13cd5843a394dad41fa778566d0a", - "0x00b7755c9458c686061f150fd48d240c9069794ec778db6cfedf61f1519643fa", - "0x005097979a6d857e9a1581f1ba3aa21acef7a3c765d47a37b6ddcb988fb52aaf", - "0x008498158549c70232c861894475c612daa5d64db078546396c50a166954d320", - "0x00102bf3372e5c28041ec1505e0a9678596fab9967ada6156b7546bf4066285a", - "0x00daaee3ad08ecf5b38e69a70d305b7bc96efc1cb4d99289f72d738b9e23eace", - "0x0090fab262a6059137abca96794e43feddd453f2ead489117ff739957eb6bba3", - "0x006049d41185c94b4ab6e0354a86719201c1aee19546cdf8493bd1e81c004fc5", - "0x00e7dbe10471ec8ad58060f4ef0eb17b25b002aa979ac08d6d03b0c417e60f77", - "0x0021b8d731ca7a24bd1c6e58d2291450fbb6a950bca4cbd8bbb4e63cec3c8ab1", - "0x00d9c607c5882fb21b92f570dfbf4c7b9525d3da2f5124acfeda662a54d2f464", - "0x002be5b4db952607075ba6ed781d38168fc27b412bb67fd9cbc19ff5066514f0", - "0x00a05524194f092d4412455321f096267654e21df7566c782c3d712f8bcfe1ca", - "0x006f4f7d2d3de4189b3fa02cf7f0cef266620c72611de4dca2dc8e18e2d763ef", - "0x0041022c77a6aa6c2d445ec2262e26745d58a409c0046bfea0a0525b0f748895", - "0x0092199f6538b4c0195ef48dba387c35351e88a1a3c030b888e21f4cb8323f05", - "0x00293645a899f76bc8a1fbd2c1c7efe5b4a9d507918502000992efbb51011f60", - "0x0074da5b7e2829d67bc4c79cf9b1e78f00f6ddcdc858051dd7ee4cc1f925ec18", - "0x007c9f970668b6578c805799b524a36e4f9d0bd59074163982b5fe4c733217cd", - "0x004162ce1a5b24b66a7de04543a98e40cd7642f6ac7017f4e189f6be8662ecdb", - "0x00b3d99610106ec1f812fe0f5231ba4cab4d1754f217071f3ff5f7b433969e48", - "0x009d7dc08d508ec044cf2586b0a5f215684e0407db7390e28af84955a3165e18", - "0x002a54af38f59bb7ad99cccf08157311064cd26cbc31d7a6f8a2050430cf12df", - "0x00634dfc782ce17d0c583528c670886ce70a555d3be42a0bf377db313de3410b", - "0x00f4fbd9fa0608dce992ef251b3d68ed912eeebd6a6756ca654d1e3bc6a3f39a", - "0x0055796fa0685090728af59d441704f74bd85f75e507bdc000e298b2fb342933", - "0x00ddcf0b29027616546167319dbb263747f91298f743bf7280fb1ce4c6cc5747", - "0x0097e9eb907fa16d3dfb810ced857ae805b6f36bf6e24a260aad068881440ee8", - "0x002b873d99eb62fca06c2e72bd872848c45f1d8f38bd05fa7fe396bb938a2e39", - "0x007505014763582dc3009f488b11f0f5a1f1e80ce370d6c279c818dbae21372b", - "0x004c0bc970105312e78d80cb1fb4ea0dedb06430058d6917efb0c16240fbbe92", - "0x0054792388230a394b7133c8dcb644ce477dec4975dd1f6a4e247eff6c32588e", - "0x00e1a0e351c1fdc95b88e2d3edc3cd88d15d714380099bb1dfa12067a04f5602", - "0x00cc933a196908e0f083e130c07528b094037b92c74bb0fc4fd6546192740edc", - "0x00eeb5cfba3f5d63989adc24f1dcf875a6af907a541f6809e62ce1a4dbbb1a11", - "0x0008a19c7933639087771172e8638a3675e33c6630b7fd901e115f5ab2251e42", - "0x00d4bf83c694e7ca5a63fc8bf89bb261d70c19cf495cfc33114f2396650ffe17", - "0x00a6ab05639fa4a4b634ba063da57fc9a6baef246d03673e7f3cf0d9fb16de1e", - "0x00699e3781d1a49af75590e48f3d4e6a7d81ecb5a78eb9bcd1fa80d25b5dc41d", - "0x003ef6de9b5c589d7a3b4f30aea1ea08a97fb6a6404bf37ec5504c5752b0f6a4", - "0x00f3ae3a93fbe0ebdebeefd121abbc0ce765950d40261063ba6117c1110d498f", - "0x0083d2cd99fcc40a4c7a2a742691bad197d4ad53e44920038b39c3e4924005d6", - "0x00fdd09bec815874e3a26848a3cc0b29225ff87419385b8f94f0d3a44fa0e089", - "0x00f923677e08cb610950bf7cc4d27df21c7d1fa14b969cd7392924a696b75a25", - "0x00ac51d27b8a8f459fca2eaa01ae85c814af4e0e548daaf3d5fe3f4a7a2020a0", - "0x0094701cd0b4ae19ab085afb2316d8f559eb8a8d81e9d342552ada721abe2799", - "0x0066365258465f584cec3e37ab0ebf3f9216d835f26123237013d19650a7ac36", - "0x00402032be6d26ea8fa1fdfe41f5205a71dc126cbd169d7ed5ecd0b01f2bd172", - "0x0077e181ba4e01ca49c8f08b6b63bd1c49a24818dd47315253ff67a7ff5c6fe0", - "0x00592a19fc5e00c50ec5c619279614d87928a6dcfa86a304eddc736fa12b25a9", - "0x00b72403bc8ddcf7095150079be551db86914a3b982a5e67709bebe3df291a6d", - "0x0027a666071c954b6ecbb1663a9683bbac38b0f10546c52dfa69997095a9c0d6", - "0x00390d4e8e1b28e498c8e4c160ac7d21e081e8375b301543320cfe51197cc406", - "0x005b2e7bfd08886719b2e673d65936d68655a034c9c4834282873474769fc854", - "0x0032420c144255fb4edb3e0d22fd59b35340d0a7a74039e281031d3b452d9800", - "0x001d050a728c649e7aec361f259e5e5757e0eef826182722ced6c5e122442ef4", - "0x0069a2279f8cc23cf9446b70d8ec025243f4278f7c6ea20402a6f6d27fc3ab5d", - "0x00c0b611a2224fc66b9890a4307bbd5a134d0a15a0c3fba75389e1b96577cf04", - "0x0032b94f760391c50624b626ccb74c2d72ff41ef56a45417388ff9daa3bbd547", - "0x00ef16974c80019ae0b0b631433f7ee5594b7e4e65eda02b01278f63b271eae7", - "0x00cc06ffa62b8cb12e1c9f0a79eb16eada591d8b8fa70f3396f90dda8bb4f2b6", - "0x0074c8c2c1d84c1d6202d2e20a05b62de79155dacb0fab4646e83daa84fd4c69", - "0x0038157f808bf17ee0a5bc8a8acda426b38fd5ca0ab80951782932c5d0c9c7e2", - "0x009059d0280983f24981e1a95de80c3664492b455c038c9be00f50749d632f11", - "0x0096559ba577aff2696028690877693dc52f07ca721a7d7553aacafd17393ef1", - "0x00bd7c6272b42ac7205dea4d5dd2d5874eb97e15d596f08866cebc5cec7f24c6", - "0x0041b812202d55296df7d47f1520934cbe378d60f9c0bbefca21bad1fb0335f2", - "0x0046cd913acc3cd16414ee1eae07777a489b4bf15a2820fd3097baa3de5da280", - "0x00f9c2ae9f3fff3d3bfe0761a682fd51eec42c9c1c33092f43621eacc6a68400", - "0x00a5e59d03936b14146cf70552ddd33290b2a892ade5cb2fe74389eee36c303d", - "0x0047be7b5eea3b502b91236ddfc93df72a8aeed993412a761b78b99e4648fc1d", - "0x0089eed3e596fe002301915e7251ac3907a14179a2e22e5555719d2c78af3af7", - "0x00f18ad1dbcffec3ba086e8dfb19c3f054f34dd5c62665497d3222fcac9c338f", - "0x00626b0d015e7cdd4d13a97d498059a4f341cd9169e8561f02a3746c15485f81", - "0x00e87174b78e5070f64b18deef4b4bed1507dfbc95ed53370fce13c6c42f25eb", - "0x00d6b0bc1959ce15124135490d2930047268a82e34cfc2910494c9171dabe191", - "0x004e5b3147d777a3bbf235d8fbcfffda62be7d41370c3e81c2dab75496721659", - "0x0089a4050e736bfc6ee6ae6dfd2ca19af625fb68e4686823ca901a556cc74b12", - "0x00b51c9b9ae4caf000ac8510c45be95fb3a985dfeca04f66babc054f12a8be6b", - "0x00c2418704a6d6d599b4167643be571e460c33b88aa7bda5526f810dc1062062", - "0x004212f364f8d0557b912336f78742d8220e85c4e82fe9e029da475161799b20", - "0x00e414e06f2aea7ac7f9447371477182e38cac663ee3d74ef8bd726766c1cde4", - "0x002b831cd0102a507a3a79e1a522d4a8f0ba947ecdc7b31e38c09783222bd099", - "0x002de598eb5b42a4e7a10d377638b6ded34d130cd59902fb490ed3bbfdf5402b", - "0x0072b51174bb9c421229e955394dd594f7c44600d701e80f47b20b473462b7a3", - "0x00dacd8c36027d4a1f712ed0500e5a93c46cb0326bca1486293bd235d63daa90", - "0x00e66a6d98dc335ee91f44fe54292bcc22baf95aaad1547200a88f9ba0932798", - "0x00f0b092c92f1848396e4f8b6fcb5a7650006bcd250fb61599e996c364ed6c28", - "0x00db5869cc1e5e3b594dd4e4250c4dd446d31c6344dfeafa1ff339827a2ac2e9", - "0x0082e0bbfb54d9326adfcf2040f650438e506498dc6b32f3b90584ef09305347", - "0x0058216aa87aa505adec13a4e9b4be40ca1452c4584ebe9f84fb1d2ce148b135", - "0x00192435918b999e569997f880b1c9eb9db98a8c580c99b0173d9b7e5bf84303", - "0x008dad1bb65f21c3ea82e6fe2623c550b4a3cfe8c6dfb79ef97b77efbd88c0f6", - "0x00f8a14e988d5e0a4285842523ff64f7cbdc8dde817b72a4072abff07d8539c4", - "0x007171252adf76eb3897a57e0f565dce28ebfbc3aad498031fafd58f5bb6a72e", - "0x00d3e1e3b900fad00c2c1be9fe63b39cb8958468f71c1523a5c7023079fda99a", - "0x0078442f2ce373a49f88417d921908ad1ab0863b9499aecd6a0edc6f6505a9d2", - "0x00e15eb6d09bb440400fe301159866d6add5f56c906a24916d90f860e05551e6", - "0x00c327250870ef6734c1dfe580302360cd235f5a0605aca9a1197e263e87c178", - "0x002b4d422f6844280324000bf44339c9b0a48598bd81f649a548205920c2adf6", - "0x00faab41f2cf26027730ac78dc444bdd6338de6ae5341b4406b3ba6d80cc2971", - "0x00dcba5deab25edb0ca6f5add9e9f4d36b88a4adaade4262a1d07f154ffb4bff", - "0x0020772efa3b24c42bc01ea949485bebfc6bf03c9be80d573cde650f9f359575", - "0x00eb785eef4ca0f66109f7913518c0cbed0e6e3585dbbb47dadf756fe79dddc2", - "0x0037fb1934311f1bd0268d61ecc312c5a54d2906bad5a8fe5e05802ddbb9b98a", - "0x002cc2a2fc86bc4299dc446eef84639c93dec0f438f33219a3b5af8912c61084", - "0x00b4091748714489ecb634c47cef630e1cbea1669f94fde6674fb9e19288ca0d", - "0x00968b1772eb98e304993437b5eb6654a5899671091cf6b8cac002b2150001a2", - "0x005e7dbdf94a95140f98db3128d42543526f0f6efc83b3ca22fe538c433bc5b1", - "0x002b6e6edb84dae70a5c0cccc64c3c8e1abc132ab9edd158ca5cf92ae59add34", - "0x0023b2e04f4af1ce58208cf9718bbb45cfae1950ee31aafac39ae6357feac75f", - "0x009973e488bedfad6ab93c33a975af8ac588f1e81df42d36dbcb593c679d89f1", - "0x000751599bd51fdd4b4a747d02f2eaf671d5c322193bcefd43f30a07d5432eb0", - "0x00eaf0b87a45431fb41aee5cacf4f7d266dc9a51bee21580e711941664a1b2d3", - "0x0035e4608811d77ad97fb20c283715bc8ac76196898cafcfb570ab294b7d2858", - "0x0055d5cf2a94d3cd98920f232d8fb3fa22c46437369c201b6de71032bb3ee3cc", - "0x0082f04ebd3baa6b6f9d0cc6fb0c92ea8f15cf5fc27ec9718f21a14f8eb09b63", - "0x00ae37fbe3459adce07b45fc35476e2b9c41d586acf0cd2a18cf509f3b3c08e6", - "0x00164540b3ae1688f379dd4f1873eec2b7ab6700230bd34962adbd7f4aa9ea8c", - "0x0027fddd235266b54c4f348ed59e70e6c1cffc14e743517a7eb07fd15b0431a2", - "0x00555c532a06d63e531df3de39b26a20c5f7ed54cc32b66ce5c6b673ac681f74", - "0x005d92bf45d9bfc85a1a8e7281631b8a4206464858d144392c157d3c5e0b5f01", - "0x009bc493067afe64a880b6da5fb5f1c3bb4d232ecceced74ddc15f069e441205", - "0x000b50dd3b1f0680f1b2d43c81a0a66f521ace5c6685fd9c13dee816e43f8e85", - "0x0007b54a7d55a84824b3c652d5cfbc1f252d337d9e27b681f2425859d0fcc90e", - "0x0029311bd6809b80124de04db0836b010207abb5a1c0c2e5639e29388c52eccb", - "0x00c42c757145ce367dcbd0e8bf1d7de81d873488096ea6ccd88b3953403d7eef", - "0x002d0b31be6716a7f533336800c1f7e6506a644696880a54f3da44f837c4b5ab", - "0x00ed205d788b03195a32416c9c93883d59644680cb88975032f8321e0b94fcc4", - "0x0017619cbcfa828629587488069dbc7ff205c84890823fa0c336fa52ecca3e5e", - "0x009ab0bfe81f5af6d1daeea6ced79e00574632607edb16f48aa84c5e96050b56", - "0x002981c4f4d4b85f6e2d65e01160555058b056bdd17e24b3934ffdd37a38af64", - "0x005f66ab0c33bacd650bc2c3f37457fb3aa8008bbd96105d6ac5fbc1b0ebafb4", - "0x00f623f102c60deba54e75e23f2193567bea7e0b8b572fb2196f3591bb5e89f1", - "0x006b88ea09650ae8e34b3e3e94dac4bde8595d1119105c461054d1f105b9aad4", - "0x00ea7d52ef74a94ec89b11bdbbd43f3616ccb5a5195f24fabd46579ab21ca6e9", - "0x009c0c2abba646d55471850556b0f45ee59d4c6f17fdb58440e654fa2f29659d", - "0x00ac034710d0eaacf1ce171ea0bf8e93342f3cf452bc0ba08d745673c314b917", - "0x000b5d43a8b74d3066fdb89793a12b4a205da8c7dd6f27a67bd5c7dc76c9f76f", - "0x0073b9aa68afe300d5739b6926719db7e3cb040a93621060a5ba76f74c7e9b6d", - "0x00a06235c58c0000064c210f15bf8ee1ae4384e1bad464258ae743e432d96ffe", - "0x000e3313fb5bb0775ef510c6c2b2a7562bcb91e5d3153d4121c3b2818504b9f1", - "0x00a5363dbcba0410a9256a96cebae752620b7483d3cb19365f7870155d0e95d5", - "0x006b6bb243779ea267ecdbe821a7e639fe925b5118fe74c9f58f86e3e7083c7e", - "0x0070b0028d3407b02eeaa816a6fd7ce6f89e515dd84101b33606b88d03a85c80", - "0x00a2f438bd7997a72155438a46e92aec6df5db9f8962cfc17dcf289b9b68d520", - "0x0040239249061450a0d8c77d7a604f8d633ee7bbac2a087b6884f1bc123558b6", - "0x003e36a893a8b911f2a18f7139f1cf22b01e3fe7ea2e38b67c1a43b55b8336ea", - "0x00978143ae5b309aebc7c97714878fdb5c4c7a6f859c6bfefbec2ea92598d0a0", - "0x00ec5f0f47a37c4b6935e7bae756405a449a4abf2902c48dd435eb2ece0c1d15", - "0x00cadbcb3c86719ca1427234c2f931f315e624c8f8756f691e546c501591916e", - "0x00fc72b00ccb764d6420a14bf31b0080e9e1cc38d02c3b3734f813ba179e63da", - "0x008e3c075b3b9116c6e21489b750a0aff10b0db87188aeffaca35d3f782357a3", - "0x008e466b9eb264e84d6ed99aff0206942e6b7283a5a88a7201bb5a89baac6b99", - "0x0043046a364960d0fa1a1cf43ecbc07f224767bdab8a8b323e540f302c4b8443", - "0x00a014111dfbca436cc249678fcf79ba14162fa9d28e42ac563c05046c782a69", - "0x0081c0be4228e6f18973ff864cd41bdd772a847b57cd106644ee70099cc7b596", - "0x009277b21e2b06988b271d0cb0af9624d994cb894e0444155b664f05b31feeb4", - "0x0029e268031faffe37dc6296b2b77f81508ce511d75a499d54da0d96369e0d3e", - "0x004103229ecda07f2fc9ef7e0ebe1b2c2fd99b4b875f9856dd5c5e35e72c93e3", - "0x00616312396b89125cbabc09e74d545f397789240c536ba4f39b226f0b467dd1", - "0x00679486beabf52631223dc04ed39d7b3ff26e9f56609b587d8bcb74bc0e13b7", - "0x00d93fc63692714cfb113e50c2bf10f0963344c2c9982686edbadc286ab137d1", - "0x00a4c8d59622580491ea4b07e1777c0a5b9c3c7d35cb5eef20c196df60e3687d", - "0x002dd063325975883a311bee3760f5814886fe2142b88f91a94869e82fb4cf9a", - "0x00b59bb79b5bfdb1b51e723e5e6dfe345e50d4e61102f770a356f371cca1cafd", - "0x0018a22cab9c4eca43f9a364ff22842e637fa0981c67755df11a134f278de900", - "0x0044cca4c37bc93c12fcad395862f29f9cd39cf050c7b8eff8be743369ae509a", - "0x00de40aff78eaa74e9f7ed6f1b7c7a06fa9df3938515631b5c30f978d2198300", - "0x00fb0298ac2468436c7cec5b0e9c25233dbc06c94134eda688c9a967fdcbc130", - "0x0087ca5125de8ce4b5ef973b1e0494adc5d41b703067ca4b1f6ba3228dd4ea88", - "0x0027ddde931a385c4c7f7b992125d3c0a209e71a36644970170db7b673b69aa5", - "0x0039f76dad1a2b49cc65cda1c97f996a21447b2320ac46e3cf8f7da852cc9026", - "0x002de34b3d6bc958035b2b57cd80ae5ffeb17534337d80c005728714de53de8e", - "0x00c4dfe4f22b613d29b5b0e28ebbcd016e84a43168da46b0521822bf2a257d14", - "0x0041e799d0c373d2b1ef6921be31d6f0827387e9e19220825e873da4dd9fbab8", - "0x0021a99eba035761bc4dd19fd87b8d5079c289497c942c9023d25973510b3742", - "0x00b0d37a0eb3735e6a55afc8c7e57f5e160dc30bd6468019788da2d27b96759b", - "0x00bf30f8b3563533737e4be28ec349e45e67fcd81318d4f8e53aafd2f2ad597c", - "0x0077d4990830670e3863d31db4f3ce62954ab950f6bc6737e2ed1aa66d85e300", - "0x00d997fa3f42f65892596ed49c1a7a5b77db1e816d61114a6f6e605e06a42ea7", - "0x00ed7af15e6c065e851baabc83b524ecfb032e77fb9ae63a005a2eb81fd33c99", - "0x00eb0a10582156270dfec4232dca2c28a683e3b3b5c3eb4ff1b005efc1d10f19", - "0x00d5fd441995b347391ebad406bc480a5b819c73af1989830f64e7d3397718f3", - "0x0068418a26b36dba791dc8c574f3f113552f692f501c5f195d2aa054e0a2a892", - "0x007518cf85e75ed95334fa55ee5ebf341ba4467692098f21465b39597d2cd35f", - "0x0033a2c8aa616b948579d426ee403f858f7cf4f893ff0f4dc10a39042ed34a2a", - "0x003fcf16ee44efe5bfbd419d4b0c437df93d209d29eb5f2784468dba39d52286", - "0x00cf14b3d06768a4f8e3d8c4a750a72b64a15b40361532a1d110b7539f84e135", - "0x00cd6e6d1df77609fd7fc8cb3192b94290725a064de6e8f3ddf67e1ac0edbaee", - "0x00e9b542e054c8ee647531621bca9c3cb1fd7229b7e78215206f556f45555a2f", - "0x009428a2e69910f4614badd58afc732edb8c1c828e33c9b928d19802b4827906", - "0x00802442282af8dcd3f2f4e307f78b6db0b1cdea4180b54875c7615f39025e80", - "0x00eac9f396cde654588fa3ddcd1c02fb67471d46fa6cf75a66d458c188614c8b", - "0x0043db2c78b98dc917c82f403acb6c7637d77f9b78ef35191ab65f5504896fe1", - "0x00f0932e30acc8d8554b496c09ad84dff13002b8cdae2fbb5307c8a6872e666c", - "0x00b5ac28c7aedca0a7f015d9a0fb4e33db30f278266fe07462470e6e873fddda", - "0x0078626f66518fd5b756a0bd154cf58a9a43b1b91da0bbf99bb0cea380b6c6ee", - "0x005cfe096407fd6a81066f14a495f77bfc7cab57eafd38f60717ea84b053ddac", - "0x0090f9bdd92b3c2ffa75a3ef70c163e2666b2012051fd303c976ac6fdadfa765", - "0x001ed3187603927a0d54e3b5f11cf1747025a64fd74f638835c2abc7636936c3", - "0x004f6b0e48d2e599114f46a4a7ca06bfc2b6d1a138abde15d5c0356648e0b620", - "0x000204006daa305aeffdd9c662614eb56236f772f55f84d54ac4b1fce77bca3e", - "0x00c947625d2e5a47d9ddc83caa8d08e7c15389122a9518d681fb77008007fd93", - "0x0057e0795f0fd63508b002328596534a0afe56df1c75d7907eb9a97cc9ffcf92", - "0x00e4dd42e02e368b789ed2e013b29f655acc73cdcd2152deb0a348f13bc52283", - "0x0042c1f3b8625af56499fa22f1cc9aa50857b665af9d59ade878b4ef5f4e30f9", - "0x00891c2dd8c837960a07146a93de27562eb06cc9ccf287f02377c62320274c36", - "0x00c1a1cc9361c0392c79007acef33fef59381622ceda07e715071bc260724b71", - "0x00974121c30b2f2b3f9572ea8fc358cde0a5bae6e8acba3e616262140e09c1f1", - "0x0060860f6a0562f7f15c2a3a31a2ca4e8438ee07eef3ebdda28074b76ddd7d2b", - "0x002683851b781cbb5505cb4dc28b03779303f214a0921ca431c018c1924d0e32", - "0x00c7930a4d3f0156cd33f7933fe069012a5018f4d7ae791bf78d73f2dd6d7530", - "0x00029c262085df0f677aa233a4cf69ebef7a75235f89dd0c1a3c950c9d2385ec", - "0x001db2937fd86c799fdc72eca9147e3550d1065585885f187ffdbb4eb33f2494", - "0x00f549a1d51c88bb1346ffcbbfe842f222a22a8dfa589038c72074a90eb64088", - "0x0078667e3d201a88c4e03e3983130b51474d42a58886478db9d621910067adc9", - "0x003423abca055983bb638b1d4c8266d4cdedab104161a807043ff8e6c0f3913d", - "0x0081ca1bc8681dc8401c096a8e00cc001a5d78ff4487bbe8cc123a4fb5905742", - "0x0051121b11a844b5b30d3ce7791f0d33c4e149f7e78a78d0e6cee8d80fb23dae", - "0x000660f87a3cdb53cad607700257662dc4ce7befb1e819f10daf04b8c28332ba", - "0x007c26bf786d1a9e283f6b93b4e656d234b9ed80c67f972fbea92145618e125b", - "0x003a1a96fcb937a7f3ffe3d11605cc8464fcad93990db68057c0988857874fa2", - "0x004968f1d37d38feb58a89ba3820e50a5a68df03efbdb182fe0c9ac4c85c2c53", - "0x00e3143eeb5e59b0cc30660c828ae84b9e5507cd92a53aff80ed2dee70a55042", - "0x005b7a1986caf5a8174886d8e487f9107a46ca078c5f348714428b124036e4f4", - "0x00562682977e9f57930b7b2f3130520332e76e890aa4a9e0128e9c6613b662a7", - "0x00b083cb8e8f1d64be69876b979cea8c154b9f667074f678b3d1a4a6eb31a214", - "0x002769239657f87ad773404a9f2549211c25412271dfb57b76059e5f8200f0c3", - "0x00aaba85ea5f87e0f47c13aa3cab5b8f7ee889a92059670b9f69379b41be65d0", - "0x00b36708702fdef91ac6454d6f09e232e2dfdb3ccc1c53f595ae7bb1ca378f8a", - "0x00fbb5b2164f6350f811a8510ceec2ffd3fdddbe426c1ef7b4324790c88dc3b5", - "0x0002e1d6c3ec5a8e9d5e1314812f914befabc338ae15bbf90ed669fdf570d117", - "0x00a1913ad8b715ced73cec8a960bc7ad127648632c6d64dc9a0e8b5cac5153bc", - "0x000be0b83f17294115c1a087ed035eb4a5bf18881296436cf4bf3b9f51a00104", - "0x00b773300ca26de7d001de1d3535787309b4139fb7442102ff07e3e0342dde67", - "0x00050fcf0c0876a27de926585694e0048ef14c6b8f4d1ee757c7aeaafeaf1e05", - "0x005d558bfc6603800e93d2524d1c4f1d22f3760e782514e9dcb81bef54792c90", - "0x004b64fa5da331fbb080f87e8bea5854e890bf6931d147a0d9d5a04c18bbdf95", - "0x008c1a857cc026c0ca5f2f3422d544d265f1be098c41d17acef13ac303ac6d2f", - "0x00bf9224ff41d297be8ed84bfc8b232f6ecbb48b2544cd7a644dd47200907625", - "0x00da65ff8f8f9d9bb5918a334f043b5e4f3b6eebc57bb6e544836afed2f013e9", - "0x009bff7b93d682e90dbfb1d74196ea0af7e157c2d22c16d2dde0fa3d3df45159", - "0x009ecf2ed51fd2f8ac15c9903a8efa25ad306311d0e92ec7b4d8fccd0254932d", - "0x0045d5b5b79528ab4518ea5f149a9d7a1a3ccb2d1db616925636d6feaef307cb", - "0x0045ed6221fec61f74467815059e3885331daca8c2931e661b86bb4a99e35067", - "0x0022a7bdeb9f9d56724caf6383a20ddc5d5d632f29e6ba24053850ec39bf6f15", - "0x008a2fb155f227684b21ac494a2c02836706a16b9ece517e39f1bea82d3a02a4", - "0x0000ba19fe5cf8dcc74671dd43bd2edbc15d0609914c2aa4afafabd345c5891e", - "0x007df6a50e24de48a49923d4d2c905cc616332722fcb663c61ff3712cbab9899", - "0x00c3f4f1206823e140b891f2a8747a33954a466cb7dd885c38ed6714cffe9fea", - "0x0004def546f9b959d77844d258b5ca5544f07474302da68795409f0928232b4d", - "0x00fde46a16c4242cfa6be47b87166a5b0023f785b41735234a83eb74fcd4621f", - "0x0051dbc245a2077947ba455ba1c3602160e3c59698fadeb0828e2ea3808d8fb1", - "0x00187c83f0a5cf18ca3970aae39323a750265faeee0c59d5715df646332cf8a4", - "0x00ea1d548c59f6981a65f1db95b508e5ceb3dfc9035adb5d0db3d04e0d8474e0", - "0x00844a72ab5ba8b394dbb5ce94837f6ecc7bb909b7ccde6233ad18fd121c605a", - "0x00769c67624ce4e153f531ea4293090a1f94f66671e99f99976eaf357f2c43d0", - "0x00841acd621b9dfb17422420b0fcd7f7a31313e837942d29488011d15f575b68", - "0x00bb4d793ab42a89af0496ce239f2c1c22de534ec7770195e3d5a28d700115e8", - "0x00bda74583737476b1bea6c1f92fdddb7d8e25877f6187be6b674ca09a9322b7", - "0x008d57020f8fdfe37aa0a9e525f1e1cba129333cc57ee42f4f5772928d2e9cf1", - "0x003e3d05c52d155c7c796da073ad7b7c82695b25c5c1fb9093e6ee5af9859f7d", - "0x00ca8cce459b3dd8a7df9eca756c1fa8a65bf100c16409cfe18df4e562b7b568", - "0x001d89155ca7d77451651fc23eef91ed7d266934195d637e868b9ffc5b77deef", - "0x00565cbf92785c3c08c4e88cab5913d1bd88dfcf6a06a521f80eff885485e47d", - "0x006a4130ae567e8eb72b9e21d3bb9637380e91f88010e3551fdec59e2785e165", - "0x00b70458a7572e33479b35bc8ccadd038b9d79f82a1f27c55e2c5f9bc12cb3fb", - "0x008df6c4b1b88f68bb018ddc8307eaeeb54e495c1f10a2921666feba14902a00", - "0x0009b11df1d5424ca4edd8eb435ec78d350830a11a0f247fe0082b404250e84a", - "0x00c4a45408ecd9f5ac8f5bfd10a1345add1ea5d394d7c5c9ea6460dfdce8600a", - "0x00267d2e825e33c5f1882ee182b4f3df95ad09e633c4d0e2b49f3b6d70d9fa8d", - "0x0037d310928e052b9fbe2066e0a06aca882578f14d8c82b3c56c51b706d616fc", - "0x00eb89ae35fadaa7d4d1d080abcd3b8c4b023b35cbf11deca059a7fe7b58c44a", - "0x006aa1d93af7df5d69c1e50c5beb369ecb695331493182314c55fb761e3aa6e4", - "0x000fce57d97ece79f17915bc01302d696f958df690d2b757c702dfa51b4839b8", - "0x002511a48492e8ad15d1c666020d80ec8640c09f4fea99e88ffdaf969e628053", - "0x007413ae919641dae994be0b87e33e130baecf81e5023cafd825ba96dcc9edb6", - "0x00660f3526dce6106c945c6638a87aa361e8c2d0ccd5c35697179140ceec93a7", - "0x00a1cdf1a125a41be0fbd0ca445f0c3a2daac605b8a4991df18c088b98500beb", - "0x00fcb4d25a3cf57254e1db5c78d62fa255f3fd0844bebc59bda17046233c8629", - "0x00e1854a7b4f2967d3e508c93b92479bd0517eb59165c815fb0121aae9012df3", - "0x00b4405618b66c8a5758fa196cd50337642b2308276f5a29530411aafabe2cdf", - "0x00821d31ff4bcc14d1329f88a0f733bc406c4b1ccf79709253e343dde797b720", - "0x00eb04e18aa1d62d0e51292102628f8ecf9bafe112e0f9ee5ecd3a68d738d2b8", - "0x009fb4e1d8665aa33dbd4f64bfef86da2cd0056a5cd3be3b7b111b74c0e8e8a8", - "0x00881163850e2be179bc8b6d4c62f69e6d09189c6c197b3231bd7ca80dfd7071", - "0x0050ef48a6150a6af7e5e78678037d02c535a60e5294ece5b79970f73e65ace7", - "0x001bc3798d16af8352692601754c1a13233084a384c296cc564e9523315e6af5", - "0x0093ca9274b2744c9e382d3d56ef14a0c94e43b0f14492de3296e576c085b92c", - "0x008110f3e7d41e155cb6a09320132afee984a532ae627acd686462cfa1e165ec", - "0x002d385599e108c576bfd30603ea300dbf355c692a5b720e8335b94e517c25cf", - "0x00fbbf5ccd869b16fa371ed0d1c694840d6c6ac178e76501b90429e9d3cf820f", - "0x004f080c1ae5ada8b995a8b2207f03af97479ee57a5ce4d564d24d12481bf9fc", - "0x007253bfcd5eda0c0e93a19084b2c650831f3ee8c179a3d86eb6a3b2953b5e7c", - "0x00079e83add6efb2cc092a9f5e874bcb7b04504cae964ce9be1831d3f2bb0e93", - "0x0051e8988555abbc8256410da0d3fbab806f5f4db6e705d88e8d4c3e5aaba1be", - "0x00ef49fedfb5f1f118006f0bf777a9b7d62a6756e4902fea42e031e01178a7fc", - "0x00d6d8ccded4358d89426596b475de2ccef482b48d3e5200643d86d7e14b09c9", - "0x005694b86e45c15ec9ad63f0c30dfdc23f2df4d81bc8170681180eee28e38b66", - "0x006bd217ca307b9cba3457a47e2eb7e8bab39d84adc8410668450905aa7b4d41", - "0x000f4ac8e7e588f614af6cbefffbfc7caeb6be747cbde622276167d80386b61a", - "0x00cab2bcf27dd054222508846bf4b1b0384dff0ce58ee0336e4ee13adc4d54bc", - "0x0077a6d2afe3f9ca9a885a479042a419dc6b8592ee6f4a289547c682b991680e", - "0x006505d1d65ea5f8fcfb80ff011a7cb2462e451af2fab2419c23c518b471026c", - "0x004d8139f1860984f71985a15e6f4ef1d970b0b4cf86779b5efc9aba46de1d28", - "0x00b18e088f7872e9814bd07f96bef095606f77e3624df06402e1e192fb5b9013", - "0x007a0e9b4f733e2526dcfb60e64abdae60400aca33301286898715544a11c52b", - "0x005d1f38940350ebaacb628c58d12b5a9dac466106f4438cb9fda29013c857d4", - "0x00f528e83f574274764dfec83d966e53b4b32711c2d01a381665fd28fac38c94", - "0x0020134f308f6940d72205c32f3c9e39cdb2a5da5ff596ea30b536b0eb0d1b86", - "0x00698d613ede794dc44ea9d6cb1950ce1da6bc32239a1405d83e3133ff8f65ec", - "0x0011569f18e732261cf03a4bce81ccc41a23907b783f42250dc87014666ce539", - "0x0002eda4482e8d6aefd45d9cf8ffd48fa0fdadf65b5f9f289222d887614e2f24", - "0x0043babadc76fdf6d848d6ae291530bddd3b856f3ba433feaaf23aa4808f7be2", - "0x0040ca1e1a2e1e35e31a87be6c3b132c2f523f15705d0b51afa5d83e1615f53a", - "0x00c2581b99c40b18026fe2c1aa73151b27e3e5bb6a7eee2d4ebdd46fb93b4903", - "0x00ae0ff13151f1596a0e1513b53ae1a162adaec65b06f3afe3f2559ef623b81f", - "0x005af7fcf3923934689b4ed32c9ff5678fefeae5a00f6710074af1bc11094375", - "0x0097629be6e0d24c2fbdafb63f9fdfa61a55ba222a47ddff5fb8f84fe390ec1d", - "0x001d526cf1844b746e2efe0ad40c6d4942989368184318654cac4323f1de9e9e", - "0x004ea1163d5815a29a0376d95dd7967c2a93dcf3abacea1b1ae40a6aff754c86", - "0x00fce018722147568a48ca40a7387ef5b9d0833d39ea4499d2543d1dd949504f", - "0x000e9e509471d4f4264d1baf7bf5f726ff6f3afbc556564b43ce625307f54f15", - "0x00b616cea2c205b5c3e3dc46dc365c7081d77081305333b0847628cae6456f28", - "0x00ed9f0c6759624dba966298eca85ec8d50d7e7f358ed1fea537e1a2813f7b24", - "0x00d7837b54b387f3f8b1c8ffb27f5085f2aadce030505e251bf2722f2ed26629", - "0x00a46811b7d25c81c7a1a150b3142fc694a9b6c8074e7fb7bb91b74a9b0aba41", - "0x009a38db52b18e04ac4a74217a7c4c9b5d0d8abe908b6add6f04368a55eef5f6", - "0x00f24efa8d47d8378bcfd3f920d9282a46bc6c98243dd3b0987bdaa40302d101", - "0x00c2a61cae149e3904cce8c64992f85aeb22262de76d599aa6356ac5e78075fc", - "0x0091a78300ed0bb40283ac5b92d3979bc396457f4578256271b45bb27e1bbbcf", - "0x0024cb7533fcbcd1244fb9b3c7215188b3775cf0e407d0ead993cc7853c59ca6", - "0x00eb84b959b39f4e0248f9e4074794358ad2af2ecf610bf1a600d3030207e151", - "0x0011c7774a5558df6cf5af4528a9510bcfabad823f0f0fc25a52b406d46e87db", - "0x001108e419d0c2f783a04b1b810f53f1a847b985216b05d2c211a16a2bd06f4b", - "0x00e7682a67068e1c0b703286090647e5e93977c1d3352f11959d1dff3747dc2d", - "0x009508f3904681212761b1eca71ce1758a6aed0f0a05733cb8267b82c125fec5", - "0x000444ff11be6f5178c7175ec10e22ae4f8005fe6896aca25fd122d91980c4fc", - "0x006f7e76aee4d71aafb29bb42fcb81412cf125b2f330bc939397255a7fd55090", - "0x00108f389ade9406ad815b88b15472278a0ba0409f6ffba2db1edaacba7f658a", - "0x002507e80c190ca339f34b25f7fc14c7c9ff623a6cd63c12e02a8af5abba5026", - "0x00ef327d6bea8fe33b13369691352277d384e9326847fc5287330a9f2165b219", - "0x00d84f41ac36fc58f0ba8f031c6da338658e7badb2924b8628ef4510d0591235", - "0x00cf1ebc675da03ca64b3d930e2bf62b92bc0eff12dab2f9478f17067cf2bb21", - "0x00145942979d2b8e05ec3745aa5306706a006cc7ae95f691231d0a362cbb6a68", - "0x0022db9841a92cf92677ac7bd26a9b8ed82d54b0190d99fa0cde0d810a25a8c1", - "0x006874c045f8330ea928f51b4ca6a069369a71ffd17ffd1d9679524077a1b35a", - "0x0068480397f24b760c9c98080a9ba8a8cbd25b0634ac117c323593745705d9be", - "0x00c92ae3ad1810ef0122cc330dea145a56bb0011136461da7cda1fc3b44a457c", - "0x0014596cc5a6baf93bdecf95fa3580752cf2ee4ea980fd32b49784f59800b5df", - "0x005c8ca8973c24d90e87692fe89f55497a4a37e356537a3ff01f12bdb90aa092", - "0x00dc188ed323c43894b1c81f2fd5a9c71602e67dba3356800ab4ac1e2c1d5918", - "0x0066518050366859b45629f72ba26016a9ea62535f02fa82b523651df0b5d753", - "0x007442188c7b459ae9027d62e0408111c70180cb38696e9bb469661fad8ab200", - "0x00aeda161fb36670d595671d2759cad450e43e994a571509b7307da2aa723f06", - "0x00a6f430f17193d4c08b9e2e89035ac4d8bfab8ab646bc7da15b1e57704bc5dd", - "0x004ca5ae172216d54669382ce121f3a275d3e5fc044ff1e82402e2a7840ae117", - "0x0000b160d73368b23cc6954b3ab36d6e3f5bc8b200c8b2ca3167c0f63921b6f3", - "0x00a2a638f8dc3c94034a02e4c4c26f252ab536e3e1899f853527a0c5f596d11b", - "0x0053ee06a92c6a39f18a30195bb14dee57199a888513afb5ed96c293930fea69", - "0x008913ee1dc9d441d193909fd3f142cb3d9118a7ce0c29fb4780c6fc2005c683", - "0x001d5c6ac837b53f43847b0bfda41a7fd10ec9ca240b4a14314b16d5c6db729b", - "0x00236ac2c2651d2152a66fecc752a16761f8d2cb03ff26e5c7d40c6ba8cd2cba", - "0x008c397f7b243fb6c624af787f85e023fa5f91e1d6fc5a4e611d64bbb7742d70", - "0x008e86d281851b5d65ef3a4d1e0adfe21b2350e8ed182f827f4eb96a29aaaed3", - "0x0024c02be87b6af706aab85764988814006115cf32368cc999e161486a7365c4", - "0x0050da706549c8e7d7261a34204ee3ac75bd5fd13467bc76cfe1de3a4874ac73", - "0x0097b3ffaa681883d2aa3e43ab6808d44f29efcf58b5c72051c308e0b6f6bce3", - "0x00f77183d76edd10d28dd53e043ff91864cc55e219a91b8e444d1fa9b5ec9b8b", - "0x008bda8621ccb9e6d7ad9d7452e7a15ed36fed3349fa68616c27b061430742a0", - "0x00494e0aa240d8a8cc98a44ec7fdcc692bebcd9c8c5553c3e9ebfffffed9bb62", - "0x00582a238d24f79658f70373187bfa961a0c97cb79413bb25772781ebede8c65", - "0x004e3b24dff1e3bd91cd6a680a369826443c2600580ad22896b326692704acdf", - "0x00d99f54580ab536eb9c83b6dc46b3aa59f841e7209ae6596cc439101bd2b876", - "0x009a18ab053ee8b9705411619a2819881964e3869d7395f69a167c6ad005f03b", - "0x00eabbc443eab6b5681b34624aecff8486f9f46f2ca3d2bd290d80476542f376", - "0x003735f74c28745ac427e6a4b0b7777db70f193741c4fb3a3ed8432ee4e03452", - "0x00dbacf84091bc52f3c07adb8bfffe12aaf8abc03f13a2d7408d0cf6d0b3fbd2", - "0x0055f1971b168819a50aee02f4b5b444cae85266d11d30f58cb78a1996c44d6c", - "0x00041c059acd7c464cda3bcc426fa783b01e48e43bd6805dd610243ef8596c14", - "0x00c7c64b53c75ae5820dcdd3f31a7f03067e387b1e0ee47467addbe8f95a6f94", - "0x0081d7d1b01a25933dd08901144e4d5e155945d65e9f3e9d25d5fa336ea52068", - "0x00cbcb6203fd77f6dff2004d30917ab260c2d5de1e60b523200950a027fa2d1d", - "0x00fd9a38b9cef8161f8248e0bfa1bba169d2f8f6e08bbd12f721cd3bd1383d4f", - "0x005256e541218a56543d1a428f35f80b4e223349782050868671676f0172f094", - "0x00834a7a5ca767845ed4779e6b84bb76744370221339959060cd3b002b79b9cc", - "0x00fc510acc2b43f9999f70f33c28f9328da1a32ad9f76ba78221673229f1186c", - "0x0070eead671aa7a870a66a5ebeda458d897988f9c2ca504ecee4b0a1211c7654", - "0x00102c397adc498b428ddde3bb934383425e0510d7caf05e748af3ec0828c822", - "0x00d7e2bb5fbab534626dcd8dc17c0534c60cdc84479b6ad6a567bd0d42c5ab01", - "0x007f966013ce0d62cfd26987a00ec5c6340223cde34421f2ceaadcb2e0c5f96b", - "0x00b46b50616ea709b7b9cedc3d9350bfccfd8389d7db3d0c61feb4704b018586", - "0x008e01bb301e44ea4b792a73add7c93fc75e2791b6e8b538323b2be76698775d", - "0x005088cad74a7ea673e509bd39785182f7dbde615702b9bf0c6b6d1caaaccb05", - "0x00119b894fc7cc06e38efdbef991d31506d9472f0255938e2de37058fb374ad4", - "0x00dd55d25ade2c9ecbe29a1b60cad71ab2238319991389cfaa686ce92df47e5e", - "0x00a2f2a419de3953a02c2acadab62a8c75ffc5c5ba591c1d86c90babf1069830", - "0x0075e268e9d735e820c988689b5c9365e5f8f4a9a13103a1ea6b0d74cbc6644d", - "0x004534f640677f1a003a02154d9c676b6f02d67e633d37176e9396072d2eeffe", - "0x002e0ad5a2d50f07c485fa43078f0bbc6199e19bf181b4433c6f3eb9f34b390f", - "0x0028f84491466af62395ac7f0eb47ad27aa55c7bfde503692f626906d91da08d", - "0x00e9538d2f6375dabe77cdd730f4577c30070f6d84405c4b11764025e5b63355", - "0x003a359adf80cdc0e8169aa6e5854191c4df8c40d21a937d8a3f8d47bffa4be8", - "0x0049fba612072f6a39ad502ab6adc2c4917464030c26c07187b94615b1f515b1", - "0x00ca07c016fdf1492d559c4355168c7a1094c30ea725f43d546a970ef28d160e", - "0x009190671b2c5b1a64db617bc69220c610d0bf5cea5d113440b9fc0722fcc333", - "0x0027e1becace65ef820a7b969198142cde22c8e8f9b49a9db6959192f26f3587", - "0x00ac7b19c39414a8e0ff70d9499c3a60edea3e81db33837e1084a75899dbb30b", - "0x00feca08240358a3d9cad5081facb5373d7b5a187e90519aa4dc368dc458a994", - "0x00664d0a856917e53f3ae86cff7a2f507494bd9eab92fb6ddf930332e43c345d", - "0x007628a341a1d9170a3d0603bb7df61f5d8c0f75c825a3072dc08cf1890bbbd6", - "0x002055907bceab4216899125f71b8f8e7ff6e11d3906a45c18ad2f8d337905ef", - "0x0057963ffd640cfedfbb1c461d4a56615454d52a0d4062f2f8dcf8301ba1adc0", - "0x000a2234f6fc2f28499f1473b00facd1c5eeee9fd8821ee5dbacb79d5e6e4ff1", - "0x0019da34095714ed53ad090eda2bc9cdf0833ecc9569fcec272eafc3ac2a1f33", - "0x0096295d0c45ede71b5504d02035c0bc05cd2c4f5b1eb909c96d0c8d2bf4142e", - "0x00e0f8cec46c24e6e925edea4b94d38f2d9c7f9233b9f76296b7a59c520514c1", - "0x00b60827f815e65224c33175ef0e6cc78d1d4b39f98b7a94e45f96c4db469fe4", - "0x0000217e3247f7164f41d694ddfabdb3cefb6d248d1cc583f5d3223b75284c02", - "0x00775107d20ae35064648a3727e8e2b9c18dd4fec982b45bc7de5b73923f731e", - "0x00e015078cd0975060d0742080729ef60e01d13359fa7fd17e4bf4ab9c5c8e56", - "0x004e928545a69e9fcdd60306aab358803cb84ab248aee8da7009254dde182a79", - "0x006486ef2803a83cc18ede6f2bc98213fcaa62046be3b08918c09b4cc12fe770", - "0x00b8303d1c8966136bf0219706678ae22cc84d6c42c8d6a3191308f79d34e65d", - "0x00c1799307023adb77d8dea967595753ad9090d0c512568f58bb87d48793aa43", - "0x0066652609deac8c8c4d580eb9d4d3d98d375e85038cff0c9892a8a5119c0cd8", - "0x008af6666f071d471afd3394939e5771d14b1daa2d98c896ccc7438c51f44d01", - "0x00c0b836e693463f32b049e5d31fc966cde21c13a05428d277b057383e10fd76", - "0x0000f4d52679f0cc5a1e7af23b753adc14dba05db147298736b4f3aab62cb7fd", - "0x003936b4500362d18767b18d0824d669c709e05bd78050119a9a5fa3ab3c84c0", - "0x006c7b28aab8de729dbc03189a411309454f66bf7142458077156027c08b850c", - "0x00c6a89a60751800c298a6bc18b2faed7b2df137e7a6793edd31e2e6ff985a74", - "0x00c803cdf490b23bd5b0ea67330c028b6fbe3ac35f8a9a318cd69aaa47cdc52a", - "0x003a5666dac52fc68269b27b44c8690eaa995c42f1d694702db632086d6af501", - "0x00849d0e9b252b8522322b034b27c2bb68e4528bfe0f75ba17709901f688b42a", - "0x00add646a69972cdd16b2290ec6fa12afc9c96bc7d99be37212d12f6cdb4a438", - "0x00381c5fb7a77e6388eb5f92909c7469af764f27d9ab901cbef45f6e843e6dd0", - "0x005a7139d01c8baa5528c7fc59157cb2c49c628baab9c3ef6422f1140b6ac1e2", - "0x00804ee8b0a27172613b0be8785881a068b92cce35accfabfad88210523f564e", - "0x00f252d1c48e479853877b30d8c06dc9a59e2aac0be9e245fce4e8542416b0a2", - "0x00674074e43964a3afe009a4e4de3fbbe767d27cb1727a8a5d330be16084e495", - "0x009409405870d94dde70e188869e989cf6212c62495a47f644763c7434fd8a58", - "0x00b7ca67d0b62ee847e8e545405ce1fcdec1883353ea54f0befe21e432fa5eb4", - "0x006f52663aec0e95fac70376485a933d51329f27de604f6db108161932a1ae58", - "0x001d8975e6875c47df6308000f9379d2afa5a1ccc5da3756cf8bb4c32d945c27", - "0x00d18d674a9b02b9cc50cac7793a5948966fa3e5b40be5ae6774dd810623e7ec", - "0x000f709230189dc3165cb5979210daad95a5b9fbb8539c9d8d71c46530d72a63", - "0x0093b773e6a5ca2219a6b3fed02e00e2184e70ba055bad491604c6d969c22f6c", - "0x001a323dd93e9fabcb8a0df96c457a57e8e2145d57780375aaf889c9d8a89dff", - "0x007459faddc443ea711f62209f6c45dca37ed52375d246e693aa1d08d6b30bcb", - "0x00210b104e1f8e0c99d61206a7ae4bd716bbf774b7eb27359407d32f92e83dfc", - "0x004b61b9dc37dc4f246aa2e0bda7f2646b39b83fa27e45442eba67ddc79ca3c2", - "0x0050db8fa088727c0ea1b8a24ef8f4020deadde169591739130f3ffe463a0033", - "0x001f8b0175d5b04905fe081a65231318395a5b52258d07fb0189beb369a502fd", - "0x0064ca66978c44296ac027233efe944902510a0362efd66c2ce7ee6a8be43c19", - "0x007dcaf373a162095c24ce0ad090fbc5b86e055c34b70fc6c65f3e2f60bb1bf8", - "0x00982c9b171906abd046984344676983226a3cf418838018ceedf1ffe3de9864", - "0x0077d8a006572b8813fab61ce6154f3d12f2ec61e6662888f2f5279fc602534c", - "0x004dfb4cdd14662226e67ac4f981e8a446cda79d82d65b3e7eeb47d787c054ac", - "0x008f41f49b193f56cfb4d5140aa35fe2d6c41797ce03b706fca0710c75790c09", - "0x00893edd2adc5c38a4544e952655f79c9b9b4f4ae56ac7df4363043d0a35a089", - "0x00ea0247b48d845e42fb81c474343e7be2a99e02e379c3da17e497d750326484", - "0x00f4f4df1e0ef9faf02c848d7cfcabc2226f8421d8f745fdda324685478afd4a", - "0x008c4de699acb61c402968419dac950645b1d5f0a8e576fbb372a4b4df6da80f", - "0x00461af7766e32fcfe292337fe236db3e3ed8d8ef6f2f258efeef8fdcf487d16", - "0x002ee8187d14337e5b45bda6314ac6438bd26709297ae68fbe333882be8a3b20", - "0x00ef68d89466cd293a450d344dbd754daec056a4c0fc8265cf1ed54d3a8bceaf", - "0x00c39d0d028504a7033d80ee254fa52de159692489833146bc2d6c99b7fbd11c", - "0x00cb540c434a2e196542c84ed38ae8196e379295e4016ad272549ae906b82723", - "0x009a6745fb1235e1c746dc401f041cb5bd2f059234d2d9fb8601e9ab589f4fff", - "0x00e523a13fe340ca2afbb8618e003557cc7e127d7cafe295571ec651600461d4", - "0x0008492b6e31978961f59d1d47a02ab4243d1bea425134b8e164abf9cb0efdd4", - "0x0064b2981bac1dfa5483b0cf4796c8d6ca125efad2f090024398ec847e69650c", - "0x0082fba81399d98989749ed130c02cad4a243cd54ff71eb23eadb7a6d31b25dc", - "0x0009ff9f87c691dccaedec33f12a25cd393d6f5005ad9d4a0a0e164f614848bb", - "0x0029badbce2d2faafd63c5aa9fe443748f0ed1894d8713c96fb2308f098c0b1b", - "0x00e39c969bf2e0dafb59c513f0ca05b5d9c68725c98467440dfcd936d60bb296", - "0x0064ca8a53c1dc473adcc757870589eb1becacb245ec8e062aee3c01fa0fdd38", - "0x00a8c990d0597ceaf0d5e73008aee34edafc7c2f99b552933e94ecf46059eea0", - "0x00023bbbdca7321968bd665fff8fe0f1580ae4da60a2e359b4289bd435fc37a5", - "0x00dec6d3ee43d8b8e48844ceab1d937c62d0da17badbb5d1ad0d024dc7c88409", - "0x00ef74463a8f764ae4cfc85d9d2da5ad0cfb83617dfb98dbaee4f60c1c37d331", - "0x00bd51917e184e968908cd28f93fcbde494be761658e468e12aa189a2d8001b6", - "0x007c0d8448a9a2a8768eb6bca937d785d80828f4c56990b36ac3ba8369e733f1", - "0x00b60e28ed5596f80d555e06a5255fb766ffad1944852c6b6cfad33f3acd091f", - "0x001ec7fc56d14cd79e184c42333217d20e3148b127690520e269b8287f4f413e", - "0x007c826b1188b3163f13e38235a298e26d549132560e7d5b9bb5c4cea154265f", - "0x0076763fe90ac659473c3fa10d658e1f6c3bd5963e7d3cc27f8776ded50b79d5", - "0x00afb7be07cc43887af184d9b2c1f98df9451bf2a8b6fa960dd207f71a32aeed", - "0x003822c11cc46d4165924199f0010fb461c6383c905a38212837e2c0a9dd3e00", - "0x00cf521401042b4d40348d1ff1f04c0e1204a75c0fd525ad783c3cc211031022", - "0x00cc79e40a73868006375cc886ed89f2d26178a2ce40ff252fd7b516e0fd5c3d", - "0x00cced604baa3e5786db1dae0a3aadb881ee69e16e74908dc1293a28c80f40c0", - "0x00c424e2f2b60c910d1ab552995745e328898a6bf89287412ab9665460e0ccb2", - "0x000c6ce6660302f9952613646d9b8fd127c7eacc536c4876c95023ef8e199caf", - "0x00f5ebf18400e5a138d6410064d533796a887211a38f2b32802380380ac0fd7e", - "0x00c0f9ad51f1fce3d154d38ebc56304f79175b69f6cf912bdac2eea1d5a2b7c2", - "0x00325f617a66b3f16b4268b3f4095a91566d2f1626c284837f5fe4056d893883", - "0x000427a812fde4eb87de7e80787802d793dbe7d761e62aa3e6d0443ec795cd6f", - "0x00bb01ac2279f454ded47b4f886f24c8bf6a3b4c5d4bd91a9ddd494a1c63d4b5", - "0x006f81d775a51df76a45ee6e4dc946b8887244305eeeec6aad84c718a03f273d", - "0x0042abe0d13bf2896c9f19b62fcde90703ad9e18be7faf72e0507bc5ab787340", - "0x002d7a27fb528704810b11ab4bb3cd6d33debb8ab1e94cf6ddf7f5446ccbec02", - "0x00dd93ab4627aa895d4ef096b7685ed741a2b901f6a138ee4b3cecd704eb0f48", - "0x007ea2dd17102df4a4610295ccf474ab601dee62c5bf3a4362fbb51d8d0dcb24", - "0x0067dda7130b167c0e8db85b71f9d4f884d9d769d1d80ebf010d180d79a5b55f", - "0x001d9c1a1acbb3e9acaff6421ad9880f7c85eeb052bcc1e91692fd8fe7a3dd68", - "0x00dbc455870a1849973dc66bff013e147e2d774c7b707cc64c2ef084b82c851b", - "0x0047b5fe61cd7b6b4f51e6c2bd8cd4bfebaa7155afb368aef0471a4184fa0bf1", - "0x0079bd71992f76162423cab5d7b02258c0c5a1477f832a41c08cfb6b9fa9233e", - "0x004a8bd86f3e6e31e6ffd125dad1b9ffa27d5dfd14f85ce9ca1d926693cdab6c", - "0x00055c188c89250af43ded608cbb34f4b5b8de45993fdd8be5c5f92c45935f4e", - "0x00f201664a8e76bff376b62a6d46ee4e1451fd32c2288f6dcbc216829297f1b9", - "0x009035391ae3c7c35f8639f35a9135c50bd13a5ab2b15eb81e7472d718c85ac1", - "0x00cdebf25966caebeebeab624d4ba3d7b3d68e6806ec9f515c7066f52b49a82a", - "0x00240965252fce3f76048fc610c0e5d79242deaedc1e9e30d783480ba51d3c50", - "0x00edf5cb5bfe7161d54b8167e590177353d923d4c20ff3671ddc41d2014457f2", - "0x00674cae373b064d834f36edfb05f12c74d9f7a25814fe91ece47169e75d9a39", - "0x0071ad9ffe21b9ca1343629a502fdb90b3ed53ae6cb2fe5a81e5516bcf1306ab", - "0x00917e5999953767a18e196a80fae79ae4fef3bb9fce342de81945f898a04749", - "0x006f27b1281cf6e6b0e5ec12a6339f7c1b3acb039d38a5bc4c9cae67d691bf89", - "0x00a18ff97605ea633c60a4fa6763efe411737606ea3f7a8d9e01445e087f0b24", - "0x00a5185c2e0e3339eba8ff51e09b675c1ab7c5ace7a98e33e5ffce2605d24aeb", - "0x00cea2b81b4df3390d78771a9de9426b2cbac5f33bd3f983ecdd08680be8cf4f", - "0x00a3f28fc651ad7614a36d5b08b9a6e8d8229f2f337905ff13e9ac235f4709ff", - "0x00fefc822d08c83273c6582432c171dcf5265a22496097e66b33ee68779ab400", - "0x0024c393fc7a3f523b33a34411909ce7929e0333f8b807adf471a70a0bfb50a2", - "0x0085d2445ebfdff44d4c2cd8e07f55d0ec993d34c3efb25aeb704c73f01c09f6", - "0x004d683331014d99ac2725a9d993d0b4059ea223b7e31d74af3813bffcbb3130", - "0x00f41b4cf36d3208e99621ce733d354a006a7ae7ecb4c0968d073dbadbb6fe7d", - "0x00478a2f7b7cb66040b958d016432afb638f3d8fcd32f9d408c88e8c2d7df648", - "0x00ce7d3ba45022039c48fae4afd18cdb36e299c45cafa764328c38d3e0a0ef9c", - "0x003a12fab23caada924fd3d6c019ef1259c9cc304ab02dcb3dd072ed3a1662d5", - "0x006a80fbc35c26bbf6ed6df2f810f9bd44b4ee0b8076f48b4ea5d2eeae00f3ba", - "0x001b0d41f959428f337aa0b50c4e24e534e52a83a4b096092eca5873d70bc6d2", - "0x00f497ec2e2258557795bcff5c2df277e6251ec4905f0017e2b41642c1d2addc", - "0x0071cd93c85ab2dfab79298ed35454be48e9a3a345ba5e24954744b7a87b1a92", - "0x0072512b56f373b8ccb05d86998997bbd47c14c8c2377bdd67c44133123c6883", - "0x0094794ca3a4246c0e6047135b7e41438ed077f16fef9b7b96518ba834d37950", - "0x00a95f9e79854c280aea8e9f9417e2943ec2762a646dfed73c72bcafef5194a1", - "0x0029dccbf8157a663c2c4e736ec8b7f524fb2158e620e6a34a52496f37585e84", - "0x0063b903262eebbecc0df8747c6bf3ca4ba8641116868a6d2afaa987eb2ec965", - "0x009e0bdfe6e49dfc32f9c9c7e7993cd3fb8f6be6190a38fad20e64db2997cd4b", - "0x00460e501c7564af3e1717d76200a7d98fe2b347778f0d4e479878d893ea3b82", - "0x00a5d52737d0f50e88e25681ed0bb6f3e703c1537856ae7ecc18fa16fa84adb5", - "0x005225656c6cd4a61aa51d2d72cc2de7e92778db0457bc11fd16823d05d1adf4", - "0x0000d571ef44c866096d9706a5c4c2082a156c5aded42980f3ab3faf9573118c", - "0x00cd9acb959fa7c5eba13e45ad849e473894d1b810976ce65bccc7bdf7618694", - "0x009583c849a267b0661f3043abf775c315b5feac5975fc33381cbde33cac496d", - "0x0085d6ccc2f950949e87b4b3a76f5546742380347422be1b78e0844db3792fd1", - "0x0033944e00247a5a2712226c5067fb43f396f96218fcfa79553a1fd16106601b", - "0x00d433dc8fbc3fdf0d98b9bbd39ff30cf78eba28b2671bba8feac5f0725cc1a0", - "0x00521b4bb5c5d5675ffccf4d134c4d2c61b34bb48f50e7d9ed0248fffb5d250a", - "0x00de20e5083c57afdad62274b8a61f653d17203ca3b3978796bb8a5fc419fc39", - "0x008c02e3549140ed04aa5a80c47bf257f8b120c6e11f3e207d5a0462d6b8d136", - "0x004a5efa0b570bc3101d3f395ea473c58f1337c9f965efee56f01ee366ebb4d9", - "0x0017a8e4340c45fc07313f8b1d879618cf3c6929e076e72ddca28ff30728c527", - "0x00076e324f29cd5f138e9dd030e07cda9096e17208a3fd24f56fcd36376de916", - "0x00d067615a678881766faf0cf0f1061e6e0950638d7e83f61cb749f997925f1f", - "0x009f5a78e33e4d2b1ae65e8efd8dde16b9c57cb9b757a76597c8418fbb755952", - "0x001255b42490b7576e5c4e7d45742e557e8e0632b126439096819bceb83a6f67", - "0x00ce056f6c2ce1aa2846099beef049d0fe7194857a77dc6c53b15e3874b6b0ea", - "0x00328789d08f890c6ddb568b460a23372dda56fb30c4397622123c902f3b0deb", - "0x009f18f74cfb3987b2e49f1b685bf90fb0268a4c91c01ffbd9ef1935ebbc6ea6", - "0x00b440dc28c5f36ec86f47a99d2c62cfe59d80efca93f0ffc14e27df8d22902b", - "0x000c6a77b74bddd3ee6d8a4da66dbafd46671de68c48e372a1ab579f15be9ae7", - "0x0086a67d462288424cfbd79ca8b4478a74ab1c9b213388c3abf16dd732b25e01", - "0x0059293d1940c9b34b751a16746984ff27f12c853af142b997a973dbd0c37a96", - "0x00df07f6dff6d0b9ba69e2c38c7aa0cc48ba7761965d5b53e5cb0085bbb62ec5", - "0x009203893b6c573ce30925349a6e4ae86eaa576854391ee123c798a8f6fc0c9d", - "0x00b82067799880e173140291dfd8462b375381c698da9958d6c8cbdc0f14f6bb", - "0x00a80239dbcb4f5697149d83172c3abf04849a76637c1ebb2f0473228c6fd440", - "0x00ff27a0cbd5aa22bafdb4fc8937ff815a34b401708fa6ab21af96802dec7652", - "0x0035ac2ccbc1bc48a606f69a7b04e86e5575cc857b876df5b715c0b6936da828", - "0x00f4d3a2bb1ba0eb8bfacb451b4aa395dc91407a413430e168a30bcb417a46d9", - "0x00987a8d90f196ba2d3703f736c063fd2dd7afe3aeafe6077cf7e7d9768c14cc", - "0x00c761384c384407bb9cc03ee4730883b7a90652cbe148d568d3bbf46c06e59e", - "0x00390eb58be8348057c816fd69146603f4446d38119059c4f3be314decef985b", - "0x0032c102042079cb329e90a71abf160a2936716e129a4252ab2c9dfeaea86d35", - "0x005bccf7ac0055e048ba2554840c6fa949e9fde33fb429e45e50ebffa12640e2", - "0x00eeb1af7d16dd99b1de776ad3aba50827429382485766fa0f7901d472115d6e", - "0x00e94d64d74e248a84eb00621ee86e21af7a2e961e09460c0dbb8681e4f92c2b", - "0x00ec7c5dcd849b1c90081a0801570080a301c88089f10e083779fbb14a8996b9", - "0x004bba0512c20c49a6710d76868780612ffbee35374d8001d79425e7cc5ed0b4", - "0x008f33fa89948e107eaa55adb6de704198b6f981534be89baee435f196565057", - "0x00e6ab12712bae9e6dc657971003f8523df152e6c3e904d08f4e549df89e8631", - "0x0075f3a4c15b6b6a31ceb5a7af49f1ada67f2ea5665ced8e2ad65162d004caa9", + "0x003433d3b25ffde9bb9648d9e0d38e83154cce35185ee08d1dee0669bcf66620", + "0x00b7c76b78028f92c82cacb3b3b3abb87e25c0dc991c7d28a90faac053b5868f", + "0x0015f46bfdb20e5a0609073fc637d06e1b2a9dd8f1fa1dac587c24215328852d", + "0x00e7ade658aa9f42c408365a656a170bc07d696ddd301da2b31ffdb6dc583b02", + "0x00293ec90805d4a04d4988bf66a73344e9761ab3f3bc99dd2ca67eaa012fc519", + "0x00f5fdeabcf6bd6be83e70869d081fd30dd27a4b7c0ccfc79ac4183b6206d2d0", + "0x00ff27b805d11195646b51adb0ad73493a8e64904832d42b5c8f75a759fb7623", + "0x00ac84ca8c8ff25b9e6b14082cf5ca64a83bff1516d5484a63339efbff08bc52", + "0x005f4a316ea360a5af2e759236e156f9a05e514d323638f81464ef207b9cfd1e", + "0x00f2432eea6dcc9415a48c94adf31f1cb85e02c90139b56fabc76e2fe90c0d26", + "0x00a6a054558d0babeb193c300cbc314773b5c96212ea8c1e7f78642d41344b1a", + "0x001786d7a36bebd2fa7cc0fcd4fc42d1194aaf613a773dddee6538950d64fa14", + "0x004f4953b74f1ca56d6801f8c23a2b2f283c9b58c598a7727571e4e428f2454e", + "0x0000b20aa68ddb79464cd319598f8e717f4726067fc05e492642c813208a3357", + "0x000e348ff9b148599ee116ef6650492aa6bd8a541cbd79d163da74fc1fe4b8c8", + "0x001d67babe545144eb156b028146d078a1f3d92b838ec48607d2296c6bdde55b", + "0x001bfc309176a00bb6ec559f8c0aa260358fa47125967e6bb794960b3d930d9b", + "0x002eb7d40e65b33aee652d8a3233fc110636da7554982d6c70213381d3862c36", + "0x0086a4ca0713f169d005bedd9ea7ebaa048293fcbf696df20387bc229b4e40a1", + "0x00c37f77e23f15cdc44d3ba9d4a4a10a7fb49078b4711da649b87bc842214f56", + "0x005c211fcfc875ddc7b10860a449d8cce02b9e5689745ea7e96b86f9c03837ad", + "0x000e3c23d17c025fb04654b75703c47afd9de6a5d46c95787de40222183c80d3", + "0x002eddeab2fb1197ab68fe12520df3af1a17c674522b6ecac905d42f66e05a42", + "0x00c1bb0e5d2f482b0050f439317b55d92cd00259ed72c013f506623a0f067592", + "0x00fa24a2058d8596d8bf285357c62e0d8292012d8da0ee91a4c56d02b4ae32f7", + "0x0002e9b24a09851536c253f5164189c69db37c07a50cec73b4d7c5e72ccf8abb", + "0x00121c922c78e0660a427e58217fd0e6d38dba7cacc90c89b32d10fe0c684506", + "0x00d724b1424518ba269855a53322a2ad820b21d589e1e28514910c243f86dab6", + "0x00bf90bd38a181628345a07e5bc15ae21297e50b137b7df4f188d64ba3f7ca79", + "0x0026c96c80f4d2a67b683a81ead547180d23b36f460fbdca15039f6d40ea7b81", + "0x00ee6cb26ed89a229e94452b0363a8762b5f93f79054444bb7f515906af2c276", + "0x0055bf15d4c5980a5f1dc2edf1f85c0a09b75f42be48ca7f4f792ac32560751a", + "0x007994dc40df9d2f632673eb2bf222e1afe9a81897e4808de36e9f58bcd08bc6", + "0x008b1323eda500cf695c38e5a228427e3cc72fa3e0e70d0e40613fe742e250ff", + "0x00dcad5a535cdd265d0dc42c49dccc462643086eb83cfff446e1783dcd6dfcdf", + "0x00707107c9034bcbbd0a51ffb6fa052d2d8c928d65e650a7bbc45812f31f8ffe", + "0x000ef631e59f8a096b6b524473afa4acf5c4f38ed32d86eac50e633b79c46d34", + "0x001f8f37b35b68bd6e555210c160012f88bab60c8a1a923d5780d0bb992e3781", + "0x00cdfc86e24e62c171d83b996dc5fd51f74bd11e7362352ff633b1142983f2dd", + "0x001da58ac3ece86808788fd470fb3eb196c4bdfd3fdc228c8605940b2ca08eef", + "0x00bd3e1933c23e0e7884fecc38309f5d4f2cf70a61b4fccfbe952c9fa3efdfcd", + "0x00ec3089301a7405b9ff8f3b76872082d46b07a43591dc61916fd784630fb826", + "0x00847a8ce355fd17f61291eb0b11937b9866e023c0fe8c31f2fd40417569b88b", + "0x005316733b0c9b21ea2c1221ac6dc8bd762cafcc3c4573acb55baafa819e7484", + "0x00f4f90d07bfe83bdc8aad682fe459d5fe7b59eb22b2d780a93a862b85e93973", + "0x008e44c3b28f9e8d515b5ff1d09a74cbe2aa46ee09fd2b93009a47dbda5ea4c0", + "0x000fdfd723269e4dd5ebb8fa2832222a5512b4a05a1bf88bdc7c451c26bd3147", + "0x0080c2ae7e1b6aa6df2d13a153e34a872c3a471e7cedabf5601a5dbcfaab02a2", + "0x00f759fe7b9e15944e8c4460f9d28c51f440c60aedac6e8ca78e426b3d97ef73", + "0x008861f144699c19b291069879f508fdebe13c0fc0f98ff25b50f3dd91d84b2b", + "0x007bd1656257ff7b9ed3926327c056f9d14b750cb6bcd12ede4bb5f93361d474", + "0x009ea7b1bddffea1d941e3308bab14ddd8aafcad0069819a2307dd65adb7617c", + "0x003dd9376cd2ea3a23c8627a09b9e3ca8c0b38e249104f18da14141d43e7d034", + "0x004df5b78fc0c06091398354a4c3a6e3770f24b1c4c07ee555cc4d9b54481ca4", + "0x0087741304f9f6f06205c0ae7a7d8ba54c1b306d85c53a9544fc64fbfde4ad41", + "0x009cc3913992e4781ce8846585ef5afe36e5392695529bebf39738dee9336d14", + "0x00ea50658bf0471d057d06fdb03367dcfb6bab28442d0b3ade7453648f676201", + "0x005d90ea53fb1b5e352b02a585228957a1218f1ca6a39e96f923070a2d4e53e5", + "0x00149fd43e14b5c807e6529dc6cf2080154a1a911aa6bfd9e8691abc95bcf63c", + "0x00558900f5ae1f0b43ade633422a9b2b9314d284a75cdaa2d6ade1dca940b01e", + "0x001c057cd076513563593353ca638fc6b2f5a45fcb96a14ea4dfe4281f913675", + "0x003c2035acac24b1c837f1d0801dd36d28f0895b07121641762a292bb99117e0", + "0x00e63e4a3eb96b4973afa7712521a7bd5a6270372c3c364f44ccb8159208c8bb", + "0x004c807077deaf44e3e425904ac165d2489997799fc9d991546497d3ab82804c", + "0x00d529077fc3a15bab4195ae210e776bfc6acbd88b9139ffc440b516db3a2d3c", + "0x00e1ef72384f3a2b7d8337496e4759662464ffd585aa541f77cf2cf28093bccc", + "0x008668ada3f13bbde777e1f15ff582b5a441eeb403fcf68b943f54da64754497", + "0x00b078d59ed0a4ee5b1e1f8f18a1f1506b17399f36c6b95d05b63330829fbf53", + "0x00663af7f4a8fe6ac41f6c13f6c62df6d141b6ac863f3d8e1d1ad36c061ba5ac", + "0x00c4ba80b685f0f2ea4235a22f119babe85d6ac5c91a8a19834850ff4fef41e6", + "0x00c9e1767871c5797cd529b6a5a4cddaee709b15d07e56d4fa94a3b8634fc7f8", + "0x00327c60481a73aff1e77225a63315c2b6c2e2ebee5d7e7d51c822c8960404d0", + "0x003636e8cf7920362ab2dd5057e74b2ed256229739beaf966b4ee93809b4aee8", + "0x00ac30540f01601782fa343464bf16297617ab7227cabb01c0ddb38e8ce4e355", + "0x00d3c9811c8115d0635467f8019e4b566d98ac4406fbbe8a6e9e6c89dd7aef4b", + "0x0057f09808c7ce33f29a3cf59dec615ace862b0364875cda2b6e154da889d272", + "0x00bc8c3a3716e2400c5a386c18e560aeda009df98af4f915c970ef2835c4329d", + "0x003e8791efc0c5cb908f499ecbf9c1d764f5234ded0faf07c296175f77407f82", + "0x00696fadc6148548078a6e7b38906efb04ad79b7296db7f2bb08b877047fa0a7", + "0x000c3bf5dbf6c73080cad221d09c4efaf1864aec5d55193784c18bf2a47bcfa8", + "0x007ab8ba93a12fad05bbcd6d74f266c01d62b4a6880bf26c445ba093f2a419aa", + "0x002b9dd5ebf770c714891d91d6d7e5c091eef931f35379bfed6ae7b702ec4d93", + "0x007bf503791d80cd6c22128a74362018ed62ec59b0d5609b825009a0f3ea7700", + "0x00105ed35653901ff109b6b61e56cb8cbc16966c93b03ad9587bab495e69635e", + "0x006e55d377e57597b7eba377d80ea091e32482f054bf37c6f43dca6b33187e3c", + "0x00df9ac2e427af11473d619674f88d136f6b5d1cedd05b16745c32db885fcaf9", + "0x0065544873c8b4ab0263c23b4653eccd6404fc6286c439f2cd9803d0e66b53f2", + "0x0069bbd63f260f8f2ab8937a291506643dd357b0f6195f6edbbecdf24ea6cc30", + "0x009a2225c76fadf5c0f532e8c23bc6dbe6169383dfb94a095dee392c9903dbd4", + "0x00232b6303593da5fa2d57c0764caafe2b0343b37f89024488d63643914e5d58", + "0x0082b161ab3dcf849d75721502c2574ae01de79192cbf9ecc0e0dba30ef327b7", + "0x007449f26d114294cf1c5308ba876508c8c1e1338d3693ced3a99b6fc5bdf153", + "0x0011eb72b66379f011e81550ca87ad9c240641af87d7a937edbe19218b72a7ae", + "0x003d586c65ea6c588f92e16532718ebb3050f312cd2f18d78c861ec34c3db651", + "0x00f8f91dd93c1b8ac07b48f15678f03e4f9f31675248e904862e79035a98a724", + "0x00cc4ab6ea3a5d3de18b473e632e717e2845e78e5fba2ae3a6361112adcece06", + "0x0099d7207755cd24ea2953c51bb874f25a15f26134bf320b6330fe19eb4f67f3", + "0x00c82701ce173b7584b6d8db7367241c339126f586db52c4f97c1dc9ab854ad6", + "0x00af624d6c4d12cec8a343be4ae1a13266a1b7ec929ad91347ac5a7c0d2836ba", + "0x00d5df740d2fa1872fe24c060ff672b01acf949b6f8c06b8ef4d2a44cff9ccf3", + "0x00861c54498f01bb7102b2a777a1f0586863695d391fdf561b64c139db13683c", + "0x00bade75f7c4ff362edd6be7eb5422f9f07a245d3f09ba7f438279443fb9f484", + "0x00c7b333017615115b1148b162fc4e48a7cfa17f9a0c797f5dbf1365df84a4ad", + "0x00fb8fd9bf6ebf0061deaecf5a1e5ce3d909c3edf13ee66ada9ae8e6cfb9a647", + "0x005706e07ad77996241c243bd021a1cfbaf0c609c98f7a423d6067ef6143e602", + "0x005b62650363f0f3a5bb45a5bc4929c324fe71bd0cb369630b6cd7be581a83ad", + "0x00868ca9d0f6e3f18531c544075cfd531dfc0aeb4e6cc5f4d1dd4700d75e623f", + "0x00e514891786bc6aceb4e69121365b61fd353cfb466c5ad7f09aff77e7da8317", + "0x00ea2b336fd8c49c7e03a6036a2fdf192f03547a27e2992350b4c4311b774b68", + "0x002d16ecde3cbd99073d344a8db836e150366dc621529104c6a53e4056554e17", + "0x0094eff530ccac7d8bbcd2c43ca13324cdba576578b4e569c733d36e9422be48", + "0x001dbc1d2cbb046a765d876c21d8efed2502aad35f67b06ed9a3c359c312dc3c", + "0x002517c55b25563ab20ceaef16c1e1bf12179267643fddabfeac82ac8983f75f", + "0x0031a057d024a5e869f2c9f0e9f3bda4d57ac125337675795a061e1c3f1fc8af", + "0x00014b63badc7fd2cbda89363f4fa68123f8f6a87d63886a0c71e2b7518ba472", + "0x00916f1540c2a556dfa16616154a57378d0869ddf4c50ba3db9bf867d6cacd47", + "0x00f3e7b1fa26e100f54a5b3b7d3de0925e0786caef793ceccf84daa079520558", + "0x006e67dad8ba8dbdd980adff171926b730986fd76a1cebb628579b4869ffa719", + "0x00b7af58cf5685bc45fefb4c568bbc2423503dc5f6cc4a2379b202e7faa4ab82", + "0x001690b4c2445da5f25f81a7ce05103879a3cd41ffc9d61cb27d4ff1a0a3ac82", + "0x0084f99b5394298c88235734b8e8dce5be040db0119a9fec9b35502cccfd17de", + "0x00f430ba6ba1c7eedd4290bc602ebd64500e1a368e419c0c982a338255189f7f", + "0x00e9117aa4a03cbfa90ed5fec3bccf2ab009d83bacb610187e4aad57bb5d8ac9", + "0x00a0b2e26a7702854593002c13a709685a7c7fb35e4ec883eebf3c13247bc88d", + "0x0089b3eab817899349176ddc165ad908aa6ced1732968a507f9fd483be624376", + "0x0052d7a7e35d26ab153830e3f19395d2a80d0e6a6750f79c4c89d25f2e47812f", + "0x00d6c6885ae2a792fbbd39ba1ef8490f74f645d81d660a22acd82385aa4fa6c7", + "0x00853696e9b2e7296257968cadd3451d4007fe8b190f6ae8b07c5a676edfe839", + "0x0026fe6c50aa3561bb73ded15f95d9221fcf083811608f3286c4af6221517fd7", + "0x00ef97b0a99ece58a2e1ec8fe8fad2e2e67d77b07b96aa121d576dcd826a2b84", + "0x00e89ff317ae0923a6a458a0dd6588cd2485d290b14b03a83f822945d1f7ce84", + "0x00dd4560ac7bcc6ba93473334ef330481127e1f4093d7c039d997e0b83e3144d", + "0x00c45ad5fb00c6bd490afb9d83f8cbee8f6d0013b82f5654698eb563f7ef37cd", + "0x006ff5fe07b5d628e3fea9c0ea6eca1c476bf35b25047d773a7a2244b332f8b8", + "0x002fad2d6a53f576d03add9b42b933b1ca5f26b4cf47ff4563b14aab77371b87", + "0x009ae3c0cb8c3029af5e2917eb0bb4a8ec6ced785b7026676efe3aa341daf279", + "0x00f17947b501d25348fcdce408873fb0b502bc49fa5c75fb649152d125e4f9fe", + "0x0059398ba8dd54a87c565b62432f688f0fe0e732321513484228d2626fe9d149", + "0x00be1838b42304c5469789123687b77ee84d961c2a20793372617e39bf3f9cdd", + "0x0000b098499f18d1aae5aac2861f93b9ad070f4e8fe942241d3f45ab0f03a593", + "0x00b8cab3c2b2c2ae506c716357ed77df3c24668a6fa5c3f86a00b5d745f69b3d", + "0x003dfa930040b59916c2f4f3902697d158edce90a966c7eb54ac438ae509eae3", + "0x00493fdf09f20f19f7eb6264b779e26643aa480bdafdc55cee5b5aed506047f5", + "0x0041cef6d348e681df37ec1e3421a64a0aa179ce6ce46523135608829f22cf23", + "0x00731382fd5f4ec150ff99ed3a1b24bb072b06a0bc7ef1c321948b73cd913a87", + "0x00fe180f3f8129fe4d3c00d87acfc99743f1bf1bd36b5d4c30f0b7a2b7658f43", + "0x00353ff5c1c999ede97886aae58f56e19272432e7e0bb270177f2868ff8d4058", + "0x009a02d4342d642baa8c39b62fc5449e33d7d3a9e02c5f26c66cec8cccc7f043", + "0x00a2d93726b38435cb6825f3c228567e3871b71151ec57f5a7b1f521e862af8e", + "0x003ef9153cfa2cf6724b3a7ec4dad1084672b129473436ca1761bdba969af62d", + "0x00b80198b7bfb181c2e113d48721fc5fa8e79f67e38a7afeeb0be6b5f6bc937c", + "0x00eeed57e58bf8a3fc894501674488d14dda71a56a5774a41d140f79e72c1725", + "0x00917c46c6139b54d680a6fa9d3893e4d9f07655a54ef88c7d007556b4a46066", + "0x00efe68507d295b9bd30d07be09dac93c15ca0eea106d5f46d0df7879dbcaea1", + "0x00905107a6119bbc9974d36ee794adeab959f63c1cd178a53931e0d4eb2ff39c", + "0x00f67334f7e10ffe5aab38b4cb050807e63eb760bc9957fecf07442ecc363e71", + "0x00165c9c0732d2af8e0cdab32363f45d90cf2003b69272ff617283eccb1353a4", + "0x002f2762ddc1bad31006f59b5e774ed4d24a302b0264552d9eafb667586d3028", + "0x00f9c1911721f24f592b6e5ba1415ab98ee170243eadc5fd4cfb58d1d01a7a33", + "0x006c5efc2273066f10c412ef5bad30504ff3a0584dcc609e1933e03fe2f709ea", + "0x001e3460d8dabe853f7911c199e8a2048909cd7ecb057e06279832a359a912f3", + "0x000f3547d385bae0af14452a134b0231b510e55f254ef78ea730bc661cdf7f9d", + "0x00cc2fa82da45e5a8342808540a667e1d9dd0afbe325f9422736d47e3b5c6906", + "0x005d465475966f6978aa7bcf7af26ba9cec0feb44499f93f4a8e160f52f7593c", + "0x00390046915a4aba7f5e428c8c3f6e32c8a7169ddc63f65cfc4486fb0ef01768", + "0x008f446f4bb3ae447891e52444271ef97ea4a0ed43bd2c750037d0cf6dd08855", + "0x00c687d94a97404b32fee6f80131b7220940507ed4a7e3c0a0177249ae2fa44b", + "0x00a52131310d4ec53bcd3249ccd1767601e5a41cfdd71dbefff7135ed77998bd", + "0x00055517306ae7c6d393d2dbd0c3e2f0f30abf248cdb89dada8658b1fad5dfe8", + "0x00ac63a98a32ebfb97e6a839232ea919b23cd5dc83c146a3b86430ec18dc9d62", + "0x00076e9b7996e285befb8bb0e11e4844b2d07161cd8c332bff8424941b7dd2ba", + "0x00657a5ac7de6251b431ff9c01433ecac1fb67dc101ff68c1567386ca1c4146d", + "0x008197e27976b0443e0241fa11d2f234a932063baff1832aa9271914e45ece36", + "0x006b9997b7387f0efe4d8ce2c6e6cdba8fcd5bceb14f14bcf641ac9e02e5c959", + "0x000a2266815aa39c527a30de0d774ddaeb44f25c9ebf2d346ca4d5a1f2ed6742", + "0x00b8e9ae34683975b65ecbd1e661ef9b027e6ef7078c5b50b886b1609585a9c6", + "0x00e206182a2ced75af537864ce62f31fc3000e1cf91f49cdb50541f97f23ed10", + "0x00b4c5ad83ef5063c87bb25ab3a7e6480913b3940f0abb9369c14b3968289581", + "0x00f9dcb0c41dd3d5eedc6f068700d5cd1d39342787141485318f19ba96a5fcf6", + "0x0092bbec42fd4e3cab0f657b281bba5c2f451f918f3737266fa0c38388565cd9", + "0x00b268179268ad55e94165de963213cb965341abed43c2247b679e0d8da482d8", + "0x00962cd3f0ff607e9f633c9a9a72515f4ff895589dcacf59d6283cb4f054692c", + "0x00873849c5bc795f37533201c9bde95f19ad81fac21a73d78431bea964a9444b", + "0x00eab50bc215f394dda22ff450e90c6ea709c9328eb6a2810eff448c51e504fb", + "0x00dd6a31210d775ed880b6fdec45fe6b08c1c96c33c0b929cb5adaa9bf7d7f25", + "0x0096400dc5d8d3155b07821dc5fc5aacb18c58cc8eab40e686a0ff2673aa1409", + "0x00639451034502ca327d2a8b04924f43253d0893daa74c722cab0b3cf6803220", + "0x00f754e5ce13b88c060194e04233e8f6062b2d326b9c0936780273f69fd11ddf", + "0x00520377dfe2747e5fdb2a05273a3cbee226e9e87bd8fe5f14ba610bc462214d", + "0x00d25b0a1b074e6875b58884ba6104dd6103c2b4cbddb1536e7b56fdc03c2bb6", + "0x00bd55c24ea23b78b2ea67bedefa260370b2bd22970aa242efce8208aa019dc7", + "0x0025ab857c71a723ca16f4bd60afba7a6725c3e9fff861f00772a53e151c97d9", + "0x0082950f8fb07546d1b5d201fd2ba5c574f27904860be63a26bd9122a7a75315", + "0x00ce91e0684701eb8d1b9c15362bd25c60a085991bfcfe6955644906fde0d524", + "0x000551c1dcd92f1f574ebd3a6f37b5a425e91dc688d2e0b906cdd4ef6c0d0273", + "0x00580d3b3836698dcea69b9b22d41ea9df7e0e3065b19f094de93ffb435676e3", + "0x00a33c5db94e4ac53d1513785d659df53c1fc977ec392f1d0c18006dc03fbf66", + "0x00f72eb081360b3d88805c344635f0047e009f2ca618184067069ca50d9ed304", + "0x00cbb64429f3a9091832446837f82a342c746aa965e62a58e465132e8e805774", + "0x006fae81ffa8c21c70b8164331998231fe36e27227cc644735fa01f7a67d9926", + "0x004054cf822770d745f1083adb9611ef575be35fdac5600b6d8a463a078764c8", + "0x00207c7b229f1ab6db2534ab677da2a0e072789fc9ec71e99510ea3f4e53d088", + "0x002887b7d282638010798e8b8cec7cf7889f84f4386889beab437c71bccd8387", + "0x001ac10638329fffb080bb97e7b4a3d606aaccf1e27152f8b351b1fa3034f0be", + "0x002d1041971d1f76eb182b8e62c45174e7ddcc1387dd69e37f13e711eb94df23", + "0x0098423cdbb50d01f721a7edd7a28d1201bfd456fafe73e875e3528f15a67ea4", + "0x00f18bcfd90088f2eba2bdb8fadf11eeb23d67389e4a61850877f26fee013ad3", + "0x001403ed22e8f3989b6e197f781e723ab7e3511784b69aafe34a9a06d1d7b0e2", + "0x00ae0284d241dd4086c08b16f386d8c7c686fbde7c80e6c48850b7f44e11176d", + "0x009871dc3afc67baed4187e9a4cd10cc6227ed64d31b6f7c2d81100129f4112f", + "0x0009bc71eda8382d3be9b5c25f145c70905aa94d232ccc4c9b0d167b634d8c3e", + "0x00b1208df20cd3fd817a1f70ef0259f3d53c2606bdd0d0b6762b971e1e509714", + "0x00cc969478537e97030708c10bdc3f24e45c3ba1b975b93f61c3641d7f3f73ef", + "0x0017de6cc681b0932fb8e5c5e7e0d6b05f3e09a32d55d2caaec792a58d7ac075", + "0x005a53f5e9aee326ffb374ede1e72cafbbac9bb11e8333a71bcf3b8bbb9c61c1", + "0x0073b0f8ade939ef59e17a1bd0e8f0f884d7ec84329c243ea490c086bdd67be8", + "0x00b65ed222fcb961a96c7bbb0b87744209f5037fd624f8d208b0c72d829538d8", + "0x002dc1920553c8be4c29439c6e4ca23d4102471cd46060472d983a075be78cc6", + "0x00d51035452c9a62326d7be48426d9cd749e6ebc867c4a6d5b4a0003c439c15e", + "0x00a3602f25f930dac592089dd23c26cb56fc45cd9717a62382f248840a9cb581", + "0x006ced68d927f81453025fd6cc1e0bb6278884fb1f1e3e92afcf91be26c56e38", + "0x00ff7fd39841b0942ac7e0d3394721d1fcd52ab5ad7d1f93d46145c070f3f942", + "0x00fdb76c26b58e8f6884274a08e2a4d5d66ef8a4b662e26281a0776e0257d2c4", + "0x00cfe36a1ad7873b129663d5141a29ea4b7a2cf08830ad2c98a0bc621af96db6", + "0x003e6ddc865e16311c058924f70ed7dfeccdadb1bd15527a4b78f06702eecb26", + "0x0078580dc1ef54ee1ae9e083f45e445513ab3560f355b7a599955bfd8b499467", + "0x000c92a559e2959c45cc7f3a0d74b46ec45fca7ca47bab56ca4303b99ad1c3a1", + "0x00320083f6ec2787ca9990513bf1ea73df9304c9d4e21733a42bfa12f650fcbf", + "0x0097c9b813ee7bd9f85ca847eb6d160b0a4bee738789f604055d6e551594d728", + "0x003191d08fd680e5b06c7f01494073d6e050fee1f979658e8f04e06e5e5e5c00", + "0x005e59b7a2f3a1c747efd4b1530508fdb525eb6e4855790b9e6e31607d026664", + "0x0011f3b32d304fdb357fe5b466bcbd19558ddd2828f3233a1e7ce2a5e2837d8a", + "0x003fd63ac23d11c79bdda57f0d03f955a2d085f38f02f3ed71d5a123c67ecb1f", + "0x00002ed9d7d3cdcf16f5f761ee2f2fc4908c81d4466eff63365c5865286d3b42", + "0x0073d64287eb12767c044f48e67a4d4a5d3744a7f275a08e103bc66a6cca866b", + "0x004018f43291f39c9a4f5aedb96e734e211cad07a2961028407febff8591538e", + "0x00432eee72352affa30706609a8e340ea1ef45f3dc1cd82773250b3dce409330", + "0x00b0574d59dca7223a9a086592ef55981e49ae3f7746828d5bb3f7887a9f818c", + "0x007f8f943001c72db83166d2db00dd8fe09f853ca62827f3932332b2a1d64fd2", + "0x0076f3d4d9202b79a32bce141e6388320f7b453a8606ee376862a11ad49d6209", + "0x00a36ce0dde873be7b8737e1dd7880857546e8f08f498ac164dd38a7920ae64e", + "0x0058adb78d38a6fd708f3332d43a12a6a2e6b7b1949bae72f0407b24d57aba8c", + "0x00a24c3199cad73a3231cc65d74ec9ad08552743766fa6b591f4f7b68b51182d", + "0x0062dd4dc1ae5c5f499e640e5c6a82451a29a91dc58b5dc68c63752bce24f7ba", + "0x00870818ec2f8098e9a29bcda05956e8493ac541d0710eac37432d5c6d414b3b", + "0x00abb96560a9d14803e7301e08448c245bb61b66f0fa3fdf94a5d7b43bde7fea", + "0x00a7bc1be0cb37136d5f8b8786b47135d68629e09b395e06c8abca65244708eb", + "0x00ce4d0294eef886477a8b73da2dfff51eaf38a310e35429b1219993f0fc3e1a", + "0x00b204b189f7ec840ff959e02eebb82d1fad9950001a4d4b6cf0d4a5fc12f49d", + "0x003d7dcd7bf4103c289f4cdc6e18180db21c0bdc688d71fe86afcb1822b0b475", + "0x00e51a33f31662f65c281eecfd18239266c48f17b15845ead276b1e3890bd70c", + "0x00446db91e6a5b010a0f23426a9fa4995c0d62c459faee9818bb6e3c5dac987b", + "0x001fe1fae69dcc70f4a389c322edaedc6130cec17d841d299fffee31675ea0f1", + "0x00e5012626d71281a9cd61bdc757eb6b0a8761e8bb90cefb3e411ddfd5f8574f", + "0x00e4c68c37606fb233f9a9e21fab4288d94bfa1e59734f761d0b1ca4d75e5d34", + "0x0089482c55319ea66872e029183f706b1bba84e6e2e2f27d09d4344339dc3011", + "0x008f26160eb5545d9a76f6d0b5bdd395a3c9ae9be5940d3f67026e2a90bcde47", + "0x0055d8add01ebe9b99d650dc4881edf84925414c4f3e94daf0a4b61a2dee6710", + "0x00e44707c913225343086d93789b1a7c18997f73a25320591a76a04835a422d0", + "0x002b0058b10d85b2dc697d1b74d3e8017124e771a0d0e563391855dfd4a2eaa4", + "0x00d2e8060947d4e05cfeab465a3674962b4a47b998decf4ac8eeabc2cf19c898", + "0x00426a34241303a061eb4ba3436078ec59da64cfeacc62a3aee0d0ecb9ec47c4", + "0x007c5b7a8c59ca4d47b0b3b19fb3c06a719e9093149d5e2c8515b620794e0bda", + "0x00d9bbdcc11a06a175bc84ec0688caa9b8da88f7b50abea58369212dd34c5b52", + "0x00a320e146d942d53b3309fbbd93d1cefc47126682995f8b97075292d8475923", + "0x005c8668f9d9a25b6ccd0259a86a1ce2703674cfd2bcee1fe6ceb81b41d861a7", + "0x0036d744490a67a51e7b0cfc26f05bb994aa076c2af5d5b4227473a0b5a4bc1d", + "0x0079ff1aa76045e49f75650152efcdbb2dca0a724d195ef301271c3846d1b627", + "0x009bc0e93b6577ed7312baf94d7853f0355863a7e1d2f14b4063fc919cfea6f2", + "0x00c315af1ccc3cd0173ff310cb0aedbc9a0312806070df05743030198fbd35b4", + "0x004a5d280dd2fe8bd21d1540a8103fc83af356122690144daf0e29dd88927900", + "0x00a933bd959bd339aeb53f1e25ba837b0999803d7eb60eeb51a1578ec42ce5d7", + "0x0012bf0e95784503cb4f37644b66cf81b58f7b94df813ead3d66a95ba9148700", + "0x002b3fba49dca9d55e1334d7754eb81875707a2cde9c0cf53ad5f4a4e70648d3", + "0x00b1fdc29fe61ab6adab373a955a0f67b85e009640bf0378f6f0085d365b2492", + "0x001a75f6ee4e5b314f18578fec13a05b375ceed582f42c65982b1d24cfdfea85", + "0x00b0295aed4208ab010101d31652a2fd0a79f13cb9441dbc7d4922ced528acf1", + "0x00020b88af882735af4af29d43def4b26d6b4c8651f1c3ac1b91a3f7f402323f", + "0x00a4da5f17ee01d7607b3f2846f14ec9c3cdd94d4efc9e591f8555e5c593ac21", + "0x00d90126120ac636a01926f17ea8e575542338df9ef94b23a2b4162c42913a9b", + "0x000bc4172b5f2319759a5ada4a05702a02315c1f3913655680aac5f2eb2e2b0c", + "0x004f3e2ad67dcc3160d1312dbefe8cfa9f0884838d9d1499a19664c8f4080ec9", + "0x00340dcd95d171e9c55f75d3b4fa67e894003cef1488ba15d875b67537066a30", + "0x0000ca0dc6c1b12d924e1745dd9a73412b5bd9d1646742d1219d37e1964ef986", + "0x0001aaacd139ccc3e5ac008511faca289a49b7eca4ad9e5a97a37d99214c6ce4", + "0x004a3274e41a3bafdf0638f31f9b5876b3ec204c57c6ec2aa9572982af8138c5", + "0x002ffc9569706ecab3131ede3800d9ce3befdd7c31f8a4684af291185f31ce3b", + "0x0057597a3f4549414af8126b38e20c773da414909a0f607ad5173e8d53726c10", + "0x00e8eb50ab225f4b6474416fc61bb1e7616e31b904f9e5fba5381fffa722a572", + "0x006975c01191175f14c15c1702fd24b21241ce1261a6511259583bb9e9411156", + "0x00f63eff5a6755e482b2551a4a9c9fb6c6f9b3caaf1a57b9da309731e92c0a58", + "0x004fa0b57ebbb794f84e80e995608e291e7feeb284209842098e82044289b5ef", + "0x002853765864ee268b81a4f9d75db62e2156310e9878e9988418662b8bfe2b6c", + "0x0019247d1db0a54811ff2a0ac94fbb32b78130bb2336528e1b33833073ea8297", + "0x0089dab909233d2a0ca8b0b6005e4eaffb07a082a6aecf15be3a7cd991e8da60", + "0x0089f9ad0de3f4270fa46bbec78cb80c68dc2b7452d79055f6d3d96527f998f1", + "0x00867cbc6b82b18e08b7d7d87036cf3b20393e8f7ca42caa2892e29862be928f", + "0x00e180261d73bb3da2d927479bbf0a19bc3b1d6eaaf7a9f040ded6b6dc034b44", + "0x00d9310497044c7c82a93d5aca5f51db964f71eee0b39ec9e86de6ede28d079b", + "0x006be5d233db044d397e0e4bb4b0d75905efecfeb07072e5e4f77212add0450a", + "0x005d0cbb7d625ce0afbe037205a9ab2e4a9dc04e44de753f79d6e4b1ef724345", + "0x00c5b6296b49374c97a56144f7e4fe082babc6b89688d658cd7ee47b1490cf66", + "0x005aa1737180075b7688eae8420a28292abb807cead6e771b85f66949f102b2d", + "0x00faf4b0db1c1f806e9e2cbd4018b043543915f507bcee702f5fb557e693c0cd", + "0x0005c93de2749a9b1b4c867e6e19e3cffcdfb2563ea37de366ec7e7af3f90331", + "0x00e4d88750422f5f83a05ede537085d18cdaa720fd58e4dd72061fbbd6bb1f8d", + "0x00fa9f3d6eab3b51ade9cdc78438075ceb520436b1e494ef3236a25a9423f2f7", + "0x000a9eaa5115e947110ff50801516cad62e5675fe5ee0925eb87d48077a38bab", + "0x0082b86c569fd9a44f757618d46e5ae05ef3c431392c8c4a07638c7d37047b5e", + "0x006278d771bfc9506f2dc1b77f0bf1319443169cf0e94f3d44d692bfb552e7f7", + "0x008751cb9e752b50047a0d51268625fc4d5afd8c18c6f368be01595cd89a3b1c", + "0x00bb4085226ccfb9fb8d4afe3fc3a3b9467071fe6a1a010151773d8f787e3b45", + "0x00b7490f0e3a8954d1a41a0a577c91a245a12d8ed842dbd932991cf9a258bec6", + "0x00bcf57c4ed7d23c2aa0637c8b9ba9c12b4cc4aa1b85d10bb188925f2257312a", + "0x00cbc7a7e524c2909085c17829172d7dee26304b1956b2c1f633f50be238590c", + "0x008faf9ae4dad6cf5eded173a636e0e214e50d00dae251c630c744f2326f2ebe", + "0x004c0f79ff9678491caa250f769d886a964d7d21d2dfcfb589df2150d4bf20a5", + "0x004ef069b44f4247e18a2438ff2dfd1d4c88c5fe0ac84dc168f32d84cb7b7194", + "0x00c337d3ffb606453efae1f44920b1791c1372a74af1de673f4f89f6123ecacf", + "0x00b6bf5745d19097c41e78d9545a98875db829ec92382d679efdf69459b74e82", + "0x004a0f7ec4f8d61e80899269598e7cc154216388ae2a6dfe08c89b27de30e94c", + "0x0060b4db76e3c58f8b9333066d5d388f3980ec6161efac1e2126e71c8b35828a", + "0x003f9190da89c75b3490415bf8460c14bb0ba8606b9e923cc43d5a825e791f92", + "0x0037d11432b627660ef4ecca7778185fdb0392b93affb75b910d1742b381fc57", + "0x00962d67dde41f212c173a4a79942ba10a887316e7bd35c553c23265b96209ba", + "0x0007579884a0de8b528784a02962f03fa8508f47fdc457b5d11e218bfe368569", + "0x00eac347e692760a32830a6ceb66d99e3b86888858fbe394ce1ab2e477c10f61", + "0x00d57fb58c1a0ad549706ad22c2f3d4285cb39d11c12f7b61d7f63a1cf0f177c", + "0x008afe86771f4a85bedb4d32cc25d957b578d8188bd6388a1df00582000cf575", + "0x00fb35341bcc1b900bb482a6efbe5b2124220355a0c85e55a36d0398e7da2783", + "0x0088e2921d16855d88f57d2e057d28e5e7b21328b87b864e4fdbac29293ac5ba", + "0x0050f065fb2c5b9ef7fcf0cfd9dc41883a1cb126427fcf9f50dccbdc30162439", + "0x00893a9383b1dc02a342f1df2b5fe1259071b71f5c1b9d0fcbdb2a2241192bee", + "0x003e9a028752b808dbf5f90ee051c7a416480824b5f2503cbad27079eb39c425", + "0x00b6edfb91b2286646c9f7fed8da8dece0a91ed09d3ec54d980c84164d0dc483", + "0x00a2a0885d5e23702a4aad0611f9066ca93a5ab3c28f1d70b6108f4e7edf66ec", + "0x0066edbf3baba2610091f82d43f1c8d1ecf245c78d660fc1a05a8c5fab42bece", + "0x00bc8d952bcb2f42b99f7b910200a028be4fd85a1f650fc2938c7c617f21b8a1", + "0x0057a2edeade6bee8e3659cb1f5137a344557a0f384be3800beb42a0d5b922d2", + "0x0003636d57bc90a29697655967d50b846ff83b18e815bbe2f8c13bd08d261140", + "0x00e97031b629609b7c803f49edfc4a2b515ef722e37bcf3fd683a8f0a6247a42", + "0x00322460173f23469d2e6029bbf473bc43e638b0bef937035288648e93bfb175", + "0x00080067cf5b0d0e6031410315cb27b6e4b6a8e080c88e9adf0177959354c86c", + "0x00e274bb1372b9e96c6562aaf9c7abb5f08e9bf9cea16c25a8ca4a45feeff254", + "0x00f9405c802c5219f0e24253f5e50995a60683211d4887537bda50599418212a", + "0x003307a8dd360804f9084a9e8dcd15b2d831ce85c649eea504c5901057fba779", + "0x007d34a943aa053f5385bad31592f712bb4b0a5c68d35bab1edf46a2cc37e97b", + "0x00f20486d562f7cc76a8251b4681a2377a25e62fd1e47cb39cf16d55275eb682", + "0x00ae18dea1932b2b111467e771667e54aa04a8aa461af7449f91ca59dcd47a48", + "0x00867155f7f244caa187673175ffab4331801b7fc28b27caf169a1b4c8a72df4", + "0x000ea1f3d534876c0fe0e8f40461ab3afde583201027089f81c101f3d5248267", + "0x001c63b89767a82864c1519a5b8ee81518a0c416abf031bd46df478231e69808", + "0x00bcacab83fe6a93fdf2ce7b1354337b7cb7f68d2c7f220fd871922031dfa0f0", + "0x00e199c5851b951c6b75cdbb9426155094b5a5b734d58c9ef23be03a5c3f7cde", + "0x003c54acdce4d8809d0fcb8dde49526946b67a340690a2f3bf4e63f955f22dd5", + "0x0075acce879e41d8b14595126f09b3d7d74d8502888b3efabc0dd8d71463d687", + "0x00ba3350e8fbbe8cb8e7ae4cce3e02dd8a6939f75f9100e16ba31167538420d5", + "0x007ff96a9a40ab0ac9bc8e737dbccd8b32d9d00d9a362e758e486bd039021338", + "0x00459918d47926c54582e70320f7c00ce702a188d11be7a5d055a2fd6be532c9", + "0x00db8b2f9b7523ce388a19a64a30f102b7c591cda8cb0831264085eecd742ed3", + "0x00f698be82f8e8d01289f529446d575b9ceb03652cbf05e0b7106b9e5f790ec2", + "0x004d144e89181517503edb7e9ede403622f885a593d9949b0f9a29a4275d9a7c", + "0x006a2fb479711576ba6a6c04962a8be825cf7d96f097116a21ccdd3d50a4c9dc", + "0x003a039e1bd549bcfb4d30291206eeab0e7661547ca8e5bd4909550a0727e347", + "0x002118a4c59069adb505d1d77d10e093a6f753777a7a3e1a6572748ab633b43c", + "0x00661c3175071b74e3338f59d3cc6eed6ffedf25426b53d732b02cd60d154334", + "0x004c944333fcd8bea483ac7dd3bdade837686cb234482e741ce5edff2ccb6b92", + "0x006658861a77cc4a5641016cd81daabee248e87475106034b6adf947ecd84c0c", + "0x001cb7029459e9fa9cf878022245d38dca366110792aaeca5bcadf5bc0ce018c", + "0x00266acce09ed56defb39759b4deea337db7da3ced8fbd09486c76095bc984af", + "0x00c56e03f3d1ccfe035f892c0f752942a64bc62bf8257cc3b97c987c462af29b", + "0x00bf63d388a9ce8ee0aced3ff3dca73c4a62447112724beda6bd01a11bbdfca8", + "0x00612aac1daf560b840334f1b49c3a011f2466139a151497030bb0d36f9d6834", + "0x009af5a65408bf3c98812209b7a7a1f2f3248e105d55a0a9abcf898c0bfe81cf", + "0x000ad1b11e964ca5514a98558b231f97ec534e35599b5a105ed58dd55b24fceb", + "0x002f8bcb2491ec771e557623333714881733883e57c208404f7bb54a5e013674", + "0x003503ef97c0a1e71730ee51e7665598dee4ef58d1a1ae11cd6fcf5f8a41984b", + "0x0079da16f8806e18f9f12350b39928ab274de19dd37fd93f1ef7d4e16a5074f2", + "0x00879500f1f7f3d4b0017e5dc16f034b19f32640bf120a00e722097c2c0f2837", + "0x00413dd548932c5003562696ba0aa99572d32cfeb60cbba097bcef9e46ec963f", + "0x003a17587ee2f6dfa54f6b0b846e89868ad36d7ca3d4e7220ce2912ea792d0cb", + "0x005c08ca5ac812cb96ec2143092fa966f88e8ac5c3bdfe7f5c044224616c8660", + "0x00cda21960ffebf2a6c73e2ba3e299ccf2f86d84e3909553527c65e544e81f1b", + "0x005675a846ab8b445defa85b79866bb32801408f0d206bf158cebb24ee7d8d4c", + "0x009041b9da26e4c1fbff08fa79e8491a126ca3d5765209a5f77efec6c3f82111", + "0x003e5930d10a581d27eb06a4f3d7850f090b723fc1502e61979d043fac65f04b", + "0x005e52a2aaed4c7a4903e67766aeec72897337b9ed8968d348a0b28c29ecd1f1", + "0x005de280609ed1ed1a960d22bb9c04eae5d2b8f8e983704276ddb367fb925bb6", + "0x00a20df910ce494c20ad43df6c1625b32af33ed0e34ed0ebc9b47022e3741985", + "0x00495df7a5844ec864deeb7e2b7907f3f2a36410368804ea5f75e978e4604160", + "0x0010f2c2d8b96032c2c8aebe12ec74475d11eacd91d95e754c46c50eacb3712d", + "0x000da4acc1261d7a911a5ef0d0be66124eb6f8642dd18c8d62b2cdfdb6a95ac9", + "0x00fd8b68f6ee06608b2325ae0b0ea200d6c5ecf82fac08626e68957b448726ee", + "0x0055812dedf824daae979c1cb3411a85aed9dc356dde327a81b52a43772a8c95", + "0x0082819bbf53f8eb8ca9082706a861c7b76c79516618e930521d042de468c15c", + "0x001974540387f319431c932194639803a6a83c56db2587eff92cc38fac30119b", + "0x0037a8a3be3fc0390304b633aa9462d8cc3947b25863f672ff2cf4e9388735d7", + "0x00d2e4890e2f0b15513f5e171afcf58f20df90a4ef2048cbcda613a6b61afdb3", + "0x00473fbbb1e66b63bcdc69c7094c12c396cae139e6be55783ac19fd0470995bd", + "0x00afc00937494706b528ef5d284e659aed3398fb6ebae8e14015c31316177c78", + "0x008afa0248aa9ecaa253bc1404cf8eaec4326e798769ac47cd18dad2c43228ee", + "0x00d82ac065c88dc617176caf527406b46ff11e3950a1938e4453cb120a9cd418", + "0x00ee43b8ed756562a266506fdcad37234793ed0c8e081400bc73770035dc496a", + "0x00185997b13b1deeb2e2e2bf1072040fe598b09d7e4ef96ee9c9fbe67a927c1a", + "0x005c9cae365f11d6359cb07598d6c34717f7a6a59a19d5e07832901cb9fbb361", + "0x0094cefc2e6a45a55a37a57a6e6e0f908c4716d7859bb23f707e6c0855f0044c", + "0x0015cf21369755b104117612e17c4774bc4e9624082b482484a885bec046fb22", + "0x009302037e862ca1e6d36a8529b510ecc64b9443444377a3dbda966d07fa8c52", + "0x00516de4c99a927ce419f7b2b373a42d8433f960ddff917f3c92c5b5ec55e137", + "0x000ad78f135a38ab3357e4123c6b1020f9a4fe7bf55a464e0d3e6e835bb8c6d8", + "0x0028d5cd8d0a26b982739171ef4526e5d16bd40b04ab9580a4635af1d8976685", + "0x004c089324d8c3e9a2b51952794e9c674c1af6ce5cffe9b8ad1530db30abb4cb", + "0x007d3852d4c33c9523cbce6e753628439d5023a1600187797d7eb4f24312c345", + "0x002205f1bd75b1409242bfb5db7c37022de874faafed06cd27f5d598f5f5af12", + "0x00eda72c16e9ebe097bf8e16669c794e4b47544a7440012e3975ef38e8e5d443", + "0x008c4e8d37da089ef9941f3710c50e02ee4295f49f0b776f016e682e04599d50", + "0x009d3052ecdaa6c704b98f1c85e19207d905a709a5c0f8eb6c3e1c3122b3fbe3", + "0x00345a02ead7f6a685733235abc92ddc04ca97faa24bf956d3ae43089c6800c9", + "0x00148c9b5a55d679005777332c49f2a740d54a9ab83a88dad4976224564c4717", + "0x00191a74a813a08515d8b0644651846a396d993bf8156a64e3412d2044903bd9", + "0x00c9aa19fcaef1743974ac67d352e160128a0a636563fc89483cf50876ff1bcf", + "0x00f71860064641b8a4b4fa54fbd365b5c4196786c4aad326eccba98bf4c95921", + "0x00c0ee6fc66742979a148977db8bab1233c7e975d2a7a11439976248cee8adbc", + "0x0036a35fdc65fb2fdd2499f392e881bb7b36a880cea3319620acaa8a97950cca", + "0x00fe128c7464a85ddfadf4520e10e87b72a5c64f3f49e07ca1794abebdfa84cf", + "0x00b4f9607efe2e9d77f37cccc3c6eec47532df2ae5cc91efa8dc847f10c1fbbf", + "0x00465c13a555f01517de92e7dbd1bf8d2072ebaf009224b2f36cf0580cecc644", + "0x000ccd948aeea94494ea9ff33b6add25700e9bc3d17fcb046da1f791f916a07b", + "0x0035868d0ebde9b28dafa40e6b446cced5db7be220626cf784da2e3df2dc69ee", + "0x0023a781c744c762357b0276a8f94e48e1bd2f7474fd493dcf628d4e074b8ed1", + "0x00ac7e5818c22afa8fe3a1cad2d540a35b29ecf64f620c5a424acb037b0c9423", + "0x00ad907fd67ae11da10e810550426f777b0a8d020f6ef94f3eb470ffd2b89893", + "0x00ec96dcd6ff13872fc9c876e3beca2c3f1da36e6eee44865c9034843cb10ca7", + "0x0084e686ab3014d3a357e91e7ee9d28595782b40386e90721f22f15d39096a2b", + "0x00d36f83c98810432b59e9d2c586c71481ae026a566c8f0087f3ebe5a12243dc", + "0x003665fc1bd86c5a2099328ee298faaa82081b10b79d6b4ec7846847eaebdad9", + "0x0007ef6e9e98988d4fa1f9a117ecac57248c9e9840b009897473318c948e385b", + "0x0096e71e4a1315ae9bb1bdfe40f06b925c833037ac45e59e8070bb8e779b4f9f", + "0x0024fc402471cce67674d330bfa140ab23f6586c4799dab530345910256d308e", + "0x008cbfc93d97533370ce6d5e64f8b39015cb72ccdfa57770fdace91a3a1681b0", + "0x00401dd98381d4c5769ea19c57ab88cdd2f846497c564e539eb268293910d206", + "0x00dad6cc2f77cf43cc5052350796b334413ff1184abf60fce10e56db83be2e05", + "0x00b9dc5954c0ced73802daa2ede2635e5d864f901d46be39be1f90a5b14b3c89", + "0x00ad13e741f5b359dccf7ed64588f260cfaf036583d03c295ed4d544f583dd0c", + "0x0013812828f45d100ae78cf2803db62f3d0d172bcc1a8cdb9a8c1b844f36fe11", + "0x001fe502260b78a31cd6c76dec83da02d3ce93d6fc4cd8941ac6fd746e391835", + "0x00295f677a221dfd44b9664bed3e148ca723bf7d85d7338ad4f46243b970fdab", + "0x0055a48ca02ac64851e45e7a7287eea4a590eaca482561ab726e1933241d9905", + "0x0032a237d8343ce1912c56f296369aa8123de7d1026c6edd43ada14f60673313", + "0x00259e4ae7fa424996a1212a28cd3a929e7a1193b078fdc24ae19d2d3771611f", + "0x00b076c8674f22b5d5aed031efcf2f2c2fdfdb387de9fa62f2ecd35c029d3b31", + "0x0077a2c0bfffe41efe8161d2a6498c39865143d0995e491cecaa99afbeefa5cc", + "0x0032d6925d11b979d755aa3a2a192e111f39c8cf169cda23857a8657b06e0076", + "0x00f727115226911171b10a6e48656510fce94c72dbaaa8be004fa80e9ecb44ba", + "0x00ffd55a8954e768be5972cbb63efe2e117d369ba7e38c0814310a9555854351", + "0x00eeeb0b437529bbcdacf824e98b954dba290d3206cb82b2f3ca0bca46eea61c", + "0x00ef25e97b4c8271dbc5b17c084fa50112eba20140bf1001eeb6e5abfa20d93d", + "0x002f2110ae7cea80f1b07cbc1425cc514abe16244cb3c103a25697081eaa46fd", + "0x008cdff9f9fc9e98b8431917b36d569e7b757fd866a020df3dcd49c8eab77413", + "0x007595e2dd68948546fbafc2efebf7e1dd524a4141a77777ec47b869d189809b", + "0x0072d58c3656418c51a0b37a82a16fb0aa630d980f496663235539a4171d95e2", + "0x00e10286c119aee3a7cfe542852bdfce255a6914fae08465a9bedaa687cbf781", + "0x00afb555ef4fe5a8afa4738b5ad01207e9b27c0049703fabc57c5d55d31efad2", + "0x00776d099e8630bf68a1135149ecf9704ebb262a521c505b8e05a1adfa434c7f", + "0x00e389436b895d8abc8c9006d53e5aa7392c34205fca4acb4c2372139b990107", + "0x00187ab799760cfcefa07d649fd5367c5ff44f67087d5aa7e2c304cdf56f9e17", + "0x00af9f4a1a7509aba1434dcf49281631ce71f007035737608680023110598071", + "0x007fe6f16999a562de98cd70868d56cf7575ad2472bec3906218d0924782c8eb", + "0x00b3d5803a7d6ad7b6ad9e9aefa1b8fe22cdc21a7ce9536c53feec421868ec6e", + "0x008015d60f46a8219c608ec1071d69f295ee059e08050aba109ad7693ee13c37", + "0x00c8efe97eae1c5e8db70acf9c5dc3a06ff6fc5db45abd1f3aa6c2758e4b8890", + "0x005120ad0a98e47436e33f0268b99faddcd4ddaf89e277f41f7ecf892cea7506", + "0x0020e54e98209f148315dfca646f5c10eb79148a50f5d3f0b65949cef8e23421", + "0x008a5ae255d0ffc52bc9ecac377a115f9ce7170a68b92e3fba80f08273e840c6", + "0x00bbc881e0cb827d72189c7d9b72bd6232acdb6cc2c864e44e0ce2db1f5b9642", + "0x00bf595d083ee93a167bf9fa65e42b3995f010ce85317d6b2f9b2b7609df52b2", + "0x002c151c6cb8d9e71934444382ddb898600c1dc674c5ca973bd127e912555853", + "0x0015c89c1b77e9e04a9bec33bedd1488ae1d78438c7963f2d2dd9602c8a85928", + "0x001fea7b40998ec0fce935934154d8d4c9fd8a5c7a8eca76ac21e9770c493315", + "0x001de192d0bec856eb74fb8c1cc37547c4f5e5a889b99d4c752bffe352f17005", + "0x006e1bbcf0649c0b1d2d67049b5cf346c713ae75c2ee37a9dbe2c582084da290", + "0x008cb4212346b7257936cd422d858e6cd87618dcf9dd3156d143ea25100ffebe", + "0x00da20851644cfe62bcff899945bb6af3f76c181efd279e4b48f09f992a624ca", + "0x00c0206747351635332f9681e4b941ecfbf988889720138713860f6bdfa6dbb5", + "0x00cc1b69f77af99ec9b210b788f906381b9fad989d8ff68a67543141f7e6971b", + "0x00de3cb0641dc5f7266d15752704957960fe8ed6a1290c6fd431791c6631a129", + "0x0039776055d281d3aa23ce137273578d08902b60d1b8d9adddd20455e87e5d7e", + "0x0074a169f3d2d444006ea6fffc4e9152d680271c745ecb64a2a8b63a3dfcdbc1", + "0x008be5479fea4741eb456129153b000083348d741281657df861c5bd2558abdc", + "0x0019b8a896a174c042599d81241bbfdd33bd0d88d71b532286ed0470f5b05cbc", + "0x004425650ef883977fb7c8cf748dd4c0497544854c7c043d63dde6c29440a0e6", + "0x000097f001754cfe63b136404439bbec8fb10fe5ec88c5706d928bcc8234e9b0", + "0x006890591b581382c569824d3ae03c0c59257cc099bcc1c9dc20dc0c5e8919a5", + "0x00324d5ae8184d8d7a594a52a644f7b183095b75c2adb92d7b87b600d275fd8a", + "0x00783291d4ba6aa85c1730a856c7b7221576aee9872e6c6dc0c446e127f5eaad", + "0x00b7e08ffa0448cfd11951ffc81dafee284814b5dd9b85d5f8bf5beae7504123", + "0x00ceffdf4796736e657787ebbb46e44370299396b3fd67ff82b0ae6b384c38df", + "0x00ef54b84199ef08edb9dbf3dddf73d491fecbbaa43ab29cc45eda303b7b4630", + "0x0046c765cd3990764bd1a7c526035aeeda1c818e0464eb97ea50e51f8a5c6f1b", + "0x00beb9555f38bc5d5aaedd3de3dd128f3652d10aab05d3dcb218ab5acfbd6bd9", + "0x00bf75539192406d26f9e734531fd12cfbf58e533bb905d88a6f4c3282407053", + "0x005fffafd934a755bc0049287dc524d0bcd41063354759ab01eabb2b9c652418", + "0x00dfb6a7422418fc8ad3d861acfadf189f5fc33881de9a3ff02f8a01eb366942", + "0x00e6f73dff7197be2f7b223ed9453ac6a8dba231fe0229a4c4819d011bd85f5c", + "0x003b6ee88c0df61c8a7ee4e252616422dcaaedd52149af1dc1023d1c1268a912", + "0x00d0430b0ff0d62ea3a0a6b506265854a3dabd92815cb02028163e1b311b8213", + "0x00d15702c2663d02d23802746f29b99a661432915fa020ff6dd94dc6c3e707f0", + "0x00b5e688b54ae81c6cdd08c04d10c9800c1be108b34fee49aa544b9fb8392686", + "0x0028c502ba33109c60ebd8cd968beb698ca04041f33ad23a9b7b9d97bfb086ea", + "0x00305afc72491dc06174d9d4882a64e879adc1d735171e425a6b18f2d90c3074", + "0x00c9431c98fa8274896f733885eabebb783cd68927023e99787f28e34cf07bd3", + "0x009d93348cd8f16602e45fcf71a1a16e5c49c200874f04249375938e77771305", + "0x00b774ca998a035a7e95eb2aa5b06c5e1d5a50ebd76ea620d9cb45ce73627696", + "0x004ce50782cbeb1b008c2a9ce09b1930b730e9ac8e70e917b4018d8491c9289f", + "0x003e38ef94f5dec76909c8d0794dfb5d5d4e2d222ebecdc1e92f2abeb308de22", + "0x00c06fa367da858e5f6280e56aa100b12c9be974641b6b315ad6be859d727dae", + "0x0066654983915e167c29054ebe0c4187a54e0fdf42b4d68556534830e7129b4f", + "0x004272971ef0d38297477748748129e272c0acac61750bcc687a5d9b59cd2aa0", + "0x00880aba236f081bdd50ec350bd50291e8605d2191d49b42bbbf00b0cf36b949", + "0x0006cf54fe405ae1ea849e3f934c002c9a0b9b32ceabe041adfba22666523d6a", + "0x00e97d4b4a5c28c379c0a5323dd49c2e4ea4c3b0bc8eb021ce44110f70631e76", + "0x00c6ef67791de3648fd76965a1933c595cef1b3e5ae2a0eea394e0ea2d624a54", + "0x00f93928300d620e7bd34273b42c15b9d8efc754489a7eba63e2b474045b8b49", + "0x00d0935e1bcdc510a6cae6d86153b5f58a43a0e943de60f0164e5bcf87f13241", + "0x00803a1dc0f84991e76f98f486da5e18df477b2549cad8d044592958d94f3c16", + "0x00492050260561b52edd707aa0da542f997d01e81284960a976698b33d62784f", + "0x006293f9e5c2e3737b72033acf8360746f4c6a4c3067b5a7effb824760039874", + "0x00802ce5529b721b5b7d9220e6583f55cfeaaf72ba008230ebef87b259cad7d0", + "0x00d8bffe414db7a88b19dd717c0e7e841bed36b8a523f2d7bd11326b33b02885", + "0x00e9b5fd8b262a1b59dce0056aa4cf0c02d1ec1def07c94095c17e94cb8361bc", + "0x0044e760f5c5b1eecbaa3e1bce97c7b9a5c4643d0bb3d84128b845f7c9e733ca", + "0x0059cf58799cb54e7de8a4eb9b9a77802faa90dcd9f7fd50112d897fd86e1813", + "0x00bc84335ac8e9bb064c2a9b9c832b2bf5ecdbdf884a337652068a7dd05d40b3", + "0x00855d32e92a4af3a52d8db91f4cdb42be53e89811ec6b87cdbc147cf790dc40", + "0x00d8a3d7d0dd2b47b4aa0ceb75e67e6d9771d5f82925f53886bc28c1aea43d3d", + "0x00440e487cd3bf030fd4efaafcfa32553e8b8b4c21c1a60383030e605fe542fe", + "0x0023d5baf2a02d8e6aedab455d3f1b83836c982e34bd03f95de02151d2e31b64", + "0x00ecf7b280c3a98afc8a8c7fe108873377b925d6d2c36019544635107fae85b0", + "0x00d7404696ae2309e9a6b9c125e31f017d91ca1c1659fe703a4be3679df3833a", + "0x001465d9eddd57320e3c1d66a62ea38464f3187ec1f1e41e06e7e61084e78e3f", + "0x006e7fd7fecf94d4a694aab9ed52dbf0031bc85dbd8d326724641a7876a378aa", + "0x00bbee9db49d8a39503168f0cf746bf6f598dad6d680ca85408b6d25526ec156", + "0x0026f06e2c5b392e054f8cacb46555c1b86e4f6f07d5872972c0463a9705833d", + "0x007ab05e6334c4fe63745e05aeb9c3bbf7687854add2927791416d72b7cff825", + "0x002a87bb0db3beb8440e253994484491cc17428163169f0cdc8dab2deb70f5fa", + "0x00f32facffc69faf49db91e5cc2c34ec2d3249c2bdfa580d78b4b53d2135d6b9", + "0x00382139f852da62e8004230b0007f6a1c587d67cd87da2608847566d3b82a98", + "0x0031e8674370ebc662c98f8960d5cdd9895e1619a334449bcdce3f3e52ed0745", + "0x00e751ebfe7255f9f782260aa3f6f1b2ae70663cafebcadba8509e07cd3747db", + "0x004ebfc176ee4e342665732d68b4860aad91c060769c17633e63e1cd5eef75ac", + "0x001f6d6d081b3e0a1af40fc91c2f22afd218ddc161ee1984889cb177b20cffdb", + "0x006a88c02a21822702f403d4ce5af4cd0f6e72623f6ff234f580ceb6110fe827", + "0x0019addb889f73285ebc29abb28c2d7972d1c5f3725876ec5adcf6f984ade63d", + "0x007da1bd67e8725ba719852826ac5b90acbc58c67e99e75ac2f728e784a0ed7f", + "0x006e9b4aa1114007f0e9b41029d51d34568c271f62f420d218a9cdf62f464bd4", + "0x00e41c161671d84de6f8bdd0844381bd2b0d332441c5ebb9b3c54c81f26a3711", + "0x00796f2f0b958fb84119df851e8142f6e66c5981970fdc4e4454d336b0d15e90", + "0x00f52d7c3a8963fca7b45aab210b1c9bf33c9ed4fdd9aad24fbf40c20af35ec2", + "0x0031965123b84ce844e535ff3168b437dbc7dd3f2585b1912721b03adac46090", + "0x005b72d3c856c321571e2f17c8996ac6ca4dd9771ae29e2aef8c81fbb9d44638", + "0x00f4b9391fd389f40f76fee75d31738343d3d52dd3b916de824a542cd0df0979", + "0x00067d9ee6c388f61efb221e8577998984c2c5304f81d25291a50a3aa7053aaa", + "0x0045a512bd874623cf13b2b9bc74317dc4324d81e1e9034448657cc9e4e82b15", + "0x00743defdafdceb3252dcce85586b1b6592c61aa9047b77abad2ff8d9430a9ce", + "0x00b65f630ba96e9c283da1b528b0aa70e199d85cefb42df7fb0e0a94f293eba6", + "0x00ae4ab813ed5f3eb14c4530c9b09c2fe07781e66f98a901c69d9e9d60d28c25", + "0x00e73b756e7528f4b17b6e3d4662654790748a08d3fb5fe13c7a93713bfb29ca", + "0x000ad9d92d72d7d71ca6727c83814486403bcc16ab4f663ab184bd263d15a677", + "0x000af4ef0e2e712e65d8cb8017e21b5f017c49f8ba0a8ddbe0676ab18d6debe3", + "0x00055654a7dd4e34e0a692477bece5e3973fa2fd94f21ba80ff3cc8ba6da7e02", + "0x00daf41332d5b5713182bcd12ee884e801e5baf8c9cc58f9a8ce75c2897857c8", + "0x002ed60d597872f812c21a815f6dda4084ea6258446e555d13ea1187fedce85c", + "0x00eb175d8a6f669c241245ca76bfe7b495c1ac4ff18cbf9c9e0a23c8f8f390c2", + "0x008ee7245dbd0ed33f2e57ee1187e650be9239fed226fd5d7d37209a74e74889", + "0x0049901c9e279040405bd7dc40def5bc42df9d89f35e37445b3c00b8655f894e", + "0x0067f542a5eb10865e82eb50319a8be236e3352bce1190dd560ef6b552b0aa8f", + "0x00f57dd59ae7fb6af3797c09a05f5dea5b3f135eefba6cabf38b058ab0cf431b", + "0x00dcd1b73005135e81defda67c3c6a184afbd77382e4a050dd63b8943999414e", + "0x0051201cf841a9e851912820af163faf1a836c4692f86d63772a2f2e04f0f3ff", + "0x0028b08bf17bf7e1e29bf39ac4b1aaf24c2a39b0152187a5a16454a58b3d0da5", + "0x00031417b0d2f0c004b82ea431c28be8adf553abf00b529b33954f84cc657129", + "0x00960ba669a60eef358f1e1c59e19c54147626609791dea847b3efc8bec754ad", + "0x00789bcf4658ed511750f2cb5d8988e7fe58967749f4c20dde15302422bcee37", + "0x00a2f6ac3b17b2b1b1194a924b1963babe7769970eb16d67600001695ac67b68", + "0x00416608d183b67ada690304fb793ad48cd02723fb7cda506d4e0346375162c1", + "0x00cfd9342e80ea4dfbd399ba12e04bf3fb99690b118bce836ed88e4c79a07f2f", + "0x00d0bb77cea4fdd7c5d1715c659804067e33d29749634f85b5d7da7cd9b3468e", + "0x0009b3068795b390ecbd166062c7f0288ee05164cae09a3b27269b7770f76a6e", + "0x00d8f819472ed91b0d0233b3889654ffcf757a9ca9f69a17c642477c7b814516", + "0x00b1457190fec15e94d19d145cd02c281e0d4c39c9e23b75f833b159f818fcab", + "0x00cbddd31b4544030b2ac525df4fb183dae76894db10aaa369e537d1490b2f94", + "0x005993ab250f7142a0fe672671c67d909d730c1c1f6249ea6fbee45e651857a1", + "0x003184636a13e909f18aec0fe13500da7f05e98b0e3f0703f73e96dba3531b38", + "0x002c0fb683754004cb3511c1242a44b98c19399c436ea901cfdc5dbf8f789432", + "0x00f0fbd253896254fd1507781b60453ecedbbe5895d7d614347a8d956a73f533", + "0x00d78cbd2b2c8241cec9a392f30653820242455f72fa7ee2b67e839a3ab87d3a", + "0x00cb737970517fb578e45b590f0cfb8d8dabbe3935f1312da2ce68993f781887", + "0x00abfa02f845b034125f22d9d90c313b7950bc8d059664495464c699b801f6bd", + "0x00120fbd2e948c3f093f5fb00a576427c8159d63ce0deaf48f6626cc1f657d66", + "0x009cf1816f60f1e074f35ef4af8e59093e3ff779b763b60369a1a353c74cca89", + "0x009114becd2b18712d69dbc7d6b3dd92d9d8c838ed3296d540c791df2acf99f4", + "0x0099e24bb7ee9a63c67a88d9fe6276adceaf62bb6b728ad4744a66be664550cb", + "0x002e1ce0ca1d34edf4609954556a1c3c8df9371f61b721ac40d8f43abd2575ee", + "0x004d9b81b8fd603915471341066d1db44d5493a0525b789d8af520aa4b08dcd0", + "0x003b795b582a167cc15ef7a00f13443cc6361457cfdd1b52dcfcb4b551e06c31", + "0x00ad248b28c660d728968ceb2a55a6a0954d1688e3107e2153e1b6c697ac568d", + "0x0093f3e867b9548096c1986e8dda66bffc980ab2f289d098987e6476ad6f2ebc", + "0x00d11878cfb4ff35cf2f1db6a8d7ed5e18ebdcb82760d4aff58d3babf681bd3b", + "0x00c08a8880ba2d967d0d651a9b35b62968880bff2bcfcfc04c664011e1a9675d", + "0x005baa0969cbf4b5407a7dab1df77f92200b3cfab1d287238e79e3c59a9037fc", + "0x00546b0d5d9502743170b54a475cc347e2b8c288d524ab6bb2537d5b274ab74c", + "0x005b7bf275be2b2326d0da1e173fdc37584c5b8d27234db61fa7095504128195", + "0x00328e985615a49ee55fd4d4158c92f443442ab8740d81166d66d9f585f994f4", + "0x008cfd86f0bcfaeaa25bb68ebd8ac057348ca06302d26c4c6c994f9413d7fa44", + "0x0080387f75f23a83412df9179a2d3b692a9fef34419997d4c533e483613aa692", + "0x0026d9715ecb35b7b07b99e3c8f0d358440baf8ef14a45af690ecedf46e769ca", + "0x00eeff8e5b0efd780275bb44f6751e4d231c3426a35f2d46119ccaa269e5c562", + "0x00ebedb22dd5147b41dfd4de3d302f9d5c312362d4901d983ebedb8466389e16", + "0x00a862ea508493c64adfb1d5a144bac9971f5335e2e85eab7115d0c1a477f0e3", + "0x00d499a3495268d9c41b0a38b8f6071a741690e9c32adecb1a9329c0be950263", + "0x007843142f8796a9fbeb53a5d1a05120f5480909a2178eee0a71127f893772ed", + "0x0051329564522b523ce8c0f057c917e4b1eff14444c3a66ee7c78b6e6d00e97a", + "0x0040d3014dc201241d013cc029651e36401ae8796c4ad43ea56992026fc7e075", + "0x00239d325efdfc0f6b9d7a2c4ca076e47cb3f6f3a9c2c71243ce4f14941441e9", + "0x007f3355025514c85a91eeda7aafc1d9c8bd485a9855e79de9cd5ec99d96040c", + "0x00028c6d6fb04182d99e9a06c5107017131208cd3fca58446b0f32440497d58e", + "0x005275deea2b4a398bd49bef4421508706045c2430453407ffe681f484da9d28", + "0x00deea10e6e94703c8dfa37321a16751302abd8f1467b81f7bb7abb177b14ad2", + "0x00fc04d6e37cc910f4689fe5cca8a368cef74b296022eee308e97a32a0568063", + "0x00eacc003dc6bafaaf868302a368bd8146cf099371a76c5cd669054d04017d59", + "0x006c348260af632a985325302567e7caf4968da7e456bac3e5400d9f5f76c70e", + "0x00f82a480bade3526c678e052855dc8663af49258774394403be072f24d3414c", + "0x002ea2914c16eb36a78fc40350070c2f2962ac3b502525acbea5187912c3f74d", + "0x0052c8fe150bc9db1c407a4b62c768939c775e63a01331e4e7d9bf8dc5023783", + "0x001251bca8eb4f0a28436f27f5f55d3874a1f9a86a9b43229942edfe17f9229b", + "0x00f200308cc441faa857711c22dbec5270a84d3d0b5aeb6d26475b29dc3ebc03", + "0x003128f2e335a719247d15671efc107f04acb2f5bc624cabf596b0f1ea84db1a", + "0x00976f7145e59ccbfbc1e3c05080433b431574a3971bcc5b405c30b508f1b2b5", + "0x00d889b5b4bfd5ebd9bdca307944b16933a1801df9e6fab14c8462aebba0e08c", + "0x008742364db2bcca92becb8caca0e98a5d2b02f8b475425414d8f19603c838b2", + "0x00170ecfc99476916140af502586cf62f5eaaa0ea2589ea2ea5bacf243156b26", + "0x00f8c68e10f9ad09a66165747a759948bc68979e16d4a3ed670242e1f609887f", + "0x00fe8d37f462ea313d28f7a84c43e6261bf3350b1825e2c72148f5d79c969d75", + "0x0044a3ef8e2a0ed78ce484d19d44bdf38beb8225dec79d48025392750dd3552a", + "0x00034dfc00623108db76a23b70d57bbd9768b06a318814b819d869e62caf309c", + "0x00ef088483221e0f8a036efd478884dd5fa5b842aa8068925f8cf9d2ee714e41", + "0x0088145427ed82ed43bd7782f16e18c08e5568766a2a35a8cea8edfe438efb28", + "0x00911a2ab2dea295a0cbd85e16ab444f7ff87e06824b0422742f78336f3dd6a2", + "0x00d40fc50d0a8948325e7914db906edcc69dc078dc811a0b0757914d2620eeb9", + "0x0042218f4c2e088eb3210ffe00e98b2b71ce5cce0e20af3ba449e3f2ae2d7600", + "0x000f4c3f0f3c81f9bc01397c30f2c55b814d736419bb799da59de02b18a474fd", + "0x00e11c557eb55ab52db7c7655bf1fda3314638e81207e03a0fe4c40e0ed927fa", + "0x0081f872b23d20639df781e694632f7a1cca0c3031b779e6a2357ba378da5b32", + "0x007edb507ad6f2b935b3556ec32f138187869c94c10450d923917521238cf3a4", + "0x00d85eed4aa09e30da726ad206b7da1e1ffd82fc55446b693d520c7a8c5d4236", + "0x00ea6e4a36d81d3757c5b8fb5399cdd3dc7abe0dd0f6fda3dd6c487ffe616643", + "0x006a504b911b166e05ef97d0af585e40c80b4da311c8f0f8b2b29e79790d98dc", + "0x00cac485c9d45db6a3713c681f2c70a504d9a009d149aa2aa00d9d4ea7ec00fa", + "0x00282c8ea221e19818976ec68156cefdcfd8d6e5e8681641e92cf0f58bad234e", + "0x001ae9ee71451171c0a94f990ccc040db3c5eeafa526952f07364e12b3df766d", + "0x00fa43761771b648dffdc665deca4c84b0a473a8cb42548a3e25558d27bff596", + "0x001a8102a9070b014c8b1fc39f87d48f0b9ce96718face458da805912f477be1", + "0x00514df33ad6c9bf1bda89dc85b08dffaca2c6f92b46ed778f6f9c945bdd1263", + "0x0008fbd8b2aeb5aa84dbc8490b53761d0f61f995169c17f683d0d540307b4c2b", + "0x0033c719e8e423e616cf5455e72570354f4e527de225097ffb06ad71ea02cfa9", + "0x003cf3a8f22edccea231c55a200c7e704cbde38c03f72b1fbbcb059fea765d9f", + "0x0077324f4cc3df486c033100fd9e7c39e4239f35c4bdcbf88138f54894b95e7d", + "0x003af5b4efcc19fdd905a5fa25766564a6b054a2f3de41169ae9001166b0ca5f", + "0x007ed4811627161e312800b74ab4c4d3a60e7708d585d9aba54382d824c92610", + "0x0067f8f3bb1b24bfbc567f9957c1e37973e69ea90602caa86d0048484db57ad3", + "0x0001ddf3e753c19454bcc097e285f1d6b17d93510ad7271147f80b199a1de1fc", + "0x00277d5944ddc85f191032ddd446959a544cdf9eddee77db5a2345ab911d0237", + "0x00df0264aa48e0409e368ed8bb4e2456d87ec04bb5f2663a2556c864852964cb", + "0x0062589654d2f1dc5c2b0bec52144093b46d51e3bd7b01accabf693eacbbd47c", + "0x00aaf1b09d72c4cfaf0ccc4027f5587d64c99c12d237362079f6beece3b4d5e5", + "0x003b2ca1e941b9bfab8b55709eead7bc24b028c00380a93a758289db6e5e74d8", + "0x00d0f2a7b2ef859d2c436438b1728b3a15f067e820d884322638725cb07a6a03", + "0x00fef2ffa3b6d1dd5bb22f4ea46aac98c072d084808fa805773dce1a0a4bffc0", + "0x005c17e6850f8e9b3e3cd02a4774adfd44c125b95c2a3236c16f813398fde5f9", + "0x00ebc57a014ddb9575570fae3bea7b0aa52d27683700dbf1b982b0fbd6651123", + "0x001fdb66b6ebec4b48d77e646beaf56b397052cb7bf0c0761c1869fcfa8d232f", + "0x00a8a82d6bffa1efcf164381ee68a8bd4458d810a85005547173cf66ba528f8e", + "0x007b9fd4eac99b180754bdb32cdbd282641c13f62dffbd24550fea7fb429bd75", + "0x00fd1d436b03c17cbc9057d6a51b7bc6b3711e3d29cf5ec1ce43f49b949d5d57", + "0x0099794ae5e34e8d5a6376ed30d2494f1731af5ae5a646012ae46d6f27a8dedc", + "0x00dfa352523e7b8ab77428bf828d9574225aa3800df3871ced700e31ba9a1140", + "0x003e44595e81038f95cdf9eb76f727e0b053601f841e7529fb1b4c3bd6c717d7", + "0x0070f137a73684e52b3c81bcacb441b1cfd6029cdd24d939bc3479ce8dc6a8da", + "0x002893a912cb8c4ca93690a5ee81466cda25a29a183f6cc7cbed305f2bd8015f", + "0x0092cf0ca372167d22b9bdedc85f65fb7c2a908dd845cb158780141682b394c7", + "0x00e91227b2904f40ca38e75499c4a4d99790c0a5d4daeb75a34377d30321b49b", + "0x00fdb3ff2f56c10be91f9951a2a826ed18749afb19ee8e059413bc2f13c550c7", + "0x00afb95fe649f9906412511fee0c773e1715da9c701f98ec247833ce167a1a21", + "0x000257411557d9b63c9e9cd0ddc06ad13405c7d02072f397f057d0aab6815a85", + "0x0099c402dacd9817988fe980d97ab94e1f548a1143eabbaaac67be28078fc2bd", + "0x00f8837c7a6024010477eba7c1b478f34fd1b5640170e9698e89133d9ceb7412", + "0x00241aa7bc3c3c0848cce4fba104188990dbb3ea3056e8aa2900ca8f35b100dc", + "0x0042a2ff227caeea747cfdc1e5faf46831fbf31f9ed7dd4976570bc1a0bc1661", + "0x0089d204fae45a0a7b2a1c24864c4359a61020dbfe0f7dcc6764d47586a0fe3e", + "0x009bb4c0fda29a56fa15564a97708c9d9e3b00661d4efeb06beb3e315a9b8758", + "0x00b8f7bcd80b186d29c7193860b96596fd726edf78a27034ffc8a15347195991", + "0x0034730d835739af23f903127353b0d3a70bc6d895535997f7a07ff0446c83f6", + "0x005b35176fcf1ea07fb83a25895c26eebfdd381dee7171d5d8b28f2edb5ad208", + "0x00415f72c3631cdbc1664e5e370c8da3101ea9eaec56d85cbe565222c61fecff", + "0x009191ac93695b7be6ae6dd2b0ce9a550348c13ba647fa38e5c4c3fae9eb0a88", + "0x003028566a3df7c03dad4c880ff3f005e91ff32c1476812a7931a67ef3ce3ecf", + "0x0036bcd7ae1c6a5d42652562fe376cf6cfb25fe36c14e10c64f709d19f85b1c3", + "0x0014a286c8ee25f3cbe9df1bdc46ff82d12376785f468b5f5ff8234be559324b", + "0x0019adb60a81b5a4fa0b146e9b26c4f6e6e3011d285577f65f9109f81676c3e4", + "0x006b52d96a3533ae3cd86e440269c49d4bd0a892471c71ec2e3e0a0bb0c2a5b0", + "0x007067beb09659bd4438f7345889e667c4841060ddcc7441e7b9fca9ee796785", + "0x000ce90209b60d52ca745487423d5946a4c01160dcbdd438f0dea7dea09c55cb", + "0x001a6801e03a862c247db9e23edeaf627afa673314d96a4b56759a856da027d2", + "0x009eba9c1160a75b067611cbe10c30ba403fd6e136d61641f2a6c2d53845a26e", + "0x006b6d193283dc6357699e07589c670fa33656c18e08ac4d6519020e72b15b93", + "0x001e70f37b2cbf62db492386113334878e22723adc7909a90d6ed1dd6d3a1754", + "0x00b9688d7cc7eedec7cb302b96c324c1f81d70cbd9ae070aeab374de94e7beff", + "0x0003963a18404332802c70ddd7b22da738f0a01deae1094538fe5cdf4f2471f1", + "0x0017fe0cc10420f0a5fcd503ea32915e49f077e8def1b1b05a3932129a3e64f1", + "0x001345209f3335a15cf985267e3cd38f14d7dab1b0d0efeef1412ecb0467dfc7", + "0x00ae46d50819fd203cec9fda01dba114025923cde900f52d797164ba9bb7a62b", + "0x00823ed50fcc46446bf0b244b7966b700b42d066a70a73505a2a23faceadab63", + "0x00ad188d88bd5187493e8c15e3075cc6faa461c96097c65fa949bb9c0870bc82", + "0x007b9e90abfdb28e1bd13fabe880d80586eaac277ff03990d809e491cc59c743", + "0x00da7e208795b975ae058933d8ba0e2f952adafb35b013b7c958244c0fabec8d", + "0x007199e7258f2f8b272d3af9e10bc68b4ad5bce7aa4854a391273adbd6bd4cce", + "0x0084b46afee22c48763454ebeafbae4385487c5dfcc88e2d3792e936486aeee7", + "0x00b4ca548d1c6d817bb8a0a839a2930ea790b6d66cfec00a932da16ae93e5435", + "0x0023a3ea8a18ecdff1c1352738e69073c2f6dbeb4f9a884ee0022dc2a4b4a3af", + "0x00ba8d739c4bda663bf80bd0d02da197ea3c2f58f975ff8e5bb8bf010e388e4c", + "0x008a080450264f745ce4f45ec64f9397712b957ba231cc20a9a7e89d99571c23", + "0x00e4c82125e42e1622b1aa5309e9cfacb5c752135b2b53f692bae503ddb63651", + "0x00db2ff6148a27ceb749fcce886ce3c838eb1cb43af4d2751ff2ad637f48f81a", + "0x00ffc2484fd2dee4450c8bb40fc6563d425661ffe052e900d6867e4782fe05b2", + "0x001550868b67f17a984f2285b41eb0a2d2937de26c21b29c7e99f538cda5b3d3", + "0x00b643720c8d64af19471b29af00765969597d37e5d785b479411d96decd853a", + "0x00a093dcca027e03f82e029b6bdf486403f58cef928ec31520d164f65f9b526d", + "0x006441d526cd04308b596c7b3d1b39fbe840b7914181980c52f9f81597e11b5c", + "0x00f4774bdcb187c335db4138bc377a7cbb55dd636d9b89f86c26c89c9d42299b", + "0x00f661d559dfdfa3a4efd20a5361003d4d0af8c2a36e73d1ca9462d8f41537f3", + "0x00452b2e192752365e081b7fda57743466095464f4aa00f0d5c3f142f536028d", + "0x00f62ad16ca047ae2907a8f62f1486eb3ed32252bb59c70ce4258ca76be39392", + "0x00d979513a79544ac7f8ff4610c74eb6aa79b91f2e8c04f0d46ef8b6efb7820f", + "0x00b26fd87eeca4a26e8e93a0f6bf6ad3104749cd9d59f09d892f7281bf99f282", + "0x00836d5eeff5ba51eaccf63d686e5e4b5ea1f73cdea8ea11ff47ffa970c15684", + "0x00da3f5a646c0c686e3adb139bd5ab85e48d62c3da8a6bca4485de85d12debde", + "0x00628ee3b7d132f8bb11c5d9b337616060125401ca910e26ca1e0102b65ab679", + "0x00ee1f785be4f752bcd34d756708464bb341ed7b67a113ae2a66132fc1d9e848", + "0x001f1ce8eae0b6cdfda2050ad0b270a34167f1e1408fba05d7e2f36ea8506d33", + "0x00cb7aadffadc21f9c0a68252c7d5491ffec2e3d831ddf0b74cb9247d790a95f", + "0x0085ce43628360c63f5f0a089786fcccbb473794e75d174e1c68299397fc1657", + "0x00e2e6ce0a9b127f4e361aa86e3abcf57e8e8300b908d8cdc13223bc653371c7", + "0x00973654d158c20bd71671681ed2117c8a522635b4180db1a73b902c032763d8", + "0x003e4d62f7bcf94bfb30aa3c62a5b5701ef70ea3d49f32b895c28f52f9b5bf2b", + "0x00a6b7af21fed56c562eefa46cd283ef070cbc6d84af1ef2747a0ac3c51ee121", + "0x00e29bbb0cd6f527ebabeb5ba41002dc78b0e71b1b914335064a099a691b8174", + "0x00c44139d47ef6f5a25deb9bc45a06d910097acfb3d273bb9dd7fdd820e2def7", + "0x00550196e08d7a9f3c75ea558ebca845bffb6e1b56e19144bc2f1833c755142d", + "0x0020a0b06e5190ba3cf17e652d0c9b01405212f48adb8cb5fdbaa3f2699beeaf", + "0x000592dca07d0c897aab6fb755c1d07a60cc324343a02f14acadc74f1d98b4d0", + "0x003d79b83cbf87625d5c9f53acb820a0815476f08509e6a79f5ef82ce3197d65", + "0x0086725a08862ff8ad6371131e1ce7d116428e0ecea78abc7c8563ad9bf591de", + "0x00fffc2cb9e0cf7c7e36e7e8be6cd9626ef332b596e1aecfdbe942658ac3726a", + "0x000084ec18b0113bc572a4ec43c3650ce2998d88e5818cf9baa128f312fc0a96", + "0x00fca2f8b1354687e67cb3c65f33d768589f22b33545447906082444abe7f7af", + "0x00f83d3f6442c43e6337021294c8b664ccebdfa4fdaba79a8dbafb6193484ba4", + "0x00342746bfe8836bc584e8896c80282a1eab37b41fbdd41da8a47e5966f222d0", + "0x006a451d9a330732261a07d8e0d51f616b88f39107d8cb6b2ce33b161acb558f", + "0x001e81a22c2bfc08d69987de06f1ea5bd63138bcd0543fc3264c561122aef972", + "0x007fb4240f18728820ae6c99945f143fa0704b464547b942ea7a1a283be155e8", + "0x0095939fe9c358a446b2881da4c0006da5962afe927c6629e968c435076dc6eb", + "0x00bbd3de79a19726a02ad2d33bc4d07d6c9f95443d8fec2ca37f68d00ac8fdf9", + "0x0001f2d16672e7db7875bd142d335ec2ad5b24f96e0c9adc4ce7018110fb6f0c", + "0x00d2dc316a7ce76ec692ab992938d70a0e6b4d6a48b51601230c21a061001deb", + "0x00cae11aacf4ce0807ee8d2378b4e3eee447d74083e612e863cb7d0d4cbd16f8", + "0x007f4d3586689b53ffddd95d8c609837344c0f385d6be85a3ff0913f6241b2fb", + "0x00b83bd40abc7d859bfc1a17140756551531b7fbda31166fcca44e992fe589f9", + "0x005839bc864bd1cdf471f55f33fc3ae32ccd45c9af7e7b4c74b1e36517df77db", + "0x004b545bc19b879a3889753d668556902e4bf94561f85bebdd3f4d9eec5e4679", + "0x0055819654d8cf3e0adc2f146e31ce9327ec2b667289b69d3f93481ba530daa1", + "0x00516f4f586ec944a8f1a17f91ffdc699020ab33f8cc616dc5da7d205aebc344", + "0x00ebe7b06f61a58f04aa0b89807741791258cbe2fab947da0d29ce73321c2114", + "0x00b4235429f15d3ed51d201e0ce1d617a7c9610d8c010a9a2997507597258140", + "0x0077325d002d31c68742fb1ee22fee3211d9ffe3ae8dfb1d45b14601b2e45b45", + "0x004366948c93140cfdb0001f4b423dda27817fb5aee0b07751935ef6bdce400c", + "0x00492977f138faac1d2aa87dfa43ebf30c8d68e50cdee2a1370c3b2143210931", + "0x0094b0b87810cae1314b522ec4039c766b7b06e1e712e3b2c7ce78b523dff179", + "0x00686a258d5e84eb940fcad9413b63b47f5b7bc0fdba07858776d419bfaa3864", + "0x00a6e5e6b7a98dbc9397105ca0f0e51dfb292a69eeb1b06fbf40a871ba95eee6", + "0x00803124ae35c74c82362e20eec903d2364a7803227c2f95c2a2ddb8961fd56c", + "0x007128962abc61fef049d990e0e550e12da3f1bfc102e1e79f0cbc40688a1c73", + "0x00d573539b762d457a9abde0749bae94fce7714016ca879cd9880dff8ff64e0d", + "0x004c4863108c6eb05d4a4cf094e243397226d59275c92df944279a19d1bf72ab", + "0x001cf772bef931597a674ac2aa882f05a278e4b463f1e3f317bbb75275caff23", + "0x00b298832def9dea0a27023dd59889cc2e9a679b8facc5be1d2e8280aeee84bb", + "0x00ccadea9546c4649e687eb243bbe1a73577579b933191ba4a9804f27562454d", + "0x004de00e636759b51f477ab1732ef4a2c5857e3a852244e6303b41a812ac1e46", + "0x00940b24241f20e7af31313fcfe71f135bd2ea2d1d59e06d4e48c24991bb67f5", + "0x001f7f16eb61165470a03773c03520d4f17e19887905aeefdfd0cfa6e6ead1a9", + "0x00e287f685d38dfcb2dc88a0e411aa730aa518517d341b8b7e0e84af7f0a3d88", + "0x0044b41e07b4b443337bcf51e9a94f72a96ebcf4ea86f1e2c87f0ca33138e8f5", + "0x0001572f542fadbb7f0c3f4ca74ffd015238f198e57c86ad53e5fbb2b160033b", + "0x001cddc20dedbdbe1b8178309390a06decd4751705498af53cb2a5af5a3c421b", + "0x00d27dcec6fcd7a8d55997c1edb5e75799cb09a00f379a9620f452618dc2cb76", + "0x00018a2952434642b3fea21e5e5ca628f62428ab6d11654e00014819938123c8", + "0x00c2ed6fc0c0b0a986620a5e76ae1d30d445c93e6a878fedf316320f12a45e93", + "0x007a9b9777be79a1b727eaf136a12cb2182a0b6b1293396c596607b17569780a", + "0x008d2420fbb57aeba11c309ac444530ea05cb79cbd1174eb035ecd84e3b217bd", + "0x00f4fbc3b58dc9a62e77d0f53862bc70ced1f81c4097743813cef64eeca2e08d", + "0x00dc8bafade5a1dccdfddaeaa3b6a2ffd4acbf167bb31f88fcb23c88acab2d10", + "0x00d0b7e2c4da8c893987ec4242ee80672cc3abfefb18c2e8baaa6316045b2bf9", + "0x007729b9aadc4feb4bb188ec3a37a7b2512bbfe1b8449aa05fb37f7434dacab7", + "0x0093029fdf00075084eebcd88c7752d5cca536fb4b36329b29d16f894b31f8dd", + "0x0037a046c3cbe3939ad4c77edd1041d09064d3993911da86185c3f065280571b", + "0x00674b426c6b270fba05ba3492468a370b2f92f282204be283498491d9bfddda", + "0x00e30ca777c82757ebf8e6e1451e52376fd7e52a0a7ecc8909b9ec78a2424780", + "0x002f366d4cbf22973455211856eae0dd8220ab23c44bdd8dc31a64aca0ae9db6", + "0x00c9fdab833924eec400eaa52d342c43bfb5d263ddc8f1b01b6121841214f537", + "0x00ae8dc385bc581ce9122c4e45e200d4cc2400519c0b236cfaaa7aad83430b70", + "0x006edf4cb2f2da2bcd3447a4137f8be0ded737c7456bea23994c6fd06866b54e", + "0x0097e76cd8aad97d2de3ea040c8b8399cb37f5610242a4b933f387bab0788d26", + "0x002e45c32e2778a8bf0c1b2d61effbb0fba17838534f21ab8f4fc77b59e3b214", + "0x006f011c006e10b48b4d1ca810a446ccd8cd3779dfb39102469840eeab7b6d0d", + "0x00d93c024d8dd7496dbd8607c0172062b5e31e97be53b36fce4c60a8ee6e0409", + "0x006a15b84adfd77696fd0ea409957250b21285e13c0be0c46c9c182b6ab1ba3f", + "0x001fc0be9ff90d321185c61028e18ca70d6047954c53b7bc70a295f68b5df743", + "0x00e08e22c10d5528280a385fddc8c78d9f6554bef019833139fe269b81157df9", + "0x004a2996b7227d985a83d89ecc52c20732209a7ccc61a790e3334127d77ed75f", + "0x0007ca5b4f1156ad2ad6743e814a8146ee77155a00162a6f5471d6f331721c84", + "0x00040eaa9c8b05f017ac2ace46bb4f93f52d84cec9f6728cfbaea75a5cf90623", + "0x00842aba271e1c691cb9ec0e8d54a93ae261b653dd97525a2806e00ce258857e", + "0x00bc58be2fdce07c5b65811bd9d394358353012ce7bd732e7097e907f1d97218", + "0x00084d2fca06b2d31bb916d7e53432b6b197d6a33679794b2291ea299cefbdc2", + "0x0008145d76f9598781773f4e0e0941cee41fe6f297128096db3458fba87d5b55", + "0x00586fbff1e4a6fa8b7beafb2f0aef39bf711b9817aa86a2bb6b30e4f088fea7", + "0x005fa22410e0db29fd9acf4a9066f6e08fecedb9f7db6b42d54154a36b59bb2a", + "0x005703093d7e9e8c1fba1f35b4c67a5cd2c565512bc0b3dce9f170db1ff1dad5", + "0x00d3c2da9bff550acfdbc848c0ace43a2504eb7c716adaf4ee0cccf3c266b153", + "0x00b49fbb4fcf4062c0fa73e45804f9495b30c094bf7d5df69604e77aabd0f156", + "0x00e3cde7794de08b69d25fb5ae5df8a91da9467108eefd0bb355ac13de03cb27", + "0x0083dc3de9a103f312d47dcef97cd00328b0bfcf5c737f0e9fbd73b06099071a", + "0x00f68a52b0db05afb7c672ee0e931ee61ac88eb34fb3a4636874bb8bb89eeb2e", + "0x001c3e8622768180eb10512544e88aa0376bd5261be5a0573c9d426ee395e1ff", + "0x00f7a4bcd4200277351d92094e17797040761470232c02baa2627bd64490f40e", + "0x00a9d2c165bfb583341666b98bdf312364912affb53724f0e688bbffb8abb517", + "0x00f2de8f48c91403114878cb9e21dc934298b050f24a9b8fe1c16283efcc7a0c", + "0x000f03b9253a2a90739a238e0eb828614d14dd8c0cbb99a072323e99dd1c08e7", + "0x00e033c75a7c3e91904b39ff1ebf5c3d63b9de23973d71979de9253bf66c5675", + "0x0027b8d9b86d9c6c140fe981187d86c9c2e5a39d09291e19e6e60d949e8ac5ab", + "0x00839dfabc7f8668462c92252a622daa668f782d922021a8d084a7fe88974819", + "0x00bd1535222be2bf574fc8abff4aa4423b353282e00bfe4a264ae7107fe31e72", + "0x00aa843a7b126ab9298f77f3d67b6a521d60329e7811c6462133e1543256f686", + "0x0033174d135b525c71604a1e0945c8c9306a28670978acd9fd7c8d10b210f0cb", + "0x00724b756b73ef867458dd784aa5fe515ee464a565e630f4ef32e5be89291843", + "0x00373621316f4ec86cc9ff06038b45d6d4eff8add846d5f99c56c7b2dbcd19f5", + "0x00c74323ac705f33b6d2123c12070dfa2ab068e3dabdb25f5aee5fa92b2e189b", + "0x00eb28f8a2d2b5e3de8297392495f5ab64d84c30c90b6777aff9bb64e263d537", + "0x00a77eb642b66c4a56a0062f704d93071c9cefac39842c2b6d87ddb88b5b8265", + "0x00f22ffa8d25fc15ac6835fee8e7dff473967a54c046c70292b773e99ae5d23a", + "0x009d023a2306689c6d82f84a23dbdd94e45d640eb64e9583c0afb836c0944adf", + "0x001c9fdff04a871b792473aba5e2ccdbf105d2576aad4f71072ae325d35bfce1", + "0x00f034aefa51cca27d7b9b108429ace5e4cb9283f50ed2befb9a046caf518734", + "0x00b84c0c8b3d54e10fa093df90947048dc987033ffac01558da2a9b5697c79cc", + "0x00d859a811f03a3b1b501956cf6d98d42e25d58d0d3dfff7fc69c38bbf251669", + "0x00731834747d70dff46dc7f5f4829d8c7bb98284b5871d93bcaf9f6f5a6bb034", + "0x008df58f48697c5aa2386c9d97e5d7267e8732ce1c05f305ebfeb90bd735b0dd", + "0x00f8c7f3804bb45a8c592dcf2420d919034be198b59e6df33cd35d5b7e88afe7", + "0x0090da287134880d9a71eedb0388f1e51f8fd21e7dbf18c36d4b626a7cdcd46e", + "0x00274561d351311b86545211bf6cd6f722f39423ecad304c89e2758fea71a55d", + "0x00b3c4074af66d0ee0096e74ad366bb9d900c7340ee4dcdf52fa600df3cf2feb", + "0x00fa908456d3a02516cbbcb4698a8479958a71be733433529b973e62025e25bd", + "0x00ab2587bbccfd77ff4ee2c9b3615d2a5bd24d46db7a08bff03a6d68063d19ab", + "0x00c2b4e2638efbd7e1c085d0a46061fd85b636dd1c1e443df2e09577b95e1974", + "0x0016c5fc7263cef42f4c8029575ac44c277b21ce9c09ea7bf84547479e24a2cc", + "0x004a24a1b89b692db3baf01c03795a31873e7767398f3831f083c1bd6ad4b041", + "0x0008dde5985b0c23383f4525da50b3631e50fef2414b35ebddea7db5c173297a", + "0x009a0fb662ab6794eb4055336f01d2ec5c067edc126e87ef0c2a22761c8c7c11", + "0x002618ef897390ce291177c120d0a80d8fe53bdd60c1391dea67f611cbb8ed1e", + "0x003fbf73a4430450ebdc3e1558d4cea57010a01a573dc3d7f4670b86ad011af6", + "0x0082bcdb34d4c8dc37caa437b9ddb8c1de9a5ab1f30de3a9eb958da3e476652c", + "0x007a17bb74b871056216c5b8862534fb512760ae090869719e0555448ae8463c", + "0x001d78e2104da6bf599617bc6b044d970bede7886e659dab5588738d589e85e4", + "0x001d2f64c708a7312915da2c58b1b7dec18041fe052989d019207943fb45b61b", + "0x00bfe6081126e4aad4ecc21bac82d1078cb347d0709689fd42a8c7f9d0c7c429", + "0x005ee3097afe8680a6ce7d0f39df4aecde68d5aafee09506ff72a41c432a3778", + "0x00173120c2416f3960014e0ec3cd7a9b9ff06d316005b315721d03d11017406f", + "0x002c737495f0399e668a332d6d0656a2e30c2daca64a915eb04bd824e14f5b30", + "0x00923c916e7c663fbd05dfdad10ce937be65624df35494efc93e4363e2bbbb8f", + "0x00a04278d8784e334819d63b007f8ccbfc21b0fbe05bec8e98ae535ea0f28ccb", + "0x0051671b61e017c9f02e246905cb9bf1c26bfa5e569ef33ee8611f9d3d68c528", + "0x00a6b24d4e3a09170209aee5740811fae0638c195e483f055d8b6080a3155ded", + "0x00c284b4af9309b8e05df4b2e53d46580f7376a802768aef81f6403d707722dc", + "0x00386abd183a25e63844f68eb1c46c74d460f88fc3a9e79797d26026fb593fda", + "0x004beb2001c5982f667a0007798639732d5e443b8351217c8b0480a8c3774d5f", + "0x00e7e94adb42d480079e33c48541778be24d523cc954882ba28d6a8bed993cda", + "0x00d05980a37d97040e5312b5b2b71a2ffdd6ef6fd822abf11f0cc89dfa07fd6d", + "0x000e0f3f5550673e08462e02b19fa6c5f9a72def0a6af4da9d13ee0074b96b87", + "0x003e812cbd95bf825a67b9968eb21eeceec43ab5b66529276a0ce24277090fda", + "0x00c560edf4bda7c4d41f71dfd2ac97aa31f400bee04685789ac918a0ca8ace1c", + "0x00ce9fa6509001f7715805d927b894acc84d5e9a365353c0ea9715627c6600ab", + "0x00c4a7b1af11620c4c85af6429c6331c538ae07f6e95992c3add28742a92504f", + "0x008fd6cc7921560b7e4b605ea4916556a3d501a333d2496032f90b7fa4b0d5a2", + "0x004a266be57bc9a95546872e1c90fe3cf32827a69f89f71f125d7b54b45b6e77", + "0x007eaeeff8e77dad7c9ceaea237dfb667a8ce4d044c19c63233f408f43e44265", + "0x00135e6498e91dcb6f5efd1c18b6e888afa083daea93dd781aa0bb78659001a4", + "0x0068272838bee7630b7c89203a6d8d72fdca9803399c05562726c28bf814f4ff", + "0x00e9a9dfa794001f35f15b103874bb9ee772df48f95368feca4c755a8501bf82", + "0x005c40a515552bd2068e5607c1eb46e91e49d491d084bacfded6c93ba7897a16", + "0x009f2f303910fd8125225e1fb223eb9ee92a826b625ffc2e73107bc1fa482cd2", + "0x00c74f9a0934f604e50f99219cad096db9881af8a3ec84d66b112f3a9f2a3222", + "0x005b21a27b7e3f957a3041596681a8e5d7af7fe581c8ab9ea95844484bbcda27", + "0x0022e5f32b1f75d37a600c346726a996dcea9782d1591e5e9dc06c3b11ee0aff", + "0x00a64f482a42ac122f21f7dcdc5f057eaaacbd42daf2d60299262c3567c5c9b1", + "0x008cb6b770141d800ba829ebc6c671fb202d0bed2d5dcee0c34d5088dd3a8d1c", + "0x000eb5d1824991421c3f60018962600f4944f5c1755ab7f2d5b8e65c1cada83d", + "0x003ec066de4d89316b91641e25277fed6a18c140f7376ec3c8c1001c25217346", + "0x004ad9bb307bcedf3ba183174270fedf0562d96c7f44b6e2d6e96fc93263fa75", + "0x00b782d3f75de99222219c8f5a1f4786eed9033fc556a7d87a62b93f89cdcb30", + "0x004f97928419e12041da986d9471126188f3971903f6b1de9997491a69e4da8b", + "0x008ad1e920dc9b26f9b4672635b5fb14c80a7c4dd072b0f98c2386c8d7d370b0", + "0x0052b5853e471253ea98f4551c002f6d21a3c7ea76ae6e84b78207630e19ee40", + "0x0082015b449783f1feddfa571add33aedccddaef8a79fda9dd210dee4b02c4e9", + "0x006feeca08edfd808f1e83a3f336345d4b1e655db58adfd27aba8123e8e3b0aa", + "0x0071be82c6afe92ff17ba6d674602d033653b528948fd3ffd1c8dce47427496b", + "0x00acaf640acb7798c2ed4767914c29f88e11ecd3486fd9ce0f0d72c5b0e08c7d", + "0x00c282521fa057dca9fbd397181045b264cdfce2697d04ebc86c11301a80243b", + "0x00d5fb74a231337c06ee314143022dd4e23fe36458ed790549eca84dd8f8bd30", + "0x005258f1c75bd7ea6ec1c00f0e0789e431f0fae7317cb1c163a6bc33254bc9f3", + "0x00d5d30e196c7b16c6b3a9e1e0347f15befbb906a49a68d66f71430ea300ef33", + "0x00f6cdd51393155619934ec317c33395bee2e7fdea009d75cd00f902062e9963", + "0x00479533181bfe2475b165f63fd54d81b3107af91daabf4a85b40e4b7d6aab4c", + "0x007aa2998355e2760abc6c93c9b1dce3a109e0cb37ceab5852760384361129d5", + "0x00c84a913fec8c31a86a40b605b8b716ab9de1574bad33a76c634d7523554ac9", + "0x004232ac2236aa01c1df820cb95b046549285a31fed3e67477e4362abdecee69", + "0x000b39c4337dcb1f20bcf22f6daa3ca628e1fff4cedb56ba9174bd120c7c9252", + "0x006edfdcf2bfd80ce1182f66228ccd9a712182767ac226e355207766f061c567", + "0x00e0277c646dbedbf5977935411f98cb854cd02c70879da2286fc00e54ed6758", + "0x0044ff1460270973e760fcb3d2996e26e90583979ec6429c886c5fc605ad4126", + "0x00bc2fae55d8823db0e5f2b8d7241f6d33d617fadced1213cfdab536cd1feb3a", + "0x00f01951bb648e86fad6fbb98b57bba8ae11d6af3dec6227a4639412b69ba0a4", + "0x00447e215a52a1a9c5a5b9a39493b34d57f8e21872dd6fc83930d39a029baf7a", + "0x00ff0e2641ec5748c6b12ced69523724d73260be83f6490a7af34ad00e7ce7d1", + "0x00b2d25b67d04c75ff3afc58906f72f5a014cadebf39f007ec6fbd568a9f1648", + "0x005a2ba0a6901d18c3b53959ceee5efbe03293be5a46305c1e619d7aaddab3e9", + "0x002b3b4fbf7c718bc03190c13914290a0a4d0e15079bef69e224bf232b233e34", + "0x001dd2728682fedbf5ae4e5deb44f887c03b8ada57c3e685c505c1678dc7f719", + "0x00675c7eaa8888cc74f0c1558651cb072312233a6212b2b1d8aed216ec4b54c6", + "0x00e0483362b858382c57fe4482409ee899b4aa46088b297e835642d60dac9470", + "0x0055b93fbd557bca4a8ef8be256e78dc3f928db1bf47d2733210043771a9145a", + "0x0072a0ff1016d209d0bb7a722427a9a2a784f03c06e67803ce6e18ccbd62222e", + "0x00d0add22ab9301c67519c6a4de7fd59963a3826329211d2c242e22cf1953a3f", + "0x00846d01621c8f7cc2df86cd7998eaabc2437a7c2dcac6c92c54d8ea5135b2a9", + "0x0050c3cf177a0e52166f3c81c40b295ab6b3bbc3784701de21d71ec96b37f0ba", + "0x00ad7a242682edd05a8982bf5a2bb1e3337c095c41e857814dca8b4ac7cc87b0", + "0x003dcc07345b1e09449cbc568257f156b53d3666bd20fab5a19ef38c294a719b", + "0x00709c7699ac68350033abf0b5f49f0b45990341d2b50d6397cd375ceb28207b", + "0x00cef3c9ea021af74aea39b345674591eed1d6cf3e26ed17556875b05d856e1f", + "0x009649a9cad38cedd8c952f62f931f31a00996c7b5f0a36e96a446718f4eca3a", + "0x00ab09e97f49bfe05dbd005d32b423793128bfd9b1abc1b4b5fcfa89bf20e653", + "0x00828977c207e5e6c61aed930d85fcde50a81c48b16c798dbbbec37004d7ed9f", + "0x00f552ccd398841c5cc42d1ab2550f87765d16a95b51880d35fba7384ee2ad74", + "0x0095d1d8080a45f7651151b7982145f6edb2cfbffae51148feb78cc6acefdc0e", + "0x00c4857883ad9171fc6f0cb57d7185ed0cb532b3e9114765a33fcf6fe4178bab", + "0x00cee5d7b5f83dd03ffe132f38ae065f1f2398855473a48cd9bfb0275b3a7ca1", + "0x007e92451176dae38bda11fc369387153d46fccf88cb68e85818f3f9beeb34ff", + "0x00208cc36f813e967ef193e9d18c85d0a41e8bcbb9bd327fd115e51e6c112759", + "0x006279094948e0658e256fe1a2353c53b7b32a92e70d8591c0bcf68b840a22a4", + "0x0052d37ce195ac50219280aebf8b881f059eb38928c5a587788f68dcc9be1125", + "0x00fb15b9e59499530a00d835274719a04c2bf6a058ba5b77e1219841d2945fb2", + "0x00a6ae03077adeaa199d57880c6b3a55ac420ff5dd3628902ca6364180d37a70", + "0x00ecef976620e48ec54ec53c64ec8a73715133c0b44b759115d2fb1c0b987d35", + "0x008606ebf06dfcd3f4defa62fdcfc37fa80bb5c72534694cbad126430e963148", + "0x00e67370badf3eeabba45d0a672967fdbc5b174143e50669c2047cff21cd3e89", + "0x003e1353be8418ef345c4c800fb211bb7ff23ad1c242f07d540ebf4fe657e516", + "0x003609baef61425d979a8e850894ba9a4ad6201f6dabef8e4930bb33539adf82", + "0x000bce40a5c7421b7b67c9a48d0e26b8a42c33a68ed62dcbf1f6709d3edef369", + "0x0037895c4662536e0ae4765db312653ef174166c044afad11cea72044d51ac24", + "0x00b31403f6aa14aac0b044296d117c69c042c03541a411f13929298c45a70abb", + "0x000529e4152ce8a72f5d7bde5aad11fe7b976aed6fa62792044ac6ec0f5ff505", + "0x00b65ad6e0608e155a1be70b29de66fca3ffe41c8f407fa3dd123788769c84a2", + "0x00b78e4748de7760cf22dba3c7e1111bf5587c9237e30bd139913cec54027076", + "0x00616c207060a0c2d5ece9de92bd9ecaff538be3ced1c4d4b1764a1951882e7b", + "0x00ace46ccd2481d2f06d6b8962c4cca27a51af49aa7ea9353807c8c922c37ef9", + "0x00a7ba628b12648ff1974707f32faed997f078b408f7771ebee5f3fae565236d", + "0x005326dae9efd51f84fd0e8bf8546aa106514a88d6af6c9cd5c6fdd837196155", + "0x00b7c17e9e0654bbb1e3b08963136edfcd9822afb83adc6c822720a081639006", + "0x009fca36c31b346c49ae9169d73fa2b6d22bc37222ef461dac5b0fda5b310c27", + "0x00a6be26cf5a97afe0602384b1b4cbb02cc2a16e3de4f667e7c205fa356f1dff", + "0x00b84d269f61977215c5d2ae7443f08718438ef525b0faaae690a9f0d9f06dc2", + "0x00b182d254c654e0a93344bc2f553747cc77ec99b90a46a535db32ef5568ae75", + "0x005c140bf4a098357c98e819bad4e366c4d4e335b6d247ec946b4b97035e6564", + "0x007375772e484840e708e86ae3bb3342655a2be40e93121f9eb38ae01688ca5e", + "0x009d0a2ce1b67e94ead25bb2b26313e564a5edd05faca239984bfa8e69ed63b2", + "0x009bce479d7647e51f0e043a71675acb15e91f44975a7364fedc0ea49f35e6a5", + "0x007b9e56045c4814d56ebb81c62772500759a5f6009ff5fb9208dbbf7a91245e", + "0x00f29b06a4a4044d5bd0e35f6f68325bb33dba7b12a5eac7ad4558cef90011b0", + "0x00535ed2c4b162b36bf02a6388b797088a4f9de31733e1cd9b9d458502dea8fe", + "0x00183c425d2b79c7cbffc04b25b62fdbbb484fec749c3cf17db01da42b8dc462", + "0x00c6114c9eb1c98e199c9b46c71225e2f4be6164bb4c4a47a03285de142b62c3", + "0x00d05f9e004cf2d8256affe261ffa4a5eab013878a1a12eadf722957194ae095", + "0x00a0a3cbb46f33c3767ecc1ccfeefe0ccc5d9aad51db651017f14a2d5ca12f30", + "0x008fad15c97c4bbe3e29acfcce79ac05ef6588c158b7dacb91a428e1da145c7d", + "0x009843e29de7629b1c4ed639d50d3b555bb09c62bf5d7f0b1a3cf8af14bc7b63", + "0x00aa32474f6370a90d5e176d3fb3f318ff6cf1f9033909b691285a07a261f95c", + "0x0020cab6e8c7fc9202dda4e53d9b91c02871570bf821fc390ea1f8442056fe54", + "0x00706b2077bbe19bd462a25d53922ab3086f3b934c8c5711537085e70a92ca3a", + "0x0059db5fcb16014fdf688e0edc1e62de28cc223fce8dede72673b79a64a0af02", + "0x00198f71b9656c6991c6448a5a13514c0bb80bd9c440fadff773f4f40586eca2", + "0x00ed4dd219fd361eb3d1dbee0b6d6b84e3a905b62267fa34f1dfe28057ce3c67", + "0x00d1212993159d511828175143dc7b033b393262976b8f18f4215740cbc96179", + "0x00ea1472e84292a300ec11f63de7667cf60b3583544fb84996aa57739f6925a1", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4413,19 +4413,19 @@ contract_class_log_fields = [ ] [inputs.hiding_kernel_proof_data.public_inputs] - expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff1b30" + expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a08de2c" [inputs.hiding_kernel_proof_data.public_inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" + protocol_contracts_hash = "0x0cf46d3e931602fb5a52d5f7f673d385dda8e2b9074db403ad47c7ce6612bf7d" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" + sponge_blob_hash = "0x0ade242f6fa0b4a29ba7650068c8b1fe2e07b89d79fec1f5f7c9f37e62850cea" total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" + root = "0x2837ee5efe77e51a259ecd28691e8b0465da3a851f9796aa09e2043606792bb7" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.state.l1_to_l2_message_tree] @@ -4433,26 +4433,26 @@ root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x1446433cc1f922db5e78b099951e1c8b2cbeb2f02ef1d1a6d02ff80cf29620a4" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1b660c208f7f4a390a454b7e993264d0413b302e90484d2aabdc0f31828c0b8d" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x04a8cfff22b5f36332529dc15c6e219e7f3de73884f1d874533ee6c392a98816" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a079abc" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [inputs.hiding_kernel_proof_data.public_inputs.constants.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -4463,7 +4463,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.hiding_kernel_proof_data.public_inputs.constants.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" [inputs.hiding_kernel_proof_data.public_inputs.constants.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -4483,8 +4483,8 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 [inputs.hiding_kernel_proof_data.public_inputs.end] note_hashes = [ - "0x2295fa9f079bf362a4f01c3b07d9f912f9b484e5ee527ad7a528025a165b9352", - "0x27f0738f58cf7f88e6845175913245e6f82475f464578de70619eceaff66402e", + "0x0162e3d0bfdca3f950333293ef53a13c77e88f25132eac800ebbedfcfc28ecb4", + "0x0b68c0e7b00335884fb840b97b28fa622999a7fedc2ff6895ab664ba73e38cd7", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4549,9 +4549,9 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000000" ] nullifiers = [ - "0x282b555a2f009837bd02f744ae119250934c991464481b5613f7f2112a615f7c", - "0x1567c8c1ff81dda9727361df23c92849c46772567aa0bf3723db03c3751e9d2e", - "0x1cb96ed0bfe97ed05e23f013062425e5ce6599fb6430b162e69edfc317d5bf82", + "0x1f164bf0251cd7584f5b55a6ac6d2de0252f53ea54f5bf820f4a11dbf11c430b", + "0x23e5fa8d3e3a9e808681c49b75f3057da3d8345fe8610ee09c92ad3b2e5295fe", + "0x09335ab6cbd8de7f4238ea6f2f83844015ef16a361b4283ec65e1be5ef5cfcc4", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4697,64 +4697,64 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.hiding_kernel_proof_data.public_inputs.end.private_logs]] fields = [ - "0x2c3715409dc4762ec9a9a602d199ea9932d61edd3fd32c9891fe5ea5a722acde", - "0x10433733db106ed8336b9b799ec2debee9fe2da75f114f567eefde5abf9f74d3", - "0x17440c522b009a136c2207db86790b05464774690523c7fbf949ad381664d0ea", - "0x0a5e8928a4d74ad3256e8a697cfdf84b7baae32abad67b2de7c36ffd67acb665", - "0x0b1200621e156c6d79f463e17e81b96f11d18d716ca5222e7276e07d45845a26", - "0x04b2b64d09e487d10d557106046a94a97f2c40f4316e6667a2c2d9a99db05385", - "0x193da3d713c24b85e1c8f22dd8ef575e88d19c6732f8fd17e370cf64e65b3e04", - "0x08569203e8f3d028234ed200df77bca848c9b4b015ad8797c37669a5e5d1ee0c", - "0x13a9b2003409ad3d4f38caba797acc77092ddd431af25a955a83dc6f5b92cc93", - "0x16fece01bc0b0205bcbaca2904d5674d10573bfef038f94d3e5d526596da2ae9", - "0x0a438177a05071eaeb1862f154b187315de4dc804e275b0f2258baf4700c6d64", - "0x0959244a76e5e861ce5b8833101b91e19d758109d68cc174a6f9eec9c7afa008", - "0x03533d18a1c3ebcf22f820a243be161c9798ea59a506572e32e125c53b7aee7e", - "0x1e2b22ea302597bfcbcfdefcda48b60e35fce9c70f46c6cb90fa6db6e8d4dc6d", - "0x28fab93b8cd28d8d2a993badc3d1a080902feecfab019dc7c00af0ea9f6f403d", - "0x104c4c81c135af94af35a1eeb49b1262e5c53e25ee513731ddeb9f6496eea2ab" + "0x1557f927610f21534f2f8d0067bea8490e04666f6d8b89237cb8acc4c0101cfb", + "0x06ff9b3b93bba70f9c21e6b5880edab43e308bb7d5227fc891088f6c5a14d69e", + "0x2b0fbbf487324cb2f0edb4fab4ecf0dd09f72960c0dbdc596a3144772f862649", + "0x2d45846cceff71b849df506550879e68b2515456a1c28e6e8f9ce7c62d932616", + "0x3028e30830b1073a9473596f8d2eec47951d4f04db55304f46a04f9b8bbccf7c", + "0x12fc12157371bd83f1e4ca8135a825a017e030eb13a28e5ae58c75eb8905c268", + "0x1d35498edc65efe8e80ad650dd8a3aeac105a83b3a34025188f731731354cbd7", + "0x23459c522115ba6f3533b4cce2c389c08a977cfe9378b2ab463b67f4085136c7", + "0x10f229a1123cdbcfbb0335e704477cfe3e51efd8687b196fb45328ee1cdfe629", + "0x0b550f76b18b45c3d57d18cf17df9a73ec9884d74c96406b36f89a3efc4e9973", + "0x293d2c7dd9a5b78d0f9f8edc30aaca2fb05b29ebba4781aa05588ba91f84f6d3", + "0x1066f371acbf9508018d546a8ff5f2a054efbdb73858b2d7682735d982254355", + "0x07e5c4f50e210db75dcde8ba8a1ddc964ac67e184779d99f04871a300d0a15a5", + "0x0c5d16e577f3cb7554804894dbfe183b4144031582482b5a84d575e95dcefa26", + "0x2116733c464ea84c09fc06e61483add71f4d37fd506c9c657f2d97c926ee373e", + "0x100d57bf3192b424d7131656364e8b147e9c9d05ced35d8053a3aefaf7a7e83d" ] length = "0x0000000000000000000000000000000000000000000000000000000000000010" [[inputs.hiding_kernel_proof_data.public_inputs.end.private_logs]] fields = [ - "0x1b7f52b7a346b47077bab6835a0810e5d75e977fc3f3fbb0436055bcdaa167ee", - "0x2320e89fb76918e7dc48b13861302dbf78af5ba8d5a20da77d19781ac32b9bc2", - "0x2a99619c0d4d380dbc3d53d03ed35011aa9c296a507fabcf712f43a0e5a10850", - "0x02e5d98e7dfbe7653dafb14afddd7e00f403b5a60816d7ab961823bd3cc4b628", - "0x223b37d6caffe87e91cddafdf65c4f641a609ff13350d02654b0fed1443088ab", - "0x2846b9aa4544f8f8851554f5d0c189c188756d734112e1eedd6840c8aeb0e66f", - "0x21cda3f228d55fb1b37f2b7c7a5d42066007143db17645669521ff58956fa7bf", - "0x1d8d79951d7389e5f9dfa963f93e399aebaa346e9ce3b3a5da1b45e4600a1553", - "0x15eabc8ed921f60621fa4fa35214748a7593f1c06a1e66b76092f789b4960bc5", - "0x16babb28d68725cb64d6d7558d49fb921c480359488fcdfb5292019239a50563", - "0x015e561b49da425d081b87bac01336defa1e29ee50d01b7be798ac28e05b24d6", - "0x04bf1a23807cb0711511a6140caf195df55fcf029842652243034ae2ca740648", - "0x2789cc422a86395739004c513cf6a15024e3adf5f2e238b18e1b4f1211a9383a", - "0x00c4e950cfe804e8a3623fe768c82b7340b0216f93c00351c53e2144364cfb51", - "0x2fd9827b4118b7ef401dff1727785e46fdd31947d2e733f4b39076f43652c18a", - "0x158ca7fba6e7fa7b3eb7c062751182d93b4e36b5c77d2e609e246b810650e59e" + "0x278bb654e266ec7a6c0a147c0c49c0e7d0ab73958ac2ccd9111b99293bcb2dfe", + "0x2f2f2563b76821a2493178ce03eb6ba47a3631a2054db997873312d49c135c32", + "0x00dac0ae5e7248fe1b318ecf117f24e113e9f94a0ec7bb383992ddabdf26fe5d", + "0x2fabd5e390e8760f9371c8edf177a8571445e585aa89c79fe949f615948c2716", + "0x0769d4e7c6de3d3b8e70f156acf86acebbebc68f1f2f83279fac825b1e56980c", + "0x171c2d2e26f0280874f78522d45217ae6ae7ea6b8f9b6bf609f85c15d853e8c0", + "0x168f29d22fd3e737b23c92d69e51612a099659556b5beebff7d4aed742bb6703", + "0x2aa940b475ddf50a79219f3fd960846d2b16c1fb087de59aaee12357763f5170", + "0x16ea97e235fe762c220b884d5c2891909d804a3ade951daf6d1b66d3e4df7d31", + "0x16a3f522b297aa55f2986ebb81f554d30d7935ed2ca85563803ef7519a70edbf", + "0x195bbc46f1328951aac2c05e0aa0f27ccda0454550d3c6ba1fd18446e94c66d8", + "0x1913cc0f140d9fb8d3530e5f4f2c90b0bc2632292fdc84f0e8ff180cd6d636e4", + "0x293577377ffffe4b16e7cfb44132fcdcb5d4adc214c150a2fc0c42de03caea5b", + "0x09d1a2bc2f2439861a980f4fa0e90b21c62ade6a49a63c16b384ba993d691167", + "0x00d81c4ec7d4be8e2ec46aad4c7950d4fc13375431c76274c9495d8c148095a3", + "0x068a6102eed1a459b6d5972dc60d952dd6a9eb831402ec71d0f3d34b6bbc6c3b" ] length = "0x0000000000000000000000000000000000000000000000000000000000000010" [[inputs.hiding_kernel_proof_data.public_inputs.end.private_logs]] fields = [ - "0x07d20bd951900d3094f2894e3c76c117114e3150dc3197e9e325e42b4487c6e2", - "0x127157561e774918ba656738fb61ad37f92086431bd4f1e4842ab11928b0f8d2", - "0x2e5cf59c8f2eee7a06d14cdedb8fe58945357cb16f4c792094325909a12924b2", - "0x0e29376c31f2aa7a156c6ce6d1fc9529998251d8500604658f173ff86adffa98", - "0x20761b8be9a186cf6a1730b8a1e99049a07e45c005e66d27b6e0ef15a2833e2f", - "0x1adf679b2441cf3535241924a35164cf8309256721e3f9fcb860bc2acc462b46", - "0x06a613741497b7b7ee978a495bfed7d19bbf76c462d268cee17a3920b1b1abe0", - "0x10ade06e253c1cfd65f24246211fb703c157fd9b563ffaf6ab01b6fba4635155", - "0x2311c6b104555d4d9afc7d66be6b47a41f8aa96eb77f613a75fc952da5975ccf", - "0x08431c3838d7ad6198c1d33ff138953ace3520551bd95b69692609ee11ded216", - "0x1822c33cf8097138c896bb9f7aad7def909a6859d5e640919fd16ebcf153a0db", - "0x11203b31ef49d39fb85a5ea474116c334c156091ab468493a480f13ad1ec1849", - "0x207a4712bacadd2f631fe253cb62932a7acb586dd6dd1b10e0fbe733f61a8f11", - "0x2c862b0eb14b1325a0ca63dda4570f718541d998fb4aba96339b7913b80757c9", - "0x1bf17ee7d3cf2487dcf1eb7a3647b0920c9e68aacc0a33c9a424d4ee6601ded3", - "0x2c70c9b7da7d7df78fcae182d124d7041209070f76d920e5d5c2d7590c385ea1" + "0x1c1073b12837b8c365a6120e058e1470c273269c36da63e6e85b10032b5c4c89", + "0x13eeb5849c388f2983b9a1d5840a4bb78a0574fe6657dc1bb4d974e28f1355f9", + "0x0b342f5ecaba178c50ed2ed971a80f63611cf6e537114842ed26e6218b1e042c", + "0x0cf53f69e6ec600e728a52a5b5b1f58ee5c5c1bb2c78e208d937b096d6cbe772", + "0x0b2982efe76e0b0c4551378cfa80047d849bec6a916a8542add063d1ed5dbc6b", + "0x109326c0d699a320dbe2ac0497a17f24b699ab519dd70b9a41fdc9ab31d489bd", + "0x134d7e6307ae3459534f15b12c22204a95d4b632d92e6e2faff5d4e8ff1d3ed1", + "0x1df879ae04162ce6762b387ef36dc446c7f25f1e831f580736bf4c2672052478", + "0x0c7a1fa87f3564576fb2273a8ed1c7de25bb441de0bcc3adf13a7000a5696609", + "0x1480ab39ff4369658743e09c70b81d54c89eda558ab832619799d727f5e26f6f", + "0x1a380859f99a381b31992865ecbd21bfe608bc60992d5c23cb1e34dca0154aca", + "0x0a669fc16a50600e4ca5146d156eda32e672fa1dfeebaf9665df46d4f7bd241c", + "0x21e883b280f9fcb2033d00726a6e3344e61e7c2ff1895e8e4912f9821cb57173", + "0x1b472c162a06be1c9251f5f788c5028f2391736c8ec542f15b78c89aa904ba2e", + "0x26ee38448d1ffbf80145160e4b62b1123b888be3b9cb3db73fdde7d779932880", + "0x26d0e41ad428bd171966c237bfdfa476f4e6d16e47b8d94b438896cde08fa12c" ] length = "0x0000000000000000000000000000000000000000000000000000000000000010" @@ -6052,18 +6052,18 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" l2_gas = "0x000000000000000000000000000000000000000000000000000000000007d76c" [inputs.hiding_kernel_proof_data.public_inputs.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [inputs.hiding_kernel_proof_data.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000004" sibling_path = [ "0x242211eb4067563a1667c912cfa2492c7b8bcf5e2b97fde4d26fd9bef12ee5f8", - "0x0e20194c2fc70cf5d2006345608c9f5abc7cdaf2cebe11870301359962bf326e", - "0x08c3364c5142d8fe956b12902940b54a7be36a42ce00cfc5831385a9d55cbe99", - "0x166399703d23a5c22febc6185f8eb93c72b65906eefef226e643c35fa0022adb", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x0bd0a68a914cc9453fa207323a819e6b1f4f432a1ea1e3185a55ef85fd1d4e68", + "0x2cb287e44a86260e823a69c4147a1e336d20cfc156f7c490265be56d9b41fc2b", + "0x1b91692937095aca39fbbb5fc34c0ed7c582756a3dd1d032ebe0405639b2c6ef", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [inputs.hiding_kernel_proof_data.vk_data.vk] @@ -6215,15 +6215,15 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" hash = "0x0adf07f9ae6efe161812ba23ef36c864880bc3b0a8461ffaf756f4400c7e9f80" [inputs.start_tree_snapshots.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" +root = "0x1446433cc1f922db5e78b099951e1c8b2cbeb2f02ef1d1a6d02ff80cf29620a4" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" [inputs.start_tree_snapshots.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" +root = "0x1b660c208f7f4a390a454b7e993264d0413b302e90484d2aabdc0f31828c0b8d" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [inputs.start_tree_snapshots.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x04a8cfff22b5f36332529dc15c6e219e7f3de73884f1d874533ee6c392a98816" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.start_sponge_blob] @@ -6249,7 +6249,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", "0x221cf368938c74e4fced9dfb2a8e37cd8a6c57d21385c249f0b5c2412341287f", "0x2c5214dfc4d70d2619fce2a7e02ddcf380576dca42b66c9215c7d8d1ec154116", - "0x1b250005eb96ff625256d16bb83fedca81f8952f06c2d3031636c0e1d8c9fecd", + "0x01a51c429da1538306a471c0643b5b6015f93a02e30c32b26887f91c42097a6d", "0x0d04c63f36bd168215c9b09a227c7e8d3ad48e2f11b8202fd07c524bd30ee88f", "0x042c72d0ca208f0631ed947050258333518c26059f0a2ef041e933b1b2a6d8ad", "0x00c21235cdc5d4241fab782680421cdd99c088a3b48a740d8289d0e67b2ee5da", @@ -6284,9 +6284,9 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x08c286d5f8584ac20b64b63f763d4ec37d3fa13244234a3280f34bbc70a32d53" ] sorted_nullifiers = [ - "0x282b555a2f009837bd02f744ae119250934c991464481b5613f7f2112a615f7c", - "0x1cb96ed0bfe97ed05e23f013062425e5ce6599fb6430b162e69edfc317d5bf82", - "0x1567c8c1ff81dda9727361df23c92849c46772567aa0bf3723db03c3751e9d2e", + "0x23e5fa8d3e3a9e808681c49b75f3057da3d8345fe8610ee09c92ad3b2e5295fe", + "0x1f164bf0251cd7584f5b55a6ac6d2de0252f53ea54f5bf820f4a11dbf11c430b", + "0x09335ab6cbd8de7f4238ea6f2f83844015ef16a361b4283ec65e1be5ef5cfcc4", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6350,9 +6350,9 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000000" ] sorted_nullifier_indexes = [ + "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000003", "0x0000000000000000000000000000000000000000000000000000000000000004", "0x0000000000000000000000000000000000000000000000000000000000000005", @@ -6417,9 +6417,9 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] nullifier_subtree_root_sibling_path = [ "0x09166b559c0f096e897bb202971954b6c576adc978e55de25b96e97269f0e461", - "0x0362ef192033d8dd7561fb3d5599ffef50988df3dfb2d2a62db522b4dd468396", + "0x01aeaaa797594f1ea9949983b73d0207252176f22fe244d5a4c0a1f9c4868818", "0x2e5d15ff444e6868f293419113070aae8ce133e2ab4d2705a6a696caf2a17e21", - "0x11b6672806903af07ce5206700433633952804bd3668e15fac8868f0695bed72", + "0x053c57db8c707bc9270a185edb2d5c3f4d6b9884cd6d9252070c06463078e995", "0x2842a7e5a723d69a6f6c088fcc7b2e289173ca583987359c712c15ee44806960", "0x2bc8d89815dcd02215ab5a89956f9743a205a7fd71e002096d7c250ffc3544bf", "0x01d2012039a4d9492bb83367eead0282083ff9011b9c3884c96022f90dcf7432", @@ -6455,19 +6455,19 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_preimages]] - nullifier = "0x20847724d5be09ca0af6e9b36ec5ce1147d557c6a4a2c61bb2aa4d62bdc08e66" - next_nullifier = "0x2bd24d9521cfcd8b14bb5f749a761545f4fe94dcc56618d57bcfea385a5db168" - next_index = "0x0000000000000000000000000000000000000000000000000000000000000145" + nullifier = "0x1d48e10a9602b27d59891575af4fc583582b06d1639aacca7da3f54b5b6ee641" + next_nullifier = "0x253bae362d178a9f17a375459866ba260e2a819546b8aaaf29d5d223c833abe8" + next_index = "0x0000000000000000000000000000000000000000000000000000000000000140" [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_preimages]] - nullifier = "0x1b292354acb3ba526050467dbc93d2d505c80e73a41b7d2fb0c09cd32d03875f" - next_nullifier = "0x1ceec3511b2489568c8344be81e970a769044dd97be95562536c6867e09b8677" - next_index = "0x00000000000000000000000000000000000000000000000000000000000000c1" + nullifier = "0x1d48e10a9602b27d59891575af4fc583582b06d1639aacca7da3f54b5b6ee641" + next_nullifier = "0x23e5fa8d3e3a9e808681c49b75f3057da3d8345fe8610ee09c92ad3b2e5295fe" + next_index = "0x0000000000000000000000000000000000000000000000000000000000000281" [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_preimages]] - nullifier = "0x1546bc72fd1c9f595cc29ec322397f0c1306a17f5de02a12ae937e48b30f316d" - next_nullifier = "0x16c07a80d3d164d5d8082a5dda9fb5d5f0de35fc2bc4ac2fa36182ed91ce381f" - next_index = "0x0000000000000000000000000000000000000000000000000000000000000146" + nullifier = "0x08e235f810dfe164b58014ffbd3534381f40c1f465f78d45da1b6efa9299e550" + next_nullifier = "0x0c4d39dd744a0bdd7cb00cd40ba961852f005ba395b0e9b15be5a80a10e3a0e4" + next_index = "0x0000000000000000000000000000000000000000000000000000000000000240" [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_preimages]] nullifier = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -6775,18 +6775,18 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 next_index = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_membership_witnesses]] - leaf_index = "449" + leaf_index = "448" sibling_path = [ - "0x2941a7272bf49125b7e5c8f9c8a06939064d366f933f8ebfcbe4257716243dad", + "0x104652cebcec1f21faa2c4c73f3b56ceda8059171dc0a5194df21df98c167f9d", "0x19b8970c3845d2244da0851d0f9b631fae6156a9846a5598a0216fb537fb37d9", "0x1fca8e5d48b8e1a70cb333a4f5ca28a3355ec77b582acf926a4a17d42c31f776", "0x218d6b91b3a210e878d135aab2560fb2801db442dbd439ff2efd1fdfdfeeaad0", "0x0b926aa38fc854f094d02c0b719a75e50a7d4a0ef11685217c6568095b41fccc", "0x09c18d449a07bd072b1eb2b042e466fde1f82f740d57ab0ecb3ff368b3868abd", - "0x0df0ef1adc3691e5553b5304a971c203841eabef3423142e2e3c0bb4cfb01a82", - "0x233e166aa2a44dc5f9bcfbba514493bab8b8a00e3dd56e0d813888f5d06203f8", - "0x24bd80edafc13493c1edb17a018f34698eca5bed3b768dee95961dc577560e4e", - "0x29dbd0f2b5aec42761b1d801d1f899352dbb3b8c358abbf17c97069b6827de9e", + "0x2cbd030fd046bf17ce5fd0624bce41f4dea85c3ca11822060a3d7a44ce8eb7ba", + "0x1a3cc46073b20f9a0b95140cc52387ed6996d9d865e92de188d5c9de425976e5", + "0x00766e5104956cbfb2fbc6affd65791510b8625f8e948b6b2f672d6f30c0c61d", + "0x2fd3d5593fe845a5321c5150e15296980dd61eb7bef61e02e1ab76cb199a3dbf", "0x2842a7e5a723d69a6f6c088fcc7b2e289173ca583987359c712c15ee44806960", "0x2bc8d89815dcd02215ab5a89956f9743a205a7fd71e002096d7c250ffc3544bf", "0x01d2012039a4d9492bb83367eead0282083ff9011b9c3884c96022f90dcf7432", @@ -6822,18 +6822,18 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_membership_witnesses]] - leaf_index = "327" + leaf_index = "448" sibling_path = [ - "0x10ef06a0c859785e8d7fcbbf7d1a624f045c1544816d195838405eaacd740010", - "0x2573a0e9cf295372545c619b8c9329e46b01b7ab974cec3bd12def9098d16620", - "0x08db730f7a5e1eed62556f1a919321b5e4f5ab9cf68cd8982fd80e1cadc6369f", + "0x104652cebcec1f21faa2c4c73f3b56ceda8059171dc0a5194df21df98c167f9d", + "0x19b8970c3845d2244da0851d0f9b631fae6156a9846a5598a0216fb537fb37d9", + "0x1fca8e5d48b8e1a70cb333a4f5ca28a3355ec77b582acf926a4a17d42c31f776", "0x218d6b91b3a210e878d135aab2560fb2801db442dbd439ff2efd1fdfdfeeaad0", "0x0b926aa38fc854f094d02c0b719a75e50a7d4a0ef11685217c6568095b41fccc", "0x09c18d449a07bd072b1eb2b042e466fde1f82f740d57ab0ecb3ff368b3868abd", - "0x259490a13493a82580afd12e91ff42f23d398b46827e29d819e2a64dfa907c47", - "0x20b151f51c25e2fbf0e6eb3c22eddd39b87ca1836592ed50d5d8fd3b489ee69d", - "0x24bd80edafc13493c1edb17a018f34698eca5bed3b768dee95961dc577560e4e", - "0x29dbd0f2b5aec42761b1d801d1f899352dbb3b8c358abbf17c97069b6827de9e", + "0x2cbd030fd046bf17ce5fd0624bce41f4dea85c3ca11822060a3d7a44ce8eb7ba", + "0x1a3cc46073b20f9a0b95140cc52387ed6996d9d865e92de188d5c9de425976e5", + "0x00766e5104956cbfb2fbc6affd65791510b8625f8e948b6b2f672d6f30c0c61d", + "0x2fd3d5593fe845a5321c5150e15296980dd61eb7bef61e02e1ab76cb199a3dbf", "0x2842a7e5a723d69a6f6c088fcc7b2e289173ca583987359c712c15ee44806960", "0x2bc8d89815dcd02215ab5a89956f9743a205a7fd71e002096d7c250ffc3544bf", "0x01d2012039a4d9492bb83367eead0282083ff9011b9c3884c96022f90dcf7432", @@ -6869,18 +6869,18 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] [[inputs.tree_snapshot_diff_hints.nullifier_predecessor_membership_witnesses]] - leaf_index = "448" + leaf_index = "192" sibling_path = [ - "0x09828dd1f15420f5ae235412b7e16ecbce1b932812b73b7564e762bfd566f9a5", + "0x194707c6be74d4d69d96f460b19c47186c2800f73854c14a2e94d83a599a60e3", "0x19b8970c3845d2244da0851d0f9b631fae6156a9846a5598a0216fb537fb37d9", "0x1fca8e5d48b8e1a70cb333a4f5ca28a3355ec77b582acf926a4a17d42c31f776", "0x218d6b91b3a210e878d135aab2560fb2801db442dbd439ff2efd1fdfdfeeaad0", "0x0b926aa38fc854f094d02c0b719a75e50a7d4a0ef11685217c6568095b41fccc", "0x09c18d449a07bd072b1eb2b042e466fde1f82f740d57ab0ecb3ff368b3868abd", - "0x0df0ef1adc3691e5553b5304a971c203841eabef3423142e2e3c0bb4cfb01a82", - "0x1cf8e3ee3a38d1b5aa62577b1820cc6a13b2bd9af440383c958fb833e05e831a", - "0x24bd80edafc13493c1edb17a018f34698eca5bed3b768dee95961dc577560e4e", - "0x29dbd0f2b5aec42761b1d801d1f899352dbb3b8c358abbf17c97069b6827de9e", + "0x0088c115923d801f0a59a249cae832ee51e49c39549e7321408f6a3887c0eae6", + "0x15cc8eac007ea987f7f434c84367c8ade7b4b4322424cc3630b6cfedadac2768", + "0x21bcd5e28bd4f5186f074b46929cce2b13628ceccd3f48cd1c1b9d89277525e0", + "0x2fd3d5593fe845a5321c5150e15296980dd61eb7bef61e02e1ab76cb199a3dbf", "0x2842a7e5a723d69a6f6c088fcc7b2e289173ca583987359c712c15ee44806960", "0x2bc8d89815dcd02215ab5a89956f9743a205a7fd71e002096d7c250ffc3544bf", "0x01d2012039a4d9492bb83367eead0282083ff9011b9c3884c96022f90dcf7432", @@ -9783,16 +9783,16 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] [inputs.tree_snapshot_diff_hints.fee_payer_balance_membership_witness] - leaf_index = "120" + leaf_index = "117" sibling_path = [ - "0x13d5c2f78d433c774b2f9be7bb5d666fb8fd80452d0896af987365d04f9f681b", - "0x25f3536c3eb76fd96d5ccdde3cbbe50f5548e23683bf9f2cbad67f53d10537bc", - "0x2835a744c1a26d89fca8be670b7b8d7a2473a3eb7fd72bf533a007d6cc443772", - "0x2d0726c97dd7add62ef5c3e71e02ff90e76079e2650f2217ec0fe5e678b0bb8c", + "0x16a7a688d311e951584d539ea7e2ca0ac2ab0ba93e3d8f2b74b30fda0256757e", + "0x0ecfc8554e5aae047094af161cb1042cadc6d6403fb36ce61e06b87115a3f00b", + "0x2523970382de270c1acd87f98b4ed454353257f9c689dc608f7dc1b6ca23741a", + "0x28e0de15445e9ec115458a9fb85959f0214619c0eba57a1d49f2be1d7c3dfea8", "0x2edd4e68944dac758244213037fbe9d622c7c28d6070f16862b3e8986090bee4", "0x1d5ea1a288ff1ff4cabceaaa2f93eda378a5fb0a2a55423f4d4d205969181931", "0x23b80d0ef13d744a52faabf5651164d28f7faf902653e41a35472eea87936e6e", - "0x27c696ad87d2ae17e4005225c67d015eaca8a9c6e97dec181f97f15e2c1ff894", + "0x11c81a165eb743069fb7503fd23f7a8e53e5661bd03897d80831853682b2bbf8", "0x16c8aff52f0422f4bfc502620fe15dd6a4de67637563b7a8175f2d5727d268a4", "0x1c76b6744bc3d6b1cd4b53459a08b4959643c0768fde657299fcc82e2732f744", "0x12a6fac0fdfbd7897d8fe955f454cdb309ce8597d647ebfd0ba614c4eb215581", @@ -9828,18 +9828,18 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 ] [inputs.fee_payer_balance_leaf_preimage] - slot = "0x12d1296a2643b832fbd1d6d3ed3678833fce770084efd75adfd517de8214ccf3" + slot = "0x0088ce9e6f50acd19bac39e3d5410556dae500da161f6ef2653eac5064718153" value = "0x00000000000000000000000000000000000000000000021e01deb310ea6e1140" - next_slot = "0x133d35b9030a815b221f9205ef080f220fd8ba968e9bd88b60033b4854e100ad" - next_index = "0x0000000000000000000000000000000000000000000000000000000000000085" + next_slot = "0x03c104c97961093f5771dcffcd7cbe38dc199a262b616f267135fba95c8b2d1c" + next_index = "0x0000000000000000000000000000000000000000000000000000000000000076" [inputs.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" + protocol_contracts_hash = "0x0cf46d3e931602fb5a52d5f7f673d385dda8e2b9074db403ad47c7ce6612bf7d" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.constants.last_archive] - root = "0x00f30d99838de8d9e0b40bb5f19c53ebd2cea2e4e324a6b48a4db2655906ad63" + root = "0x2c031ebed6898291670fe35864c461640453222210fd1af2e3bf21cd6c843e7c" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" [inputs.constants.l1_to_l2_tree_snapshot] @@ -9848,13 +9848,13 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.constants.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" block_number = "0x0000000000000000000000000000000000000000000000000000000000000009" slot_number = "0x0000000000000000000000000000000000000000000000000000000000000041" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde078" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a07a374" [inputs.constants.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-public/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-public/Prover.toml index d2414328ae1d..5b95983eb5ff 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-public/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-tx-base-public/Prover.toml @@ -1,9 +1,9 @@ [inputs] anchor_block_archive_sibling_path = [ - "0x1444237c68ff756b5bcab6ef4b010657fbc4911b8a806638579f1df27f6e43f0", - "0x048c76bde3b9047f9f34f7fe8811109eafa422f663c1825d2399df06f4f11689", + "0x22f87e90f65c27bef1a1c028330c74f1b33b0e104d8e96afd35c5e1876df95c2", + "0x19f1a0c09db4cd026f686e9c8fb45501a9fefb4eb1b4c6c328a51343a0094eeb", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", - "0x2b3b2f80ea4227dfe7ab4edec33942ff08b95b023d6d15efb0abde90594c993b", + "0x0f732f793a5616e304457e5dba29fd5d2d14887c08d27a9e29c00f4ff813c417", "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", @@ -3547,57 +3547,57 @@ contract_class_log_fields = [ prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail] - expiration_timestamp = "0x0000000000000000000000000000000000000000000000000000000069ff1b30" + expiration_timestamp = "0x000000000000000000000000000000000000000000000000000000006a08e6e4" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants] - vk_tree_root = "0x0c16448b65c4b3f83f9db3bebf635bd38957c74c9c1ea36036cbda16432cf558" - protocol_contracts_hash = "0x0333160f082dfc02e255c756febac14dc42c4c88b882e0403d44710c1f0bb80f" + vk_tree_root = "0x1f53341e450d94b8dc4549234f9a5997a57b0a44fc79711945ec0af4e0975f50" + protocol_contracts_hash = "0x0cf46d3e931602fb5a52d5f7f673d385dda8e2b9074db403ad47c7ce6612bf7d" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header] - sponge_blob_hash = "0x13a1bf44c19e7c2eb7fc1a96527d072cf424bc99c760e392f4abcecc1fc597f8" - total_fees = "0x00000000000000000000000000000000000000000000000002b26ec5db7a7140" - total_mana_used = "0x00000000000000000000000000000000000000000000000000000000000a3979" + sponge_blob_hash = "0x0d0a1ae2c891664ed0ec30ad93933497f3cb26ed300c0fbe408334a32a4ba884" + total_fees = "0x000000000000000000000000000000000000000000000000003b2f97f0a76c80" + total_mana_used = "0x000000000000000000000000000000000000000000000000000000000007d76c" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.last_archive] - root = "0x0d18996e508e8c1e51f6a56652cc5d71169450ff16c25de9af7f79af5385e334" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" + root = "0x2c031ebed6898291670fe35864c461640453222210fd1af2e3bf21cd6c843e7c" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.state.l1_to_l2_message_tree] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002000" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002400" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.state.partial.note_hash_tree] -root = "0x1c223e428d6faa36822890e3b99417ddf73ffb069bf4c44b6ae9d7fc741733f6" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000200" +root = "0x1cf96971b488ea92b6c5f7b76c40e8d79e1c75b37af5acef8dd61c933e0a45e9" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.state.partial.nullifier_tree] -root = "0x01c778a6b3dcb1245bb0aee174252dd95256e67309f952e5d2f8cbafffe20d0f" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" +root = "0x22a5d1ce5187abfca0c7c566209135bfdcfa597fa5c379dfa0f6fb39ffceda4c" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.state.partial.public_data_tree] -root = "0x134e44df49ddb89525046d19bcfc2734c78e419994de9d6f7467eb84d02d1060" +root = "0x1f8fa50437b55da9c447c2939fd0830245d2c1fbcf9c93e29a25e03ab4eae7cf" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fdd7c0" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" + block_number = "0x0000000000000000000000000000000000000000000000000000000000000009" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000041" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a07a374" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.anchor_block_header.global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000004386faeb40" + fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000078c3bcb60" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.tx_context] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.tx_context.gas_settings.gas_limits] da_gas = "0x0000000000000000000000000000000000000000000000000000000000030000" @@ -3609,7 +3609,7 @@ l2_gas = "0x00000000000000000000000000000000000000000000000000000000000c795c" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.tx_context.gas_settings.max_fees_per_gas] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" -fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000336bfe2ba6" +fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000002d4966c440" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.constants.tx_context.gas_settings.max_priority_fees_per_gas] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -3683,7 +3683,7 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000000" ] nullifiers = [ - "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef", + "0x1f04f4bd382e2e74c2207d47bcfea23058395769cae7a7f6829995be3db167d8", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7069,13 +7069,13 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.revertible_accumulated_data.public_call_requests]] is_static_call = false - calldata_hash = "0x16acf8ee72d77f214e5286307ed2710fda25445374c38debbef546a746b679ce" + calldata_hash = "0x0892300cf4b2fbaf347d309ac2e7d173f9270b62213794ac5013525368483f29" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.revertible_accumulated_data.public_call_requests.msg_sender] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.revertible_accumulated_data.public_call_requests.contract_address] - inner = "0x16fc6ad8c94527d45832bb8631b0c1dedf3218fe7c3ca04e01850a3eff6a511a" + inner = "0x22a0174d2bf8314f2f65f114fd4f17783e2adddb4937c532eb8b7c365bf57be7" [[inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.revertible_accumulated_data.public_call_requests]] is_static_call = false @@ -7402,18 +7402,18 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" l2_gas = "0x00000000000000000000000000000000000000000000000000000000000903d0" [inputs.public_chonk_verifier_proof_data.public_inputs.private_tail.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [inputs.public_chonk_verifier_proof_data.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000006" sibling_path = [ - "0x1b3bb563a5febae9302424bc9b80841523b8773b3e521fb20de577a64e78bc9e", + "0x0a7fb889325f39bec13ee8f853c529ad8458c39c703cf4277c5b066d8d2eee15", "0x0a2d5d1c88992fa153310bc96af4c750c81353526f8c7dfe2b069ed57136e696", - "0x08c3364c5142d8fe956b12902940b54a7be36a42ce00cfc5831385a9d55cbe99", - "0x166399703d23a5c22febc6185f8eb93c72b65906eefef226e643c35fa0022adb", - "0x25f6f5fc25ee815cef59a1889f1e39db3d431d01b01ee1554f9492afec9d41d6", - "0x28650667b92be48b116289119fa4794a5fe8fe5792a49d89b9977feae7f685a6", - "0x2aa74c20807e8cbb3e32a86ad29472c42a3fb7021dcfaad112a6b68eb0eca98e" + "0x2cb287e44a86260e823a69c4147a1e336d20cfc156f7c490265be56d9b41fc2b", + "0x1b91692937095aca39fbbb5fc34c0ed7c582756a3dd1d032ebe0405639b2c6ef", + "0x08e506e1b4afdb0e6492d582e7f7da14da78cdb5d35cddc587855ffb03aaecf1", + "0x0ea386a780cf0f70cf258740f800f4788e20b555a155c2ad9cd01dd4c0b649a5", + "0x281004b958cd0b8cfaa8d9100ac6abf64acff5d5d9278e9fc848e1c7a7d9d6e7" ] [inputs.public_chonk_verifier_proof_data.vk_data.vk] @@ -7421,94 +7421,94 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" "0x0000000000000000000000000000000000000000000000000000000000000015", "0x0000000000000000000000000000000000000000000000000000000000000aef", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000001a8ea793d4cdae748667e6cdeb797ade65", - "0x00000000000000000000000000000000001cdf44a19565682df1db9105c2cd50", - "0x0000000000000000000000000000007d45bf53693d1e5f8c726b3b9090a3bdba", - "0x00000000000000000000000000000000002ddd08200eb9544a216dd19a8b59c9", - "0x00000000000000000000000000000096b0edfeb3ee3338c818b6e462ae496f95", - "0x00000000000000000000000000000000001bb979e3cd7d8111d021237de30bb7", - "0x000000000000000000000000000000e785a70c5bc29de6993bcd63514b5b856f", - "0x00000000000000000000000000000000001b6701a1a9de0c4e25c2eee81fbfc5", - "0x000000000000000000000000000000ccad5e1b43ec3cad430d126196ed4b784f", - "0x000000000000000000000000000000000026c8cfeea88730a069f9f8aae45eff", - "0x000000000000000000000000000000f25307bf7ae8166628fb8ca2aa186d80cc", - "0x000000000000000000000000000000000022a312b7a1b12f670d059924fde061", - "0x000000000000000000000000000000cfa8bf07d4dd07bd309194ad43dcf460aa", - "0x0000000000000000000000000000000000167ca0ccc32845025c5a76273b1b08", - "0x0000000000000000000000000000002a2f6be8e93ea920cd14a7b043ef6ed5d1", - "0x0000000000000000000000000000000000277ea66800e42f0b7078688718305a", - "0x0000000000000000000000000000007f88f1687491d3f3326c737061282c2e20", - "0x000000000000000000000000000000000019f0c295284fc42024aacbd46f9ae9", - "0x0000000000000000000000000000008a6e059479dbef05407682d018e1d7fd0d", - "0x0000000000000000000000000000000000276f6c02388d41b068d36f0e4082b0", - "0x0000000000000000000000000000006fe39d9df6859556bc04a2847a62aad7ff", - "0x00000000000000000000000000000000000faecf34f51e503f9c5bdf6f57aca8", - "0x0000000000000000000000000000004b4587deb70388b513862ba57de24e4596", - "0x0000000000000000000000000000000000167c35f16800e5924b66b6c395c2e1", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000351e060c59f2f13ceb5c631381e110552b", - "0x00000000000000000000000000000000002eeb2d2cba09260a9e138d0d24555c", - "0x000000000000000000000000000000d3bae05ebcb86c7b4921f00e4c579e9c5f", - "0x00000000000000000000000000000000002d4be8ae9ebbf085739d2c52d2ab93", - "0x000000000000000000000000000000940377e34f17c5ad22102cca865bb574a1", - "0x00000000000000000000000000000000000a723717bfcee9dcb71e21b6de10f8", - "0x000000000000000000000000000000991a4b02291df9c14b77e2473315d673b3", - "0x00000000000000000000000000000000001e89b95cf6b2ad2506d684fc7b7a30", - "0x0000000000000000000000000000004022b331528bfac4bdb04464fc89ff83fb", - "0x0000000000000000000000000000000000196330867786a8c08738881b739ce0", - "0x0000000000000000000000000000009df8b221819ebf22dc413d730b0c8a1e31", - "0x0000000000000000000000000000000000276ed9c7e725f586bf3b0f7d5f1594", - "0x0000000000000000000000000000008eb30c526734ef3a740aea96282908f962", - "0x00000000000000000000000000000000001624f456603c219b9f79b39960c61b", - "0x000000000000000000000000000000b9e9ead3a80d73be248eb82b65a23dbaf9", - "0x000000000000000000000000000000000022e03caaedc42d8b4b100610f33723", - "0x00000000000000000000000000000004914aab219c2e5c1388d1c5b276006436", - "0x00000000000000000000000000000000002426e1277a7907df8ec2e0e609f0a6", - "0x000000000000000000000000000000508e79b26489525bf5386a5c910dca5a5d", - "0x00000000000000000000000000000000003063b87ddf8ff817e547fe4ac149dc", - "0x000000000000000000000000000000f106fc4afe6bda7761c0d4ed7ded72ce1c", - "0x00000000000000000000000000000000002547059f6e3ae71ef9efe2be7dc5c0", - "0x0000000000000000000000000000001c8589cec2b200eed912f3e76cf5562b2b", - "0x0000000000000000000000000000000000154c96e49bb18fdd1aed7abd315822", - "0x0000000000000000000000000000009c4fcdf6541a1a4fd3d01630e1bba3fad8", - "0x00000000000000000000000000000000000e2b7c9dabb30e63d6cb909551d6d8", - "0x0000000000000000000000000000003e17757fa84eda964303f6fea5cca55ef1", - "0x00000000000000000000000000000000001efc4c896804eb95a3b76060ee5db8", - "0x000000000000000000000000000000514fabf9f6c618a2c084e1e9e64393459d", - "0x00000000000000000000000000000000000e851da603a179ea88a694100ed72e", - "0x00000000000000000000000000000081c7f92e6390c9fbe0627a879ecbd8f8e4", - "0x00000000000000000000000000000000002378d597dead1c2952534dc50aa04f", - "0x00000000000000000000000000000033435458f18b0436847ac2652e1aab3a81", - "0x000000000000000000000000000000000010f0f995d2e1ddfc2e2820abac64f5", - "0x000000000000000000000000000000cdc9c148beeb2652667b2a4be097432e98", - "0x00000000000000000000000000000000001790fa444ce77b0f17ced05ac77644", - "0x000000000000000000000000000000b4e0fa181577e0fce2a73e33cb1c7ef76a", - "0x00000000000000000000000000000000001248979a0b4c713d52467ef1091214", - "0x00000000000000000000000000000078b68a818812e294d27ed5173181eca67b", - "0x00000000000000000000000000000000001202f015e527e07bc8aa3b29bfc68a", - "0x0000000000000000000000000000002e37c769468f1d3bd64860032eeec60c95", - "0x000000000000000000000000000000000013a9a82892cb1b4ba982fa96f6fe5f", - "0x000000000000000000000000000000a4f97445c3ce77b60a4f89e090ed25f90d", - "0x00000000000000000000000000000000001bfe48767b9d9852929fd6c6ef7489", - "0x000000000000000000000000000000009788ffc458269e32c68d8529122209c6", - "0x00000000000000000000000000000000001ad94133da104b491b0533c283058d", - "0x00000000000000000000000000000082943f7e3e8277c5573c7bc01ee756e08e", - "0x0000000000000000000000000000000000093e0b3b3b286763d72202e7d89bd3", - "0x000000000000000000000000000000661e1803122d810a714ede90be3cff69ed", - "0x00000000000000000000000000000000000d11450f56fe63fe8dc9c9bcf5e0cd", - "0x0000000000000000000000000000003bbb3abba3a132e8d8f45f371281a8162a", - "0x000000000000000000000000000000000022484ddb85caad7259d40a2feaf9f0", - "0x000000000000000000000000000000d5c60aad9d3206ac85c01b2bbe07bb882c", - "0x0000000000000000000000000000000000064dbab19fabf630e0a01c9c644f28", - "0x0000000000000000000000000000000c6d39a6cc1814cb9c474639a2c85d7696", - "0x0000000000000000000000000000000000052e9746024ad3039b28344dff0160", - "0x00000000000000000000000000000082d5e3a922fab44e31d4948721b4c26f6a", - "0x00000000000000000000000000000000000209322634f0a5d2a3bd73f1e3eefa", - "0x000000000000000000000000000000ae542b5e28179ea83bd48b32d82857e6ce", - "0x00000000000000000000000000000000002e46a1b641046cc74f095ebc925043", + "0x000000000000000000000000000000b684f3822d696c3ecf484a7fe34791f63b", + "0x00000000000000000000000000000000002e9cd7590551679f2745acc9a6166b", + "0x000000000000000000000000000000c0fa18a8ea0c5477840072169c70c27083", + "0x000000000000000000000000000000000006fed68edbd8843dd0ab879a772fc6", + "0x00000000000000000000000000000026e7b1ee3942c1a107eb829a4a1fa2804d", + "0x000000000000000000000000000000000009789bf7546013a4f03234c7cf7806", + "0x00000000000000000000000000000008b9a37ec6fc3442e0c17c53d3e10b0b85", + "0x00000000000000000000000000000000001ec5dc87962d6200825abf3d662edc", + "0x0000000000000000000000000000007d544b6605780427b276080dcba2d3a6b1", + "0x00000000000000000000000000000000000e462e18915af1093432e4b54d56b5", + "0x0000000000000000000000000000002d05ce754d8790322afa554bb538c82ce7", + "0x0000000000000000000000000000000000217fb463fb96af6e79b1a94df4de2b", + "0x000000000000000000000000000000988e396bb90b6bb7bdbf004d58ee206dc7", + "0x00000000000000000000000000000000000ba1855ea83b7c95ca53b8080e4d9a", + "0x0000000000000000000000000000000542d08371517becedf53f97ab311ed352", + "0x00000000000000000000000000000000001da797344377e013d7ace7bd0b582a", + "0x00000000000000000000000000000020166ea9997b1c239d34547f165b8d5982", + "0x00000000000000000000000000000000001850619eba2054f9f41324786599c0", + "0x0000000000000000000000000000007b9e1bf48be054d6a7281d9aef57fa66c6", + "0x00000000000000000000000000000000002a965ef9ba89270efb7a138db9f3a5", + "0x000000000000000000000000000000b8eaa90b65a792f984baa676b46045473b", + "0x00000000000000000000000000000000002bdf1ff1c21dbc118d6b878d504e6d", + "0x0000000000000000000000000000001ff7882b2fdd2ca32c857c77a380501a10", + "0x000000000000000000000000000000000005d51203c3526df0478a7275d46c7b", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000598c8acc7fbfa779ed23372aba38bee64e", + "0x000000000000000000000000000000000001984ff4c3c19be7573bd5bb20b210", + "0x000000000000000000000000000000cd57f43bdf29875704dbb8e152f13aa037", + "0x00000000000000000000000000000000000dd55c58c84f3d5e854644f37177e4", + "0x0000000000000000000000000000001f02ca88c525a96b8563b48a7aabfc6b24", + "0x000000000000000000000000000000000002c93e0923d1b6d1e60d43a3928487", + "0x0000000000000000000000000000003c44cb74e2b6818ca4c75759ea23191cdb", + "0x00000000000000000000000000000000000e4db22c7616ee8c3c75b705bc7668", + "0x000000000000000000000000000000cabb69affcf99d1cc46c03c4140cb33f47", + "0x00000000000000000000000000000000001c15d7c93bbec9b2c897220b1c1420", + "0x000000000000000000000000000000090d5378c110fa9fd29af632a34cf84470", + "0x00000000000000000000000000000000001c8f5e33fd9b7841bda781b9a1a2af", + "0x000000000000000000000000000000b268933977ad81d4b2a90d89d86fef1cd6", + "0x00000000000000000000000000000000002f05ee0ba26ee4625875220a4e9f51", + "0x000000000000000000000000000000b79359439c800d1ff8759390cf8e9877b8", + "0x00000000000000000000000000000000000907e60e1332a9c7d1543b5429af59", + "0x00000000000000000000000000000084be3aaaa5d4b2ce869b94d84b180886c8", + "0x00000000000000000000000000000000002bf2641799eea22ca7c17fcd0170bd", + "0x000000000000000000000000000000ffd7944bc577de67a10fa61e563e39a199", + "0x000000000000000000000000000000000018ee5274d9d59c7a4e6ea4e9086857", + "0x000000000000000000000000000000913cedb17e467b5ec128fcd30a5d8f45a4", + "0x00000000000000000000000000000000000c36352a17ffaa1baa9f6f4ab990f0", + "0x000000000000000000000000000000d1d15826519e7557e9252e25cca7b68234", + "0x00000000000000000000000000000000002d8d82a0d2a2dafaa5c30e4fd0beca", + "0x000000000000000000000000000000f366069eb603ece7d5dbe351d3a7f8cb99", + "0x00000000000000000000000000000000000119a645221fedcdd2f0ccc55659aa", + "0x000000000000000000000000000000d4c5aa8f13dc73d1efb124730021df3c0d", + "0x0000000000000000000000000000000000173a91d164168b2a104f8a445923e3", + "0x0000000000000000000000000000001e0da0a289c24c20d61d63757e40d52e9e", + "0x00000000000000000000000000000000000873f2a70e71f36a677fac98b0f223", + "0x0000000000000000000000000000006363e418625d1a87b6c793a3fa67b62c8a", + "0x00000000000000000000000000000000001ad07fff2f60d183c6bbb52a88a076", + "0x000000000000000000000000000000602ed6d6e8441b84b20d5cf2eefe2b5730", + "0x0000000000000000000000000000000000011db44c3dd41d17fd5a5da5841ab1", + "0x000000000000000000000000000000ef6dbd36e70930ca9ecea70731b3ae2952", + "0x000000000000000000000000000000000012198e0151358cf72269f25d98a7d6", + "0x000000000000000000000000000000a9c62bc5e4859d84a6b71f0eb9ae002076", + "0x0000000000000000000000000000000000146b4d83228248fb4daeceb484a5cf", + "0x00000000000000000000000000000024272119fa5ea3659f5cc93e6906346041", + "0x00000000000000000000000000000000000e6f203351dc3d501e96deeacd1745", + "0x00000000000000000000000000000042723ba67f449f887a257cff0077f60df2", + "0x00000000000000000000000000000000000d5d772ba32d8ea22a4a0ca387da7c", + "0x0000000000000000000000000000008768ff19c1d3a20e9d334a1dfc81d182a6", + "0x00000000000000000000000000000000001f094f6d1eb8ebb46d7095f5cc262d", + "0x0000000000000000000000000000000efeb2b7db33a990c506e101c73afeed1c", + "0x00000000000000000000000000000000001381f886e9f8fd1aaf0824301d7f8e", + "0x00000000000000000000000000000026555700b99ad174e75f4fb2d54779813b", + "0x00000000000000000000000000000000001c184192b5ddd9b083ea27a2d01025", + "0x000000000000000000000000000000182a4013ec7ec4cabe96b2bd1a6ab6430f", + "0x0000000000000000000000000000000000266cf97a9846e58c82026b73f6be09", + "0x000000000000000000000000000000a0520688f4f47af3d195d4177dea4f6e70", + "0x000000000000000000000000000000000006dc9cef5b50392a5b25ffcd69e751", + "0x000000000000000000000000000000527d7c6049997c4de9bee2ace160dfd14a", + "0x000000000000000000000000000000000015e9a964515f16d454fb7d7e2e565e", + "0x000000000000000000000000000000cbf8b366a6c9c4395540c30f766a303cb9", + "0x00000000000000000000000000000000000fbb75e876fd119e954d22ceeea95c", + "0x000000000000000000000000000000922cfb797e0ee95d7bb31ceeeeb4d433c7", + "0x00000000000000000000000000000000000f2223f49c2f01718041ba6c8ff4e5", + "0x000000000000000000000000000000a0d4ea1e1c31cb33177efc4f9a6e1652ca", + "0x000000000000000000000000000000000017d878dd102598b8a90d658d650bba", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7529,12 +7529,12 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x000000000000000000000000000000b2cda22d682b80465a610820a455ccfe00", - "0x000000000000000000000000000000000014dbf65b57cd412e5a4e51e2e8fcb1", - "0x0000000000000000000000000000009324a599f7e39fa876752e4178e66cf056", - "0x000000000000000000000000000000000012a5445413899397985b2de3535efa" + "0x000000000000000000000000000000a353727eecbeb2708a0ba7438c9f67ac9f", + "0x000000000000000000000000000000000016d8906c48c640faac59aa0947b8bd", + "0x000000000000000000000000000000c14d66a59de329aabcfb5715846504a4e4", + "0x000000000000000000000000000000000009a577481460dded82d652c6abc7f8" ] - hash = "0x0c77683b8fb3dbb3c652ec7c75c7edab0f9597a4763fa388ed23a1a7dc7d4ba0" + hash = "0x1ef80142d10a45fb61f3a4192d352f1d813530777b10ca6db9613ccf5d025640" [inputs.avm_proof_data] proof = [ @@ -23942,43 +23942,43 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.avm_proof_data.public_inputs] prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" - transaction_fee = "0x0000000000000000000000000000000000000000000000000022e452ad469ea0" + transaction_fee = "0x000000000000000000000000000000000000000000000000004894bc72b69ca0" reverted = false [inputs.avm_proof_data.public_inputs.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000ad49d7cd" - block_number = "0x000000000000000000000000000000000000000000000000000000000000000b" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000043" - timestamp = "0x0000000000000000000000000000000000000000000000000000000069fde108" + version = "0x00000000000000000000000000000000000000000000000000000000449af02c" + block_number = "0x000000000000000000000000000000000000000000000000000000000000000a" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000042" + timestamp = "0x000000000000000000000000000000000000000000000000000000006a07a3bc" [inputs.avm_proof_data.public_inputs.global_variables.coinbase] - inner = "0x000000000000000000000000fde0805eba75f23cd30a3bb4f0e567a356075904" + inner = "0x0000000000000000000000002cc960a4937ba5874b489b710183ee25e8a7fa2d" [inputs.avm_proof_data.public_inputs.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.avm_proof_data.public_inputs.global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x00000000000000000000000000000000000000000000000000000003699e8ba0" + fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000078c3bcb60" [[inputs.avm_proof_data.public_inputs.protocol_contracts.derived_addresses]] -inner = "0x1520f4bb11a3a1d2248a03d8472e9af4bb8324eb1d2d8c83bce61894383464b9" +inner = "0x0f30810fccea5788a3695b883aa8c37e4fd1c79a0832891c54e4934cdf811264" [[inputs.avm_proof_data.public_inputs.protocol_contracts.derived_addresses]] -inner = "0x26a43bf066852a7b1ec3c5b454f41735fea12e2ffbefed471058124b91d94018" +inner = "0x0de48b8ff9fe893cb66949a352f552cdfa408461b12244558718053fe2f1409c" [[inputs.avm_proof_data.public_inputs.protocol_contracts.derived_addresses]] -inner = "0x1bd26c6831ebc53674b13ac69a0c534563c37e46c2cbb36f2deca107a26515fa" +inner = "0x0d816f861698134be2ab49828cf8130fd9cf10c139bad660c6654d72cbd169e8" [[inputs.avm_proof_data.public_inputs.protocol_contracts.derived_addresses]] -inner = "0x06870c63132d2a4e3356a76d773240efe729e7d9b9380a7a3cf1798fc9031aed" +inner = "0x17f183cae8aba4157ebd8564a2a8126473ddcc286665db9d208b90aef331ec3c" [[inputs.avm_proof_data.public_inputs.protocol_contracts.derived_addresses]] -inner = "0x0083c4dfb922796f1086d399f8f3d021159d1a87ba3b833dcdf9863c630ba643" +inner = "0x01f7f2a0fc5e871935a8f4d3accf162a02d6d7240128ce63fcd45abc0430aa42" [[inputs.avm_proof_data.public_inputs.protocol_contracts.derived_addresses]] -inner = "0x0b4d3a9a7a3caf83f9c2060347e48cc28c7f04d2560d1cbf5bf08d4832128a97" +inner = "0x16cebfb579bb64f80479102113bf35626052c8c36674815d1e4ae3bd6885907b" [[inputs.avm_proof_data.public_inputs.protocol_contracts.derived_addresses]] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -23997,18 +23997,18 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.avm_proof_data.public_inputs.start_tree_snapshots.l1_to_l2_message_tree] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002c00" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002800" [inputs.avm_proof_data.public_inputs.start_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" +root = "0x1cf96971b488ea92b6c5f7b76c40e8d79e1c75b37af5acef8dd61c933e0a45e9" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" [inputs.avm_proof_data.public_inputs.start_tree_snapshots.nullifier_tree] -root = "0x0e8d32952999631ff527d706426177bdb3208db1d3b8dd4e74ba883610dc37e5" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" +root = "0x22a5d1ce5187abfca0c7c566209135bfdcfa597fa5c379dfa0f6fb39ffceda4c" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.avm_proof_data.public_inputs.start_tree_snapshots.public_data_tree] -root = "0x0d21d4944ca04ad548057c7362ba76b7370e29929fe9cdd32ec1d04c07e21179" +root = "0x1f8fa50437b55da9c447c2939fd0830245d2c1fbcf9c93e29a25e03ab4eae7cf" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.avm_proof_data.public_inputs.start_gas_used] @@ -24025,7 +24025,7 @@ l2_gas = "0x00000000000000000000000000000000000000000000000000000000000c795c" [inputs.avm_proof_data.public_inputs.gas_settings.max_fees_per_gas] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" -fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000336bfe2ba6" +fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000002d4966c440" [inputs.avm_proof_data.public_inputs.gas_settings.max_priority_fees_per_gas] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -24033,10 +24033,10 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 [inputs.avm_proof_data.public_inputs.effective_gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x00000000000000000000000000000000000000000000000000000003699e8ba0" + fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000078c3bcb60" [inputs.avm_proof_data.public_inputs.fee_payer] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [inputs.avm_proof_data.public_inputs.public_call_request_array_lengths] setup_calls = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -24365,13 +24365,13 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 [[inputs.avm_proof_data.public_inputs.public_app_logic_call_requests]] is_static_call = false - calldata_hash = "0x16acf8ee72d77f214e5286307ed2710fda25445374c38debbef546a746b679ce" + calldata_hash = "0x0892300cf4b2fbaf347d309ac2e7d173f9270b62213794ac5013525368483f29" [inputs.avm_proof_data.public_inputs.public_app_logic_call_requests.msg_sender] - inner = "0x0635e757a5f05ba5322db37d6930525b43c2e055ed7c4600559a07fc38ab09ec" + inner = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [inputs.avm_proof_data.public_inputs.public_app_logic_call_requests.contract_address] - inner = "0x16fc6ad8c94527d45832bb8631b0c1dedf3218fe7c3ca04e01850a3eff6a511a" + inner = "0x22a0174d2bf8314f2f65f114fd4f17783e2adddb4937c532eb8b7c365bf57be7" [[inputs.avm_proof_data.public_inputs.public_app_logic_call_requests]] is_static_call = false @@ -24771,7 +24771,7 @@ fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000000" ] nullifiers = [ - "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef", + "0x1f04f4bd382e2e74c2207d47bcfea23058395769cae7a7f6829995be3db167d8", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -25133,29 +25133,29 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.avm_proof_data.public_inputs.end_tree_snapshots.l1_to_l2_message_tree] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002c00" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000002800" [inputs.avm_proof_data.public_inputs.end_tree_snapshots.note_hash_tree] -root = "0x2126a6e400b3fae90b44b74482d5b59dc707ba8f044c90a5f0e06ff48029f19f" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000340" +root = "0x1cf96971b488ea92b6c5f7b76c40e8d79e1c75b37af5acef8dd61c933e0a45e9" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" [inputs.avm_proof_data.public_inputs.end_tree_snapshots.nullifier_tree] -root = "0x28f8d2b1f0315d8539c1e4ff651e2eaac034de0a2271cd6f198f557ecf449cb1" -next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000003c0" +root = "0x11f03cd22c9fe0ab8a3a461a6c6ce32f58cc582e85750727be5bb8c9c1f7951a" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" [inputs.avm_proof_data.public_inputs.end_tree_snapshots.public_data_tree] -root = "0x1a010e7a4312757d9349e0058c907064764c9836de016199dbd957ca46fefc3b" +root = "0x2528038ef69391d4b1aa9b3bc9c4a9860f7b731105cb6d64841db6a8e973feff" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" [inputs.avm_proof_data.public_inputs.end_gas_used] - da_gas = "0x0000000000000000000000000000000000000000000000000000000000000100" - l2_gas = "0x00000000000000000000000000000000000000000000000000000000000a3979" + da_gas = "0x00000000000000000000000000000000000000000000000000000000000000c0" + l2_gas = "0x0000000000000000000000000000000000000000000000000000000000099dbf" [inputs.avm_proof_data.public_inputs.accumulated_data_array_lengths] note_hashes = "0x0000000000000000000000000000000000000000000000000000000000000000" nullifiers = "0x0000000000000000000000000000000000000000000000000000000000000001" l2_to_l1_msgs = "0x0000000000000000000000000000000000000000000000000000000000000000" - public_data_writes = "0x0000000000000000000000000000000000000000000000000000000000000003" + public_data_writes = "0x0000000000000000000000000000000000000000000000000000000000000002" [inputs.avm_proof_data.public_inputs.accumulated_data] note_hashes = [ @@ -25225,7 +25225,7 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x0000000000000000000000000000000000000000000000000000000000000000" ] nullifiers = [ - "0x09fac458f9e079d0117ef63746c55ce66b3e5d95c8420974d9c69f369b0d77ef", + "0x1f04f4bd382e2e74c2207d47bcfea23058395769cae7a7f6829995be3db167d8", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -29473,16 +29473,16 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" ] [[inputs.avm_proof_data.public_inputs.accumulated_data.public_data_writes]] - leaf_slot = "0x2935995b8343928a25acdb09654bdc27aeef345ec185caa48fb0048bd475fbcb" - value = "0x0000000000000000000000000000000000000000000000000000000000001c20" + leaf_slot = "0x0a75e9b48d03022245c569bb274539a11a8b4ae948a753d465360e5ed169b62c" + value = "0x1242beb8ec03c111d9a331efb552c0155f23b86e9f214c09af12fce0009383cd" [[inputs.avm_proof_data.public_inputs.accumulated_data.public_data_writes]] - leaf_slot = "0x0dc02e099550676b3dcfd522010d4db9d2c47a4556dfa28aa20a4a0eb35c54a4" - value = "0x0000000000000000000000000000000000000000000000000000000000000af0" + leaf_slot = "0x0088ce9e6f50acd19bac39e3d5410556dae500da161f6ef2653eac5064718153" + value = "0x00000000000000000000000000000000000000000000021e015aeebc87100820" [[inputs.avm_proof_data.public_inputs.accumulated_data.public_data_writes]] - leaf_slot = "0x12d1296a2643b832fbd1d6d3ed3678833fce770084efd75adfd517de8214ccf3" - value = "0x00000000000000000000000000000000000000000000021e00afaeb15ed67ca0" + leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" + value = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.avm_proof_data.public_inputs.accumulated_data.public_data_writes]] leaf_slot = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -29747,5 +29747,5 @@ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" squeeze_mode = false [inputs.last_archive] - root = "0x24f3d6261780561e8ede638edf15d34d9f93372572631856307c57a08dfb9cb1" - next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" + root = "0x2278d45cbe3fe955c253f69da260afed8377b4093203faceb8dd685e2ebbba0c" + next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-tx-merge/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-tx-merge/Prover.toml index 9181896a6389..a86acdd36df9 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-tx-merge/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-tx-merge/Prover.toml @@ -489,8 +489,8 @@ proof = [ accumulated_mana_used = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants] - vk_tree_root = "0x0141caf6779674bc31225636c4cc4259a731835c52fc462f2dcbfabf7de01a1d" - protocol_contracts_hash = "0x01af64239167dcc8333e25456aab71348f66d9f6de731a8b62181d16cf0818c1" + vk_tree_root = "0x0b701ee3d1002ca8a5a73a81bcb2e0d84e6c30222be65f508574f182569b718f" + protocol_contracts_hash = "0x0fcccdf7958e813bb1d24f764ae13ff08a999008434c2e4dec55f4401564b05e" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants.last_archive] @@ -570,10 +570,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000000000000000000000000000b7d1b34e" ] state = [ - "0x0dbad51bb440650e97a5db6945e0b816676a7c99a97b61f7575f7ebb0302cb74", - "0x153f707b3f374da7de4e7558dd131ca1b276367234300e2061ebb6a80c9321cd", - "0x301693101ecf5431e14201ddc3e55cb8715203dcc3e3d159df5c63bdbde17381", - "0x223072f1c5ac6c338cf08c7043aa64605f2ba6feec29f658343ec4db85070b27" + "0x28ceaed15a6167592482697da06ac405557958a88659e8a294d4a863e97f8cbe", + "0x16710e00e80f40036d0a39c58a3269bf0e03b7c095b904499bdab6f3ef5ccd71", + "0x25a44adf4bb8ea266cd5398139a046115f57ab3cbbf9827ae3edb4dca94d8fd1", + "0x13551db592560b9a6d2ffed579ee3530d463b8baa035312dccd664e01e077a66" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" squeeze_mode = false @@ -581,134 +581,134 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" sibling_path = [ - "0x0f8f726e833df2994b5e4f7236bb20b770b92eeddaa5e11c229e396b784aac56", - "0x24d3d34d155de7ba76e941299ef9b12edeb7de094e758c30ab32f54a32954ae5", - "0x234d319aa3526e9e00d76d9b5b9b18b435756035ad00d8d716e1be50ac82ead3", - "0x2648004ca39ab2f7f01e8733c2de2d035675568a1c98d1410ce90ac2512e72e2", - "0x15313312ac8ca4825afd3891479fbb14626ca65499d939e23b1f653cd7d018ea", - "0x19de2a32662702dd872e529ad89836e16b013012f910daf2bc7c2a67356dd107", - "0x1f07bca7a14f9a969539c0afd388affa18926689f431fc541841a2a7604d388c" + "0x09b4bb0061881fc354c5fadf8dc55f36b0c67dc3b2f58a18406363dfa0b079fa", + "0x2136af42d41c58f3fd528f4e88c2de5152c2bb251a3c4d8950d4401a0c8ae6ff", + "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", + "0x146274c75e0cce377b1764ae8c0ba9167cfb0632d9453ac4c5b521f5d45cee4c", + "0x10fa882cccd67cfee268da2a5d99ed42a34302ecebc26f4b3254e41507b3ee42", + "0x133dc174ef877c42d59ac5fe87733ce13f9355587db788e3b490832c7afbcfd2", + "0x13482b383bc59a6da6ab4e998b0986c23166d0aba121fc0789e9f14605af653b" ] [inputs.previous_rollups.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000017", "0x0000000000000000000000000000000000000000000000000000000000000042", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000008580b9a8c85e4a3c1e7b1089bd79f3bc28", - "0x000000000000000000000000000000000022dc01e3ed0e1b10bdcff9d093431a", - "0x00000000000000000000000000000054f9950035e8ffae852707e9d1a9032e59", - "0x0000000000000000000000000000000000276c56cb94e0545b3bfd85919a8ce8", - "0x0000000000000000000000000000009352ff9d82645804416a2b338260fa235d", - "0x000000000000000000000000000000000010a253776d2bdcb7129acfa2e91ac5", - "0x00000000000000000000000000000095babbbc4a6d5a9b68707c3a8e1e9508e2", - "0x000000000000000000000000000000000030157ca77e90f7ee9155c1009b06a1", - "0x000000000000000000000000000000068047e82e283284235befaa9cc7a1838d", - "0x00000000000000000000000000000000000bcd70cc5042e81e440b1ea5ef3c3f", - "0x0000000000000000000000000000007702a95c1bf5e2923ca69f26cc2d7efe0f", - "0x00000000000000000000000000000000000adeb0e8b1074c68de2b2172f21c5e", - "0x000000000000000000000000000000520354133ccbbccfc69be0c01b92abdf0f", - "0x00000000000000000000000000000000002dea248e3c2fe054c698a861bf4c27", - "0x000000000000000000000000000000f93b6112b7de5c27298a81c68d502b7beb", - "0x00000000000000000000000000000000002be3a33fc9502b0cc8b9427fcfe50f", - "0x000000000000000000000000000000168f01ff83f4a014a90db19e5d882a0a0a", - "0x000000000000000000000000000000000008876edc3cc7e3825dc194e21cb011", - "0x0000000000000000000000000000006d1df389f06e514e1829af3744dc64294a", - "0x000000000000000000000000000000000022e86ef68622bd107e5080cc062a4f", - "0x000000000000000000000000000000d137fc89e86049cb1b141b67b3361b6298", - "0x00000000000000000000000000000000001d7ad7d0634dc08d7d9816b5b6814c", - "0x000000000000000000000000000000defd2454e2c3a75ec8e0730bd3640b9408", - "0x00000000000000000000000000000000000b189f6ee9395b1ca5771c361501d7", - "0x00000000000000000000000000000001fccf755f5b30a7d544b2f78ce075cb5d", - "0x000000000000000000000000000000000026f5423942948047e155a519b195e8", - "0x000000000000000000000000000000a9efc76daffb8dfe2a39570b2d5d046767", - "0x000000000000000000000000000000000026e7dd89fe96952a4603c2b5555538", - "0x00000000000000000000000000000008262b430328dcaab242dd8acc504e8ac9", - "0x000000000000000000000000000000000015f3ab1410f0e5dd3e00f03b9f563b", - "0x0000000000000000000000000000008fca5ff8ed9a5d41fe9b451f02502dd1c9", - "0x0000000000000000000000000000000000266aa6e4947434ef18adeba3700713", - "0x000000000000000000000000000000d93cecd04341f5da304f3c92f0670afc43", - "0x000000000000000000000000000000000020165b3fd2bfb72a4de3dc68f66eed", - "0x000000000000000000000000000000094a6d376eb3cc1ba94b4da00dea583eac", - "0x00000000000000000000000000000000001caf7742d251b04f3517f0f1e5a625", - "0x0000000000000000000000000000003be5647cd472ad0b06a48f632997e3eea2", - "0x000000000000000000000000000000000015fb4d9ecb8125b3243cee37698c48", - "0x0000000000000000000000000000000854a3ab5bcbca1e86d4949b1b7c5f4b0e", - "0x000000000000000000000000000000000015450314fbf315448dc3379dc82214", - "0x0000000000000000000000000000009c2c55d2ea5bdf5fc5e28f1a78b1d29625", - "0x000000000000000000000000000000000020b36a8406ec64352600587cf04194", - "0x000000000000000000000000000000f14d08d9dab6a54412d741166146188ae6", - "0x00000000000000000000000000000000001b5a34ccd7eaf5cd09ab920011552f", - "0x00000000000000000000000000000074b7827a59faf701f7f41df26e5476c40c", - "0x00000000000000000000000000000000002decbab1c87b933da1625951860793", - "0x000000000000000000000000000000751aab48a0e01094128242ea0aaab63ff7", - "0x00000000000000000000000000000000001a2a334289adf8d23d4d52caf4cfe6", - "0x000000000000000000000000000000f6a41261290460b25e1e7d7bf69b564ae6", - "0x00000000000000000000000000000000000296925feaed4585bb03319f126d96", - "0x00000000000000000000000000000055b70d653ebd7df04f720951e76a27369b", - "0x000000000000000000000000000000000019744937a687edc9f46fb8323a46d9", - "0x00000000000000000000000000000047978fda5b64d8fc4571f09da3e8ccc7de", - "0x0000000000000000000000000000000000139de6a387109f47ecbacc74e03742", - "0x0000000000000000000000000000007f5afdfcb7bcd85aa293676e18e899a03e", - "0x000000000000000000000000000000000006a2971c1c947f4cadb07ebc9bc980", - "0x0000000000000000000000000000006cdb69a57b7f7a25b99e18fc0f83c1bc70", - "0x000000000000000000000000000000000028f2a76a01dc3cc927cdba29383e9b", - "0x0000000000000000000000000000001bbc4d6033de44907975ce473bc0f4f148", - "0x00000000000000000000000000000000002642f26fc1850c4b9b7fc4cd860ab9", - "0x000000000000000000000000000000ac996074e35eb268f6ebbe99e9c7d26c47", - "0x00000000000000000000000000000000002262620617978a01f75646f1909969", - "0x000000000000000000000000000000e63aa32bcc098428f407b5e07d9cb26118", - "0x000000000000000000000000000000000022b294b6a7dc4c17319f9a91a1b443", - "0x000000000000000000000000000000649d9ce9147431632893f55d3c6bbc158e", - "0x000000000000000000000000000000000020698c9b0787f14aa66a57bc232ec1", - "0x000000000000000000000000000000b4fde29f9bde909609d70bf9862dd65cf1", - "0x000000000000000000000000000000000005fcac9b75cac50d87ca827678c070", - "0x00000000000000000000000000000071e27b0a0dd0e2180985072f4a949f0c1d", - "0x000000000000000000000000000000000025d2d1388eddcf016213f1cadc763f", - "0x000000000000000000000000000000b216bad715cdfa7c382d30d7a368cc1346", - "0x0000000000000000000000000000000000302dbbf78b13a6d71d1978b5607145", - "0x00000000000000000000000000000002ebdec49969d2ff9220240bbcb8730617", - "0x000000000000000000000000000000000027f41cad8540e47008c1da90340ef6", - "0x000000000000000000000000000000e8259148321315cc34166a206fe910c6cb", - "0x000000000000000000000000000000000013444efc30c7688d961f36de252af6", - "0x0000000000000000000000000000005b7c7ad432291e9dff1dfad51159e50dbf", - "0x0000000000000000000000000000000000205ec973a0d1c898c1def7852353b3", - "0x0000000000000000000000000000007940a7e88fe5ce47af688975c92be1b62a", - "0x000000000000000000000000000000000015bdab44fe41eec6ee62ed58f55ff5", - "0x0000000000000000000000000000003693b90aedcd664eede665df6f376cf526", - "0x0000000000000000000000000000000000207c38fd6851d1568fe18a83585f31", - "0x000000000000000000000000000000f1a8a60975b9b092aab1421166be08c2f5", - "0x000000000000000000000000000000000015450d2e8ea17db209302582b886f1", - "0x000000000000000000000000000000526e857040a344bd434bfdbf94d3a49196", - "0x00000000000000000000000000000000000d0112b922a852c4754ab3929d6d02", - "0x000000000000000000000000000000d88041fa28c8118a58ceacbcc8780844b5", - "0x00000000000000000000000000000000002584170ebef150b71c5e6aa93e2fbb", - "0x0000000000000000000000000000006363c23486d6a7a313beac4e2d9611968a", - "0x0000000000000000000000000000000000085acee4523161ab1e268a4f0c1b0f", - "0x000000000000000000000000000000b250d5a528a555d96d498fc9af4f8cc5c2", - "0x000000000000000000000000000000000017080f8d1d21b541de1c64d8b794df", - "0x000000000000000000000000000000621557759a0775ea5575adc9c6fbd96d56", - "0x00000000000000000000000000000000001cd60c23a37c42d7e46e1e19e966ae", - "0x0000000000000000000000000000000d52081b2311a7e9bf52407cf3d2c336b3", - "0x0000000000000000000000000000000000003b2312f2f2f419434a1440d40c69", - "0x000000000000000000000000000000d26082083660d6ac8bffb639994e4500e7", - "0x000000000000000000000000000000000019d6ef8ce569e7fa55b8aab7f5eea6", - "0x00000000000000000000000000000078d8a04f7b6c536d3a8a35c790b4dc7ddc", - "0x00000000000000000000000000000000001111470a41156a530334d2c08511a5", - "0x0000000000000000000000000000008ab4119a5478448b7ec3573de2cdfd8e56", - "0x0000000000000000000000000000000000263c7bd4cde5591308156c458d2989", - "0x0000000000000000000000000000004a676142c9eca140ac96ab9ca49633e141", - "0x00000000000000000000000000000000001de62520faa095ad7513f753e0a73e", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000a2c4fbcbebac01e208127093cbf44780d4", - "0x00000000000000000000000000000000001ca34545a074b1cb689aa0b343402d", - "0x000000000000000000000000000000a58c28598055d8818a6dbadd0018904386", - "0x0000000000000000000000000000000000152154cbc213630f5c7ec1ee37751b" + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x000000000000000000000000000000f944590031f1d3b251c3dc90ea2821c71d", + "0x00000000000000000000000000000000000d31fd1a4942efade625e012c77df1", + "0x0000000000000000000000000000001e9acd89b92c18e3d89b881b26312bb12b", + "0x000000000000000000000000000000000000736f00a23cbea07da614d8b767e4", + "0x00000000000000000000000000000012167fb1f0d3b9afea7d534404e3b36b53", + "0x0000000000000000000000000000000000021e6d056d0d40c720927abd39c872", + "0x0000000000000000000000000000004ea3f0c21ee1056b3e2ad9c082242e5a2e", + "0x00000000000000000000000000000000000c574204fd079871ae599e192d72c8", + "0x0000000000000000000000000000002654c5b2b175f95fdb2ab405dcc4220545", + "0x00000000000000000000000000000000001fd13a35df71290c2354c6c5f610de", + "0x000000000000000000000000000000d5e3b3464d67c82f035b33016912264b04", + "0x000000000000000000000000000000000009fcdab45c12d2f313f95b94a1dcb8", + "0x000000000000000000000000000000768c5a9d8ca0081f67ff3171a7ffe3ba49", + "0x00000000000000000000000000000000001cd676b8d32bb0bb898d83a9f49a2b", + "0x00000000000000000000000000000028650bc3473de217fbfec1e9fb10e4e999", + "0x0000000000000000000000000000000000260c000ea0ebc3db3ba672328007a5", + "0x000000000000000000000000000000f1948fbf68599bf0628f118156de61f57f", + "0x00000000000000000000000000000000000033e796d200425f6a499de18dbfeb", + "0x00000000000000000000000000000016a35cf8fc5f017037adf860723e6346e5", + "0x0000000000000000000000000000000000088cf6d72197800bb1300677f734a7", + "0x00000000000000000000000000000047169c153b6cc24bbac1e4126410779ccb", + "0x000000000000000000000000000000000022b70bfb92e8c7944ae65a49b7effa", + "0x000000000000000000000000000000425c661c37104ad33c2054f3cfde9954d0", + "0x000000000000000000000000000000000000c36b8ecc5963bef022dea4dfadcc", + "0x0000000000000000000000000000006f206a04895661d3bd004222a1f8a7fc73", + "0x00000000000000000000000000000000001b12a59a820d3aa543a594a1b9d92f", + "0x0000000000000000000000000000002103559842aca1e08af33bb1f714ebc02a", + "0x00000000000000000000000000000000001b8936a0be628b58af9859c2a851d1", + "0x000000000000000000000000000000862e0c485b99696417d296ecc2b2bac316", + "0x00000000000000000000000000000000000ae46fcce211297d2d7fcab27fc041", + "0x000000000000000000000000000000551700c158e12cb40d8ea4ef2563b6fb43", + "0x00000000000000000000000000000000000b515d88939b250a4a4758e4e2ea53", + "0x000000000000000000000000000000f4bae0ad0baeb9d42c7fe2ae3d18c98fad", + "0x00000000000000000000000000000000002a20d66bd435a17fdf1eaf345d5933", + "0x000000000000000000000000000000ed8a8ba528c7088b1ae4730572e1ec32c8", + "0x000000000000000000000000000000000009506de430d6b9f9863e6f10cd35fb", + "0x000000000000000000000000000000682b627744ce0319f4d9191675057282fb", + "0x000000000000000000000000000000000017de059961f8c12752abd299396f86", + "0x000000000000000000000000000000b975958ec262178729e94350c0e7543fb0", + "0x0000000000000000000000000000000000220ce50e394560e53f025e094d17aa", + "0x0000000000000000000000000000001fca3a68a28d438e85e9dc955856752779", + "0x000000000000000000000000000000000028f8f3400bb3b9d19b02ec709e2ee4", + "0x0000000000000000000000000000004e35d073460b0634ebe216d49a3dca9b36", + "0x00000000000000000000000000000000000cb0f5827b08075c405353f10ba632", + "0x0000000000000000000000000000001ece860550ce14fae74eda0123ded56a74", + "0x00000000000000000000000000000000000a34b258bd3daaf8f9edd201c25ed3", + "0x0000000000000000000000000000008cb28ae85d58a75302229585a9ad114c2b", + "0x000000000000000000000000000000000014aac1da344ad32659c3036510fcc1", + "0x000000000000000000000000000000822b45036d5c2befa8a20df910513570c4", + "0x000000000000000000000000000000000011244b388e709fbcb7f54658cfac43", + "0x000000000000000000000000000000389de9951eb8fad7e25e4ad0a9229d2275", + "0x0000000000000000000000000000000000136e6eb0ee251f9b12336cb7bb46ee", + "0x00000000000000000000000000000088f21d9f6c7c54ce4e9a4c103a91b54a58", + "0x0000000000000000000000000000000000187f2beab9a05ca29d2137ee7cbc19", + "0x0000000000000000000000000000009c703a5eb43dcef0686e08fa57ef452f68", + "0x000000000000000000000000000000000012caebb183f1490d3e4f2a2c583ab6", + "0x0000000000000000000000000000009dab4a0aa8d4954a8e1761db3da148a746", + "0x0000000000000000000000000000000000230a08da3b62fd6479b4230760b686", + "0x00000000000000000000000000000081a00a1e38bbd5212603f18ef982a5189d", + "0x000000000000000000000000000000000021ae0f9df38f1e70fa3c26867f4ee8", + "0x0000000000000000000000000000001a722dbd34f841b4823cd055149fce642f", + "0x000000000000000000000000000000000002df2693a9b134670cfe72bf29b363", + "0x00000000000000000000000000000007c906c328630b844b0797e34cedccd1ec", + "0x00000000000000000000000000000000002ab2ae39dd9c0259f7dfb1dda47e81", + "0x000000000000000000000000000000ac6642a4923aa2df07a00a9d3e462b0ed1", + "0x000000000000000000000000000000000015afb7af6c0fc23a24457aa887df9c", + "0x0000000000000000000000000000004d916ec23ef29c0b6134f208e3535671d4", + "0x00000000000000000000000000000000000d37c6c25852903d79475133d414e8", + "0x00000000000000000000000000000029ad212431ba1972de7ee0ba9f12113be3", + "0x000000000000000000000000000000000005c2393db23155844d4f71bead84d0", + "0x000000000000000000000000000000c69074efa82a4910eaf8ab8689d7aafcad", + "0x000000000000000000000000000000000029f3d77437006a0eacf1a149c4b8a0", + "0x00000000000000000000000000000030926853da69d4016eca2f1f0df5e5316f", + "0x000000000000000000000000000000000014841d3291aecd45ea0e05657dbed2", + "0x00000000000000000000000000000052fdb060fe666a3f686088f1f6996a1cf9", + "0x00000000000000000000000000000000002be878eb09939603b391aa9ee0393a", + "0x000000000000000000000000000000d99de3b49476e64c0138037838cfc63803", + "0x0000000000000000000000000000000000260874b43f32c373783efe7ef200a2", + "0x0000000000000000000000000000004951edbb25e9c6b65d446e3418b2b3f16e", + "0x00000000000000000000000000000000002300fac13ab48d40a91114d1ff9627", + "0x00000000000000000000000000000090b8d216da73861ee276dddb17428d8c09", + "0x000000000000000000000000000000000028f906106984e5fa78812869cc1aee", + "0x000000000000000000000000000000ce2aff6eda49d5b8be6ee42104d2aa21e0", + "0x000000000000000000000000000000000002833f671993d2b772b5dec0e12056", + "0x0000000000000000000000000000008be4e7cfb1fdf317a33b7bc3530625e6b8", + "0x000000000000000000000000000000000023404bed8e224a350755410e5c96b2", + "0x000000000000000000000000000000cd9a812fad3fe3a89983e416b70529445b", + "0x00000000000000000000000000000000000b66296ff191a2cf6dbe6ca03dcd0c", + "0x0000000000000000000000000000005eefcb3c6f69064ed55425945fcc74c2bc", + "0x00000000000000000000000000000000001613278bd29c20c182e6f3b5e367ce", + "0x0000000000000000000000000000006c39d4dd8c65752b9bc2628fcc3dbf415c", + "0x00000000000000000000000000000000000d4b721e385647b57de3efbc9952db", + "0x000000000000000000000000000000e26e87fb5ad793c153110c1e55129d9ee7", + "0x00000000000000000000000000000000001986fe851f46fd25818f580f9d55f1", + "0x0000000000000000000000000000007a7eb895f6f2419aafb58de3f81b3f6739", + "0x00000000000000000000000000000000000d1289085013119c588fbcdbb11f5e", + "0x00000000000000000000000000000061358ce9820bc7ced39ca91d017f767cfa", + "0x000000000000000000000000000000000018a26c04d92048605adf6b40fbe696", + "0x000000000000000000000000000000924ee754d49e43f0991a540ece79958ad1", + "0x00000000000000000000000000000000001faa0f64d400addf955b2f4a8181ec", + "0x0000000000000000000000000000000c13651a87f101a4d0bf32619d4326c45b", + "0x000000000000000000000000000000000002809feb719732fbf341dd249e671d", + "0x0000000000000000000000000000003523e8c751d17a4dcd30540a4f9261403b", + "0x00000000000000000000000000000000001466cc1bd7c1743fca0477c4ea4481", + "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", + "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", + "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", + "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", + "0x0000000000000000000000000000003e895e3756deb16393c59a6a9d3669ce0f", + "0x0000000000000000000000000000000000262d7f27b9058ca9bd2e0620f9a3d3", + "0x000000000000000000000000000000b98c4ce00d755cb57daf4bc1b860536fc3", + "0x0000000000000000000000000000000000017137ecc6753555f49859a34eeb62" ] - hash = "0x0c9b0fab06de495eb1835dc184eb51d6584a970a90bb9c9dba17ab97e9b6dee6" + hash = "0x05df4d5edfe80160c2f684f683ed1ef5fb3a539be4cfb97957b2d7f5c3ab9ead" [[inputs.previous_rollups]] proof = [ @@ -1201,8 +1201,8 @@ proof = [ accumulated_mana_used = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants] - vk_tree_root = "0x0141caf6779674bc31225636c4cc4259a731835c52fc462f2dcbfabf7de01a1d" - protocol_contracts_hash = "0x01af64239167dcc8333e25456aab71348f66d9f6de731a8b62181d16cf0818c1" + vk_tree_root = "0x0b701ee3d1002ca8a5a73a81bcb2e0d84e6c30222be65f508574f182569b718f" + protocol_contracts_hash = "0x0fcccdf7958e813bb1d24f764ae13ff08a999008434c2e4dec55f4401564b05e" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants.last_archive] @@ -1264,10 +1264,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000000000000000000000000000b7d1b34e" ] state = [ - "0x0dbad51bb440650e97a5db6945e0b816676a7c99a97b61f7575f7ebb0302cb74", - "0x153f707b3f374da7de4e7558dd131ca1b276367234300e2061ebb6a80c9321cd", - "0x301693101ecf5431e14201ddc3e55cb8715203dcc3e3d159df5c63bdbde17381", - "0x223072f1c5ac6c338cf08c7043aa64605f2ba6feec29f658343ec4db85070b27" + "0x28ceaed15a6167592482697da06ac405557958a88659e8a294d4a863e97f8cbe", + "0x16710e00e80f40036d0a39c58a3269bf0e03b7c095b904499bdab6f3ef5ccd71", + "0x25a44adf4bb8ea266cd5398139a046115f57ab3cbbf9827ae3edb4dca94d8fd1", + "0x13551db592560b9a6d2ffed579ee3530d463b8baa035312dccd664e01e077a66" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" squeeze_mode = false @@ -1282,10 +1282,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000000000000000000000000000b7e5c34c" ] state = [ - "0x095ff6c475ee1af84257c77b73b727e6ebf0cc7015e0318ea5ceb14044e637a8", - "0x28810b36811d26c3700f0c7867fc191986df3ef57ea3a195b396ae8e1516b1a7", - "0x0d0d075374c48ade348ced65280060db0bfe6c16752688a5d65a07afc55cf16c", - "0x0b29f6eee3031f85d7f5ce02982c80e8fc06b552319a441c5b0fc3521d9c801c" + "0x019c8b37514a1a54433fb4ee411ccaf6da8c99234b4e5d11cc5f6b95c3989bb5", + "0x026875d420939d38c5495ee684f0a31efd5cab908193ae929d1c426d68bb9409", + "0x1a8c7e8add3b6e5ee547b84164a1d59756426ff82c71128c0627a7c01c830220", + "0x081d1fadf8d9a49f296a172486009b0c5f64d52de31142cfc01bc2b08387210a" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false @@ -1293,131 +1293,131 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" sibling_path = [ - "0x0f8f726e833df2994b5e4f7236bb20b770b92eeddaa5e11c229e396b784aac56", - "0x24d3d34d155de7ba76e941299ef9b12edeb7de094e758c30ab32f54a32954ae5", - "0x234d319aa3526e9e00d76d9b5b9b18b435756035ad00d8d716e1be50ac82ead3", - "0x2648004ca39ab2f7f01e8733c2de2d035675568a1c98d1410ce90ac2512e72e2", - "0x15313312ac8ca4825afd3891479fbb14626ca65499d939e23b1f653cd7d018ea", - "0x19de2a32662702dd872e529ad89836e16b013012f910daf2bc7c2a67356dd107", - "0x1f07bca7a14f9a969539c0afd388affa18926689f431fc541841a2a7604d388c" + "0x09b4bb0061881fc354c5fadf8dc55f36b0c67dc3b2f58a18406363dfa0b079fa", + "0x2136af42d41c58f3fd528f4e88c2de5152c2bb251a3c4d8950d4401a0c8ae6ff", + "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", + "0x146274c75e0cce377b1764ae8c0ba9167cfb0632d9453ac4c5b521f5d45cee4c", + "0x10fa882cccd67cfee268da2a5d99ed42a34302ecebc26f4b3254e41507b3ee42", + "0x133dc174ef877c42d59ac5fe87733ce13f9355587db788e3b490832c7afbcfd2", + "0x13482b383bc59a6da6ab4e998b0986c23166d0aba121fc0789e9f14605af653b" ] [inputs.previous_rollups.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000017", "0x0000000000000000000000000000000000000000000000000000000000000042", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000008580b9a8c85e4a3c1e7b1089bd79f3bc28", - "0x000000000000000000000000000000000022dc01e3ed0e1b10bdcff9d093431a", - "0x00000000000000000000000000000054f9950035e8ffae852707e9d1a9032e59", - "0x0000000000000000000000000000000000276c56cb94e0545b3bfd85919a8ce8", - "0x0000000000000000000000000000009352ff9d82645804416a2b338260fa235d", - "0x000000000000000000000000000000000010a253776d2bdcb7129acfa2e91ac5", - "0x00000000000000000000000000000095babbbc4a6d5a9b68707c3a8e1e9508e2", - "0x000000000000000000000000000000000030157ca77e90f7ee9155c1009b06a1", - "0x000000000000000000000000000000068047e82e283284235befaa9cc7a1838d", - "0x00000000000000000000000000000000000bcd70cc5042e81e440b1ea5ef3c3f", - "0x0000000000000000000000000000007702a95c1bf5e2923ca69f26cc2d7efe0f", - "0x00000000000000000000000000000000000adeb0e8b1074c68de2b2172f21c5e", - "0x000000000000000000000000000000520354133ccbbccfc69be0c01b92abdf0f", - "0x00000000000000000000000000000000002dea248e3c2fe054c698a861bf4c27", - "0x000000000000000000000000000000f93b6112b7de5c27298a81c68d502b7beb", - "0x00000000000000000000000000000000002be3a33fc9502b0cc8b9427fcfe50f", - "0x000000000000000000000000000000168f01ff83f4a014a90db19e5d882a0a0a", - "0x000000000000000000000000000000000008876edc3cc7e3825dc194e21cb011", - "0x0000000000000000000000000000006d1df389f06e514e1829af3744dc64294a", - "0x000000000000000000000000000000000022e86ef68622bd107e5080cc062a4f", - "0x000000000000000000000000000000d137fc89e86049cb1b141b67b3361b6298", - "0x00000000000000000000000000000000001d7ad7d0634dc08d7d9816b5b6814c", - "0x000000000000000000000000000000defd2454e2c3a75ec8e0730bd3640b9408", - "0x00000000000000000000000000000000000b189f6ee9395b1ca5771c361501d7", - "0x00000000000000000000000000000001fccf755f5b30a7d544b2f78ce075cb5d", - "0x000000000000000000000000000000000026f5423942948047e155a519b195e8", - "0x000000000000000000000000000000a9efc76daffb8dfe2a39570b2d5d046767", - "0x000000000000000000000000000000000026e7dd89fe96952a4603c2b5555538", - "0x00000000000000000000000000000008262b430328dcaab242dd8acc504e8ac9", - "0x000000000000000000000000000000000015f3ab1410f0e5dd3e00f03b9f563b", - "0x0000000000000000000000000000008fca5ff8ed9a5d41fe9b451f02502dd1c9", - "0x0000000000000000000000000000000000266aa6e4947434ef18adeba3700713", - "0x000000000000000000000000000000d93cecd04341f5da304f3c92f0670afc43", - "0x000000000000000000000000000000000020165b3fd2bfb72a4de3dc68f66eed", - "0x000000000000000000000000000000094a6d376eb3cc1ba94b4da00dea583eac", - "0x00000000000000000000000000000000001caf7742d251b04f3517f0f1e5a625", - "0x0000000000000000000000000000003be5647cd472ad0b06a48f632997e3eea2", - "0x000000000000000000000000000000000015fb4d9ecb8125b3243cee37698c48", - "0x0000000000000000000000000000000854a3ab5bcbca1e86d4949b1b7c5f4b0e", - "0x000000000000000000000000000000000015450314fbf315448dc3379dc82214", - "0x0000000000000000000000000000009c2c55d2ea5bdf5fc5e28f1a78b1d29625", - "0x000000000000000000000000000000000020b36a8406ec64352600587cf04194", - "0x000000000000000000000000000000f14d08d9dab6a54412d741166146188ae6", - "0x00000000000000000000000000000000001b5a34ccd7eaf5cd09ab920011552f", - "0x00000000000000000000000000000074b7827a59faf701f7f41df26e5476c40c", - "0x00000000000000000000000000000000002decbab1c87b933da1625951860793", - "0x000000000000000000000000000000751aab48a0e01094128242ea0aaab63ff7", - "0x00000000000000000000000000000000001a2a334289adf8d23d4d52caf4cfe6", - "0x000000000000000000000000000000f6a41261290460b25e1e7d7bf69b564ae6", - "0x00000000000000000000000000000000000296925feaed4585bb03319f126d96", - "0x00000000000000000000000000000055b70d653ebd7df04f720951e76a27369b", - "0x000000000000000000000000000000000019744937a687edc9f46fb8323a46d9", - "0x00000000000000000000000000000047978fda5b64d8fc4571f09da3e8ccc7de", - "0x0000000000000000000000000000000000139de6a387109f47ecbacc74e03742", - "0x0000000000000000000000000000007f5afdfcb7bcd85aa293676e18e899a03e", - "0x000000000000000000000000000000000006a2971c1c947f4cadb07ebc9bc980", - "0x0000000000000000000000000000006cdb69a57b7f7a25b99e18fc0f83c1bc70", - "0x000000000000000000000000000000000028f2a76a01dc3cc927cdba29383e9b", - "0x0000000000000000000000000000001bbc4d6033de44907975ce473bc0f4f148", - "0x00000000000000000000000000000000002642f26fc1850c4b9b7fc4cd860ab9", - "0x000000000000000000000000000000ac996074e35eb268f6ebbe99e9c7d26c47", - "0x00000000000000000000000000000000002262620617978a01f75646f1909969", - "0x000000000000000000000000000000e63aa32bcc098428f407b5e07d9cb26118", - "0x000000000000000000000000000000000022b294b6a7dc4c17319f9a91a1b443", - "0x000000000000000000000000000000649d9ce9147431632893f55d3c6bbc158e", - "0x000000000000000000000000000000000020698c9b0787f14aa66a57bc232ec1", - "0x000000000000000000000000000000b4fde29f9bde909609d70bf9862dd65cf1", - "0x000000000000000000000000000000000005fcac9b75cac50d87ca827678c070", - "0x00000000000000000000000000000071e27b0a0dd0e2180985072f4a949f0c1d", - "0x000000000000000000000000000000000025d2d1388eddcf016213f1cadc763f", - "0x000000000000000000000000000000b216bad715cdfa7c382d30d7a368cc1346", - "0x0000000000000000000000000000000000302dbbf78b13a6d71d1978b5607145", - "0x00000000000000000000000000000002ebdec49969d2ff9220240bbcb8730617", - "0x000000000000000000000000000000000027f41cad8540e47008c1da90340ef6", - "0x000000000000000000000000000000e8259148321315cc34166a206fe910c6cb", - "0x000000000000000000000000000000000013444efc30c7688d961f36de252af6", - "0x0000000000000000000000000000005b7c7ad432291e9dff1dfad51159e50dbf", - "0x0000000000000000000000000000000000205ec973a0d1c898c1def7852353b3", - "0x0000000000000000000000000000007940a7e88fe5ce47af688975c92be1b62a", - "0x000000000000000000000000000000000015bdab44fe41eec6ee62ed58f55ff5", - "0x0000000000000000000000000000003693b90aedcd664eede665df6f376cf526", - "0x0000000000000000000000000000000000207c38fd6851d1568fe18a83585f31", - "0x000000000000000000000000000000f1a8a60975b9b092aab1421166be08c2f5", - "0x000000000000000000000000000000000015450d2e8ea17db209302582b886f1", - "0x000000000000000000000000000000526e857040a344bd434bfdbf94d3a49196", - "0x00000000000000000000000000000000000d0112b922a852c4754ab3929d6d02", - "0x000000000000000000000000000000d88041fa28c8118a58ceacbcc8780844b5", - "0x00000000000000000000000000000000002584170ebef150b71c5e6aa93e2fbb", - "0x0000000000000000000000000000006363c23486d6a7a313beac4e2d9611968a", - "0x0000000000000000000000000000000000085acee4523161ab1e268a4f0c1b0f", - "0x000000000000000000000000000000b250d5a528a555d96d498fc9af4f8cc5c2", - "0x000000000000000000000000000000000017080f8d1d21b541de1c64d8b794df", - "0x000000000000000000000000000000621557759a0775ea5575adc9c6fbd96d56", - "0x00000000000000000000000000000000001cd60c23a37c42d7e46e1e19e966ae", - "0x0000000000000000000000000000000d52081b2311a7e9bf52407cf3d2c336b3", - "0x0000000000000000000000000000000000003b2312f2f2f419434a1440d40c69", - "0x000000000000000000000000000000d26082083660d6ac8bffb639994e4500e7", - "0x000000000000000000000000000000000019d6ef8ce569e7fa55b8aab7f5eea6", - "0x00000000000000000000000000000078d8a04f7b6c536d3a8a35c790b4dc7ddc", - "0x00000000000000000000000000000000001111470a41156a530334d2c08511a5", - "0x0000000000000000000000000000008ab4119a5478448b7ec3573de2cdfd8e56", - "0x0000000000000000000000000000000000263c7bd4cde5591308156c458d2989", - "0x0000000000000000000000000000004a676142c9eca140ac96ab9ca49633e141", - "0x00000000000000000000000000000000001de62520faa095ad7513f753e0a73e", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000a2c4fbcbebac01e208127093cbf44780d4", - "0x00000000000000000000000000000000001ca34545a074b1cb689aa0b343402d", - "0x000000000000000000000000000000a58c28598055d8818a6dbadd0018904386", - "0x0000000000000000000000000000000000152154cbc213630f5c7ec1ee37751b" + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x000000000000000000000000000000f944590031f1d3b251c3dc90ea2821c71d", + "0x00000000000000000000000000000000000d31fd1a4942efade625e012c77df1", + "0x0000000000000000000000000000001e9acd89b92c18e3d89b881b26312bb12b", + "0x000000000000000000000000000000000000736f00a23cbea07da614d8b767e4", + "0x00000000000000000000000000000012167fb1f0d3b9afea7d534404e3b36b53", + "0x0000000000000000000000000000000000021e6d056d0d40c720927abd39c872", + "0x0000000000000000000000000000004ea3f0c21ee1056b3e2ad9c082242e5a2e", + "0x00000000000000000000000000000000000c574204fd079871ae599e192d72c8", + "0x0000000000000000000000000000002654c5b2b175f95fdb2ab405dcc4220545", + "0x00000000000000000000000000000000001fd13a35df71290c2354c6c5f610de", + "0x000000000000000000000000000000d5e3b3464d67c82f035b33016912264b04", + "0x000000000000000000000000000000000009fcdab45c12d2f313f95b94a1dcb8", + "0x000000000000000000000000000000768c5a9d8ca0081f67ff3171a7ffe3ba49", + "0x00000000000000000000000000000000001cd676b8d32bb0bb898d83a9f49a2b", + "0x00000000000000000000000000000028650bc3473de217fbfec1e9fb10e4e999", + "0x0000000000000000000000000000000000260c000ea0ebc3db3ba672328007a5", + "0x000000000000000000000000000000f1948fbf68599bf0628f118156de61f57f", + "0x00000000000000000000000000000000000033e796d200425f6a499de18dbfeb", + "0x00000000000000000000000000000016a35cf8fc5f017037adf860723e6346e5", + "0x0000000000000000000000000000000000088cf6d72197800bb1300677f734a7", + "0x00000000000000000000000000000047169c153b6cc24bbac1e4126410779ccb", + "0x000000000000000000000000000000000022b70bfb92e8c7944ae65a49b7effa", + "0x000000000000000000000000000000425c661c37104ad33c2054f3cfde9954d0", + "0x000000000000000000000000000000000000c36b8ecc5963bef022dea4dfadcc", + "0x0000000000000000000000000000006f206a04895661d3bd004222a1f8a7fc73", + "0x00000000000000000000000000000000001b12a59a820d3aa543a594a1b9d92f", + "0x0000000000000000000000000000002103559842aca1e08af33bb1f714ebc02a", + "0x00000000000000000000000000000000001b8936a0be628b58af9859c2a851d1", + "0x000000000000000000000000000000862e0c485b99696417d296ecc2b2bac316", + "0x00000000000000000000000000000000000ae46fcce211297d2d7fcab27fc041", + "0x000000000000000000000000000000551700c158e12cb40d8ea4ef2563b6fb43", + "0x00000000000000000000000000000000000b515d88939b250a4a4758e4e2ea53", + "0x000000000000000000000000000000f4bae0ad0baeb9d42c7fe2ae3d18c98fad", + "0x00000000000000000000000000000000002a20d66bd435a17fdf1eaf345d5933", + "0x000000000000000000000000000000ed8a8ba528c7088b1ae4730572e1ec32c8", + "0x000000000000000000000000000000000009506de430d6b9f9863e6f10cd35fb", + "0x000000000000000000000000000000682b627744ce0319f4d9191675057282fb", + "0x000000000000000000000000000000000017de059961f8c12752abd299396f86", + "0x000000000000000000000000000000b975958ec262178729e94350c0e7543fb0", + "0x0000000000000000000000000000000000220ce50e394560e53f025e094d17aa", + "0x0000000000000000000000000000001fca3a68a28d438e85e9dc955856752779", + "0x000000000000000000000000000000000028f8f3400bb3b9d19b02ec709e2ee4", + "0x0000000000000000000000000000004e35d073460b0634ebe216d49a3dca9b36", + "0x00000000000000000000000000000000000cb0f5827b08075c405353f10ba632", + "0x0000000000000000000000000000001ece860550ce14fae74eda0123ded56a74", + "0x00000000000000000000000000000000000a34b258bd3daaf8f9edd201c25ed3", + "0x0000000000000000000000000000008cb28ae85d58a75302229585a9ad114c2b", + "0x000000000000000000000000000000000014aac1da344ad32659c3036510fcc1", + "0x000000000000000000000000000000822b45036d5c2befa8a20df910513570c4", + "0x000000000000000000000000000000000011244b388e709fbcb7f54658cfac43", + "0x000000000000000000000000000000389de9951eb8fad7e25e4ad0a9229d2275", + "0x0000000000000000000000000000000000136e6eb0ee251f9b12336cb7bb46ee", + "0x00000000000000000000000000000088f21d9f6c7c54ce4e9a4c103a91b54a58", + "0x0000000000000000000000000000000000187f2beab9a05ca29d2137ee7cbc19", + "0x0000000000000000000000000000009c703a5eb43dcef0686e08fa57ef452f68", + "0x000000000000000000000000000000000012caebb183f1490d3e4f2a2c583ab6", + "0x0000000000000000000000000000009dab4a0aa8d4954a8e1761db3da148a746", + "0x0000000000000000000000000000000000230a08da3b62fd6479b4230760b686", + "0x00000000000000000000000000000081a00a1e38bbd5212603f18ef982a5189d", + "0x000000000000000000000000000000000021ae0f9df38f1e70fa3c26867f4ee8", + "0x0000000000000000000000000000001a722dbd34f841b4823cd055149fce642f", + "0x000000000000000000000000000000000002df2693a9b134670cfe72bf29b363", + "0x00000000000000000000000000000007c906c328630b844b0797e34cedccd1ec", + "0x00000000000000000000000000000000002ab2ae39dd9c0259f7dfb1dda47e81", + "0x000000000000000000000000000000ac6642a4923aa2df07a00a9d3e462b0ed1", + "0x000000000000000000000000000000000015afb7af6c0fc23a24457aa887df9c", + "0x0000000000000000000000000000004d916ec23ef29c0b6134f208e3535671d4", + "0x00000000000000000000000000000000000d37c6c25852903d79475133d414e8", + "0x00000000000000000000000000000029ad212431ba1972de7ee0ba9f12113be3", + "0x000000000000000000000000000000000005c2393db23155844d4f71bead84d0", + "0x000000000000000000000000000000c69074efa82a4910eaf8ab8689d7aafcad", + "0x000000000000000000000000000000000029f3d77437006a0eacf1a149c4b8a0", + "0x00000000000000000000000000000030926853da69d4016eca2f1f0df5e5316f", + "0x000000000000000000000000000000000014841d3291aecd45ea0e05657dbed2", + "0x00000000000000000000000000000052fdb060fe666a3f686088f1f6996a1cf9", + "0x00000000000000000000000000000000002be878eb09939603b391aa9ee0393a", + "0x000000000000000000000000000000d99de3b49476e64c0138037838cfc63803", + "0x0000000000000000000000000000000000260874b43f32c373783efe7ef200a2", + "0x0000000000000000000000000000004951edbb25e9c6b65d446e3418b2b3f16e", + "0x00000000000000000000000000000000002300fac13ab48d40a91114d1ff9627", + "0x00000000000000000000000000000090b8d216da73861ee276dddb17428d8c09", + "0x000000000000000000000000000000000028f906106984e5fa78812869cc1aee", + "0x000000000000000000000000000000ce2aff6eda49d5b8be6ee42104d2aa21e0", + "0x000000000000000000000000000000000002833f671993d2b772b5dec0e12056", + "0x0000000000000000000000000000008be4e7cfb1fdf317a33b7bc3530625e6b8", + "0x000000000000000000000000000000000023404bed8e224a350755410e5c96b2", + "0x000000000000000000000000000000cd9a812fad3fe3a89983e416b70529445b", + "0x00000000000000000000000000000000000b66296ff191a2cf6dbe6ca03dcd0c", + "0x0000000000000000000000000000005eefcb3c6f69064ed55425945fcc74c2bc", + "0x00000000000000000000000000000000001613278bd29c20c182e6f3b5e367ce", + "0x0000000000000000000000000000006c39d4dd8c65752b9bc2628fcc3dbf415c", + "0x00000000000000000000000000000000000d4b721e385647b57de3efbc9952db", + "0x000000000000000000000000000000e26e87fb5ad793c153110c1e55129d9ee7", + "0x00000000000000000000000000000000001986fe851f46fd25818f580f9d55f1", + "0x0000000000000000000000000000007a7eb895f6f2419aafb58de3f81b3f6739", + "0x00000000000000000000000000000000000d1289085013119c588fbcdbb11f5e", + "0x00000000000000000000000000000061358ce9820bc7ced39ca91d017f767cfa", + "0x000000000000000000000000000000000018a26c04d92048605adf6b40fbe696", + "0x000000000000000000000000000000924ee754d49e43f0991a540ece79958ad1", + "0x00000000000000000000000000000000001faa0f64d400addf955b2f4a8181ec", + "0x0000000000000000000000000000000c13651a87f101a4d0bf32619d4326c45b", + "0x000000000000000000000000000000000002809feb719732fbf341dd249e671d", + "0x0000000000000000000000000000003523e8c751d17a4dcd30540a4f9261403b", + "0x00000000000000000000000000000000001466cc1bd7c1743fca0477c4ea4481", + "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", + "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", + "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", + "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", + "0x0000000000000000000000000000003e895e3756deb16393c59a6a9d3669ce0f", + "0x0000000000000000000000000000000000262d7f27b9058ca9bd2e0620f9a3d3", + "0x000000000000000000000000000000b98c4ce00d755cb57daf4bc1b860536fc3", + "0x0000000000000000000000000000000000017137ecc6753555f49859a34eeb62" ] - hash = "0x0c9b0fab06de495eb1835dc184eb51d6584a970a90bb9c9dba17ab97e9b6dee6" + hash = "0x05df4d5edfe80160c2f684f683ed1ef5fb3a539be4cfb97957b2d7f5c3ab9ead" diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr b/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr index 312ae5bb5c58..e529cec95aa0 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr @@ -2,7 +2,7 @@ use crate::{ address::{ partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash, }, - constants::{AZTEC_ADDRESS_LENGTH, DOM_SEP__CONTRACT_ADDRESS_V1, MAX_FIELD_VALUE}, + constants::{AZTEC_ADDRESS_LENGTH, DOM_SEP__CONTRACT_ADDRESS_V2, MAX_FIELD_VALUE}, contract_class_id::ContractClassId, hash::poseidon2_hash_with_separator, public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, ToPoint, TpkM}, @@ -116,11 +116,11 @@ impl AztecAddress { // / \ Npk_m Ivpk_m Ovpk_m Tpk_m . // contract_class_id \ |................... // / | \ \ - // artifact_hash | public_bytecode_commitment salted_initialization_hash - // | / / \ - // private_function_tree_root deployer_address salt initialization_hash - // / \ / \ - // ... ... constructor_fn_selector constructor_args_hash + // artifact_hash | public_bytecode_commitment salted_initialization_hash + // | / / \ \ + // private_function_tree_root salt initialization_hash deployer_address immutables_hash + // / \ / \ + // ... ... constructor_fn_selector constructor_args_hash // / \ // / \ / \ // leaf leaf leaf leaf @@ -134,7 +134,7 @@ impl AztecAddress { let pre_address = poseidon2_hash_with_separator( [public_keys_hash.to_field(), partial_address.to_field()], - DOM_SEP__CONTRACT_ADDRESS_V1, + DOM_SEP__CONTRACT_ADDRESS_V2, ); // Note: `.add()` will fail within the blackbox fn if either of the points are not on the curve. (See tests below). @@ -253,15 +253,15 @@ fn compute_address_from_partial_and_pub_keys() { // The following value was generated by `derivation.test.ts`. // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data. let expected_computed_address_from_partial_and_pubkeys = - 0x2f66081d4bb077fbe8e8abe96a3516a713a3d7e34360b4e985da0da95092b37d; + 0x29d6d00ffff74b1ae63c9e27b4aebc9af67c3aae2ee58583cc17408b384929ea; assert(address.to_field() == expected_computed_address_from_partial_and_pubkeys); } #[test] fn compute_preaddress_from_partial_and_pub_keys() { - let pre_address = poseidon2_hash_with_separator([1, 2], DOM_SEP__CONTRACT_ADDRESS_V1); + let pre_address = poseidon2_hash_with_separator([1, 2], DOM_SEP__CONTRACT_ADDRESS_V2); let expected_computed_preaddress_from_partial_and_pubkey = - 0x286c7755f2924b1e53b00bcaf1adaffe7287bd74bba7a02f4ab867e3892d28da; + 0x0fa1c698858df1a99170cd39d5f4bfad6d0d60f1f8afa3dc92281ee60b36f3bb; assert(pre_address == expected_computed_preaddress_from_partial_and_pubkey); } diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr b/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr index e2698c8475e7..cd5f1f9fb95f 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr @@ -35,10 +35,11 @@ impl PartialAddress { salt: Field, initialization_hash: Field, deployer: AztecAddress, + immutables_hash: Field, ) -> Self { PartialAddress::compute_from_salted_initialization_hash( contract_class_id, - SaltedInitializationHash::compute(salt, initialization_hash, deployer), + SaltedInitializationHash::compute(salt, initialization_hash, deployer, immutables_hash), ) } diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr b/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr index 4f09babab178..8b50410bfabd 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr @@ -20,9 +20,14 @@ impl SaltedInitializationHash { Self { inner: field } } - pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self { + pub fn compute( + salt: Field, + initialization_hash: Field, + deployer: AztecAddress, + immutables_hash: Field, + ) -> Self { SaltedInitializationHash::from_field(poseidon2_hash_with_separator( - [salt, initialization_hash, deployer.to_field()], + [salt, initialization_hash, deployer.to_field(), immutables_hash], DOM_SEP__SALTED_INITIALIZATION_HASH, )) } diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr index 027f1e7ef243..775a5458beb2 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr @@ -301,7 +301,7 @@ pub global GAS_SETTINGS_LENGTH: u32 = GAS_LENGTH /* gas_limits */ + GAS_FEES_LENGTH /* max_fees_per_gas */ + GAS_FEES_LENGTH /* max_priority_fees_per_gas */; pub global CALL_CONTEXT_LENGTH: u32 = 4; -pub global CONTRACT_INSTANCE_LENGTH: u32 = 16; +pub global CONTRACT_INSTANCE_LENGTH: u32 = 17; pub global CONTRACT_STORAGE_READ_LENGTH: u32 = 3; pub global CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH: u32 = 3; pub global ETH_ADDRESS_LENGTH: u32 = 1; @@ -752,7 +752,7 @@ pub global DOM_SEP__PUBLIC_KEYS_HASH: u32 = 777457226; // Address pub global DOM_SEP__PARTIAL_ADDRESS: u32 = 2103633018; -pub global DOM_SEP__CONTRACT_ADDRESS_V1: u32 = 1788365517; +pub global DOM_SEP__CONTRACT_ADDRESS_V2: u32 = 4099338721; // --------------------------------------------------------------- diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants_tests.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants_tests.nr index e4415d7b4b95..3689e2945607 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants_tests.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants_tests.nr @@ -9,7 +9,7 @@ use crate::{ DOM_SEP__APP_SILOED_ECDH_SHARED_SECRET, DOM_SEP__AUTHWIT_INNER, DOM_SEP__AUTHWIT_NULLIFIER, DOM_SEP__AUTHWIT_OUTER, DOM_SEP__BLOB_CHALLENGE_Z, DOM_SEP__BLOB_GAMMA_ACC, DOM_SEP__BLOB_GAMMA_FINAL, DOM_SEP__BLOB_HASHED_Y_LIMBS, DOM_SEP__BLOB_Z_ACC, - DOM_SEP__BLOCK_HEADER_HASH, DOM_SEP__BLOCK_HEADERS_HASH, DOM_SEP__CONTRACT_ADDRESS_V1, + DOM_SEP__BLOCK_HEADER_HASH, DOM_SEP__BLOCK_HEADERS_HASH, DOM_SEP__CONTRACT_ADDRESS_V2, DOM_SEP__CONTRACT_CLASS_ID, DOM_SEP__ECDH_FIELD_MASK, DOM_SEP__ECDH_SUBKEY, DOM_SEP__EVENT_COMMITMENT, DOM_SEP__EVENT_LOG_TAG, DOM_SEP__FUNCTION_ARGS, DOM_SEP__INITIALIZATION_NULLIFIER, DOM_SEP__INITIALIZER, @@ -194,7 +194,7 @@ fn hashed_values_match_derived() { tester.assert_dom_sep_matches_derived(DOM_SEP__TSK_M, "tsk_m"); tester.assert_dom_sep_matches_derived(DOM_SEP__PUBLIC_KEYS_HASH, "public_keys_hash"); tester.assert_dom_sep_matches_derived(DOM_SEP__PARTIAL_ADDRESS, "partial_address"); - tester.assert_dom_sep_matches_derived(DOM_SEP__CONTRACT_ADDRESS_V1, "contract_address_v1"); + tester.assert_dom_sep_matches_derived(DOM_SEP__CONTRACT_ADDRESS_V2, "contract_address_v2"); tester.assert_dom_sep_matches_derived(DOM_SEP__BLOCK_HEADER_HASH, "block_header_hash"); tester.assert_dom_sep_matches_derived(DOM_SEP__TX_REQUEST, "tx_request"); tester.assert_dom_sep_matches_derived(DOM_SEP__PUBLIC_TX_HASH, "public_tx_hash"); diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr b/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr index fa2ce232d0a3..f96851c0d0a1 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr @@ -12,6 +12,7 @@ pub struct ContractInstance { pub deployer: AztecAddress, pub contract_class_id: ContractClassId, pub initialization_hash: Field, + pub immutables_hash: Field, pub public_keys: PublicKeys, } @@ -30,6 +31,7 @@ impl ContractInstance { self.salt, self.initialization_hash, self.deployer, + self.immutables_hash, ), ) } @@ -52,6 +54,7 @@ mod test { deployer: AztecAddress::from_field(12), contract_class_id: ContractClassId::from_field(13), initialization_hash: 156, + immutables_hash: 789, public_keys: PublicKeys::default(), }; diff --git a/yarn-project/aztec.js/src/deployment/publish_instance.ts b/yarn-project/aztec.js/src/deployment/publish_instance.ts index bb6db197f49c..69801363ed91 100644 --- a/yarn-project/aztec.js/src/deployment/publish_instance.ts +++ b/yarn-project/aztec.js/src/deployment/publish_instance.ts @@ -17,6 +17,7 @@ export function publishInstance(wallet: Wallet, instance: ContractInstanceWithAd salt, contractClassId, instance.initializationHash, + instance.immutablesHash, publicKeys, isUniversalDeploy, ); diff --git a/yarn-project/aztec.js/src/wallet/wallet.test.ts b/yarn-project/aztec.js/src/wallet/wallet.test.ts index cf96c2231cc2..344747a28a29 100644 --- a/yarn-project/aztec.js/src/wallet/wallet.test.ts +++ b/yarn-project/aztec.js/src/wallet/wallet.test.ts @@ -136,12 +136,13 @@ describe('WalletSchema', () => { }; const mockInstance: ContractInstanceWithAddress = { address: await AztecAddress.random(), - version: 1, + version: 2, salt: Fr.random(), deployer: await AztecAddress.random(), currentContractClassId: Fr.random(), originalContractClassId: Fr.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: PublicKeys.default(), }; const result = await context.client.registerContract(mockInstance, mockArtifact, Fr.random()); @@ -150,10 +151,11 @@ describe('WalletSchema', () => { currentContractClassId: expect.any(Fr), deployer: expect.any(AztecAddress), initializationHash: expect.any(Fr), + immutablesHash: expect.any(Fr), originalContractClassId: expect.any(Fr), publicKeys: expect.any(PublicKeys), salt: expect.any(Fr), - version: 1, + version: 2, }); }); @@ -335,12 +337,13 @@ describe('WalletSchema', () => { const mockInstance: ContractInstanceWithAddress = { address: address2, - version: 1, + version: 2, salt: Fr.random(), deployer: await AztecAddress.random(), currentContractClassId: Fr.random(), originalContractClassId: Fr.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: PublicKeys.default(), }; @@ -470,11 +473,12 @@ class MockWallet implements Wallet { async registerContract(_instanceData: any, _artifact?: any, _secretKey?: Fr): Promise { return { - version: 1, + version: 2, address: await AztecAddress.random(), currentContractClassId: Fr.random(), deployer: await AztecAddress.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), originalContractClassId: Fr.random(), publicKeys: await PublicKeys.random(), salt: Fr.random(), diff --git a/yarn-project/constants/src/constants.gen.ts b/yarn-project/constants/src/constants.gen.ts index 65028bb96a5e..c724fb48eea6 100644 --- a/yarn-project/constants/src/constants.gen.ts +++ b/yarn-project/constants/src/constants.gen.ts @@ -141,7 +141,7 @@ export const GAS_FEES_LENGTH = 2; export const GAS_LENGTH = 2; export const GAS_SETTINGS_LENGTH = 8; export const CALL_CONTEXT_LENGTH = 4; -export const CONTRACT_INSTANCE_LENGTH = 16; +export const CONTRACT_INSTANCE_LENGTH = 17; export const CONTRACT_STORAGE_READ_LENGTH = 3; export const CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH = 3; export const ETH_ADDRESS_LENGTH = 1; @@ -537,7 +537,7 @@ export enum DomainSeparator { TSK_M = 1546190975, PUBLIC_KEYS_HASH = 777457226, PARTIAL_ADDRESS = 2103633018, - CONTRACT_ADDRESS_V1 = 1788365517, + CONTRACT_ADDRESS_V2 = 4099338721, BLOCK_HEADER_HASH = 4195546849, TX_REQUEST = 3763737512, PUBLIC_TX_HASH = 1630108851, diff --git a/yarn-project/constants/src/scripts/constants.in.ts b/yarn-project/constants/src/scripts/constants.in.ts index 88d1c5fd6534..c0b8696e4a69 100644 --- a/yarn-project/constants/src/scripts/constants.in.ts +++ b/yarn-project/constants/src/scripts/constants.in.ts @@ -122,7 +122,7 @@ const CPP_GENERATORS: string[] = [ 'BLOCK_HEADER_HASH', 'SALTED_INITIALIZATION_HASH', 'PARTIAL_ADDRESS', - 'CONTRACT_ADDRESS_V1', + 'CONTRACT_ADDRESS_V2', 'CONTRACT_CLASS_ID', 'PUBLIC_KEYS_HASH', 'NOTE_HASH_NONCE', @@ -316,7 +316,7 @@ const PIL_CONSTANTS = [ const PIL_GENERATORS: string[] = [ 'SALTED_INITIALIZATION_HASH', 'PARTIAL_ADDRESS', - 'CONTRACT_ADDRESS_V1', + 'CONTRACT_ADDRESS_V2', 'CONTRACT_CLASS_ID', 'PUBLIC_KEYS_HASH', 'NOTE_HASH_NONCE', diff --git a/yarn-project/end-to-end/src/e2e_avm_simulator.test.ts b/yarn-project/end-to-end/src/e2e_avm_simulator.test.ts index 7e82f7eb9b68..2c8363488bd7 100644 --- a/yarn-project/end-to-end/src/e2e_avm_simulator.test.ts +++ b/yarn-project/end-to-end/src/e2e_avm_simulator.test.ts @@ -157,6 +157,7 @@ describe('e2e_avm_simulator', () => { avmContractInstance.deployer, avmContractInstance.currentContractClassId, avmContractInstance.initializationHash, + avmContractInstance.immutablesHash, ) .send({ from: defaultAccountAddress }); expect(tx.executionResult).toEqual(TxExecutionResult.SUCCESS); diff --git a/yarn-project/end-to-end/src/e2e_deploy_contract/contract_class_registration.test.ts b/yarn-project/end-to-end/src/e2e_deploy_contract/contract_class_registration.test.ts index cb0a5b7cb54b..eef45cd0e792 100644 --- a/yarn-project/end-to-end/src/e2e_deploy_contract/contract_class_registration.test.ts +++ b/yarn-project/end-to-end/src/e2e_deploy_contract/contract_class_registration.test.ts @@ -142,6 +142,7 @@ describe('e2e_deploy_contract contract class registration', () => { expect(deployed!.address).toEqual(instance.address); expect(deployed!.currentContractClassId).toEqual(contractClass.id); expect(deployed!.initializationHash).toEqual(instance.initializationHash); + expect(deployed!.immutablesHash).toEqual(instance.immutablesHash); expect(deployed!.publicKeys).toEqual(instance.publicKeys); expect(deployed!.salt).toEqual(instance.salt); expect(deployed!.deployer).toEqual(instance.deployer); diff --git a/yarn-project/key-store/src/key_store.test.ts b/yarn-project/key-store/src/key_store.test.ts index 01736543b080..641612950db6 100644 --- a/yarn-project/key-store/src/key_store.test.ts +++ b/yarn-project/key-store/src/key_store.test.ts @@ -19,7 +19,7 @@ describe('KeyStore', () => { const { address: accountAddress } = await keyStore.addAccount(sk, partialAddress); expect(accountAddress.toString()).toMatchInlineSnapshot( - `"0x2e54c8067c410d03d417dddd51e1cad76cece48ff39fa0fe908782b93a209a52"`, + `"0x2f635d468044055ab4f3fcf63eb8e96f34ced057217f4f6898885cefe9144d58"`, ); const { pkM: masterNullifierPublicKey } = await keyStore.getKeyValidationRequest( @@ -68,7 +68,7 @@ describe('KeyStore', () => { // Returned accounts are as expected const accounts = await keyStore.getAccounts(); expect(accounts.toString()).toMatchInlineSnapshot( - `"0x2e54c8067c410d03d417dddd51e1cad76cece48ff39fa0fe908782b93a209a52"`, + `"0x2f635d468044055ab4f3fcf63eb8e96f34ced057217f4f6898885cefe9144d58"`, ); // Manages to find master nullifier hiding key for pub key diff --git a/yarn-project/noir-protocol-circuits-types/src/__snapshots__/noir_test_gen.test.ts.snap b/yarn-project/noir-protocol-circuits-types/src/__snapshots__/noir_test_gen.test.ts.snap index ac3e1e5042d6..b02af594e856 100644 --- a/yarn-project/noir-protocol-circuits-types/src/__snapshots__/noir_test_gen.test.ts.snap +++ b/yarn-project/noir-protocol-circuits-types/src/__snapshots__/noir_test_gen.test.ts.snap @@ -2,46 +2,46 @@ exports[`Data generation for noir tests Computes contract info for defaultContract 1`] = ` { - "address": "AztecAddress { inner: 0x136422d2d758eb9181240eee44720fa9bc433d3a16bc13163699dc4f47540b0d }", + "address": "AztecAddress { inner: 0x2b398ddae900c69937d768e0abe276a8baaa9593cd02cf31682a11a51aebfd5a }", "artifact_hash": "0x0000000000000000000000000000000000000000000000000000000000003039", "contract_address_salt": "0x000000000000000000000000000000000000000000000000000000000000ddd5", "contract_class_id": "ContractClassId { inner: 0x2888d24c26f34b139f0f1d30278df8f9007d06da3b63cfe6eeb9a710d51f4f4a }", "deployer": "AztecAddress { inner: 0x0000000000000000000000000000000000000000000000000000000000000000 }", - "partial_address": "PartialAddress { inner: 0x1676695fc9a4f3bc8816e4dc82a8856b2ae565d4872691a6e944cc3ce8897e72 }", + "partial_address": "PartialAddress { inner: 0x13bf689e2b04d5a75694270c1872e74b0c998c3f7f2f3a0a95648f9f41600808 }", "private_functions_root": "0x2653ec1bf2be3a13fa9b645cec2557f2b543286fc39168ec42b705835a301bb6", "public_bytecode_commitment": "0x256abef672381d551191d5bbecf2dec6ac9cc2a81189f886ac22e29e5c58c49c", "public_keys": "PublicKeys { inner: 0x01498945581e0eb9f8427ad6021184c700ef091d570892c437d12c7d90364bbd170ae506787c5c43d6ca9255d571c10fa9ffa9d141666e290c347c5c9ab7e34400c044b05b6ca83b9c2dbae79cc1135155956a64e136819136e9947fe5e5866c1c1f0ca244c7cd46b682552bff8ae77dea40b966a71de076ec3b7678f2bdb1511b00316144359e9a3ec8e49c1cdb7eeb0cedd190dfd9dc90eea5115aa779e287080ffc74d7a8b0bccb88ac11f45874172f3847eb8b92654aaa58a3d2b8dc7833019c111f36ad3fc1d9b7a7a14344314d2864b94f030594cd67f753ef774a1efb2039907fe37f08d10739255141bb066c506a12f7d1e8dfec21abc58494705b6f }", - "salted_initialization_hash": "SaltedInitializationHash { inner: 0x1d83f43991ef3c393247a1796b194020c559aaf129e515adc6eace265f726452 }", + "salted_initialization_hash": "SaltedInitializationHash { inner: 0x20b8accdca7010cfebfcc932f55e3acf5136dfe57ba51d386dac8e9d110d9567 }", } `; exports[`Data generation for noir tests Computes contract info for parentContract 1`] = ` { - "address": "AztecAddress { inner: 0x2e90a78904fdb353ddf6eda97aedcfc2b8bf5a942f10f57a1e85373b740e7eca }", + "address": "AztecAddress { inner: 0x1808d3140b9cf2e87db2303d5bcf3b34214abadf1bb3bd7d0c3b202a266d1391 }", "artifact_hash": "0x00000000000000000000000000000000000000000000000000000000000004bc", "contract_address_salt": "0x0000000000000000000000000000000000000000000000000000000000001618", "contract_class_id": "ContractClassId { inner: 0x2998b9cf4a582f068a01b43c141dbcc5fd8f5cd17a797484b5a5db2386cf7574 }", "deployer": "AztecAddress { inner: 0x0000000000000000000000000000000000000000000000000000000000000000 }", - "partial_address": "PartialAddress { inner: 0x2cfac19f0c29a86d17b4c60b205376bbd4c8e45d1dfd02dcd33820638d1d6d1e }", + "partial_address": "PartialAddress { inner: 0x09dba9fffbfd68d6828334a178433b7bfae9d07c3c6f424ee4afa0304655c5d3 }", "private_functions_root": "0x03cca4d59a01776df283eb2c8915cb144ad3f40a0b0ba06e9c24c532c59e3c43", "public_bytecode_commitment": "0x1cfb8e870870be1d102249b47923b63c2d54f33ca81e3028d74a06d8dd5944ca", "public_keys": "PublicKeys { inner: 0x01498945581e0eb9f8427ad6021184c700ef091d570892c437d12c7d90364bbd170ae506787c5c43d6ca9255d571c10fa9ffa9d141666e290c347c5c9ab7e34400c044b05b6ca83b9c2dbae79cc1135155956a64e136819136e9947fe5e5866c1c1f0ca244c7cd46b682552bff8ae77dea40b966a71de076ec3b7678f2bdb1511b00316144359e9a3ec8e49c1cdb7eeb0cedd190dfd9dc90eea5115aa779e287080ffc74d7a8b0bccb88ac11f45874172f3847eb8b92654aaa58a3d2b8dc7833019c111f36ad3fc1d9b7a7a14344314d2864b94f030594cd67f753ef774a1efb2039907fe37f08d10739255141bb066c506a12f7d1e8dfec21abc58494705b6f }", - "salted_initialization_hash": "SaltedInitializationHash { inner: 0x2bfefc4cfdd56352f0d6cf62ae70abe702d7d948f5ccff4eeb51f9aefaece295 }", + "salted_initialization_hash": "SaltedInitializationHash { inner: 0x1384ae0b0212cbeb6cd53d6c8d9dfc6334318553dd6f33fdaa97b5dae4ab9dbb }", } `; exports[`Data generation for noir tests Computes contract info for updatedContract 1`] = ` { - "address": "AztecAddress { inner: 0x1a56e3cef400d47addbbf65a95ea505b8f628a2d65a096d0e4d46a8cc9bd72c3 }", + "address": "AztecAddress { inner: 0x15a31fdbee15b9968a30c195a5ee82f7338db5f627908b15362edd9441cd78f7 }", "artifact_hash": "0x0000000000000000000000000000000000000000000000000000000000054501", "contract_address_salt": "0x0000000000000000000000000000000000000000000000000000000000000315", "contract_class_id": "ContractClassId { inner: 0x07a63b1343bb8515d1115202c71cdc95f9bcda9c2237bdfc25435b89ffa06b46 }", "deployer": "AztecAddress { inner: 0x0000000000000000000000000000000000000000000000000000000000000000 }", - "partial_address": "PartialAddress { inner: 0x04a4ed87aa4cff86962b974fe3f79d76e4bf3f034d4e2bde2bb50765927fad40 }", + "partial_address": "PartialAddress { inner: 0x12b89345d5d63f8bf9f73f5890d5caa0c5f023c61d313b1abeea40e300a83755 }", "private_functions_root": "0x2b26caef823c6be4c41ef1980dace9b61825f8e6a16792c765a2cd8cb2121e75", "public_bytecode_commitment": "0x225d884cfeaddc5292dadbf921e7699632336876c65a33459d3b2ad9b5ec0da3", "public_keys": "PublicKeys { inner: 0x01498945581e0eb9f8427ad6021184c700ef091d570892c437d12c7d90364bbd170ae506787c5c43d6ca9255d571c10fa9ffa9d141666e290c347c5c9ab7e34400c044b05b6ca83b9c2dbae79cc1135155956a64e136819136e9947fe5e5866c1c1f0ca244c7cd46b682552bff8ae77dea40b966a71de076ec3b7678f2bdb1511b00316144359e9a3ec8e49c1cdb7eeb0cedd190dfd9dc90eea5115aa779e287080ffc74d7a8b0bccb88ac11f45874172f3847eb8b92654aaa58a3d2b8dc7833019c111f36ad3fc1d9b7a7a14344314d2864b94f030594cd67f753ef774a1efb2039907fe37f08d10739255141bb066c506a12f7d1e8dfec21abc58494705b6f }", - "salted_initialization_hash": "SaltedInitializationHash { inner: 0x0bbf968b28a0a1fa3a90ceb4c7104d63e7a8dc845a9c885781d74018d1579e59 }", + "salted_initialization_hash": "SaltedInitializationHash { inner: 0x1f121db378dbceaf871eed1b9f0b20efcdca988e76f8abeaa11b2cdc80474189 }", } `; diff --git a/yarn-project/noir-protocol-circuits-types/src/noir_test_gen.test.ts b/yarn-project/noir-protocol-circuits-types/src/noir_test_gen.test.ts index b5b9b31845f8..ee13d4afb7d3 100644 --- a/yarn-project/noir-protocol-circuits-types/src/noir_test_gen.test.ts +++ b/yarn-project/noir-protocol-circuits-types/src/noir_test_gen.test.ts @@ -20,7 +20,7 @@ describe('Data generation for noir tests', () => { setupCustomSnapshotSerializers(expect); type FixtureContractData = Omit & - Pick & + Pick & Pick & { toString: () => string }; const defaultContract: FixtureContractData = { @@ -28,6 +28,7 @@ describe('Data generation for noir tests', () => { packedBytecode: Buffer.from([3, 4, 5, 6, 7]), publicKeys: PublicKeys.default(), salt: new Fr(56789), + immutablesHash: new Fr(7890), privateFunctions: [ { selector: FunctionSelector.fromField(new Fr(1010101)), vkHash: new Fr(123123) }, { selector: FunctionSelector.fromField(new Fr(2020202)), vkHash: new Fr(456456) }, @@ -40,6 +41,7 @@ describe('Data generation for noir tests', () => { packedBytecode: Buffer.from([3, 4, 3, 4]), publicKeys: PublicKeys.default(), salt: new Fr(5656), + immutablesHash: new Fr(7890), privateFunctions: [{ selector: FunctionSelector.fromField(new Fr(334455)), vkHash: new Fr(789789) }], toString: () => 'parentContract', }; @@ -49,6 +51,7 @@ describe('Data generation for noir tests', () => { packedBytecode: Buffer.from([5, 6, 7, 8, 9, 0]), publicKeys: PublicKeys.default(), salt: new Fr(789), + immutablesHash: new Fr(7890), privateFunctions: [ { selector: FunctionSelector.fromField(new Fr(1010101)), vkHash: new Fr(7788) }, { selector: FunctionSelector.fromField(new Fr(2020202)), vkHash: new Fr(9900) }, @@ -78,7 +81,7 @@ describe('Data generation for noir tests', () => { const deployer = AztecAddress.ZERO; const instance: ContractInstance = { ...contract, - version: 1, + version: 2, initializationHash, currentContractClassId: contractClassId, originalContractClassId: contractClassId, diff --git a/yarn-project/p2p/src/msg_validators/tx_validator/contract_instance_validator.test.ts b/yarn-project/p2p/src/msg_validators/tx_validator/contract_instance_validator.test.ts index e3f01949139a..a2db257d7e8c 100644 --- a/yarn-project/p2p/src/msg_validators/tx_validator/contract_instance_validator.test.ts +++ b/yarn-project/p2p/src/msg_validators/tx_validator/contract_instance_validator.test.ts @@ -32,7 +32,7 @@ describe('ContractInstanceTxValidator', () => { /** * Builds a PrivateLog encoding a ContractInstancePublishedEvent. - * Layout: [tag, address, version, salt, contractClassId, initializationHash, ...publicKeys(8 fields), deployer] + * Layout: [tag, address, version, salt, contractClassId, initializationHash, immutablesHash, ...publicKeys(8 fields), deployer] */ async function buildContractInstanceLog(opts?: { address?: AztecAddress }): Promise { const salt = Fr.random(); @@ -40,13 +40,15 @@ describe('ContractInstanceTxValidator', () => { const initializationHash = Fr.random(); const publicKeys = await PublicKeys.random(); const deployer = await AztecAddress.random(); + const immutablesHash = Fr.random(); const instance = { - version: 1 as const, + version: 2 as const, salt, currentContractClassId: contractClassId, originalContractClassId: contractClassId, initializationHash, + immutablesHash, publicKeys, deployer, }; @@ -66,10 +68,11 @@ describe('ContractInstanceTxValidator', () => { const emittedFields: Fr[] = [ CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG, address.toField(), - new Fr(1), // version + new Fr(2), // version salt, contractClassId, initializationHash, + immutablesHash, ...publicKeysFields, deployer.toField(), ]; diff --git a/yarn-project/protocol-contracts/fixtures/ContractClassPublishedEventData.hex b/yarn-project/protocol-contracts/fixtures/ContractClassPublishedEventData.hex index 6619699e7cb2..efa62eb0bde0 100644 --- a/yarn-project/protocol-contracts/fixtures/ContractClassPublishedEventData.hex +++ b/yarn-project/protocol-contracts/fixtures/ContractClassPublishedEventData.hex @@ -1 +1 @@ -000000000000000000000000000000000000000000000000000000000000000320f5895a4e837356c2d551743df6bf642756dcd93cd31cbd37c556c90bf7f2441c2459719688b73599862bb4192cf567006eaf1fd7382d84f842a6f3616b326c0000000000000000000000000000000000000000000000000000000000000001237dfcd925241181677bde88f3ea51653dd144811eda2d9f208eee7c6b42f50a07be998ba5208ae3c3c9329157a2c586b26d7489a3e4be5af66e6a1b70e4357a0000000000000000000000000000000000000000000000000000000000000e04002700020401280000010480472700000447250000004127020304012702040400001f0a0003000400462d0846022500000075270202044727020304003b0e00000300022c0000430030644e72e131a029b85045b68181585d2833e84879b970009143e1f593f00000002900004404ffffffff2700450403262902000300324d00e62f0a2a02030427020504002702070403002a0507062d080103000801060100270303040100220302062d0e050600220602062d0e05062702060403002a030006052702050401270206040227020704002702080101270209010027020a0000002902000b00c732f9772b02000c0000000000000000020000000000000000002b02000d00000000000000000300000000000000002902000e00d9b5157824000200040000012323000006202d08010427020f04030008010f01270304040100002204020f1f3a00060005000f002a04050f2d0b0f0f002a0406102d0b1010001e020004001e020011001e020011002d080112270213040300080113012703001204010022120213360e0011001300002a1205132d0b1313002a1206142d0b0014141c0a131200042a12141524020013000001b027021204003c0612012d080001122702130403000801130127031204010022120213360e0011001302002a001205112d0b1111002a1206132d0b13131c0a111200042a1213142402001100000001fc27021204003c0612012d0801112702120402000801120127031104010000221102121f3a000500070012002a1105122d0b12121c0a1213041c0a131100002d08011227021304030008011301270312040100221202131f3a00060005000013002a1205132d0b1313002a1206162d0b16162902001200d52de36b2d0800011727021804050008011801270317040100221702182d0a18192d0e12190000221902192d0e131900221902192d0e161900221902192d0e0d192d08011227000213040500080113012703120401002217021300221202163f0f0013001600002a1205132d0b1313290200120016f8af272d0801162702170405000801170100270316040100221602172d0a17182d0e121800221802182d0e11180022180200182d0e131800221802182d0e0d182d08011127021204050008011201270311000401002216021200221102133f0f00120013002a1105122d0b12120a2a1412001124020011000003532500000d540a2a150a111e020012010a22124313160a0013141c0a141600042a1612140a2a130912240200120000038627021604003c000616010a2a151412122a111213240200130000039d2500000d662d0801112700021204040008011201270311040100221102122d0a12132d0e0e130022130200132d0e0f1300221302132d0e1013002211020f390320004400440004004500000f200200042102000f2d080111270210040000221102132d0b1313270214040003002a111412223a000f000700122d0a0f13270311040100221102142d0e13001400221402142d0e13142702150403002a131514000801140127021404002d000a131506221502150a2a1014162d0a1510240200160000045a2d0a10102402000016000004740a2a10151724020017000004742500000d782402000400000400aa23000004812d0b110400220402042d0e0411002211020f2d0b0f0f270212000403002a1112043c0e0f0423000004aa0a2a10070424020004000004c02702000f04003c060f011e020004002d08010f2702100403000801100127030f04010000220f0210360e0004001002002a0f05102d0b1010002a0f06112d0b11111c000a100f00042a0f1112240200100000051127020f04003c060f012902000f0000ede022762d08011027021104050008011101270310040100221002112d0a1100132d0e0f1300221302132d0e041300221302132d0e121300221302132d0e0d00132d08010427020f04050008010f012703040401002210020f00220402113f000f000f0011002a04050f2d0b0f0f3402000f1e020004002d08010f270210040005000801100127030f040100220f02102d0a10112d0e0b1100221102112d0e00041100221102112d0e0a1100221102112d0e0c112d0801042702100405000800011001270304040100220f021000220402113f0f00100011002a04050f2d0b000f0f3402000f2d0b030400220402042d0e0403002203020f2d0b0f0f270210000403002a0310043b0e000f0004230000062029020004005bd9f2da0a2a0204000f27020400022902001000ef52534d2402000f00000649230000083a2d0801000f2702110403000801110127030f040100220f02111f3a000600050011002a000f05112d0b1111002a0f06122d0b12121e02000f001e02000f001e02000f00002d08011327021404050008011401270313040100221302142d0a14152d0e0b001500221502152d0e0f1500221502152d0e0a1500221502152d0e0c152d0801000f2702140405000801140127030f0401002213021400220f02153f0f0014000015002a0f05132d0b13131e02000f002902001400036d527f2d0801152702160004050008011601270315040100221502162d0a16172d0e141700221702172d000e0f1700221702172d0e131700221702172d0e0d172d08010f270213040500000801130127030f0401002215021300220f02143f0f00130014002a0f05132d000b1313330a0013000f2402000f000007792500000d8a2d08010f270213040500000801130127030f040100220f02132d0a13142d0e101400221402142d0e04001400221402142d0e111400221402142d0e0d142d0801112702130405000801001301270311040100220f021300221102143f0f00130014002a11050f2d0b0f000f0a2a0f0a110a2a11091324020013000007f72500000d9c1e020011002f2a00000f00110013002a131211300a0011000f2d0b030f00220f020f2d0e0f030000220302112d0b11112702120403002a03120f3b0e0011000f230000083a0a2a00020e0f2402000f0000084c23000009492d08010e27020f04030008010f012700030e040100220e020f1f3a00060005000f002a0e050f2d0b0f0f002a0e0611002d0b11111e020006001e020006002d08010627020e04050008010e01270306000401002206020e2d0a0e122d0e101200221202122d0e041200221202122d0e000f1200221202122d0e0d122d08010e27020f04050008010f0127030e040100002206020f00220e02123f0f000f0012002a0e05062d0b06060a2a060a0e0a2a000e090f2402000f000009062500000d9c1e02000e002f2a0006000e000f002a000f110e300a000e00062d0b030600220602062d0e0603002203020e2d0b0e0e0027020f0403002a030f063b0e000e000623000009492902000600bb19097e0a002a02060e2402000e000009642300000a932d08010627020e04020008010e01002703060401002206020e1f3a00050005000e002a06050e2d0b0e0e1e02000600001e020006001e0200060924020006000009a92500000dae2d08010627020f0004050008010f012703060401002206020f2d0a0f112d0e101100221102112d000e041100221102112d0e0e1100221102112d0e0d112d08010427020d0405000008010d012703040401002206020d002204020e3f0f000d000e002a0405062d000b06060a2a060a040a2a04090d2402000d00000a272500000d9c1e02000400002f2a00060004000d270206040127020f0403002a060f0e2d0801040008010e00012703040401002204020e2d0e060e00220e020e2d0e060e27020e0403002a00040e062d0a060e2d0e0d0e002204020d2d0b0d0d27020e0403002a040e063b000e000d00062300000a932902000400ee21e57b0a2a0204062402000600000a00ae2300000b8e1e020004010a22044306160a060d1c0a0d0e00042a0e040d0a002a0609042402000400000adc27020e04003c060e011e020004000a2a0d0406002402000600000af32500000dc01e020004002d08010627020d04050008010d00012703060401002206020d2d0a0d0e2d0e0b0e00220e020e2d0e040e00220e00020e2d0e0a0e00220e020e2d0e0c0e2d08010427020a04050008010a01270300040401002206020a002204020b3f0f000a000b002a0405062d0b060634020000062d0b030400220402042d0e040300220302052d0b05052702060403002a030006043b0e000500042300000b8e2702030255270204026e270205026b27020600026f270207027727020a022027020b027327020c026527020d026c27020e02006327020f02742702100272270211027b270212027d2d080113270214041c000008011401270313040100221302142d0a14152d0e031500221502152d0e04150000221502152d0e051500221502152d0e041500221502152d0e06150022150200152d0e071500221502152d0e041500221502152d0e0a1500221502152d0e0b001500221502152d0e0c1500221502152d0e0d1500221502152d0e0c150022150002152d0e0e1500221502152d0e0f1500221502152d0e061500221502152d0e00101500221502152d0e0a1500221502152d0e111500221502152d0e0b150022001502152d0e0c1500221502152d0e0d1500221502152d0e0c1500221502152d000e0e1500221502152d0e0f1500221502152d0e061500221502152d0e10150000221502152d0e121527020300010a2a0908042402000400000d54270205041e002d080106270207041e00080107012d0a06072a030007059b5bbff74a5bff19000022070207002213020a27020b041b2d020a032d0207042d020b052500000d00d227020a041b002a070a072d0e030700220702072d0e020700220702073c0e0005062a010001058a553a2c2b67c8ef3c040201262a01000105c80d73736ecd00b4e13c040201262a0100010575fef108377c8a4f3c040201262a010001050600613b3d0b9dbd333c040201262a01000105babb21d7823318643c040201262a0001000105c5cc62b50ed35c303c040201262a010001052ab9ecbeb3430ae13c000402012600000305072d0003082d0004092300000df62d0108062d04060900000008020800000902090c0008070a2400000a00000de42600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a \ No newline at end of file +000000000000000000000000000000000000000000000000000000000000000320f5895a4e837356c2d551743df6bf642756dcd93cd31cbd37c556c90bf7f244135e3e6dff88ef7e69c592472939cddff00850a0886c416e47720573cf94db4c000000000000000000000000000000000000000000000000000000000000000124c6b040ea6c3ec2ecf9d6b0c0c709239696f66ea8d27d3bc064852a8bfb579c10b89e84a594728151d2054d9e41999f109fca6895e8bec7894445886adaa5c10000000000000000000000000000000000000000000000000000000000000e1c0027000204012800000104804d270000044d250000004127020304012702040400001f0a00030004004c2d084c0225000000b7270202044d27020304003b0e00000300022c0000430030644e72e131a029b85045b68181585d2833e84879b970009143e1f593f00000002900004404ffffffff2700450403270046000027004700010127004804012900004900c732f9772b00004a0000000000000000020000000000000000002b00004b000000000000000003000000000000000026290200000300324de62f0a2a02030427020504002702070403002a0507062d080103000008010601270303040100220302062d0e050600220602062d0e0506270206040003002a0306052702050402270206040027020701002902000800d9b5157824000200040000012323000006202d0801042702090403000801090127030404010000220402091f3200050048000900220448092d0b0909002a04050a2d0b0a0a001e020004001e02000b001e02000b002d08010c27020d04030008010d012703000c040100220c020d360e000b000d0000220c480d2d0b0d0d002a0c050e2d0b000e0e1c0a0d0c00042a0c0e0f2402000d000001b027020c04003c060c012d0800010c27020d04030008010d0127030c040100220c020d360e000b000d020022000c480b2d0b0b0b002a0c050d2d0b0d0d1c0a0b0c00042a0c0d0e2402000b00000001fc27020c04003c060c012d08010b27020c04020008010c0127030b04010000220b020c1f3800480006000c00220b480c2d0b0c0c1c0a0c0d041c0a0d0b00002d08010c27020d04030008010d0127030c040100220c020d1f320005004800000d00220c480d2d0b0d0d002a0c05102d0b10102902000c00d52de36b2d0800011127021204050008011201270311040100221102122d0a12132d0e0c130000221302132d0e0d1300221302132d0e101300221302132d0c4b132d08010c2700020d04050008010d0127030c0401002211020d00220c02103f0f000d00100000220c480d2d0b0d0d2902000c0016f8af272d0801102702110405000801110100270310040100221002112d0a11122d0e0c1200221202122d0e0b120022120200122d0e0d1200221202122d0c4b122d08010b27020c04050008010c0127030b000401002210020c00220b020d3f0f000c000d00220b480c2d0b0c0c0a2a0e0c000b2402000b000003532500000c770a220f460b1e02000c010a220c430d160a000d0e1c0a0e1000042a100c0e0a2a0d070c2402000c0000038627021004003c000610010a2a0f0e0c122a0b0c0d2402000d0000039d2500000c892d08010b2700020c04040008010c0127030b040100220b020c2d0a0c0d2d0e080d00220d02000d2d0e090d00220d020d2d0e0a0d00220b0209390320004400440004004500000920020004210200092d08010b27020a040000220b020d2d0b0d0d27020e040003002a0b0e0c223a00090006000c2d0a090d27030b040100220b020e2d0e0d000e00220e020e2d0e0d0e27020f0403002a0d0f0e0008010e0127020e04002d000a0d0f06220f020f0a2a0a0e102d0a0f0a240200100000045a2d0a0a0a2402000010000004740a2a0a0f1124020011000004742500000c9b2402000400000400aa23000004812d0b0b0400220402042d0e040b00220b02092d0b090927020c000403002a0b0c043c0e090423000004aa0a2a0a060424020004000004c02702000904003c0609011e020004002d08010927020a04030008010a01270309040100002209020a360e0004000a02002209480a2d0b0a0a002a09050b2d0b0b0b1c000a0a0900042a090b0c2402000a0000051127020904003c060901290200090000ede022762d08010a27020b04050008010b0127030a040100220a020b2d0a0b000d2d0e090d00220d020d2d0e040d00220d020d2d0e0c0d00220d020d2d0c4b000d2d08010427020904050008010901270304040100220a0209002204020b3f000f0009000b00220448092d0b0909340200091e020004002d08010927020a0400050008010a012703090401002209020a2d0a0a0b2d0c490b00220b020b2d0e00040b00220b020b2d0c460b00220b020b2d0c4a0b2d08010427020a0405000800010a012703040401002209020a002204020b3f0f000a000b00220448092d0b000909340200092d0b030400220402042d0e040300220302092d0b090927020a000403002a030a043b0e00090004230000062029020004005bd9f2da0a2a0204000927020400022902000a00ef52534d2402000900000649230000075d2d0801000927020b04030008010b012703090401002209020b1f3200050048000b00220009480b2d0b0b0b002a09050c2d0b0c0c1e020009001e02000900270209040d002d08000d00080009002500000cad2d0200002d08010927020d04050008010d00012703090401002209020d2d0a0d0e2d0e0a0e00220e020e2d0e040e00220e00020e2d0e0b0e00220e020e2d0c4b0e2d08010b27020d04050008010d012703000b0401002209020d00220b020e3f0f000d000e00220b48092d0b09090a220900460b0a2a0b070d2402000d0000071a2500000da21e02000b002f2a0009000b00000d002a0d0c0b300a000b00092d0b030900220902092d0e0903002203020b002d0b0b0b27020c0403002a030c093b0e000b0009230000075d0a2a02080924000200090000076f230000086c2d0801082702090403000801090127030804010000220802091f3200050048000900220848092d0b0909002a08050b2d0b0b0b001e020005001e020005002d0801052702080405000801080127030504010022000502082d0a080c2d0e0a0c00220c020c2d0e040c00220c020c2d0e090c0022000c020c2d0c4b0c2d080108270209040500080109012703080401002205020900002208020c3f0f0009000c00220848052d0b05050a220546080a2a0807092400020009000008292500000da21e020008002f2a000500080009002a090b0830000a000800052d0b030500220502052d0e050300220302082d0b0808270209040003002a0309053b0e00080005230000086c2902000500bb19097e0a2a02050800240200080000088723000009b62d0801052702080402000801080127030504000100220502081f3000480048000800220548082d0b08081e020005001e02000005001e0200050924020005000008cc2500000db42d0801052702090405000800010901270305040100220502092d0a090b2d0e0a0b00220b020b2d0e040b0000220b020b2d0e080b00220b020b2d0c4b0b2d08010427020804050008010801002703040401002205020800220402093f0f0008000900220448052d0b05050a00220546040a2a040708240200080000094a2500000da21e020004002f2a00050000040008270205040127020a0403002a050a092d080104000801090127030400040100220402092d0e050900220902092d0e05092702090403002a0409052d000a05092d0e080900220402082d0b08082702090403002a0409053b0e000800000523000009b62902000400ee21e57b0a2a02040524020005000009d1230000000ab11e020004010a22044305160a05081c0a080900042a0904080a2a0507040024020004000009ff27020904003c0609011e020004000a2a080405240200050000000a162500000dc61e020004002d0801052702080405000801080127030500040100220502082d0a08092d0c490900220902092d0e040900220902092d0c00460900220902092d0c4a092d08010427020804050008010801270304040100002205020800220402093f0f0008000900220448052d0b0505340200052d0b03000400220402042d0e040300220302052d0b05052702080403002a0308043b0e00000500042300000ab12702030255270204026e270205026b270206026f270200080277270209022027020a027327020b026527020c026c27020d026327020e00027427020f0272270210027b270211027d2d080112270213041c000801130100270312040100221202132d0a13142d0e031400221402142d0e04140022140200142d0e051400221402142d0e041400221402142d0e061400221402142d0e08001400221402142d0e041400221402142d0e091400221402142d0e0a140022140002142d0e0b1400221402142d0e0c1400221402142d0e0b1400221402142d0e000d1400221402142d0e0e1400221402142d0e061400221402142d0e0f140022001402142d0e091400221402142d0e101400221402142d0e0a1400221402142d000e0b1400221402142d0e0c1400221402142d0e0b1400221402142d0e0d140000221402142d0e0e1400221402142d0e061400221402142d0e0f140022140214002d0e111427020300010a220747042402000400000c77270205041e2d08010600270208041e00080108012d0a06082a030008059b5bbff74a5bff19002208020008002212020927020a041b2d0209032d0208042d020a052500000dd827020900041b002a0809082d0e030800220802082d0e020800220802083c0e05062a01000001058a553a2c2b67c8ef3c040201262a01000105c80d73736ecdb4e13c04000201262a0100010575fef108377c8a4f3c040201261e020002002d0801032700020404050008010401270303040100220302042d0a04052d0c49050022050200052d0e020500220502052d0c460500220502052d0c4a052d08010227020404000500080104012703020401002203020400220202053f0f000400050022024800032d0b03031e020002002902000400036d527f2d0801052702060405000801000601270305040100220502062d0a06072d0e040700220702072d0e02070022000702072d0e030700220702072d0c4b072d08010227020304050008010301270003020401002205020300220202043f0f0003000400220248032d0b0303330a00000300022402000200000da12500000e0a262a01000105babb21d782331864003c040201262a01000105c5cc62b50ed35c303c040201262a010001052ab9ec00beb3430ae13c0402012600000305072d0003082d0004092300000dfc2d010800062d040609000008020800000902090c0008070a2400000a00000dea262a010000010506613b3d0b9dbd333c04020126000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b \ No newline at end of file diff --git a/yarn-project/protocol-contracts/fixtures/ContractInstancePublishedEventData.hex b/yarn-project/protocol-contracts/fixtures/ContractInstancePublishedEventData.hex index 91be7f65a8fd..c7163844c45e 100644 --- a/yarn-project/protocol-contracts/fixtures/ContractInstancePublishedEventData.hex +++ b/yarn-project/protocol-contracts/fixtures/ContractInstancePublishedEventData.hex @@ -1 +1 @@ -1a7e1badb79abdd38c684b3c8306ffe7ecb33c69e3380d9855730aaaa83a21a821e212810f887382b564c453919235ecc04ff03f9c5127ac9a630a3fc62cfbbb0000000000000000000000000000000000000000000000000000000000000001108abf493e0af91750b53cd462defc3373f1a522e982af55b0c8ec7d20cf03931c2459719688b73599862bb4192cf567006eaf1fd7382d84f842a6f3616b326c0fb36d433fc86c98e17d214b1024303def3bb1e8fa412bc6e796eb1366b5f55b1366c504bbb3b3bb5d7246d9e082468eae37d93c38705b9eb4ef8bb76dc9b98005c6d6a962e4d7a458aa232dab86841ebcfe4d342556f270f6b2452fd87581bb1e415b163a4af0578cf70ab19e836504a74de9ea3e0c94373ca781436155bfc31fe218da6de686b7a39b092364894c6c2246fee50d0ff9832294cd6b792b8f421aa402e7eafa5c5d6ed9454c794e744eabf3b0c5ed84a35567fbe7509552181808afab9b331786e21a60f1f237a7a0f5457ce547160b82ace9a58a800b170fc1289752f4904779a603001cd6fab021079a04e18f0740eb0e1009088199178d1f26814d31374c3e5c551e28a5467feb67155bb2be160d80ca851babfa60501e61000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f \ No newline at end of file +1a7e1badb79abdd38c684b3c8306ffe7ecb33c69e3380d9855730aaaa83a21a81623e556088171b0d1a9eb6737e24601fcf747ec6df56cf149ed81edf7bd0a19000000000000000000000000000000000000000000000000000000000000000213f984b9e77230f2fd9af7ca9e5ccf182f6c89a59922907157b9e6788387ebc8135e3e6dff88ef7e69c592472939cddff00850a0886c416e47720573cf94db4c0e194c360bc3d5c5fe1b2619f35e6fe4312757f518c2c8ea644a5dc0d28e619b000000000000000000000000000000000000000000000000000000000000000022bc8d8e793542b69653d5b3df03fb73de4101874a4c61dc1a2b2f818cebc2bd10f2fd537077dc56a3caf260dfc91af26220d63f6ce54fbe66a31f0d500743be0efbc35e2456ec513ec98d565decb7a37da609539408e911b2de34426c18df7c11881e07f9cefcf0501d333244bdc094ee6b2b437d6a8ed70d2770bd12cf1cd50d907a1c8feb64141b7ff41080c0afefa9bfe5b8ce18bb4a7b89ad541ab0bda40305362fa4b3eb8864ff86423d06d8db7618c5b0f9157be28ba5f30d5f2da2d2233289eca0699f870caeacb51b3e74b697eb620f1dcc6968fc1c59a56149c38a09bf00e859f74118df4ab038ba03a185673b965d38473d97b0f9f8e2785c1f68000000000000000000000000000000000000000000000000000000000000000000000010 \ No newline at end of file diff --git a/yarn-project/protocol-contracts/src/class-registry/__snapshots__/contract_class_published_event.test.ts.snap b/yarn-project/protocol-contracts/src/class-registry/__snapshots__/contract_class_published_event.test.ts.snap index 82c511c761eb..7a1833ae133f 100644 --- a/yarn-project/protocol-contracts/src/class-registry/__snapshots__/contract_class_published_event.test.ts.snap +++ b/yarn-project/protocol-contracts/src/class-registry/__snapshots__/contract_class_published_event.test.ts.snap @@ -2,10 +2,10 @@ exports[`ContractClassPublishedEvent parses an event as emitted by the ContractClassRegistry 1`] = ` ContractClassPublishedEvent { - "artifactHash": Fr<0x237dfcd925241181677bde88f3ea51653dd144811eda2d9f208eee7c6b42f50a>, - "contractClassId": Fr<0x1c2459719688b73599862bb4192cf567006eaf1fd7382d84f842a6f3616b326c>, - "packedPublicBytecode": Buffer<0x27000204012800000104804727000004472500000041270203040127020404001f0a0003000400462d0846022500000075270202044727020304003b0e000300022c0000430030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002900004404ffffffff2700450403262902000300324de62f0a2a02030427020504002702070403002a0507062d0801030008010601270303040100220302062d0e050600220602062d0e05062702060403002a0306052702050401270206040227020704002702080101270209010027020a00002902000b00c732f9772b02000c00000000000000000200000000000000002b02000d00000000000000000300000000000000002902000e00d9b51578240200040000012323000006202d08010427020f04030008010f012703040401002204020f1f3a00060005000f002a04050f2d0b0f0f002a0406102d0b10101e020004001e020011001e020011002d0801122702130403000801130127031204010022120213360e0011001300002a1205132d0b1313002a1206142d0b14141c0a131200042a12141524020013000001b027021204003c0612012d0801122702130403000801130127031204010022120213360e0011001302002a1205112d0b1111002a1206132d0b13131c0a111200042a12131424020011000001fc27021204003c0612012d08011127021204020008011201270311040100221102121f3a000500070012002a1105122d0b12121c0a1213041c0a1311002d08011227021304030008011301270312040100221202131f3a000600050013002a1205132d0b1313002a1206162d0b16162902001200d52de36b2d08011727021804050008011801270317040100221702182d0a18192d0e121900221902192d0e131900221902192d0e161900221902192d0e0d192d080112270213040500080113012703120401002217021300221202163f0f00130016002a1205132d0b1313290200120016f8af272d08011627021704050008011701270316040100221602172d0a17182d0e121800221802182d0e111800221802182d0e131800221802182d0e0d182d080111270212040500080112012703110401002216021200221102133f0f00120013002a1105122d0b12120a2a14121124020011000003532500000d540a2a150a111e020012010a22124313160a13141c0a141600042a1612140a2a130912240200120000038627021604003c0616010a2a151412122a111213240200130000039d2500000d662d08011127021204040008011201270311040100221102122d0a12132d0e0e1300221302132d0e0f1300221302132d0e1013002211020f3903200044004400040045000f200200042102000f2d080111270210040000221102132d0b13132702140403002a111412223a000f000700122d0a0f13270311040100221102142d0e131400221402142d0e13142702150403002a131514000801140127021404002d0a131506221502150a2a1014162d0a1510240200160000045a2d0a101024020016000004740a2a10151724020017000004742500000d7824020004000004aa23000004812d0b110400220402042d0e0411002211020f2d0b0f0f2702120403002a1112043c0e0f0423000004aa0a2a10070424020004000004c027020f04003c060f011e020004002d08010f2702100403000801100127030f040100220f0210360e0004001002002a0f05102d0b1010002a0f06112d0b11111c0a100f00042a0f1112240200100000051127020f04003c060f012902000f00ede022762d08011027021104050008011101270310040100221002112d0a11132d0e0f1300221302132d0e041300221302132d0e121300221302132d0e0d132d08010427020f04050008010f012703040401002210020f00220402113f0f000f0011002a04050f2d0b0f0f3402000f1e020004002d08010f2702100405000801100127030f040100220f02102d0a10112d0e0b1100221102112d0e041100221102112d0e0a1100221102112d0e0c112d08010427021004050008011001270304040100220f021000220402113f0f00100011002a04050f2d0b0f0f3402000f2d0b030400220402042d0e0403002203020f2d0b0f0f2702100403002a0310043b0e000f0004230000062029020004005bd9f2da0a2a02040f27020400022902001000ef52534d2402000f00000649230000083a2d08010f2702110403000801110127030f040100220f02111f3a000600050011002a0f05112d0b1111002a0f06122d0b12121e02000f001e02000f001e02000f002d08011327021404050008011401270313040100221302142d0a14152d0e0b1500221502152d0e0f1500221502152d0e0a1500221502152d0e0c152d08010f2702140405000801140127030f0401002213021400220f02153f0f00140015002a0f05132d0b13131e02000f002902001400036d527f2d08011527021604050008011601270315040100221502162d0a16172d0e141700221702172d0e0f1700221702172d0e131700221702172d0e0d172d08010f2702130405000801130127030f0401002215021300220f02143f0f00130014002a0f05132d0b1313330a0013000f2402000f000007792500000d8a2d08010f2702130405000801130127030f040100220f02132d0a13142d0e101400221402142d0e041400221402142d0e111400221402142d0e0d142d08011127021304050008011301270311040100220f021300221102143f0f00130014002a11050f2d0b0f0f0a2a0f0a110a2a11091324020013000007f72500000d9c1e020011002f2a000f00110013002a131211300a0011000f2d0b030f00220f020f2d0e0f0300220302112d0b11112702120403002a03120f3b0e0011000f230000083a0a2a020e0f2402000f0000084c23000009492d08010e27020f04030008010f0127030e040100220e020f1f3a00060005000f002a0e050f2d0b0f0f002a0e06112d0b11111e020006001e020006002d08010627020e04050008010e012703060401002206020e2d0a0e122d0e101200221202122d0e041200221202122d0e0f1200221202122d0e0d122d08010e27020f04050008010f0127030e0401002206020f00220e02123f0f000f0012002a0e05062d0b06060a2a060a0e0a2a0e090f2402000f000009062500000d9c1e02000e002f2a0006000e000f002a0f110e300a000e00062d0b030600220602062d0e0603002203020e2d0b0e0e27020f0403002a030f063b0e000e000623000009492902000600bb19097e0a2a02060e2402000e000009642300000a932d08010627020e04020008010e012703060401002206020e1f3a00050005000e002a06050e2d0b0e0e1e020006001e020006001e0200060924020006000009a92500000dae2d08010627020f04050008010f012703060401002206020f2d0a0f112d0e101100221102112d0e041100221102112d0e0e1100221102112d0e0d112d08010427020d04050008010d012703040401002206020d002204020e3f0f000d000e002a0405062d0b06060a2a060a040a2a04090d2402000d00000a272500000d9c1e020004002f2a00060004000d270206040127020f0403002a060f0e2d0801040008010e012703040401002204020e2d0e060e00220e020e2d0e060e27020e0403002a040e062d0a060e2d0e0d0e002204020d2d0b0d0d27020e0403002a040e063b0e000d00062300000a932902000400ee21e57b0a2a0204062402000600000aae2300000b8e1e020004010a22044306160a060d1c0a0d0e00042a0e040d0a2a0609042402000400000adc27020e04003c060e011e020004000a2a0d04062402000600000af32500000dc01e020004002d08010627020d04050008010d012703060401002206020d2d0a0d0e2d0e0b0e00220e020e2d0e040e00220e020e2d0e0a0e00220e020e2d0e0c0e2d08010427020a04050008010a012703040401002206020a002204020b3f0f000a000b002a0405062d0b0606340200062d0b030400220402042d0e040300220302052d0b05052702060403002a0306043b0e000500042300000b8e2702030255270204026e270205026b270206026f270207027727020a022027020b027327020c026527020d026c27020e026327020f02742702100272270211027b270212027d2d080113270214041c0008011401270313040100221302142d0a14152d0e031500221502152d0e041500221502152d0e051500221502152d0e041500221502152d0e061500221502152d0e071500221502152d0e041500221502152d0e0a1500221502152d0e0b1500221502152d0e0c1500221502152d0e0d1500221502152d0e0c1500221502152d0e0e1500221502152d0e0f1500221502152d0e061500221502152d0e101500221502152d0e0a1500221502152d0e111500221502152d0e0b1500221502152d0e0c1500221502152d0e0d1500221502152d0e0c1500221502152d0e0e1500221502152d0e0f1500221502152d0e061500221502152d0e101500221502152d0e121527020300010a2a0908042402000400000d54270205041e2d080106270207041e00080107012d0a06072a030007059b5bbff74a5bff190022070207002213020a27020b041b2d020a032d0207042d020b052500000dd227020a041b002a070a072d0e030700220702072d0e020700220702073c0e05062a010001058a553a2c2b67c8ef3c040201262a01000105c80d73736ecdb4e13c040201262a0100010575fef108377c8a4f3c040201262a0100010506613b3d0b9dbd333c040201262a01000105babb21d7823318643c040201262a01000105c5cc62b50ed35c303c040201262a010001052ab9ecbeb3430ae13c0402012600000305072d0003082d0004092300000df62d0108062d040609000008020800000902090c0008070a2400000a00000de426>, - "privateFunctionsRoot": Fr<0x07be998ba5208ae3c3c9329157a2c586b26d7489a3e4be5af66e6a1b70e4357a>, + "artifactHash": Fr<0x24c6b040ea6c3ec2ecf9d6b0c0c709239696f66ea8d27d3bc064852a8bfb579c>, + "contractClassId": Fr<0x135e3e6dff88ef7e69c592472939cddff00850a0886c416e47720573cf94db4c>, + "packedPublicBytecode": Buffer<0x27000204012800000104804d270000044d2500000041270203040127020404001f0a00030004004c2d084c0225000000b7270202044d27020304003b0e000300022c0000430030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002900004404ffffffff27004504032700460000270047010127004804012900004900c732f9772b00004a00000000000000000200000000000000002b00004b0000000000000000030000000000000000262902000300324de62f0a2a02030427020504002702070403002a0507062d0801030008010601270303040100220302062d0e050600220602062d0e05062702060403002a0306052702050402270206040027020701002902000800d9b51578240200040000012323000006202d08010427020904030008010901270304040100220402091f3200050048000900220448092d0b0909002a04050a2d0b0a0a1e020004001e02000b001e02000b002d08010c27020d04030008010d0127030c040100220c020d360e000b000d0000220c480d2d0b0d0d002a0c050e2d0b0e0e1c0a0d0c00042a0c0e0f2402000d000001b027020c04003c060c012d08010c27020d04030008010d0127030c040100220c020d360e000b000d0200220c480b2d0b0b0b002a0c050d2d0b0d0d1c0a0b0c00042a0c0d0e2402000b000001fc27020c04003c060c012d08010b27020c04020008010c0127030b040100220b020c1f3800480006000c00220b480c2d0b0c0c1c0a0c0d041c0a0d0b002d08010c27020d04030008010d0127030c040100220c020d1f3200050048000d00220c480d2d0b0d0d002a0c05102d0b10102902000c00d52de36b2d08011127021204050008011201270311040100221102122d0a12132d0e0c1300221302132d0e0d1300221302132d0e101300221302132d0c4b132d08010c27020d04050008010d0127030c0401002211020d00220c02103f0f000d001000220c480d2d0b0d0d2902000c0016f8af272d08011027021104050008011101270310040100221002112d0a11122d0e0c1200221202122d0e0b1200221202122d0e0d1200221202122d0c4b122d08010b27020c04050008010c0127030b0401002210020c00220b020d3f0f000c000d00220b480c2d0b0c0c0a2a0e0c0b2402000b000003532500000c770a220f460b1e02000c010a220c430d160a0d0e1c0a0e1000042a100c0e0a2a0d070c2402000c0000038627021004003c0610010a2a0f0e0c122a0b0c0d2402000d0000039d2500000c892d08010b27020c04040008010c0127030b040100220b020c2d0a0c0d2d0e080d00220d020d2d0e090d00220d020d2d0e0a0d00220b02093903200044004400040045000920020004210200092d08010b27020a040000220b020d2d0b0d0d27020e0403002a0b0e0c223a00090006000c2d0a090d27030b040100220b020e2d0e0d0e00220e020e2d0e0d0e27020f0403002a0d0f0e0008010e0127020e04002d0a0d0f06220f020f0a2a0a0e102d0a0f0a240200100000045a2d0a0a0a24020010000004740a2a0a0f1124020011000004742500000c9b24020004000004aa23000004812d0b0b0400220402042d0e040b00220b02092d0b090927020c0403002a0b0c043c0e090423000004aa0a2a0a060424020004000004c027020904003c0609011e020004002d08010927020a04030008010a012703090401002209020a360e0004000a02002209480a2d0b0a0a002a09050b2d0b0b0b1c0a0a0900042a090b0c2402000a0000051127020904003c0609012902000900ede022762d08010a27020b04050008010b0127030a040100220a020b2d0a0b0d2d0e090d00220d020d2d0e040d00220d020d2d0e0c0d00220d020d2d0c4b0d2d08010427020904050008010901270304040100220a0209002204020b3f0f0009000b00220448092d0b0909340200091e020004002d08010927020a04050008010a012703090401002209020a2d0a0a0b2d0c490b00220b020b2d0e040b00220b020b2d0c460b00220b020b2d0c4a0b2d08010427020a04050008010a012703040401002209020a002204020b3f0f000a000b00220448092d0b0909340200092d0b030400220402042d0e040300220302092d0b090927020a0403002a030a043b0e00090004230000062029020004005bd9f2da0a2a02040927020400022902000a00ef52534d2402000900000649230000075d2d08010927020b04030008010b012703090401002209020b1f3200050048000b002209480b2d0b0b0b002a09050c2d0b0c0c1e020009001e02000900270209040d2d08000d00080009002500000cad2d0200002d08010927020d04050008010d012703090401002209020d2d0a0d0e2d0e0a0e00220e020e2d0e040e00220e020e2d0e0b0e00220e020e2d0c4b0e2d08010b27020d04050008010d0127030b0401002209020d00220b020e3f0f000d000e00220b48092d0b09090a2209460b0a2a0b070d2402000d0000071a2500000da21e02000b002f2a0009000b000d002a0d0c0b300a000b00092d0b030900220902092d0e0903002203020b2d0b0b0b27020c0403002a030c093b0e000b0009230000075d0a2a020809240200090000076f230000086c2d08010827020904030008010901270308040100220802091f3200050048000900220848092d0b0909002a08050b2d0b0b0b1e020005001e020005002d08010527020804050008010801270305040100220502082d0a080c2d0e0a0c00220c020c2d0e040c00220c020c2d0e090c00220c020c2d0c4b0c2d0801082702090405000801090127030804010022050209002208020c3f0f0009000c00220848052d0b05050a220546080a2a08070924020009000008292500000da21e020008002f2a000500080009002a090b08300a000800052d0b030500220502052d0e050300220302082d0b08082702090403002a0309053b0e00080005230000086c2902000500bb19097e0a2a020508240200080000088723000009b62d08010527020804020008010801270305040100220502081f3000480048000800220548082d0b08081e020005001e020005001e0200050924020005000008cc2500000db42d08010527020904050008010901270305040100220502092d0a090b2d0e0a0b00220b020b2d0e040b00220b020b2d0e080b00220b020b2d0c4b0b2d080104270208040500080108012703040401002205020800220402093f0f0008000900220448052d0b05050a220546040a2a040708240200080000094a2500000da21e020004002f2a000500040008270205040127020a0403002a050a092d0801040008010901270304040100220402092d0e050900220902092d0e05092702090403002a0409052d0a05092d0e080900220402082d0b08082702090403002a0409053b0e0008000523000009b62902000400ee21e57b0a2a02040524020005000009d12300000ab11e020004010a22044305160a05081c0a080900042a0904080a2a05070424020004000009ff27020904003c0609011e020004000a2a0804052402000500000a162500000dc61e020004002d08010527020804050008010801270305040100220502082d0a08092d0c490900220902092d0e040900220902092d0c460900220902092d0c4a092d080104270208040500080108012703040401002205020800220402093f0f0008000900220448052d0b0505340200052d0b030400220402042d0e040300220302052d0b05052702080403002a0308043b0e000500042300000ab12702030255270204026e270205026b270206026f2702080277270209022027020a027327020b026527020c026c27020d026327020e027427020f0272270210027b270211027d2d080112270213041c0008011301270312040100221202132d0a13142d0e031400221402142d0e041400221402142d0e051400221402142d0e041400221402142d0e061400221402142d0e081400221402142d0e041400221402142d0e091400221402142d0e0a1400221402142d0e0b1400221402142d0e0c1400221402142d0e0b1400221402142d0e0d1400221402142d0e0e1400221402142d0e061400221402142d0e0f1400221402142d0e091400221402142d0e101400221402142d0e0a1400221402142d0e0b1400221402142d0e0c1400221402142d0e0b1400221402142d0e0d1400221402142d0e0e1400221402142d0e061400221402142d0e0f1400221402142d0e111427020300010a220747042402000400000c77270205041e2d080106270208041e00080108012d0a06082a030008059b5bbff74a5bff190022080208002212020927020a041b2d0209032d0208042d020a052500000dd8270209041b002a0809082d0e030800220802082d0e020800220802083c0e05062a010001058a553a2c2b67c8ef3c040201262a01000105c80d73736ecdb4e13c040201262a0100010575fef108377c8a4f3c040201261e020002002d08010327020404050008010401270303040100220302042d0a04052d0c490500220502052d0e020500220502052d0c460500220502052d0c4a052d080102270204040500080104012703020401002203020400220202053f0f0004000500220248032d0b03031e020002002902000400036d527f2d08010527020604050008010601270305040100220502062d0a06072d0e040700220702072d0e020700220702072d0e030700220702072d0c4b072d080102270203040500080103012703020401002205020300220202043f0f0003000400220248032d0b0303330a000300022402000200000da12500000e0a262a01000105babb21d7823318643c040201262a01000105c5cc62b50ed35c303c040201262a010001052ab9ecbeb3430ae13c0402012600000305072d0003082d0004092300000dfc2d0108062d040609000008020800000902090c0008070a2400000a00000dea262a0100010506613b3d0b9dbd333c04020126>, + "privateFunctionsRoot": Fr<0x10b89e84a594728151d2054d9e41999f109fca6895e8bec7894445886adaa5c1>, "version": 1, } `; diff --git a/yarn-project/protocol-contracts/src/instance-registry/__snapshots__/contract_instance_published_event.test.ts.snap b/yarn-project/protocol-contracts/src/instance-registry/__snapshots__/contract_instance_published_event.test.ts.snap index f74640794bf0..9fb79d218472 100644 --- a/yarn-project/protocol-contracts/src/instance-registry/__snapshots__/contract_instance_published_event.test.ts.snap +++ b/yarn-project/protocol-contracts/src/instance-registry/__snapshots__/contract_instance_published_event.test.ts.snap @@ -2,17 +2,18 @@ exports[`ContractInstancePublishedEvent parses an event as emitted by the ClassInstanceRegistry 1`] = ` ContractInstancePublishedEvent { - "address": "0x21e212810f887382b564c453919235ecc04ff03f9c5127ac9a630a3fc62cfbbb", - "contractClassId": "0x1c2459719688b73599862bb4192cf567006eaf1fd7382d84f842a6f3616b326c", + "address": "0x1623e556088171b0d1a9eb6737e24601fcf747ec6df56cf149ed81edf7bd0a19", + "contractClassId": "0x135e3e6dff88ef7e69c592472939cddff00850a0886c416e47720573cf94db4c", "deployer": "0x0000000000000000000000000000000000000000000000000000000000000000", - "initializationHash": "0x0fb36d433fc86c98e17d214b1024303def3bb1e8fa412bc6e796eb1366b5f55b", + "immutablesHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "initializationHash": "0x0e194c360bc3d5c5fe1b2619f35e6fe4312757f518c2c8ea644a5dc0d28e619b", "publicKeys": PublicKeys { - "masterIncomingViewingPublicKey": "0x1e415b163a4af0578cf70ab19e836504a74de9ea3e0c94373ca781436155bfc31fe218da6de686b7a39b092364894c6c2246fee50d0ff9832294cd6b792b8f42", - "masterNullifierPublicKey": "0x1366c504bbb3b3bb5d7246d9e082468eae37d93c38705b9eb4ef8bb76dc9b98005c6d6a962e4d7a458aa232dab86841ebcfe4d342556f270f6b2452fd87581bb", - "masterOutgoingViewingPublicKey": "0x1aa402e7eafa5c5d6ed9454c794e744eabf3b0c5ed84a35567fbe7509552181808afab9b331786e21a60f1f237a7a0f5457ce547160b82ace9a58a800b170fc1", - "masterTaggingPublicKey": "0x289752f4904779a603001cd6fab021079a04e18f0740eb0e1009088199178d1f26814d31374c3e5c551e28a5467feb67155bb2be160d80ca851babfa60501e61", + "masterIncomingViewingPublicKey": "0x0efbc35e2456ec513ec98d565decb7a37da609539408e911b2de34426c18df7c11881e07f9cefcf0501d333244bdc094ee6b2b437d6a8ed70d2770bd12cf1cd5", + "masterNullifierPublicKey": "0x22bc8d8e793542b69653d5b3df03fb73de4101874a4c61dc1a2b2f818cebc2bd10f2fd537077dc56a3caf260dfc91af26220d63f6ce54fbe66a31f0d500743be", + "masterOutgoingViewingPublicKey": "0x0d907a1c8feb64141b7ff41080c0afefa9bfe5b8ce18bb4a7b89ad541ab0bda40305362fa4b3eb8864ff86423d06d8db7618c5b0f9157be28ba5f30d5f2da2d2", + "masterTaggingPublicKey": "0x233289eca0699f870caeacb51b3e74b697eb620f1dcc6968fc1c59a56149c38a09bf00e859f74118df4ab038ba03a185673b965d38473d97b0f9f8e2785c1f68", }, - "salt": "0x108abf493e0af91750b53cd462defc3373f1a522e982af55b0c8ec7d20cf0393", - "version": 1, + "salt": "0x13f984b9e77230f2fd9af7ca9e5ccf182f6c89a59922907157b9e6788387ebc8", + "version": 2, } `; diff --git a/yarn-project/protocol-contracts/src/instance-registry/contract_instance_published_event.ts b/yarn-project/protocol-contracts/src/instance-registry/contract_instance_published_event.ts index 35857a0f852b..d69ae3c2b683 100644 --- a/yarn-project/protocol-contracts/src/instance-registry/contract_instance_published_event.ts +++ b/yarn-project/protocol-contracts/src/instance-registry/contract_instance_published_event.ts @@ -15,6 +15,7 @@ export class ContractInstancePublishedEvent { public readonly salt: Fr, public readonly contractClassId: Fr, public readonly initializationHash: Fr, + public readonly immutablesHash: Fr, public readonly publicKeys: PublicKeys, public readonly deployer: AztecAddress, ) {} @@ -31,6 +32,7 @@ export class ContractInstancePublishedEvent { const salt = reader.readObject(Fr); const contractClassId = reader.readObject(Fr); const initializationHash = reader.readObject(Fr); + const immutablesHash = reader.readObject(Fr); const publicKeys = reader.readObject(PublicKeys); const deployer = reader.readObject(AztecAddress); @@ -40,13 +42,14 @@ export class ContractInstancePublishedEvent { salt, contractClassId, initializationHash, + immutablesHash, publicKeys, deployer, ); } toContractInstance(): ContractInstanceWithAddress { - if (this.version !== 1) { + if (this.version !== 2) { throw new Error(`Unexpected contract instance version ${this.version}`); } @@ -56,6 +59,7 @@ export class ContractInstancePublishedEvent { currentContractClassId: this.contractClassId, originalContractClassId: this.contractClassId, initializationHash: this.initializationHash, + immutablesHash: this.immutablesHash, publicKeys: this.publicKeys, salt: this.salt, deployer: this.deployer, diff --git a/yarn-project/protocol-contracts/src/make_protocol_contract.ts b/yarn-project/protocol-contracts/src/make_protocol_contract.ts index 87215bcb3c20..d921be733ef2 100644 --- a/yarn-project/protocol-contracts/src/make_protocol_contract.ts +++ b/yarn-project/protocol-contracts/src/make_protocol_contract.ts @@ -1,3 +1,4 @@ +import { Fr } from '@aztec/foundation/curves/bn254'; import type { ContractArtifact } from '@aztec/stdlib/abi'; import { PublicKeys } from '@aztec/stdlib/keys'; @@ -34,10 +35,11 @@ export function makeProtocolContract(name: ProtocolContractName, artifact: Contr }; const instance = { - version: 1 as const, + version: 2 as const, currentContractClassId: classId, originalContractClassId: classId, initializationHash, + immutablesHash: Fr.ZERO, // Protocol Contracts Have No Immutables publicKeys: PublicKeys.default(), salt, deployer: address, diff --git a/yarn-project/protocol-contracts/src/scripts/generate_data.ts b/yarn-project/protocol-contracts/src/scripts/generate_data.ts index 58b8d8aa14c7..9bd43ff78210 100644 --- a/yarn-project/protocol-contracts/src/scripts/generate_data.ts +++ b/yarn-project/protocol-contracts/src/scripts/generate_data.ts @@ -89,10 +89,11 @@ async function computeContractData(artifact: NoirCompiledContract, deployer: Azt const constructorArtifact = loaded.functions.find(f => f.name === 'constructor'); const initializationHash = await computeInitializationHash(constructorArtifact, []); const instance = { - version: 1 as const, + version: 2 as const, currentContractClassId: contractClass.id, originalContractClassId: contractClass.id, initializationHash, + immutablesHash: Fr.ZERO, // Protocol Contracts Have No Immutables publicKeys: PublicKeys.default(), salt, deployer, diff --git a/yarn-project/pxe/src/contract_function_simulator/oracle/oracle.ts b/yarn-project/pxe/src/contract_function_simulator/oracle/oracle.ts index f325f1f49f1a..f9d83b9495fd 100644 --- a/yarn-project/pxe/src/contract_function_simulator/oracle/oracle.ts +++ b/yarn-project/pxe/src/contract_function_simulator/oracle/oracle.ts @@ -229,6 +229,7 @@ export class Oracle { instance.deployer, instance.currentContractClassId, instance.initializationHash, + instance.immutablesHash, ...instance.publicKeys.toFields(), ].map(toACVMField); } diff --git a/yarn-project/pxe/src/contract_function_simulator/oracle/utility_execution.test.ts b/yarn-project/pxe/src/contract_function_simulator/oracle/utility_execution.test.ts index 5c28ee5b59b5..fa3f586c754a 100644 --- a/yarn-project/pxe/src/contract_function_simulator/oracle/utility_execution.test.ts +++ b/yarn-project/pxe/src/contract_function_simulator/oracle/utility_execution.test.ts @@ -150,12 +150,13 @@ describe('Utility Execution test suite', () => { // The initializer nullifier check requires the instance to be a valid preimage of the contract address, so we // can't use a random contract address here. const instanceFields = { - version: 1 as const, + version: 2 as const, salt: Fr.random(), deployer: await AztecAddress.random(), currentContractClassId: new Fr(42), originalContractClassId: new Fr(42), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: await PublicKeys.random(), }; const contractAddress = await computeContractAddressFromInstance(instanceFields); @@ -242,12 +243,13 @@ describe('Utility Execution test suite', () => { const expectedSum = new Fr(9); const instanceFields = { - version: 1 as const, + version: 2 as const, salt: Fr.random(), deployer: await AztecAddress.random(), currentContractClassId: new Fr(42), originalContractClassId: new Fr(42), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: await PublicKeys.random(), }; const contractAddress = await computeContractAddressFromInstance(instanceFields); diff --git a/yarn-project/pxe/src/private_kernel/private_kernel_execution_prover.test.ts b/yarn-project/pxe/src/private_kernel/private_kernel_execution_prover.test.ts index e16dab33ec23..a44bab2ad2fc 100644 --- a/yarn-project/pxe/src/private_kernel/private_kernel_execution_prover.test.ts +++ b/yarn-project/pxe/src/private_kernel/private_kernel_execution_prover.test.ts @@ -130,12 +130,13 @@ describe('Private Kernel Sequencer', () => { oracle.getMasterSecretKey.mockResolvedValue(Fr.random() as any); oracle.getContractAddressPreimage.mockResolvedValue({ - version: 1 as const, + version: 2 as const, salt: Fr.random(), deployer: await AztecAddress.random(), currentContractClassId: Fr.random(), originalContractClassId: Fr.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: await PublicKeys.random(), address: await AztecAddress.random(), saltedInitializationHash: Fr.random(), diff --git a/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json b/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json index f2e80f8f02f2..131c14947121 100644 --- a/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +++ b/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json @@ -2,20 +2,20 @@ "complete_addresses": [ { "index": 0, - "value": "0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a214c7a24ddf501afc8734c7379ee502296289eb24cd8cd03cd435e128c06be0000987721e0963b4a5bd81ee862e2740d8849fd90537569064d3d3a4640e858d219e95c05f09cb86d1a6257572f9082ca15d4a02373c4d8c9cee23dc61a4c2a882f9017d51bca6616102d8a1d4dba89e4ce12881a2414576f01d2fec9492814a22c19ff0b089b07da436e6f7be6b26cdc17b9cee504a528c071ef6a416299683d0b369479d6e50504702d0b56bb56e4e8e0e77171429896651d0c11621e82ebc32fcdd0d194adafd753dc0ed279f5cfb54ddcce1dd581d4631cf343ba9ee6c1ab2858abca6c00da3def156b1f12a6464384e326d5fa724c2fc2ff2b7f3fc8ad5f0000000000000000000000000000000000000000000000000000000000000003" + "value": "23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f214c7a24ddf501afc8734c7379ee502296289eb24cd8cd03cd435e128c06be0000987721e0963b4a5bd81ee862e2740d8849fd90537569064d3d3a4640e858d219e95c05f09cb86d1a6257572f9082ca15d4a02373c4d8c9cee23dc61a4c2a882f9017d51bca6616102d8a1d4dba89e4ce12881a2414576f01d2fec9492814a22c19ff0b089b07da436e6f7be6b26cdc17b9cee504a528c071ef6a416299683d0b369479d6e50504702d0b56bb56e4e8e0e77171429896651d0c11621e82ebc32fcdd0d194adafd753dc0ed279f5cfb54ddcce1dd581d4631cf343ba9ee6c1ab2858abca6c00da3def156b1f12a6464384e326d5fa724c2fc2ff2b7f3fc8ad5f0000000000000000000000000000000000000000000000000000000000000003" }, { "index": 1, - "value": "2bc83a7fe553d4b649228410040c130a782f86f9b54813f4d847d0c3eeba065a156832f7840991767f448681237ef8bce6895fc79e5d9d0dedd89dccfd9d59ce215403719ea86d38909507bba0ba2d191f72dc1991a5dfc17da8bf7e8c1f1f4f267e526a2e6e9adf6a026989be005bd50d1aea76d20816b9843bc95557696f9f16c3eb259ba3e3eb27b7fe3abc36e87923990bf5c265cb0d57790eda2a4432f1237296442bbb36cc3632af0578ad4b7d5d69d52e05937a1d3e2fe295ac9af98628737df05bb727d77dd52691d42566eb22e529f9f404a2f9bc2e1982956ba09c1df52a95111bd76680a4356951e68a20c3e51cbddb7d1536c572b416bd342e3204aa15eaf393bb18695ddee077d52be6489ed510f357a90003099ce337e6232c0000000000000000000000000000000000000000000000000000000000000007" + "value": "2c8420fa4fafa69ff1ca14c963e55a643a95ef1d03a759f0c70d050d3ece22c1156832f7840991767f448681237ef8bce6895fc79e5d9d0dedd89dccfd9d59ce215403719ea86d38909507bba0ba2d191f72dc1991a5dfc17da8bf7e8c1f1f4f267e526a2e6e9adf6a026989be005bd50d1aea76d20816b9843bc95557696f9f16c3eb259ba3e3eb27b7fe3abc36e87923990bf5c265cb0d57790eda2a4432f1237296442bbb36cc3632af0578ad4b7d5d69d52e05937a1d3e2fe295ac9af98628737df05bb727d77dd52691d42566eb22e529f9f404a2f9bc2e1982956ba09c1df52a95111bd76680a4356951e68a20c3e51cbddb7d1536c572b416bd342e3204aa15eaf393bb18695ddee077d52be6489ed510f357a90003099ce337e6232c0000000000000000000000000000000000000000000000000000000000000007" } ], "complete_address_index": [ { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f", "value": "num:0" }, { - "key": "utf8:0x2bc83a7fe553d4b649228410040c130a782f86f9b54813f4d847d0c3eeba065a", + "key": "utf8:0x2c8420fa4fafa69ff1ca14c963e55a643a95ef1d03a759f0c70d050d3ece22c1", "value": "num:1" } ] diff --git a/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json b/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json index 6de71bb8c2e4..14ec966ea332 100644 --- a/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +++ b/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json @@ -22,7 +22,7 @@ "contracts_instances": [ { "key": "utf8:0x0000000000000000000000000000000000000000000000000000000000000065", - "value": "010000000000000000000000000000000000000000000000000000000000000049000000000000000000000000000000000000000000000000000000000000004f0000000000000000000000000000000000000000000000000000000000000053000000000000000000000000000000000000000000000000000000000000005900000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002f0000000000000000000000000000000000000000000000000000000000000035000000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003d00000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000047" + "value": "020000000000000000000000000000000000000000000000000000000000000049000000000000000000000000000000000000000000000000000000000000004f00000000000000000000000000000000000000000000000000000000000000530000000000000000000000000000000000000000000000000000000000000059000000000000000000000000000000000000000000000000000000000000006100000000000000000000000000000000000000000000000000000000000000670000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002f0000000000000000000000000000000000000000000000000000000000000035000000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003d00000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000047" } ] } diff --git a/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json b/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json index 7164be86011a..696bf6ba9926 100644 --- a/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +++ b/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json @@ -1,51 +1,51 @@ { "key_store": [ { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a-ivpk_m", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f-ivpk_m", "value": "19e95c05f09cb86d1a6257572f9082ca15d4a02373c4d8c9cee23dc61a4c2a882f9017d51bca6616102d8a1d4dba89e4ce12881a2414576f01d2fec9492814a2" }, { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a-ivpk_m_hash", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f-ivpk_m_hash", "value": "2c8a04047c06c447dcf1011ddd80c1d03dc9f70a5fa4645722d086fe82504d76" }, { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a-ivsk_m", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f-ivsk_m", "value": "1fb01c42d1aaa2662041b899c77cb19e08192193acc5a94405f1b43c974eba7a" }, { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a-nhk_m", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f-nhk_m", "value": "2dd30220767969b10044b1322585bb4c4df4e0c5d9b4d7b3045a879a8e3e91d2" }, { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a-npk_m", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f-npk_m", "value": "214c7a24ddf501afc8734c7379ee502296289eb24cd8cd03cd435e128c06be0000987721e0963b4a5bd81ee862e2740d8849fd90537569064d3d3a4640e858d2" }, { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a-npk_m_hash", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f-npk_m_hash", "value": "0df588690e44b50e4ca694d25b494039b60f09451eaea7aaba97bd4cf8001710" }, { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a-ovpk_m", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f-ovpk_m", "value": "2c19ff0b089b07da436e6f7be6b26cdc17b9cee504a528c071ef6a416299683d0b369479d6e50504702d0b56bb56e4e8e0e77171429896651d0c11621e82ebc3" }, { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a-ovpk_m_hash", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f-ovpk_m_hash", "value": "2cbd8a987ad7dc81814feabc55abdf40b810161611ad89b705db92f32cf94603" }, { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a-ovsk_m", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f-ovsk_m", "value": "279fe6ef7dd2477b919327b1ebab7497c41b9a7ccfa9d5d52e32698e3b85293b" }, { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a-tpk_m", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f-tpk_m", "value": "2fcdd0d194adafd753dc0ed279f5cfb54ddcce1dd581d4631cf343ba9ee6c1ab2858abca6c00da3def156b1f12a6464384e326d5fa724c2fc2ff2b7f3fc8ad5f" }, { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a-tpk_m_hash", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f-tpk_m_hash", "value": "2a0b3526801cd5edcaf6b4ba6e1f0a378b6d78d42a62410e86202fb66b44dd53" }, { - "key": "utf8:0x0e097c323e48522fcbd592590a72a0d4e50f22b3fb1913d19c936439ab74851a-tsk_m", + "key": "utf8:0x23fc7f4a8f4df4bb34692e3611e394ba13f3e8e06eb327edffb06c62a2f5621f-tsk_m", "value": "183cb61099458d1564aa57c90c7091ac623a14092ab314150c9cfbb416810320" } ] diff --git a/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json b/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json index 2ee17beb3c62..8a55a9c4c66f 100644 --- a/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +++ b/yarn-project/pxe/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json @@ -1,5 +1,5 @@ { - "schemaVersion": 5, + "schemaVersion": 6, "stores": [ { "name": "address_book", diff --git a/yarn-project/pxe/src/storage/backwards_compatibility_tests/schema_tests.ts b/yarn-project/pxe/src/storage/backwards_compatibility_tests/schema_tests.ts index 91b2c2d90ef1..5e89218453d9 100644 --- a/yarn-project/pxe/src/storage/backwards_compatibility_tests/schema_tests.ts +++ b/yarn-project/pxe/src/storage/backwards_compatibility_tests/schema_tests.ts @@ -187,12 +187,13 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [ await contractStore.addContractInstance( new SerializableContractInstance({ - version: 1, + version: 2, salt: new Fr(73n), deployer: AztecAddress.fromBigInt(79n), currentContractClassId: new Fr(83n), originalContractClassId: new Fr(89n), initializationHash: new Fr(97n), + immutablesHash: new Fr(103n), publicKeys: new PublicKeys( new Point(new Fr(41n), new Fr(43n), false), new Point(new Fr(47n), new Fr(53n), false), diff --git a/yarn-project/pxe/src/storage/metadata.ts b/yarn-project/pxe/src/storage/metadata.ts index aa63404894b5..b828fac62539 100644 --- a/yarn-project/pxe/src/storage/metadata.ts +++ b/yarn-project/pxe/src/storage/metadata.ts @@ -1 +1 @@ -export const PXE_DATA_SCHEMA_VERSION = 5; +export const PXE_DATA_SCHEMA_VERSION = 6; diff --git a/yarn-project/simulator/docs/avm/opcodes/getcontractinstance.md b/yarn-project/simulator/docs/avm/opcodes/getcontractinstance.md index 7e570e0eb2de..7cc324facb14 100644 --- a/yarn-project/simulator/docs/avm/opcodes/getcontractinstance.md +++ b/yarn-project/simulator/docs/avm/opcodes/getcontractinstance.md @@ -12,7 +12,7 @@ M[dstOffset] = contractInstance.exists ? 1 : 0; M[dstOffset+1] = contractInstanc ## Details -Looks up contract instance by address and retrieves the specified member. This opcode can get contract instance information for any contract address, not just the currently executing one. Returns existence flag (Uint1) and member value (FIELD). If the contract does not exist, the member value is set to 0. Supported enum values: `[DEPLOYER=0, CLASS_ID, INIT_HASH]`. +Looks up contract instance by address and retrieves the specified member. This opcode can get contract instance information for any contract address, not just the currently executing one. Returns existence flag (Uint1) and member value (FIELD). If the contract does not exist, the member value is set to 0. Supported enum values: `[DEPLOYER=0, CLASS_ID, INIT_HASH, IMMUTABLES_HASH]`. ## Contract Classes and Instances @@ -32,6 +32,7 @@ This separation allows for: | **Deployer Address** | The address of the account that deployed this contract instance. | | **Class ID** | The identifier of the contract class that this instance uses for its code. | | **Initialization Hash** | A hash of the constructor arguments used when the contract instance was deployed. | +| **Immutables Hash** | A hash of the immutable storage values declared by a contract instance when it was deployed. | **Example**: To check if a contract at a given `address` is an instance of a known `CLASS_ID`: 1. Use `GETCONTRACTINSTANCE` with the `address` and the `CLASS_ID` member enum. diff --git a/yarn-project/simulator/src/public/avm/apps_tests/avm_test.test.ts b/yarn-project/simulator/src/public/avm/apps_tests/avm_test.test.ts index a2961338479e..cba97e234740 100644 --- a/yarn-project/simulator/src/public/avm/apps_tests/avm_test.test.ts +++ b/yarn-project/simulator/src/public/avm/apps_tests/avm_test.test.ts @@ -54,6 +54,7 @@ describe('AVM simulator apps tests: AvmTestContract', () => { /*expectedDeployer=*/ expectContractInstance.deployer, /*expectedClassId=*/ expectContractInstance.currentContractClassId, /*expectedInitializationHash=*/ expectContractInstance.initializationHash, + /*expectedImmutablesHash=*/ expectContractInstance.immutablesHash, /*skip_strictly_limited_side_effects=*/ false, ]; const results = await simTester.simulateCall(sender, /*address=*/ testContractAddress, 'bulk_testing', args); diff --git a/yarn-project/simulator/src/public/avm/avm_simulator.test.ts b/yarn-project/simulator/src/public/avm/avm_simulator.test.ts index a9354bfe30bf..512f3b1871cb 100644 --- a/yarn-project/simulator/src/public/avm/avm_simulator.test.ts +++ b/yarn-project/simulator/src/public/avm/avm_simulator.test.ts @@ -914,12 +914,13 @@ describe('AVM simulator: transpiled Noir contracts', () => { const context = createContext(calldata); // Contract instance must match noir const contractInstance = new SerializableContractInstance({ - version: 1 as const, + version: 2 as const, salt: new Fr(0x123), deployer: AztecAddress.fromBigInt(0x456n), currentContractClassId: new Fr(0x789), originalContractClassId: new Fr(0x789), initializationHash: new Fr(0x101112), + immutablesHash: new Fr(0x202221), publicKeys: new PublicKeys( new Point(new Fr(0x131415), new Fr(0x161718), false), new Point(new Fr(0x192021), new Fr(0x222324), false), @@ -928,10 +929,12 @@ describe('AVM simulator: transpiled Noir contracts', () => { ), }); const contractInstanceWithAddress = contractInstance.withAddress(address); - // mock once per enum value (deployer, classId, initializationHash) + // mock once per enum value (deployer, classId, initializationHash, immutablesHash) mockGetContractInstance(contractsDB, contractInstanceWithAddress); mockGetContractInstance(contractsDB, contractInstanceWithAddress); mockGetContractInstance(contractsDB, contractInstanceWithAddress); + mockGetContractInstance(contractsDB, contractInstanceWithAddress); + mockCheckNullifierExists(treesDB, true, await siloAddress(contractInstanceWithAddress.address)); mockCheckNullifierExists(treesDB, true, await siloAddress(contractInstanceWithAddress.address)); mockCheckNullifierExists(treesDB, true, await siloAddress(contractInstanceWithAddress.address)); mockCheckNullifierExists(treesDB, true, await siloAddress(contractInstanceWithAddress.address)); diff --git a/yarn-project/simulator/src/public/avm/fixtures/utils.ts b/yarn-project/simulator/src/public/avm/fixtures/utils.ts index b9034b629890..382fdd2a9764 100644 --- a/yarn-project/simulator/src/public/avm/fixtures/utils.ts +++ b/yarn-project/simulator/src/public/avm/fixtures/utils.ts @@ -128,17 +128,20 @@ export async function createContractClassAndInstance( const constructorAbi = getContractFunctionAbi('constructor', contractArtifact); const { publicKeys } = await deriveKeys(new Fr(seed)); const initializationHash = await computeInitializationHash(constructorAbi, constructorArgs); + const immutablesHash = new Fr(seed + 1); const contractInstance = originalContractClassId === undefined ? await makeContractInstanceFromClassId(contractClass.id, seed, { deployer, initializationHash, + immutablesHash, publicKeys, }) : await makeContractInstanceFromClassId(originalContractClassId, seed, { deployer, initializationHash, currentClassId: contractClass.id, + immutablesHash, publicKeys, }); diff --git a/yarn-project/simulator/src/public/avm/opcodes/contract.test.ts b/yarn-project/simulator/src/public/avm/opcodes/contract.test.ts index c13063491558..cc459424acd6 100644 --- a/yarn-project/simulator/src/public/avm/opcodes/contract.test.ts +++ b/yarn-project/simulator/src/public/avm/opcodes/contract.test.ts @@ -16,6 +16,7 @@ describe('Contract opcodes', () => { let deployer: AztecAddress; let contractClassId: Fr; let initializationHash: Fr; + let immutablesHash: Fr; let persistableState: jest.Mocked; let context: AvmContext; @@ -26,6 +27,7 @@ describe('Contract opcodes', () => { deployer = contractInstance.deployer; contractClassId = contractInstance.currentContractClassId; initializationHash = contractInstance.initializationHash; + immutablesHash = contractInstance.immutablesHash; persistableState = mock(); context = initContext({ persistableState }); }); @@ -54,6 +56,7 @@ describe('Contract opcodes', () => { [ContractInstanceMember.DEPLOYER, () => deployer.toField()], [ContractInstanceMember.CLASS_ID, () => contractClassId.toField()], [ContractInstanceMember.INIT_HASH, () => initializationHash.toField()], + [ContractInstanceMember.IMMUTABLES_HASH, () => immutablesHash.toField()], ])('GETCONTRACTINSTANCE member instruction ', (memberEnum: ContractInstanceMember, valueGetter: () => Fr) => { it(`Should read '${ContractInstanceMember[memberEnum]}' correctly`, async () => { const value = valueGetter(); @@ -87,6 +90,7 @@ describe('Contract opcodes', () => { [ContractInstanceMember.DEPLOYER], [ContractInstanceMember.CLASS_ID], [ContractInstanceMember.INIT_HASH], + [ContractInstanceMember.IMMUTABLES_HASH], ])( 'GETCONTRACTINSTANCE member instruction works when contract does not exist', (memberEnum: ContractInstanceMember) => { @@ -124,7 +128,7 @@ describe('Contract opcodes', () => { /*memberEnum=*/ invalidEnum, ); await expect(instruction.execute(context)).rejects.toThrow( - `Invalid GETCONSTRACTINSTANCE member enum ${invalidEnum}`, + `Invalid GETCONTRACTINSTANCE member enum ${invalidEnum}`, ); }); }); diff --git a/yarn-project/simulator/src/public/avm/opcodes/contract.ts b/yarn-project/simulator/src/public/avm/opcodes/contract.ts index 801a894fbd0a..28f7ece9440d 100644 --- a/yarn-project/simulator/src/public/avm/opcodes/contract.ts +++ b/yarn-project/simulator/src/public/avm/opcodes/contract.ts @@ -9,6 +9,7 @@ export enum ContractInstanceMember { DEPLOYER, CLASS_ID, INIT_HASH, + IMMUTABLES_HASH, } export class GetContractInstance extends Instruction { @@ -41,7 +42,7 @@ export class GetContractInstance extends Instruction { ); if (!(this.memberEnum in ContractInstanceMember)) { - throw new InstructionExecutionError(`Invalid GETCONSTRACTINSTANCE member enum ${this.memberEnum}`); + throw new InstructionExecutionError(`Invalid GETCONTRACTINSTANCE member enum ${this.memberEnum}`); } const operands = [this.addressOffset, this.dstOffset]; @@ -64,6 +65,9 @@ export class GetContractInstance extends Instruction { case ContractInstanceMember.INIT_HASH: memberValue = new Field(instance.initializationHash); break; + case ContractInstanceMember.IMMUTABLES_HASH: + memberValue = new Field(instance.immutablesHash); + break; } } diff --git a/yarn-project/simulator/src/public/fixtures/bulk_test.ts b/yarn-project/simulator/src/public/fixtures/bulk_test.ts index 0e600ad8be42..b595517187d0 100644 --- a/yarn-project/simulator/src/public/fixtures/bulk_test.ts +++ b/yarn-project/simulator/src/public/fixtures/bulk_test.ts @@ -38,6 +38,7 @@ export async function bulkTest( /*expectedDeployer=*/ expectContractInstance.deployer, /*expectedClassId=*/ expectContractInstance.currentContractClassId, /*expectedInitializationHash=*/ expectContractInstance.initializationHash, + /*expectedImmutablesHash=*/ expectContractInstance.immutablesHash, /*skip_strictly_limited_side_effects=*/ false, ]; @@ -128,6 +129,7 @@ export async function megaBulkTest( /*expectedDeployer=*/ expectContractInstance.deployer.toField(), /*expectedClassId=*/ expectContractInstance.currentContractClassId.toField(), /*expectedInitializationHash=*/ expectContractInstance.initializationHash.toField(), + /*expectedImmutablesHash=*/ expectContractInstance.immutablesHash.toField(), // Must skip strictly limited side effects (logs, messages) so we can spam the bulk test several times. /*skip_strictly_limited_side_effects=*/ true, ]; diff --git a/yarn-project/simulator/src/public/fixtures/utils.ts b/yarn-project/simulator/src/public/fixtures/utils.ts index 2c0a5a275b79..dfe8b6d4d57f 100644 --- a/yarn-project/simulator/src/public/fixtures/utils.ts +++ b/yarn-project/simulator/src/public/fixtures/utils.ts @@ -252,6 +252,7 @@ export async function addNewContractInstanceToTx( new Fr(contractInstance.salt), contractInstance.currentContractClassId, contractInstance.initializationHash, + contractInstance.immutablesHash, ...publicKeysAsFields, contractInstance.deployer.toField(), ]; diff --git a/yarn-project/simulator/src/public/hinting_db_sources.ts b/yarn-project/simulator/src/public/hinting_db_sources.ts index 85f8ab422ccf..71c7a99c9239 100644 --- a/yarn-project/simulator/src/public/hinting_db_sources.ts +++ b/yarn-project/simulator/src/public/hinting_db_sources.ts @@ -83,6 +83,7 @@ export class HintingPublicContractsDB implements PublicContractsDBInterface { instance.currentContractClassId, instance.originalContractClassId, instance.initializationHash, + instance.immutablesHash, instance.publicKeys, ), ); diff --git a/yarn-project/stdlib/src/avm/avm.ts b/yarn-project/stdlib/src/avm/avm.ts index 339fe4271467..a5f2a4963bf3 100644 --- a/yarn-project/stdlib/src/avm/avm.ts +++ b/yarn-project/stdlib/src/avm/avm.ts @@ -130,6 +130,7 @@ export class AvmContractInstanceHint { public readonly currentContractClassId: Fr, public readonly originalContractClassId: Fr, public readonly initializationHash: Fr, + public readonly immutablesHash: Fr, public readonly publicKeys: PublicKeys, ) {} @@ -143,6 +144,7 @@ export class AvmContractInstanceHint { currentContractClassId: schemas.Fr, originalContractClassId: schemas.Fr, initializationHash: schemas.Fr, + immutablesHash: schemas.Fr, publicKeys: PublicKeys.schema, }) .transform( @@ -154,6 +156,7 @@ export class AvmContractInstanceHint { currentContractClassId, originalContractClassId, initializationHash, + immutablesHash, publicKeys, }) => new AvmContractInstanceHint( @@ -164,6 +167,7 @@ export class AvmContractInstanceHint { currentContractClassId, originalContractClassId, initializationHash, + immutablesHash, publicKeys, ), ); @@ -188,6 +192,7 @@ export class AvmContractInstanceHint { Fr.fromPlainObject(obj.currentContractClassId), Fr.fromPlainObject(obj.originalContractClassId), Fr.fromPlainObject(obj.initializationHash), + Fr.fromPlainObject(obj.immutablesHash), PublicKeys.fromPlainObject(obj.publicKeys), ); } diff --git a/yarn-project/stdlib/src/contract/contract_address.test.ts b/yarn-project/stdlib/src/contract/contract_address.test.ts index def2ccb6bac6..8aa89228e274 100644 --- a/yarn-project/stdlib/src/contract/contract_address.test.ts +++ b/yarn-project/stdlib/src/contract/contract_address.test.ts @@ -29,10 +29,11 @@ describe('ContractAddress', () => { initializationHash: new Fr(1), salt: new Fr(2), deployer: AztecAddress.fromField(new Fr(4)), + immutablesHash: new Fr(3), }; const result = await computeSaltedInitializationHash(mockInstance); expect(result.toString()).toMatchInlineSnapshot( - `"0x2175c2437c52b1bfae8eed40f2e9968546a7053272f94f3937c52ed7e0018349"`, + `"0x093c5f7e0d5a56a1fce27bb347233fd1884db1ff78573c5b9b2de9d3fe8babe1"`, ); }); @@ -64,6 +65,7 @@ describe('ContractAddress', () => { const salt = new Fr(3n); const contractClassId = new Fr(4n); const initializationHash = new Fr(5n); + const immutablesHash = new Fr(6n); const deployer = AztecAddress.fromField(new Fr(7)); const publicKeys = (await deriveKeys(secretKey)).publicKeys; const instance = { @@ -73,14 +75,15 @@ describe('ContractAddress', () => { currentContractClassId: contractClassId, initializationHash, deployer, - version: 1 as const, + immutablesHash, + version: 2 as const, }; const [ms, address] = await elapsed(computeContractAddressFromInstance(instance)); const logger = createLogger('stdlib:contract_address:test'); logger.info(`Computed contract address from instance in ${ms}ms`); expect(address.toString()).toMatchInlineSnapshot( - `"0x260f462e7ae7b7031cdb5e41a691a265d7debe6863d8a12887b97f5f8e5d7727"`, + `"0x16eaa1f1db213008081de6fe519997910e2805740ea5e8d5b0c2e2462550c8c3"`, ); }); }); diff --git a/yarn-project/stdlib/src/contract/contract_address.ts b/yarn-project/stdlib/src/contract/contract_address.ts index 6376a263a9d4..a5c36107b344 100644 --- a/yarn-project/stdlib/src/contract/contract_address.ts +++ b/yarn-project/stdlib/src/contract/contract_address.ts @@ -13,9 +13,9 @@ import type { ContractInstance } from './interfaces/contract_instance.js'; /** * Returns the deployment address for a given contract instance. * ``` - * salted_initialization_hash = poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, [salt, initialization_hash, deployer]) + * salted_initialization_hash = poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, [salt, initialization_hash, deployer, immutables_hash]) * partial_address = poseidon2(DOM_SEP__PARTIAL_ADDRESS, [contract_class_id, salted_initialization_hash]) - * address = ((poseidon2(DOM_SEP__CONTRACT_ADDRESS_V1, [public_keys_hash, partial_address]) * G) + ivpk_m).x <- the x-coordinate of the address point + * address = ((poseidon2(DOM_SEP__CONTRACT_ADDRESS_V2, [public_keys_hash, partial_address]) * G) + ivpk_m).x <- the x-coordinate of the address point * ``` * @param instance - A contract instance for which to calculate the deployment address. */ @@ -34,7 +34,7 @@ export async function computeContractAddressFromInstance( */ export async function computePartialAddress( instance: - | Pick + | Pick | { originalContractClassId: Fr; saltedInitializationHash: Fr }, ): Promise { const saltedInitializationHash = @@ -53,10 +53,10 @@ export async function computePartialAddress( * @param instance - Contract instance for which to compute the salted initialization hash. */ export function computeSaltedInitializationHash( - instance: Pick, + instance: Pick, ): Promise { return poseidon2HashWithSeparator( - [instance.salt, instance.initializationHash, instance.deployer], + [instance.salt, instance.initializationHash, instance.deployer, instance.immutablesHash], DomainSeparator.SALTED_INITIALIZATION_HASH, ); } diff --git a/yarn-project/stdlib/src/contract/contract_instance.ts b/yarn-project/stdlib/src/contract/contract_instance.ts index d3dcb4b79f8c..7be8330eeea5 100644 --- a/yarn-project/stdlib/src/contract/contract_instance.ts +++ b/yarn-project/stdlib/src/contract/contract_instance.ts @@ -20,7 +20,7 @@ import { } from './contract_address.js'; import type { ContractInstance, ContractInstanceWithAddress } from './interfaces/contract_instance.js'; -const VERSION = 1 as const; +const VERSION = 2 as const; export type ContractInstantiationData = { constructorArtifact?: FunctionAbi | string; @@ -29,6 +29,7 @@ export type ContractInstantiationData = { salt: Fr; publicKeys?: PublicKeys; deployer?: AztecAddress; + immutablesHash?: Fr; }; export class SerializableContractInstance { @@ -38,6 +39,7 @@ export class SerializableContractInstance { public readonly currentContractClassId: Fr; public readonly originalContractClassId: Fr; public readonly initializationHash: Fr; + public readonly immutablesHash: Fr; public readonly publicKeys: PublicKeys; constructor(instance: ContractInstance) { @@ -49,6 +51,7 @@ export class SerializableContractInstance { this.currentContractClassId = instance.currentContractClassId; this.originalContractClassId = instance.originalContractClassId; this.initializationHash = instance.initializationHash; + this.immutablesHash = instance.immutablesHash; this.publicKeys = instance.publicKeys; } @@ -60,6 +63,7 @@ export class SerializableContractInstance { this.currentContractClassId, this.originalContractClassId, this.initializationHash, + this.immutablesHash, this.publicKeys, ); } @@ -78,6 +82,7 @@ export class SerializableContractInstance { currentContractClassId: reader.readObject(Fr), originalContractClassId: reader.readObject(Fr), initializationHash: reader.readObject(Fr), + immutablesHash: reader.readObject(Fr), publicKeys: reader.readObject(PublicKeys), }); } @@ -90,6 +95,7 @@ export class SerializableContractInstance { currentContractClassId: Fr.random(), originalContractClassId: Fr.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: await PublicKeys.random(), ...opts, }); @@ -103,6 +109,7 @@ export class SerializableContractInstance { currentContractClassId: Fr.zero(), originalContractClassId: Fr.zero(), initializationHash: Fr.zero(), + immutablesHash: Fr.zero(), publicKeys: PublicKeys.default(), }); } @@ -130,15 +137,17 @@ export async function getContractInstanceFromInstantiationParams( ) : await computeInitializationHash(constructorArtifact, args); const publicKeys = opts.publicKeys ?? PublicKeys.default(); + const immutablesHash = opts.immutablesHash ?? Fr.ZERO; const instance: ContractInstance = { currentContractClassId: contractClass.id, originalContractClassId: contractClass.id, initializationHash, + immutablesHash, publicKeys, salt: opts.salt, deployer, - version: 1, + version: 2, }; return { ...instance, address: await computeContractAddressFromInstance(instance) }; diff --git a/yarn-project/stdlib/src/contract/interfaces/contract_instance.ts b/yarn-project/stdlib/src/contract/interfaces/contract_instance.ts index 6e7f986b1ce1..2d992dbac99c 100644 --- a/yarn-project/stdlib/src/contract/interfaces/contract_instance.ts +++ b/yarn-project/stdlib/src/contract/interfaces/contract_instance.ts @@ -6,7 +6,7 @@ import { AztecAddress } from '../../aztec-address/index.js'; import { PublicKeys } from '../../keys/public_keys.js'; import { schemas, zodFor } from '../../schemas/index.js'; -const VERSION = 1 as const; +const VERSION = 2 as const; /** * A contract instance is a concrete deployment of a contract class. It always references a contract class, @@ -26,6 +26,8 @@ export interface ContractInstance { originalContractClassId: Fr; /** Hash of the selector and arguments to the constructor. */ initializationHash: Fr; + /** Hash of Immutables Values the contract is deployed with. */ + immutablesHash: Fr; /** Public keys associated with this instance. */ publicKeys: PublicKeys; } @@ -40,6 +42,7 @@ export const ContractInstanceSchema = zodFor()( currentContractClassId: schemas.Fr, originalContractClassId: schemas.Fr, initializationHash: schemas.Fr, + immutablesHash: schemas.Fr, publicKeys: PublicKeys.schema, }), ); @@ -54,12 +57,13 @@ export const ContractInstanceWithAddressSchema = zodFor { originalContractClassId: expect.any(Fr), deployer: expect.any(AztecAddress), initializationHash: expect.any(Fr), + immutablesHash: expect.any(Fr), publicKeys: expect.any(PublicKeys), salt: expect.any(Fr), - version: 1, + version: 2, }); }); @@ -554,9 +555,10 @@ class MockArchiver implements ArchiverApi { originalContractClassId: Fr.random(), deployer: await AztecAddress.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: await PublicKeys.random(), salt: Fr.random(), - version: 1, + version: 2, }; } getContractClassIds(): Promise { diff --git a/yarn-project/stdlib/src/interfaces/aztec-node.test.ts b/yarn-project/stdlib/src/interfaces/aztec-node.test.ts index d007587d1790..a425766ee482 100644 --- a/yarn-project/stdlib/src/interfaces/aztec-node.test.ts +++ b/yarn-project/stdlib/src/interfaces/aztec-node.test.ts @@ -477,9 +477,10 @@ describe('AztecNodeApiSchema', () => { originalContractClassId: expect.any(Fr), deployer: expect.any(AztecAddress), initializationHash: expect.any(Fr), + immutablesHash: expect.any(Fr), publicKeys: expect.any(PublicKeys), salt: expect.any(Fr), - version: 1, + version: 2, }); }); @@ -817,11 +818,12 @@ class MockAztecNode implements AztecNode { async getContract(address: AztecAddress): Promise { expect(address).toBeInstanceOf(AztecAddress); const instance = { - version: 1 as const, + version: 2 as const, currentContractClassId: Fr.random(), originalContractClassId: Fr.random(), deployer: await AztecAddress.random(), initializationHash: Fr.random(), + immutablesHash: Fr.random(), publicKeys: await PublicKeys.random(), salt: Fr.random(), address: await AztecAddress.random(), diff --git a/yarn-project/stdlib/src/keys/derivation.test.ts b/yarn-project/stdlib/src/keys/derivation.test.ts index d4ebf8e91d14..13830840dd6b 100644 --- a/yarn-project/stdlib/src/keys/derivation.test.ts +++ b/yarn-project/stdlib/src/keys/derivation.test.ts @@ -35,7 +35,7 @@ describe('🔑', () => { const partialAddress = new Fr(2n); const address = await computePreaddress(publicKeysHash, partialAddress); expect(address.toString()).toMatchInlineSnapshot( - `"0x286c7755f2924b1e53b00bcaf1adaffe7287bd74bba7a02f4ab867e3892d28da"`, + `"0x0fa1c698858df1a99170cd39d5f4bfad6d0d60f1f8afa3dc92281ee60b36f3bb"`, ); // Run with AZTEC_GENERATE_TEST_DATA=1 to update noir test data @@ -64,7 +64,7 @@ describe('🔑', () => { const partialAddress = Fr.fromHexString('0x0a7c585381b10f4666044266a02405bf6e01fa564c8517d4ad5823493abd31de'); const address = (await computeAddress(publicKeys, partialAddress)).toString(); - expect(address).toMatchInlineSnapshot(`"0x2f66081d4bb077fbe8e8abe96a3516a713a3d7e34360b4e985da0da95092b37d"`); + expect(address).toMatchInlineSnapshot(`"0x29d6d00ffff74b1ae63c9e27b4aebc9af67c3aae2ee58583cc17408b384929ea"`); // Run with AZTEC_GENERATE_TEST_DATA=1 to update noir test data updateInlineTestData( diff --git a/yarn-project/stdlib/src/keys/derivation.ts b/yarn-project/stdlib/src/keys/derivation.ts index 0ed89aaeb438..64cc3b9d844c 100644 --- a/yarn-project/stdlib/src/keys/derivation.ts +++ b/yarn-project/stdlib/src/keys/derivation.ts @@ -44,12 +44,12 @@ export function deriveSigningKey(secretKey: Fr): GrumpkinScalar { } export function computePreaddress(publicKeysHash: Fr, partialAddress: Fr) { - return poseidon2HashWithSeparator([publicKeysHash, partialAddress], DomainSeparator.CONTRACT_ADDRESS_V1); + return poseidon2HashWithSeparator([publicKeysHash, partialAddress], DomainSeparator.CONTRACT_ADDRESS_V2); } export async function computeAddress(publicKeys: PublicKeys, partialAddress: Fr): Promise { // Given public keys and a partial address, we can compute our address in the following steps. - // 1. preaddress = poseidon2([publicKeysHash, partialAddress], DomainSeparator.CONTRACT_ADDRESS_V1); + // 1. preaddress = poseidon2([publicKeysHash, partialAddress], DomainSeparator.CONTRACT_ADDRESS_V2); // 2. addressPoint = (preaddress * G) + ivpk_m // 3. address = addressPoint.x const preaddress = await computePreaddress(await publicKeys.hash(), partialAddress); diff --git a/yarn-project/stdlib/src/tests/factories.ts b/yarn-project/stdlib/src/tests/factories.ts index d0cfe8c90bc8..984b7fb4b71b 100644 --- a/yarn-project/stdlib/src/tests/factories.ts +++ b/yarn-project/stdlib/src/tests/factories.ts @@ -1240,6 +1240,7 @@ export async function makeContractInstanceFromClassId( overrides?: { deployer?: AztecAddress; initializationHash?: Fr; + immutablesHash?: Fr; publicKeys?: PublicKeys; currentClassId?: Fr; }, @@ -1248,21 +1249,24 @@ export async function makeContractInstanceFromClassId( const initializationHash = overrides?.initializationHash ?? new Fr(seed + 1); const deployer = overrides?.deployer ?? new AztecAddress(new Fr(seed + 2)); const publicKeys = overrides?.publicKeys ?? (await makePublicKeys(seed + 3)); + const immutablesHash = overrides?.immutablesHash ?? new Fr(seed + 4); const partialAddress = await computePartialAddress({ originalContractClassId: classId, salt, initializationHash, + immutablesHash, deployer, }); const address = await computeAddress(publicKeys, partialAddress); return new SerializableContractInstance({ - version: 1, + version: 2, salt, deployer, currentContractClassId: overrides?.currentClassId ?? classId, originalContractClassId: classId, initializationHash, + immutablesHash, publicKeys, }).withAddress(address); } @@ -1440,6 +1444,7 @@ export function makeAvmContractInstanceHint(seed = 0): AvmContractInstanceHint { new Fr(seed + 0x4), new Fr(seed + 0x5), new Fr(seed + 0x6), + new Fr(seed + 0x7), new PublicKeys( new Point(new Fr(seed + 0x7), new Fr(seed + 0x8), false), new Point(new Fr(seed + 0x9), new Fr(seed + 0x10), false), diff --git a/yarn-project/txe/src/rpc_translator.ts b/yarn-project/txe/src/rpc_translator.ts index 6d9e2882544a..e53ba595386e 100644 --- a/yarn-project/txe/src/rpc_translator.ts +++ b/yarn-project/txe/src/rpc_translator.ts @@ -256,6 +256,7 @@ export class RPCTranslator { instance.deployer.toField(), instance.currentContractClassId, instance.initializationHash, + instance.immutablesHash, ...instance.publicKeys.toFields(), ]), ]); @@ -681,6 +682,7 @@ export class RPCTranslator { instance.deployer.toField(), instance.currentContractClassId, instance.initializationHash, + instance.immutablesHash, ...instance.publicKeys.toFields(), ].map(toSingle), ); @@ -1266,6 +1268,19 @@ export class RPCTranslator { ]); } + // eslint-disable-next-line camelcase + async aztec_avm_getContractInstanceImmutablesHash(foreignAddress: ForeignCallSingle) { + const address = addressFromSingle(foreignAddress); + + const instance = await this.handlerAsUtility().getContractInstance(address); + + return toForeignCallResult([ + toSingle(instance.immutablesHash), + // AVM requires an extra boolean indicating the instance was found + toSingle(new Fr(1)), + ]); + } + // eslint-disable-next-line camelcase async aztec_avm_sender() { const sender = await this.handlerAsAvm().sender();