@aztec/accounts 0.49.2 → 0.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/EcdsaKAccount.json +1 -1
- package/artifacts/EcdsaRAccount.json +1 -1
- package/artifacts/SchnorrAccount.json +1 -1
- package/artifacts/SchnorrSingleKeyAccount.json +1 -1
- package/dest/testing/create_account.d.ts +2 -1
- package/dest/testing/create_account.d.ts.map +1 -1
- package/dest/testing/create_account.js +3 -3
- package/package.json +8 -8
- package/src/testing/create_account.ts +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"transpiled":true,"noir_version":"0.33.0+ccbef55cf6af6e8bab3e52daf967175465eb69a2","name":"EcdsaKAccount","functions":[{"name":"constructor","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(initializer)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"private"},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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"},{"name":"verify_private_authwit","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(noinitcheck)","aztec(view)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"inner_hash","type":{"kind":"field"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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"},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"compute_nullifier","type":{"kind":"boolean"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":5,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"H4sIAAAAAAAA/+29CZwlWVXnH1ldW3d2Zld3LV17xat8XZVZWcvbspYWsR31j2zKKkuPI9VdVYIjNEszgPoHFYQBHbYBRxQEN3AQRhFhFIHBcQFUdAQHUAdwRB3Z5OOAfwVR/h2Z79T7vpPnRryIFydeZHbG51OV8SLujXvOudvvnHvuuVPRyjVzz7+p/v2W/t+t0epL0tzW/9sa72qX+K2WJ51Ta4TOTWuEzmvWCJ2bS6QzoW1LNHyVTe8WB7mWTePWNUDjtjVA4/Y1QOO1Ubn9R2jc3L+/7p5/0/f8uz5amcNWvSRjyeB4Tf990lGShphUdCLIa5E29PFTU4NvyfW/cb+v//frn/rUi8+Kn/CkS5efGd/19Lvju67Ed9z19CddehozHp4qmPFb8WNn/+/907M8rGhZjy6a8XuLZvy1ohk/nV8snyta1heKZjy1qWDGf31NwYx3Fs34Q0UzvrhoxlcVzfi6ohk/XjTjXxXN+NmiGb9SNONjtxTMeDcyNvp/L9599+UnPvnu+O674qc9/Y67n3rxzrvjZzzh7sfHd/27y0+98t13PYMfeFbRkr+6tWDGfdvGJPnwtoIlP3p7wYzfUTTjDxTN+KKiGV9ZNOOri2b806IZ/3fRjH9TNOM/Fs34b64rmPGZyFiosf+/RUt+17gl/07Rkn+/aMZ/QMaDq0m+eOlSmNprpwsWekPRjKemi1N7/6KFfmvRjE8cg9oXFi30FUUz/kTRjL82BpsfL1rotdcXL3Tv9QUL/ZaiGZ9dNOOrx2Bzz0zBQh87U7zQ7ypa6JOLZnzxGNS+sWihbyua8Z1FM/7pGGx+tWihJ2aLF/ofbyhY6JuRsdAs+stFS/6/45b8T0VLntpRMONJZMxbQ/ctWug3Fs14xxjUPrtooc8rmvGnx6D23UULfX/RjP+jaMa/HYPNnTcWLPS+NxYv9MFFC31u0YxvLZrxj8Zg84E3FSz0JTcVL/S1RQv9uaIZf3MMaj9RtNBPF834d0Uz3rCzOJu9nQUL/Y4xCv2tXQUL/TgyFppFP1m05CfsKZjxuXvGJPnfFy35feOW/EdFS/5I0Yybbh7c521Uu24uWOj+ohnPj0HtI4oW+tiiGZ85BrWvKFroa4tmfH3RjL81BpufKlrorr3FC53bW7DQxxTN+MKiGd8wBpuNfQULvbyveKFPL1ro9xbN+KoxqH1b0ULfUzTje4tm/Ksx2Lxuf8FCl/YXL/RByFtoMnxkUapvL5rx+WOw+2NFC/3JohnfOQa1Hy1a6MeLZvzKGNTuPVCw0LmiGU8UzfjNB4qz+cSihf7YGIW+oWihHyuaceZgwYyLB4uz+XNFC/3UGIV+qWihXy2a8dCh4tReOFSw0G8smvGBRTM+YQw2X1y00F8bo9DfL1roySMFM/4/yFho+n1g0ZJfN27J/7loyb9YNOOfImPeqv1s0UL/b9GMO+Li1J6MCxbaKZrxIWNQ+91FC31G0YzPLprx1XFxNn+jaKGfHaPQfypaaLtRMOPFohmf0yjO5peKFvq1R4sX+uCjBQt9eNGMTxmD2v9QtNAfK5rxtUUzvmsMNv+iaKEzc8UL3YW8hSbDvXMFqW4Wzbg0Brtfi7wj+qffVpTOB49B50Pz0/mIonReGoPO7x23+TyvKNUvKprxbWOw+96ihX6gaMbPjEHttmbBQmeKZlxsFqf2fkULfVjRjI8pmvEZY7D56qKFvneMQj9ctNDrbymY8T5FMz72luJs/nHRQvceK17o/LGChZ4umvFBY1D7+KKFPq1oxu8pmvHHxmDzXUUL/ZsxCv0q8haaDLcfL0j1bNGMF44XZ/eBRQt9aNGMd41B7Q8XLfRlRTP+4hjU/l7RQj9cNOPHimb8pzHYjOcLFvrA+eKFPrZooS8tmvE9RTN+fAw2H71QsNBXLxQv9E1FC/3lohn/xxjUfrZoof9QNOO/FM148ERxNr/+RMFCv3uMQp+GvIUmw2cUpfq5RTO+Ygx2X428Iyrsry1K55vGoPOX8tP51qJ0/uYYdP7hGHn/OD+PHynK48eKZty2WJzB6xdzM3jDYkE6dxfNeN+iGb+xaMY7cor0agiR7+pnxO7hqyFMbuv/bo1znW9d3ooCGBIluZJ4FJv77+TvVP/fdP89CUyeSSSCKTyTkCmb8Ey2/1+DZ7KzX8pK/mzz4Xtp+4Dscr/darUTXiRkjNA/jXu+OwgRbvbh9eJ2yLtkXntudXTP5VlHU6iHLf1vb8NvqZPrUP6UU/ny7etU+9iM+wNIy36apJF+KPQnOx2lL12Xkm+zyjeLNFuRb5vKtw3ySa5EXrLHJ/l73fZBWkmHPbxjy/BC6+ydd1y4s5t8Yxo0SL1dD1rl/fORLgZdbLsl1u9y293q8+3ltrMdPLKOtoK3a1B+eX2n3eP4HaEMXptxfw1ochnj+vHONjl9m/Max4ZplFdebMWlpVmUxzKuUfKV35tA0/UuNJ29TJquz0nTjA9Nd5CmmRw0jcPLrA8vV0jTbE6abnCh6dw50nRDRfLd4cJLp0WadlTAyzj1eaOLDM71SNONOWm6yYWms0Nj3U0F5Vu0PvPKYKeLDM5dIE07c9K0y4emof6yq6B8q6jPRAa7XWTQG6qX3Tlp2uND01Af3gMaBA8+HTQ44b+lId0fZURKLnIRy1iyuhnfKDNGMWV1M8rb6yKXFVweaht73ctvL+vi+314W9ZnDjjKTewgoovvN+R2COVPOZUv35ayDqIu5f6pSHtI1bfoB0J/gkvFWngoJd81Kt8s0uxDvv0qn/yWuknKf3z/3rOtjdLWk3Fc+vlu0OQzLrWW9VLaSqWMSNEpF/XSm31oqkwv3Y6/2PzsMpayTeWZ1yeVj/bY7Xgmti6p+6TvvODIIB3xfon11pmOBnp9hDIixZtc14P2WR+alqajYRtdFk2zoGnGh6a21m3L7juzhnwRB6rUviNlEdvOKtnK7xsg47WaL/ktbVzkO4088s6xTS/P6zco2kmz/JVnM6DJq93Rdis0bVfydCy/RdutlJH8/hmU7dSfl5LvXY8yiZdmIA9Jc3ZxkPYNSMf2JH9n1TPvOszqEzPRgCeOldOONOm1Ms51Ur7TWl0nL/biGpJP/++0uOY6Ck1V1JOfDXlFR/Np851W2ljKNe4d6pm2Z5bd5sXGJOOJlM+xlDa1Kafy5dtS1k2Qk9z/Rv/vbDQ8T0r+HUq+8vtG8PgO5NuuZD2t+Ja/nvIPtYkbQac15zvR1JlWNEkZkaIzUnRqG3fZ49CNOWi6CTTtcKFpZRzy4pf9Qni7Sck7kclOow52OfGbfE9sEDJW7DTkTbvtlFP58m0pazfkJPcf7f+dBZ0cK3Yq+crvXeDxj5BP98tp8M0xw1P+oTaxC3TKsx3+NLX03FA21tXtTfjYCRlImr9QfPPityTf9Up2M5AdbW27XfjrtHRfKfvbXvY4jjuUb6TkK5fweENfljchk3wnhrzXm/19D3iri/39H5BW29GlTmh/FzugpE0wt9jUaVvcNOI3x7HNf7Z/77gO1ZkCXXKk4R7Fb1L+QZ/yW7qtlN1WD0OebBf7wNsRlD/lVL58W8qS55txPzM1SIvARUPtSuhnW5W0yXgl7WdPgL+y5avHmQOKprQ0bFMhfg+A3/3Gt7PkNIs0+3OUx3zsewdVPvktbThpZ//Uv/fDzSuyv1nRIr+lTNrviPVunPKmr31lSpVJ+x31XUnzLycGaXf36ZuJhvVAzRP1Vi/dZyoa9l8lH1JmQqflD+6pjznpxEtpdpIbIQNJc2RqWBa8LBx/vSE73S489U0/HL/ybS+dKK9dQHgULLoFmeQ7MeTthKFb3j40Mo9LW71Z8a9x9pRT+fJtKWsf6kTue5jfNf6TOhH6Z6KBPiZpE8yp7QDEolnfnI1WY/W0eUTqLZHtAuYMHz1xBYsKXYJFdyp+k/L3+ZTfctTJhrCStNV9qi40zp6K/LAasYw8JzZ7ANqqxjzSroR+tlVJm4xX0n52BvgrW756nNmraEpLwzYV4ncv+L3Z+HaWnGaR5uYc5TEf+94+lU9+SxtO2tl59Fsn/64rxEjStqUszunk2WttZXP/21uUnIlZHjIiZtG87DS+9fCc+MdqSxb+8cF3w/Z2zZ+F7x6Twp83TvNci6IdPfm3zZCBpPk3UwN5Pa5/n4xvgvW4r/Au430EPniF1nE87YJOc6c5v+03eKvL/PaklPlN6pN2QZmj08b7XSofx23irZDtj1j2EtrcXRjDndYg2sRemh/OQ3tAozwTPZz9wdLRnfxJUnV07leWZ8QjTvpax3Ef/bKOTnsD62oLZCBpvi9jjtJ7tq31op1Knn71uTL2Tzt+28sml3evs/AoOvpOZJLvxJD3etN7aNury7zwspR5QeokTe/J0tGzvhmaM0bB+s+fkI4+rfh1XH9seeuQtOOzXVBH12s6HuXLt6Useb4Z929AW5V0kkbaFddPpH4kbVJv+3Fv8Ve2fPU4s1/RlJaGbSrEr7WX6vAI+bjuI2n25SiP+dj3Dqh8eu0r+c4rK8J3IZ8a4iGn8lv0u94J3t8E3n3WS1bsE/SL3Byt3oNA3fx3sBb1S336uBZFH0XtH38vW4vq1mkt6h05bTEba1GFro21KEMmxGhrYS3qD4Ed1tpa1G9NCOdurEWVX/4oOtlfpehkG2tRa2ct6kPotxtrUSvXZ0bELKOsRf1tTvyz1taivpjC371lLepLWBf4p/59aC3quk2r30fgg9fGWtTk5rdrNw3S1nEt6qtoc9Km6rgWRd03y1/U0y83pKPfBDrZT4Ump/WiZZqmFU3Thuy2GLLbbcjOZy/P8FgodMrvPaCzur1L6XYzKZNroFtqLLtZPPO3b6zQFNp7WJfyud+Rc6i139Gzf4baGNfZLXutk+x63uvX7C8Wv5uR5nR/zgnh2u1KdmLX43hr7XX3ikWUNt4yboxnzKiZaLWcIkWTXNf705TaF1n+dkeZ5IlZxXbi1e/zxkHh/Ow13+X1YeAc5zW3cS4dhSbasLx0jOloGKNm0cT9hl52velo2A6TRdP+CmhKGwurKj807lA3kn7ImF/SDzbhmbRDxutmbF1nfpbjw+0z5Oe531v7YslvrpnLfMP4MvQ9EDo9ba5Za+2zeDZdkey0jmztM9X+dpTd9TWUnWVDj8qjp0X5CD4kLY4+OMs2SfraUDaHUX7DpS66dyR1z73JUgYvjuEN0BS70LSy3/So07enwcMR8DKH8jaVVt5SdxblsYxGNCxf+X0UNDVdaFo5a0HKa+ak6RYXmlbOGJHybslJ0zEfOXVI07GcNB33kVObNB3PSdO8D03nSNN8TpoWfGhaIk0LOWk64ULTyjkvUt6JnDQtutB0bmh8WsxJ00kXms7eSZpO5qCp6BhSdDwcpz5PIX2JsrtEmk7lpOm0C03nhvri6YLyXSyYr6r6PIP0Jdbn0Bx0piAvCwXznSiYr2hdFaWzijquuh6SNtVC+hLb1FnS1CrIS9Hx9VjBfFW04UTmbaQvUeZD82y7IC9FZZ53Hui4yODcEP7pFOSl6PyRV8/pusjg7AXS1M1JU8+HpsukqVdQvvMF8xUdg4vSWTUurGrcWkL6EtvGedK0VJCXvO38rA8vQ3aPsxXwshb7VdFxuWi/qlqeTaQTu+tMf3HF0c565zToiVBGpGiXS+iYjuw+cg7f2FIana2hOfocyjvvIpeVtYBQ/Z13L797R/LtW314W/Y5/RpHud2n/y1Zs7jVkNvXovwpp/Ll21LWfVCXcn/dNYO0kk7SiB1e6E/W7y7070m/ztdQ+WaR5gLy3aryyW+pm+V1V4wBXm1tlLae+BxJPxfZ+a0Zrvian3P8ts94urKOw1jYUkak5CuX8Ch7Ajcjk3wnhrwv+NDtPiZI25Yx4YLiPylf91uP8uXbUtatqBO5jzEmSDpJI3Ui9Cdjgu4XCTaUfsP1wk0jfnMWadjnL6h88pvjxW738WL0udFzrfR8NHyl9THiLcnHNXSvdp8XW30N6Dxq0OnU95fp/JocdF4waIpKpGcW9Mj3GTeBe+na13jLp92yxq9ZRR/Hj/+EuAlLffqScUJ0O2mDM9HqcYL2lDJlSttRid9t0S43xnfb+kEEOWzCPcvKem+l7SLPkpEuuY4aac4HvntW5eE9fXYkz2a8/4Z+2wjt45O8Hv1d85zW3zcbNEVRubpdxyir68h/nnFZ6OC4TDp7jnR2c9DZM2iKonLH5a5RVtuRf8GHUkbSpx5xjbfsV/bkLqHMzaClB9lLmrsw5j/6Gm/ZtK/odbiyeT+jeBc+WuBd0nx7yjjGb0k+8Y2VbybzoLQrSZuMveKbyj6wPfKLt5jG9zaD70s5+d41It87Db6ZtoNnch9a8y+xPy7lHTfPgCavGDx+7WFl/Dmj5DuLZ5yfdF3L721GvumC+ToF8+0smI97xXxk3D2r/bVKrL/OtOJXyoiUDOQ6CX59xtaV9urE71JSX9dGg7Z6UtUtxxjhs+PE5xRkKHKW3x2U7xVnL/m203nUyzGRpO/rc1Gnwa+keX7GPNFVctL9luN8F7LjfqLbyuGtFSneOoqvpFyvM+K1P2nZdXYCfG0GH4uQvaR5SUadncBv1hnPshfZMe2JFNlO4ZnYCrsq32ak+flrBt96JTCnU59uOWL95fo5DdmQzzZ4lzQ/nlE/p/Gb9UPsJLKVtJ66jPatLVt2J5XshI9TkIGk+akM2Z0MyI64VWQmaamrdfFsyZAx59YS7fzLsVVFN2tBHv8FfcPDBpbFO8fsjg/vbfLeCfDu1La7ee0U7YA8yu5vXhhuGjywbjnmjFxWr93pdNu9c3ecPd86v9S6dOf5zuXzF5eWLl5Y6lzqXeK4kee7VzqtztLZK5dbSxe6ly70LtzzuV77zov3vGhdvONKe4k4NBe9Shb6QQQ5bIpWjxOjvLfSnkKeM0a6RG+ROqH+20Yay45RVL6ti+fvPNe5fLZ1qXXPf1eWLp1v9ZZ6Fy71zl/ptnor9VaoPZxt91p3XDh/+dK59rmLF+5Y6nYuXjnbbd3ZXuq2zl0Ywki5vjtCvVHGcs+yst5baVnXJ410rDfqRaPUG7FimfMIaVpEefTxLVtPpa4kZURKBpGS6RrFK8vj52lVn7N4Rh9IjeP0eMB8XHue96F9ea7jeCFlRIpOueZBk1P7aXvyq/eMltnuE12J2EF4kDYh5Yq8r4EsPX0bQm2O7eusT/ktvW+4zLpMvif+sKInCB/HwK+k+USGnnCLkpPUk3yT69u3QHZO/LX13vSyZTenZCd8NCEDSfPXGbKbC8juGGQnMpuD7Jz46zj663TpLySyEz64nippPpchu0ZAdk3ITmQmaYlZGO9A/LL0vCJ5JO1plccxzkSX8yP5jhTfcsX9v55zdjJWJzFYRM8V3VZ0Tt3Ptdw4dt/iRONUNFx/bBscf5zW680x4qySE8eIf845Rmh8FBojPHFqHuxDnDrnSFOevkI5efptzOWgib4UPj7Pw/ahUWiiX+6SD01d2s1GoWkJNHnhP8dxvU2bIOXLOEcllbWsw0pZR8DPkpKt/I77f8vMlzw7pfidRp5TkIFTG1ueE2JFu/xeAp3y7Lw/Tb284yjbfewkJx1LzKvdU2/P084OTyhfIhfu57gtKiSTrn5Aeg6BRo1Dp0EL51PP/qLP+JPf7C/yLMYzmfPO4pnMObSjeWKBPHNcVZgpDxZgHXv2xzyYiX3Bq92xnY9CE8dEp7iVXY5bo9B0ADR5xahMvu0ZN/eAId+94LGkspbjjkhZPAMpFH+TMWrl2ZEx83F8En55FixxuWds1NDZI4yNKs8Yh1TGlVMG7XM1pD3GMxl/juGZ9H+ZKxId+ts2D+4ftXnAk9Pabjfv3giuR3muxTj59La59kS/vEJrounXcp+XsminCvkJ0n+4hLXqVRfpOZmDHisfxxL6dUkejiVefglTUdi/l+ts2p/H0e+ul9cHd7ECOSXfPuH07WnwwPYiz9jOFpUM5PeJCeVL5LKANLdFhWRi6jpS1gJolDmKfvFCC+cvp7a53F+0H6f8XgSd8oxjvVP7aXE9lL6iz8Hc5+mDSd+xzaCFPpiS5lvmB2mf26ePfpUy5tFfqqpxMMt/hP65HAe95nDKVstRyuQc0q2x7OgfQ39aeTYH2s+oZ55rVGnz3ynQaeELL3w1Kp4Q+bRrLDtiB/YjeXYYz7T/l+M4vrxv7yTo5rofy6T/GvllXknz09A73rJ5wL/VPy2MV5d66uDZWm1jjv2zRV30TEAGUyWXd1jxzDZm9SfqPyXTM7RmLt8+qeTBfvF29IuHbrHlVdW8yTZj9Ut53wvIsSrfA+qI8oy69iT34IXGBXnPccErHkNaHTP2gjzjuOCEg1ocG7mX5L3A4U71tuxHovcX6vGc2Pw64PDf86dvSEehvvAH/jpKN6+O8l+PD9J+EGOsvKeO0lLPJo0LiamJt+T+NJ6lYTDi8UX1zNMWMorNIaFT7wvwtEc5+p/2aL+IUEakZCDXMfC74FQHnvwmPoHJHmXtu3pC8cp69Zx/F5Sc5XeWjVbeV4Xf9f5K+U08I89oG5hT8qVtgP3ZE0+EbAPEE/KMtj5rv4eMVcTdTvN57lgQFdj6unn3/Vh2Wo/xwjOek2VLLSF+3KqLdlv2h5C9l/2srHyWLss+y3bvOQeH+izXC3SfdWwHQ/iRcb2u2+Jedm78+Gzgx9k+fcSPXLuw7Iqe80gIP9LWaeFHba+qo648Y/BTlTynUuS5galtmnRbqbr80Bi3CJnIvWAR4kFrDZJ9wWu+TZtbiJ/0vBny/5H3bIuTXtuwfCWkDkLto0wbp+Vb5Di+Dc1vjMvS2+JeJ13WiZ7fzhj1dB/Mb+cxv63VNdy1vA5p2XHWsm17w7ZsXt1R9WGusaxlm6Xn+p1jP+4S12g7vBVX6/Z+Xe2IVl/8luTrGLLTc6W3Pm7pYY+roR72mWODtJcKzFOefSI0T7FeR52ntH5RBz3MmrvknusNkoc+H1XoQVrnYJmCobdGw9iaPh+S5ukp/dfLB9kxvspyHxObvPQxkdlx8C9pvieDf6+4JI4yWG4nTfDKMYUykDTP2TKQ1w/075N+KW2E67IvNd5H4INXaN2n4cN3y3OvaPK9I5DD5mj1OcrcN1m2Psfy5dtS1hHIW+5fsmWQ9pCqE6lPoT8ZxyQmCenX+RZUvlmkYRyVhsonv+P+34S0H0Kbeynm3nl8p+z6Oxrgh37PkiZNb7f8mbx1Ky2XeVU+dSbhK6Qzee2xTJtbqdvJs3nQ5BWXgnqpfFvbgkM6m7wnLvFsnz0lu56Sk2W7c8R5uffxkiYvf/28a5r0c/eMfdLOQRP7old7YvsdhSb2RS/dchrljEITx1bPtV/PPed6rOP4Rx0nz7g5bj6Od0IX96JXZS8MxVzgnCbPFvxp6uUd79g+vdqQ5xqSpXvnbWeLE8rH+BVRcZmY+/b0Pg76NFhroFWtfYfWQNlf5Bn96D33EVh+HZz7p0ouT+a0Cvbx5o6twrbp1A46bHej0MQxystHjuPIKDRxH4DneYd5Yhowpn3Th6bcZwY0QZNn/NijjnXQNOQbg8eSyurNoqwY/DSVbOW38Mx8J8fMF1q3lDzE/U5tzLRzyO8m6JRnjEWifXpI+2INabcwLv379PpDYmb6J9idvgK702kfnrp5dUOuI3it33iurzDOFudo+vuUVFaPtjmuf5xWspXfXF8sIebDqov0LOSgx8pnYZ2Q375T20312yc21nsnHe0avWlFk5QRKTrlmq9ATp5rObSZsL3IM7azeSUD+X18QvmIW6KoXB1NyrLmL57PJbRw/vK04R6PhmUiv2n/kWcc653az5BfnpSRTHvNrYOyvezH9BNI88uTNL/bHKSd79MX8new4g94joMh3zbuR7R04Un6YOSJ3TBJ2dG+Ql8RebYI2i0fa09/i9D8R79zC194+q+Mgie0baqOsiN2YD+SZ4yzI3loz3Aax1v0oRH/CSmfZcqzTdGwrxvzSpr79cez5fiOWwf8W/3Twnh1qSfu/VqrbczTD96yZ2sZlG0T1Wfuso1Z/Umvp5Xtp6J51XuS2S9uR7/4/7ba8qpq3mSbsfplnffIVBXPLTT3ZI0L1tmCnv7voTqm/7s847jghINaHBuljKTNfzfavKffsY6tosdzYvPnA4c/2Z++4N7Yp/nrKN28OkoXsnkGxljtf007WFX7VbJwITE18Zbc09c5DYMRj8+rZ95+rVk2h4ROGR9p+/GyRzmun/Rov4hQRqRkINdR8LsG14uuxlY5ofg5rnhlvXrOv8eUnOV3lo1W3leF30MxYIhn5JkVn/k4aNc6tzeeCNkGiCfkGW19lo+GjFXE3U7zeSevHboCW1/uMxQtO63HeOEZx9+ypRL7lVRWi3Zb9oeQvZf9rKx8li7LPst27zkHh/os1wt0n/X0QyJ+5D7SX6whfvzy3CDtWw38yLULy67oOY+E8CNtnRZ+1PaqOurKMwY/VclzKkWeG5japkm3larLD41x85BJ2h4caw2SfcFrvk2bW4if9LxJPMhYe3rvUx3WNixfCWtPEdtHmTZOYs0KdJGh+U3KSOaPP9nqXidd1ome304a9fSrmN8+tg7WcNfyOqRlx1nLtu0N27J5dUfVh7nGspZtlp7rd479uEtco+3wjB981Z6zbeVPKLaKtvu0DdnpudJbH7f0sC3b3MvOrYd9J+apa7cN5GX1ibqtx7NPWGM95ym9x70q3C60a9xOnYe6mdxzvUHj66pws3xb+xgmz5v9e4mtckzxtxlp9qf0X9ZDFJU7fjnZ55f7WKP/LeljIrOj4F/SHMngv+FEp6MMlttJDF6JIykDSdPcNpDXsf4998VwzFoy3kfggxftuA3I1Gkf6nK7OuQo04OQw2bwQd54pu+UU/nybSnrIOQt971tg7T6DGapT8aIkpgspF/na6p8s5F95nNoz7TUTSK/E2hzS5h7nc6gH4pNo/mhTVjS0Bf6lJFO5gBiFs/4/lou8tvSmYQv7i+sSmcKxXRcMGTHPfyesVU0DtJ6ZMgvX94Tl3i2z1BsFe57l2fE4n11KXow+tQD0Kc84vgTRzNe4DP6HYg4dQYyPaWeeetuoT36WXH0hL7rQftJ9Syh3SvuQRrGXgSdFj+kT57J/RY8k/vdeCb3e/BM7vfhux4x91jGFtBShY/qFOS6uf9toYVrMT5rHN07qAdFKINXaF3cS1fy1GW45sA5tInyNpVW3lKX6wksI2sdQo/55dF0rkea5nLSdNSFprNXSNPRnDQ1fOTUIU2NnDTFPnJqk6Y4J01HfGg6R5qO5KTpsA9NS6TpcE6aDrnQ1BnykzmUk6aDLjSdGxqfDuak6YALTWfvJE0HctBUdAwpOh6OU5/7kb5E2V0iTftz0rTXhaZzQ31xb0H5HiyYr6r6vBnpS6zPoTno5oK8HC6Y71DBfEXrqiidVdRx1fWQtKldSF9imzpLmnYV5KXo+NoomK+KNpzIfCfSlyjzoXl2Z0Feiso87zxwk4sMzg3hn5sK8lJ0/sir59zoIoOzF0jTjTlp2uFD02XStKOgfI8UzFd0DC5KZ9W4sKpx6wakL7FtnCdNNxTkJW87n/XhZcjuMVsBL2uxXxUdl4v2q6rlOYd0V9dX+kZqRzvrndPR8J45KSNStMsldExHdh+Zxje2lEbn8F6eaZS3zUUu6T7Z29zL796xPRrIvWTelv0CrnGU26b+t8QvYLMhN65vTjmVL9+WsjahLq/SuH2QVq83MiZMciVrP1v796Rf5zuu8nGdcivybVb55LfUzXLsy77QPNvaKG09Gdekn98nGtC0z4WmTkuPJWV/22c8XVnHWYyGr7TxVHhMMMzuaLDGl2SS78SQ91Yfut3HBOFZxoStiv+kfN1vPcqXb3MskL9yfwBjgqSTNFInQn8yJki/2IS/0m+4XrhpxG/OIg37/FaVT35zvNgBzDDpudFzrXRbNHyl9THiLcnHNXSvdp8XW10DOo8ZdDr1/WU6r8lB51aDpqhEemZBD8vywkP0C+M4dQp9ycd3vL3sZ6HPbtWxwejrch4+8O0+ffQjl/Y9E60eg8hHmfVFH7oSv9sqyd+6rR9Qtpui1XECR3lvpV1AnkUjXXIdM9JsC3z3pMrDe/oD0Y9d3n9dv22E/Lglr8dYonlOG0t2GzRF5dEzFHeYZXn5fOYd8+kHesyg02vPSl7/Kmv/fRSVO+YvGGV54nR9vmrSpx7iPuZ3hnzr0sZ8SbMDY/4j3G1C7Sva76xs3ucU78JHE7xLmsekjGP8luQTH1v5JvcpSdpk7BUfV/aB7ZFX3KR0vtsG34/LyffMiHyfMvi2YkVwL1fI96/E/riUd9ykr/yMD01tv/awMv7MKfnO4hnnJ13X+txT5jtTMN98wXynCuajT7aPjLtntb9jifWX+5zVGPz6jK0r7dWJ36XEPnVtNGirUo7UHccY4dNzz6rIUOQsv+dRvtN5bi3HPdHL5y/o/ebCB/dES5ofzJgn9N5e3W85zlv7zaMS5RYp3uYVX9oXuOy+4bTPcrnOuJdvM/g4DNlLmh/OqDN9hrvUmXyTdca0h1JkO4VnYodcUPk2I83Pbh9862XAnF7x4Bz7q9mn9B4n9qkfLdinGH9GxsUKzsBtO461Hdp69XhEu4OkeU2G7I4HZMfxSGTG9V59LhzXWUL7ZUpcQ2gx3k4T8ngj+oZHDMss3hlD/owP723yfibAu5M9pcuYUxHK4GXZU9Zofxuyy3BeLHQmV6/d6XTbvXN3nD3fOr/UunTn+c7l8xeXli5eWOpc6l1if8nz3SudVmfp7JXLraUL3UsXehfu+VyvfefFe160Lt5xpb1EPTEXvUoW+kEUDdtP5Z5lZb230jaR57iRjrYp2lyy4qYUlW/r4vk7z3Uun21dat3z35WlS+dbvaXehUu981e6rd5KvRVqD2fbvdYdF85fvnSufe7ihTuWup2LV852W3e2l7qtcxeG4oTn+u4I9UYZyz3LynpvpWVdzxnpWG+0W4xSb/QbK3MeIU1HUZ7TWmknrz2eth4vG7mnDkw7kvBtradOReFY8U0jH9e1nXSUbt4YMkdAk2cscC9+PXWyxF5B7KDjmEi5Iu9rIEvP+AuhNsd1fie/Dc94QMtxpnQ8IOGD+qWk+bMMPeGgkpPUE9e3RWYHITuveEfJtw84ym6/kp3wcQAykDR/kSG7/QHZHYLsRGb7ITsn/jp+foIrsturZCd87IMMJM2nMmS3NyC7A5CdyEzSErNwT5P4eul5RfJI2mMqT0Ii9/KVPcfkWWcROjzn7GSsTtYDRM/VMa11P9dy49jtGeMxZHPmerVTzKvU8ZW+S5LmSznHV41zGPOR+2a5Rpv826PybY9Wx2W7rRwZDM2fU4qPpsHLqf5mmuW4PtcO6POy3dNWQ1nzYt+ifu9l+8xrP2HcTi8cxLhXo9BEbOQVXyrv2UAVxGbt5vUlp/7qqbt5+uTMG/ItZOvIuOgXxjFlXslWfnN/Xln5GPuP8X8lD89+9VxLDflyU3+WZwv+NPXyjqNs915t09tmITwwfmWedtacUL6SbL1d/YD0MN6jzGUiJ9pMOJ9O0vdgNlodS9Vz7ZQxWUOYomwbpsyVxAtO/SP3uX1sm17ronltdSHbstc4MgpNtD83HGk6moOmBmjytLM2ctBEO2vsJCdHW+hyHRwx5EvfkZLK6jJmNG1xOta09o9hvmNj5uP4JPxOIw/1CS9/o6koHPf7COiUZzGeybjSMWhv1pB2znFebZh4gHUvY4vMQ4mu/9hrB/e3Q+930h1z+yhQt/H0UfDc46LPdCL2jqJyxxN95vFUNKwXb45sXyAvvVHKOpaDHisfxymejSV5qrB7pK2HL4JOeUa857QXoJd3b9JcBXLyxkja75++8mxnIR/7xoTyERNFUbn6n5QVg0aZ/0ROxHKWTurRXxpKJvKbeqo841jv1H6GfASljGTuey7mPk/fWvoEbgYt9K2VNNdfP0j7gj59M9Hqc+9oI65qHAydjcDzBbTfsOccTtlqOfL8Wn1eZB1lZ9koeF5DE7RrP1tPLDMVjXYOtV6T9F5rDOGJE5CnyOdUjWU3G60+L5tri0fxzPLDc/JratHuLWuZUj7L5J5+8su8kub10Dvedu2Af6t/6rXtOtXTGTxbq23MsX8O2aZPBGRQtr31qOKZbczqT3otpOx1eM3rcSUP9ot3oF888jpbXlXNm2wzVr+0dC+vNaU03YvrhtZ+AK/zYNPmnqxxQd5zXPA8Ay5Ux1xD0+eAO+KgoT1CjO/we/6+J8v+QTx3jOMk941KmvdND9L+oT99QzoK9YUP+uso3bw6ytMhmw9jjNXn99IOFjqTq2pcSExNvKXjEWVhMOJx7b/orV+HfKTnQKcVe9YJK/Yc7do92n4ilBEpGch1GPw2nOrAk9/E1zM5Z2BB8TOneGW9es6/IVsO51/LRivvq8LvIR8d4hl5RttAU8mXtgH2Z088EbINEE/IM9ojtS8YcTBxt9N83uF8HqGMSPETKTodx8fcPoG0jXuOF142MI6PlK9HfIq8cXTYz8rKZ+my7LNs955zcKjP0sat+6xjOxjCj1zrnb3Ovezc+PE+wI839ekjfpQ6ZF8O2RGqwo+0dVr4Udur6qgrz0T2OnAV8pxKkecGprZp0m2l6vJDY9wxyMTaSyztnf1Y5Mi+4DXf5l3PJX6y1k/lPdvipNc2tM+H5Z+s20eZNk5izQp0kaH5jfF2zl/nXidd1sko8Ui/fN0g7X0wv63VNdy1vA5p2XHWsm17w7ZsXt1R9WGusaxlm6Xn+p1jP+4S12g7PM8TkjTf0a+rUeOlnTFkp+dKb33c0sMu1VAP+8+Ypx5fYJ7y7BOheYr1Ouo8pfWLOuhh1tyl4x5R56DPRxV6kNY5WKZg6K3RMLamz4ekeVZK/3XyiW557o1Jvic2eeljIrMj4F/SPDuDf6d1hK6jDJbbCWPWcEyhDCTNczHO/FD/nn6pXJd9hfE+Ah+8Qus+TnFaltvVfkeZ7oMcNoMP8sZzlKecypdvS1mMEyP3//G6QVodE0bqkzFhJA4F6df5GirfLNIwZsYBlU9+M0bQC9HmXoG5N8Z3yq6/gwF+uJ9B0mTte9f+TJ77IqcMuchvS2cSvrh3sap1PilPZKzlRNnFoMkzZpnGQdoWHNLZ5D1xSexI50klu5NKTiHbncTQpQ3kTD92DHEY9xIT+3JMoK+NpHkz+uoXMnSzuvmFEnNaNgfiUH2OS1X2Y6Fd24+tWNIW5qSdt4o90bTfyrf1/g2OWYJDNZ7gOPbuFBw2g3Rsa9Z+WK/4ecSVQrv8Zlw6vb/XkSYzplZH0bQZad6boavr+THu33fAn/DFmIUHHfnT5xLMqfKJYz+QgeW96sFRBm3iKcHypwwZSJoPYqz+Y2B1aZe0P3zSeB+BD17E8ocgU6e4iC2NpcuW6c2QA3EzeeMZg1NO5cu3paybIW+5/wtg+d2qTqQ+hX7GdyT9Ot8RlW8WaahD7VP55DdjVn4Ube6TFWH5/QF+6N8habjfXuYKSR+aRzxtOKF5hLSnxVUg9pP3xCyedoVY0R4rec7iGTG/YBXqVXp9kvjS0wZMO6zwoe2wxJZbozBGljT/mDL3hHzHLwFL6zWNuvqnpNlFiaXXgn+I5R8xE62Oxe84li1jHOk7GsPF4EfSXNf3zQphOB1vRq/7JfwJDmdcIC87p4XhhBbrbKkdKfx5Yziv2C/E1oLhThgykDS74X93c/+eGI16/jHjfQQ+eIUwnJPNtOWID9u0T0q72m/wpnGWR/nybSlrL+Qt97dMD9JKOkkj9Sn0J31U8Dzp1/mOqHyzSEMbu8ZK8pv27ANoc9KmvDHcgQA/9FGQNDJmefvfaHuSjm86Fa1eX7N8jSTN6ZTxLIRHJW9Vdo1GNMyz/D4EOuVZjGcyt9MXT97XEY+OatPnXhNdt/RpW+s+0dpvcq3YQD33ytG2qfHKMdApaR6Qgce0n6vInHhMr+F77r8hVtb8cQ+bpHlIBh5zqoeut77QAK+0qVEGkuaRmBsfBbylff+S91eM9xH44EU8Rh9dp/Gy5Y1xQ2fIkjfPsxUOqW9LWbSFy/1l4DFt99a+Elx/IP0634LKx/XkGPmyYoIux31Em7sCPOaJfeIAP8RjkqYKXz1rfrDsNFJfGo/R30nSPCkDj2n7Bn13OZ97zokh311iFe27G/K/n10HvrQhrLLW/AZpY5I89CU8ZvDYMHiMHXkM6QIx6EyLoeiBx/LYx16U0z4mMk+zj5Fn9p0j6pl33YTmjRh0al9Hb9ul9rW06kbSvDKjbvS6iMicdaPnyigatv1atk2vOK9p/M8Z/L86A0t7xazwxtIxeKVtkzKQND8FXPMzGbbNXzbeR+CDF7E0fS+c1uVbjn6sQ+ub0q4OGrxpf1CP8uXbUtZ+yFvu3wIsrdeLpT6F/qQPCwYn/TrfEZVvNlq9Rm9hcPktdZPI7w1oc78MLN3Ad7x0Ic0PsbSkoX40adum0JJm25Q07xjRtsm4M9Z5sZ46aWhdkD4BV8/bwzPBW7TLrrW4M5bP7XHwY9k2P2jENKbfqN6/JHl51hd1s7LHpY76tpYJ2+wfoN9vuX41X+tln28d9aC0OBJpehB16ygqd76OfWRiruFLv4ghJ0nziQwc6Hleeezz7SG/JsGBZwwZSJq/RN/8a+A8jfmT939vvI/ABy/iQOoA6w0Hkre64MAvpuBAqc+8OFD7+46DAz+NNvf3E8KBwg9jhWgcSOzEtUhtv6tTDAHiD5mHuJfGsmPV7YyLUbET8YQ3BuwoPnRMXGKJrZGNyYgvruvTHfJT1Hl1/F+ndewOMViEMiLFv1zcd+eF0zxxFHEb9Q7GR5dy88Qh4RqFE+2dKUVnaM1F0uxLaXMWfyIP2v10/HPiSeJ4S7+8t8YlE5p0+ZxfFmosO+rm1C3W8jqJJ9YYJaaayOdYjWXHuZn9SJ5RV6SuVDb2jdW39RmkpGkeNHn6UjN+A2XHMuXZpv7vuP+beSXNL+A8q/vARnLKkHXDUdaL6ttSlmX7oKzjyE/WDSVrKT9G+Z7tT9vRdPuz6npRyY11/UzU9f1S6pq8PgB5ngHM6+TzUbmdRtcp7TTfmoJb1pOd5rghA0nzCNT/t/Xv6TdCHHjZeB+BD14bdprJ2WkuXT9Iq+0tUp957TR6nW8cO81j0eYuY8zxxE6HAvxQN5M0XH8RrEw/rDqfrVAEC3qug4SwIG0yGgt66iW0AbE8pzi9rdA+2GegD7zRmKu5hiKyoi9Z1bhU+/5qXLoZaZ6TMa+ulz1+xw0ZSJrnoX6fj3kz7r/nvPpK430EPnhxXt3Y41de+fLttD1+r8C8qvfqSX3m3eMXq3zj7PF7EdrcKzGveu7POhDgh/OQpOH5gFXOlzKmskyhb6tKY8XQfE3KeEaMEPf/hvwNPPFNyN+A9SDPuH/Bwgjyvip7UZbf62xkx/9IizlBP8M3ol/cd2bAkyfuCWE24h7LRmv563u2m5C/PtvNopKzt/9JyM7JerbarbW3sS64vAJs2+K4wz2O77zeXR7mGQ163GX7+tTMIO17QJ9TnxySDen8zRrK5kchm/dCN9BjQ0gXXasxDbmmwrWfWD2b9J5z6l8xaIp9aOo52rZ6eX3vD4BfL13Lk98bopXzPecUP0cUrzH49Jx/Q7HCOP9aNih5X9VabkPRqW02tONw/msq+Yb8WT2xWMi/glhMn/c6akwzTz8MrtlHKCNS/ESKTs+1C845o9BUQQyqtifO4/hI+RI3l1RWi3oO+0NIP2I/Kyuf5ZPBPltBHIPUPkvdVfdZx3YwhB9pu/tqDfHjtwM/XtO/p21544zMYZr03JO2t4G4dOOMzOwzMi2c76kDe859xGs6XrV19szN/b633s+eWTRkIGkOYiw63L8nfj0FeZ4y3kfggxcxxsbZM+WVL99OO3vm5MwgrT5DRupzkmfPHEWbOwV7b4zveK0Nan6oH0kay79A0of2gXjqR6F9IMSEeq9XnviAnvpzrGiPlTxDMY28ME6eWNj3BTYbNXZP3eIMVrWPVr6tyw/tQ6+b7LiOkrXfd1E9q0O9V3iW7NCYJN+2xqSmkmcdZcd65/q3Z0y1UWLfC01pse8lze0pOHY6smPfP/falXvqc9ZaHfUUT90ptG5B3Slt3YL9s6Ge1XUvihNNZsyuND/rf5vSfvgtyScy5zgpfNGe6KnnxQH+qONImqdk6HmxE53eep72I18wZCBp/h0w9zOhx0m7pP3qBcb7CHzwop4XRwOZrjc/8hi81cWP/PnQ88qK+1Tmfv/vQ5t7AfQ8T/tlaL+/5UfOsdgTg+j5wfJ30/O99g9jnb4kZTzj+gBjF+g53ntODOGuGHRqv6Vpg2/a8NeLjwWxivanmPQeVdqDib3knv4hkof+IbHB42GDx3vROZE9jpcar1jnRP5CBh4LnRNJPKbPiSTP7DsH1TPvugnNG6ybWNHuuSeBNsu0upE0b8+om9CZKqwbPVdG0bCdzDrj0wlH9tL4P2Lw/64MLO3lF1T1mskxQwaS5r8D1/wWsLI+uzx5/yHjfQQ+eBFL049rvZ3xSd7qcsbnB4Gl9VmdUp95z/g8qPKNc8bn+9DmPgQs7bmfan+AH2JpSRNHA5o88b1eY9f7Qmgb0Fia58dImj/LwNKWb5/k5ZzpqZPG0TDP8ptrcfLM8u07CNrXmm8f1+cEZzbAj65b+oxTX5gHjzp2krVmwvZU9rikY23ofQnUlz6Pfn9sdjVfG3pQMdo99SDq1lFU7nxd5Vn2aTpK1G+LIRzodSa9t36iz3pfMGRwFS/PDuS1rX9Pf1TaVPcY7yPwwYs4kDrAesOB5K0uOHD37CCtxnNSn5M8630abU7aVNU4UOu0Fg4Mna1p+bPWEX/IPETbpGXHqmJ9R2g/rOTJc+oZW3AU7EQ8UfUavGX/FjlrzL6IfFf36KbMPaF9hO9EDId2/znj7p+BLJzW/lvJ97h+n/zb0/8tZSbln0T5ZY+Fe9S3tW8Oabpj50A+S/7y6dC3LkIZvDg3hmRWNk2nctBUxbg2jXJGoYl6jdfZclxjGoUmxsmd96FpeS/UiRw0MVaP13joaR+ZBg/WWYlReWW1rDOcp/BMZGv5WpaVj36vPP9Z8tCfy6mNperB86BT6/iONPXyjqNs915tM/l20+nbbPf03c7TzpoTyke/uqi4TLr6QQgHylxGX1yhhfOpZ39pRsMykd/sLxp/e+Iy6ioV4LAWfR+IF5z6Ryfv3My26dQOOmx3o9DEMeqoD01D48goNNHe13Ck6WgOmhqgyXOPeSMHTRWchdr2tIHQZkf50tespLJ63PNNO2fWmeXMd2zMfByfuNYieahP1MX+EeOZjCtnDNrraLvhHOfVhokHWPcytsg8lOj6L4GN8aXQ+510x25eHZu6jZPe7x6zQngg3qAeUVJZy+OJlEVsr88i1eeme+qNUtaxHPRY+aw9W7QxV2H3SLMx84wxy+7tdS72tKJJyogUnXLNVSAnb4wkPLC9yDO2s1HOaKkyX0lrxab+J2XFoFHmP+4JFlosndSjvzSUTOS3FauKY71T+2nRXsL1kV/F3OdlX06+xxgLm6PVe425HvL1Nw7SvhP+ILKmQT8ly6/Fa74kH5pmKZP7VDnvVbnXUpfPOaRdY9lZtpvQ/uQT6pn3+l7W3D0DPtifPefkk4omXX5of3LdZEfcw34kz7j3Qp/vTAznsZbJWNzEPSxTnm2KhnGedU7hn0Hv+PTsgH+rf8p32D/rUk+0Qa/VNubYP4ds0ycCMijb3npU8cw2ZvUnvRZS9jq85vW4kgf7xefRL150gy2vquZNK24C+6Wle00yXh11L64Hep4ZHJp7ssYFec9xoe1IZ6iO26DTinXkhINaHBtpj4rQ5p3qbdn/tY0yOU7SN0bS/PMOpPWnr0W/Jcbx2IaynXB0d0qVSTmcgmwkzRshm+k+fVaMGvqxVGWrycKFxNTEW3I/j2dpGIx4/F4eh7LnaNfu0fYToYxIyUAu7vdtONWBJ78SH137rM4pXiuIf51qy+H8q+Mr0UenKvye5ywQ2gaaSr60DbA/e+KJkG2AeELHTSDGpg1BxqoK1lA6ef3vKrCNd/P6TtI27jleeNnAOD5SvsR+JZU1ZHNmfwjZwNnPyspn6bLss2z3nnNwqM9avlhcC/DycSJ+pL35G2qIH58C/Hg/Az/S19OyK3rOIyH8aMXgtOx1xL5105VnDH6qkudUijw3MLVNU1Zsd+/yQ2OcFVuevp3S3tmPdRw6z/k273ou8ZO1firv2RYnvbYhz9L853X7KNPGSaxZgS4yNL8x/soTb3Cvky7rRM9vJ4x6OoP57SmY39bqGu5aXoe07Dhr2ba9YVs2r+6o+jDXWNayzdJz/c6xH3eJa7QdnvFRJM0r+nUVisem7T5nDNnpudJbH7f0sFfVUA/7+A2DtK8pME959onQPMV6HXWesmIiTVoPs+Yuued6g95rWJUepHUOlikYWvby6/OhaSf+Lyn918knuvIzqKxYgpLmrRn8r5czqM4YMpA0v4px5h39e/qlcl32/cb7CHzwCq37bJxBNV758u20M6jed8MgrT5LSupzkmdQvRtt7v2Ye2N8p+z6C51Bxf0MOoZoaN+79mfy1q1i9e1YlR/aM2bpTF77N9PmVup28iwGTZ4xiDQO0rbgPGflxI50Snkiu0Ulp5DtTs6XoQ3kPf3BnTiMe4m1z7v2bSGm+wv01fkdq79LHFo3v1BiTsvmQByq4yJWZT8W2vPGb6QvjHWGaBX2W/m2tB+WGffvBYdqPMFx7AspOGwG6djWrP2w96K49mbMyLaiaTPSfCVDVw/FtW+DPys2ulesSeJYfZ7sQdApaTbtCPPnWQ+OMjBjYp4yZCBptsG2fW3/nvvnaX/Ya7yPwAcvYvlDkOl6i4lJ3nSsNo/y5dtSlhUT8+Ydg7SSTtJIfVoxMUm/zmfFxJQ0eWNizqDNSZvyxkqhmJj075A03G8vcwVjYlq2s7r4k8V4JriE2E/eE7N42hViRXus5BmKhS5YJevM13m0nyr3JWo7LLHl1iiMka/GEUiZe0K+46+CTdeKc19H/5Q0uyix9FrwD7H8I2aQh1g69qF9GePosyKlrcTgR9J8XUo747ckn173S/gTHM64QF52TgvDCS08P1HSfNMEMZxnDGdiNY4blIGkeQDm0wcZGI16/u0lYDgnm2nLER+2aZ+UdrXf4E3jLI/y5dtS1l7IW+4fCwwn6SSN1KfQn/RRwfOkX+c7ovLNIg1t7BoryW/asx+CNnd7RRgudFYXfRQkjYxZ3uuaDUWT9iNK0kh9aVzQQD5Jc2fKeBbCo5Z/g6ddI+TfcAh0yrMYz2Rupy+evK8jHh3Vps+9Jrpu6dO21n2itd/kWrGBeu6Vo21T4xWeXyVpnpOBx7Sfq8iceEyv4XvuvyFW1vxxD5uk+aEMPOZUD11vfYFjNXVwykDSvAhz448Ab2nfv+T9TxjvI/DBi3iMPrpO42XLG+NqnH/E4I120imn8uXb+mxT6hk/Djym7d7aV4LrD6Rf59Pnv3M9OUa+rJigy3Ef0eZ+AnjM0/c4DvBDPCZpqvDVs+YHy04j9aXxGP2dJM3PZOAxbd+g764V078K25T8tuLuc4+d5X//Dets/z+xylrzG6SNSfLQl/CYwWPD4DF25FHrP/I7Bp1pMRQ98Fge+9h/y2kfE5mn2cfIM/uOPmfOu25C80YMOrWvo7ftUvtaWnUjaX43o270+rrInHWj58ooGrb9WrZNrzivafzPGfz/UQaW9opZ4Y2lY/BK2yZlIGk+DFzz0Qzb5v8paNuk74XTunzL0Y91aH1T2tVBgzftD+pRvnxbytoPecv9XwNL6/ViqU+hP+nDgsFJv853ROWbjVav0VsYXH5fPSP0nn//C23u/wBLN/AdL11I80MsLWmoH3liL71Glse2SduHpPn8iLZNxp2x8KanThrCm/QJ0GfP0LZp+QkQi9U57gzX3wVn8jxNXbeMZ8Z9RvQb1fuXpO20IRPqZmWPS231bS0TttlrbhzQeuuNq/laL/t866gHpcWRSNODqFtHUbnzdewjE3MNX/pFDDlJml39thjCgV57o7z1E65l024R47mk2Ye+eaB/zzgU3HN0wngfgQ9exIHUAdYbDiRvdcGBCzcO0mo8J/WZFwdqf99xcOARtDlpU1XjQOGHsUI0DiR24lqktt/VKYYA8YfMQ9xLY9mx6nLGBeMRjIKdiCe8MWA7GuZDx8Qlltga2ZiM+OLrUuaeaSOvjv/rtI7dyRsXkPvuPM/M8TwrWJ9JNKv4knLzxCEhDneivUOa9Jkp1rkC35LS5iz+dLxu4l4LTxLHH1PP6uh3OmmfCs4vCzWW3SyeUbdYy+sknlhjlJhqIp9jNZYd52b2I3lGXZG6UtnYN1bf1meQkqZ50OTpS834DZQdy5Rnm/q/4/5v5pU0fw5M/BTYSE4asm44yvqE+rbGZqSJso4jP1k3lKy1D6R3+9PnX+v2Z9W1jr3Lun4z6vr7UuqavD4Hed4EzOtkG6vcTqPrlHaa591L7DTHDRlImhei/n8Ydhjt55C8/3HjfQQ+eG3YaSZnp3lVip1G6jOvneaEyjeOneYlaHM/PiE7jR5HaafhOpEVj6POZysUwYJV7rdoKHlaWNBTL6ENiOU5xelthfbBvgl94BPGXM01FOscnKpxqfb91bh0M9L8Ssa8ul72+B03ZCBpfg31++uYN+P+e86rv2u8j8AHL86rG3v8yitfvp22x+/9mFf1Xj2pz7x7/GKVb5w9fv8Nbe53Ma967s86EOCH85CkkXnVe/1ar73r+LNJGqmvrSoN47RKmg+mjGfECHH/b8gPZpJ7xOgHw/0LFkaQ91XZi7L8XmcjO/6HzH3EazJHMt70J9AvnnbTgCdP3BPCbMQ9lo3Wiq/miYtD8dXYf/WZwt79N2Tn5HqI1W6tvY11weUVYNsWxx3ucfy7G93l0WVb0rYXxhW/Ghdh5yDt34M+r5jq1r7dpOx/rKFsfu+mQdqvQDewzjiydNG1GtOQaypc+4nVs0nvOaf+FYOm2IemnqNtq5fX9/4A+PXStTz5lfM95xQ/RxSvMfj0nH9DMSc5/1o2KHlf1VpuQ9GpbTa043D+ayr5hvxZPbFYyL+CWEyf9zpqTDNPPwyu2UcoI1L8RIpOz7ULzjmj0FRBDKq2J87j+Ej5EjeXVFaLeg77Q0g/Yj8rK5/lk8E+W0Ecg9Q+S91V91nHdjCEH2m7693kXnZu/Phy4Mfz/fu1HIPQW48LxY/fOCMzm6asMzJDscu9dGDPuY94Tcerts6eeVC/7633s2dOGDKQNA/FWPTw/j3xK/cD32G8j8AHL2KMjbNnyitfvp129szFmwZp9RkyUp+TPHvmUWhzd2B+jvEdr7VBzQ/1I0lj+RdI+jqe9ZYVrzorPqCn/hwr2mMlz1BMIy+MkycW9tOAzXSd1/WsFSv2YRXxhOTb1lnMIp9TNZYd11Gy4h7V8VxfPSZUNSbJt60xqankWUfZsd65/l3l3nMdS4x0b1VpThm8vDQFx04beZOx7VdnV+6pz1lrddRTPHWn0LoFdae0dQv2z4Z6Vte9KE40mTG70vysX5fSfvgtyScy5zgpfNGe6KnnxQH+qONImtdn6HmxE53eep72I18wZCBpfgGY+83Q4/R+6OT9O433EfjgRT0vjgYyXW9+5DF4q4sf+a9Dz8vyB5/Efv+3oM29E3qep/0ytN/f8iPnWOyJQfT8oG3D1nx/UtHIOv2tlPGM6wOMXaDneO85MYS7YtCp/ZamDb5pw18vPhbEKtqfYtJ7VGkPJvaSe/qHSB76h8QGj4cNHu9F50T2OF5qvGKdE/nnGXgsdE4k8Zg+J5I8s+8cVM+86yY0b7BuYkW7554E2izT6kbSfCajbkJnqrBu9FwZRcN2MuuMTycc2Uvj/4jB///NwNJefkFVr5kcM2Qgaf4BuOZLwMr67PLk/fadq99H4IMXsTT9uNbbGZ/krS5nfG7bOUirz+qU+sx7xudBlW+cMz7/GW1O2pT3fqr9AX6IpSVNHA1o8sResaJJaGGZUl8aS8fIJ2l29GWZtXcka3+pp04awptci7N82wVvHQTta823j+tzgjMb4EfXLX3GqS/Mg0cdO8laM6GOWva4pGNt6LqjvtSEH/7tO1fztaEHFaPdUw+ibh1F5c7XVZ5ln6ajLKWMm472v663fqLPel8wZCBpbkXfvA9wnvbZTN4/0HgfgQ9exIHUAdYbDiRvdcGBD0jBgVKfkzzr/Ta0uQdOCAdqndbCgaGzNS1/1jriD5mHaJu07FhVrO8I7YeVPGfxjLEFR8FOxBNVr8Fb9u8QZj+BfJLmcSlzT2gf4d8ZsbOi8vhsJd/g+vqW/j3jgMn7dx4apLuyczVdJddBhz5rEcrgxTlH6EhoWnSk6WQOmqoYL6ZRzig0VXG+bN5YXvTJd1pn63IcH4Um+vXNO8nJU9ehbkX5NsFjSWW1qMs3wc8oMWXLykd/Uis+bVVxQkL7Kei3Kc/m/Wnq5R1HKzgvue3pl8V2T5/oPO1sbkL5ErkcRZrbokIy6eoHpOcoaNTxaWjT4Hw66bgc8ox+AF6xRKkDhDDFVMnlWX7FTv2jk3duZtv03JOcx2eLY1TDh6Z23j3JDdAUO9LUyEFTDJq89oXljS9H3wUvPdTT3kadOgYvXCctqawudWXaJrN8RZivOWY+jk9x/+808lCfqOKceKFdftP+Ic9oa5Bx5ZRB+1wNaecc59WGiQdY9zK2yDyU6Prvge3uN/xtL91xznRx0vvbnjqgdaYLsXcUlTue6JgLafZG6ideeqNe2x2FHiuftRdqGnmqsHtMoTyhXX5zjVueEe8d9aGpN61okjIiRadcRyuQkzdGEh7YXuQZ29lRJQP5HU8oHzFRFJWr/0lZ1twociKWs3RSj/4SR8Mykd/UU+UZx/rYh6YW7SVSRjL3fQpzn5d9OfkeYxfQ/r4IGUmanzgwSPs5+FnoM5qt9QXP+ZJ8aJqlTO7/5Lw3yfNzOYe0ayw7y3bDfb/cQ7GgnnlimVHm7plodYxa7zl5UdGky+dYeLLGsiPuYT+SZw080/ECiOHKHjNp9xYfFCmfZcqzTdEwzmNeSXP9rpW/y2f97hrwb/VPvT5ep3qiDXqttjHH/tmy/EC1DMq2tzYUz2xjVn/SayEl0jOkM8i3jyl5sF/E6Be/vsuWV1XzJtuM1S8t3cvTtzOke1l+JlwPPOVIU2juyRoX5D3HBc9zm0N1zHObrRhCTjioZfldJW2+jTbvVG/LfqU8y5jjJGNZSJpHAYcv+dO3LJu2omc5LiPKdsLR3SlVJuVg+Q1thmzugzFWx16hH0tVtposXGjFtyR+pX94GgYjHm+qZ976tZQnPMpv7n+1Yk46YcWeo127R9tPhDIiJQO5eB5Q7FQHnvxK3PF5xc9RxSvrtcp9TvKb86+OW0Qfnarwe8hHh3hGntE2MKfkS9sA+7MnngjZBogn9P4iYmzaEGSsqmANpZPX/64C23g3r++ktVfGY7zwsoFxfKR8if1KKmvI5sz+ELKBs5+Vlc/SZdln2e495+BQn7V8sWLQ5OXjRPxIe/PdNcSPv7d/kPaZBn6kr6dlV/ScR0L4kbZOCz9qe1UddeUZg5+q5DmVIs8NTG3TpNtK1eWHxrgmZCL39O3UsS05R7EvxI6051nPJX6y1k/lPdvipNc25Fma/7xuH2XaOIk1K9BFhuY3xkb+yV3uddJlnej5bcGopxdifvtpzG9rdQ13La9DWnactWzb3rAtm1d3VH2Yayxr2WbpuX7n2I+7xDXaDj8PGUia3+7XVSjOmbb7nDJkp+dKb33c0sN+t4Z62HnMU39QYJ7y7BNZ51Tnmae0flEHPcyau+Se6w16r2FVepDWOVhm3L/fGg1ja/p8SJpPpPRf1kMUlTt+ee2NSb4nNnnpYyIzxsGWNH+Zwb9XHB1HGQzFz9wcDY8plIGk+RT8Gz7Tv6dfKtdlv2y8j8AHr9C6j9P5S8vtyin2zbJMGV9lM/ggbzqGjEf58m0pay/kLfdf2jVIK+kkjdSn0J+MYxKriPTrfLHKN4s0jGun48DIb56N9Xm0uS9j7vWMk3IgwE8T/EiarH3vMgfQTtdwpF3LRX5bOlPc/8u9i1Wt80l5ImMtJ8qugjMghvRS+bZ1Bqmls8l74pLYkc7QOa8x6NRnvzri1dzrh/Qp99xLnWevGuvOq43l3UvNdh870pQnflwMmpzGsdz7lhugySuWj+d4yPE37v/l+EcdJ8+4OW4+rtHG/b/Uwzi2eM5pIT2Mc5pl83OiqZd3vGP79GpDnmtIbJ9cu8jTzpoTypfIhbEibosKycTctydlcc1M2ze4Bsp5z7O/NKNhmchv9hd5RlzqGbfFil3DuX+q5PIsTObUPzp551C2Tad20GG7G4UmjlFePnIcR0ahifsAvNZAuOYyCk1t0OQVk5i251FoquBck+X5xSsm/TR4oHwZv7aksno8l5k2oKzzx5jv2Jj5OD5x3VLyEPc7tTHTziG/eVabPGMsEhlXFgzamzWk3cK49O/Ta66Jreny7sH9ld0DnuoYW2Wt6jxWbJUSsJq+etRjGCdtlNgqHusaRWO9WPk4llixVTiW1CW2CnU0J/tP7tgqVfiEea750bbE9qLjM05F4biORyeUj/atKCpXR5OyYtCodR/6NXL+8jyf+mg0LBP5bcVYr8AXfsgvT8pI5r4XY+5zmmfM2Crad4G+AzfvHaR9eZ8++jvwfIBF9cxzvpyKwj5AUmbIB2jSMUssPFo32VnxX+kX1ATt1rlUk/Zp1P7U3nNy6Mxc60yvxRrLjriH/Ujv+7Z8b4jhyh4zk+8dB93EPSxTnm2KhnEe80qat0DveM/uAf9W/9Trk3WqJ+79WqttzLF/tkJ7PCmDsm2iOjYI25jVn6iPlUyPGVvFOrdO0vw2+sXj9tjyqmreZJux+qWle3nGaQ/pXlyXkGdVxXMLzT1Z44Lem+Rp+02rY/q/Wz6zTjhoKLYKzxv6MHC4p99xKLYK/Y4lzYduHqT9U3/6gntjP4ayvfYlpOkoi5CNpPl+yOZ/Y4zVZ2EnPJ1QzyaNC4mpibfkvoFnaRiMeNza8+ipX4fiSPDsTX12jSNWdI+tkseviH6oXvYoT35DsVXmFK+sV8/5N2TL4fxr2WjlfVX4PXTGDfGMtfeqqeRL2wD7syeeCNkGiCfkGe2RMlbRhqD3FnnatvL6ClVgG+9yzhmFpir27nvawDg+Ur4e5zZavi5pNnBrz/q4+SxdNhSDw3MODvVZ2rh1n3VsB0P4kfvA9+1xLzs3frwf8OOhPn3Ej1x7t+yKnvNICD/S1mnhR22vqqOuPGPwU5U8p1LkuYGpbZp0W6m6/NAYxz2ici9YxNqfwTmKfcFzj2ie9VziJ2v9VN6zLU56bUOeEYdLHYTaR5k2TmLNCnSRoflNykjmj2/Y414nXdZJWmyVq2kwv90P89taXcNdy+uQlh1nLdu2N2zL5tUdVR/mGstatll6rt859uMucU1abBVJ8139ugrFVtF2HysGh54rvfVxSw+7q4Z62K/sGaR9WoF5qs4x0jlPaf2iDnpYWmwVrjdIngZor0IP0joHyxQMLbFV9NnZtBM/L6X/sh6iqNzxq8rYKiIzK7bKCzP4Xy+xVU4aMpA0L8Y489L+Pf1SuS77WuN9BD54hdZ9NmKrjFe+fDsttspP7hmkLSu2ylGVb5zYKq9Am3st5t4Y3ym7/g4E+OF+BkmTprdb/kzeulWsvh2r8qkzCV8hncnzHILQ3ErdTp7FoGnSsVUsnU3eE5fEjnQWia2S0Hmmf08byLv7gxJxWAO0E/tyTKCvjaT5VfTVf8nQzermF5oVz5U41Ip9XIX9WGjX9mNiTmJTjTlp56X/ZBX2W/m23r/BMUvH+GuDZ0nz/hQcNoN0bGuH1LOEZ899n4dAEzHkQdAp+OqQP01dzmm6HxP/SZoPZujqodhjbfAnfB0Af057s7vEscLfnCqfOPajGVjeqx4cZdAmnhIsv2jIQNJ8DGP1J4DVpV3S/vC3xvsIfPAiluee/70+fLc0li5bpnsgB+Jm8rYb5U85lS/flrL2QN5y/zlgeUknaaQ+hf6kjwrOJv0632GVbxZpqEPtVfnkt9RNIr9Pos39bUVYfl+AH/p3SBrGD5C5QtKH5hFPG05oHiHt8izGM8ElxH7ynpjF064QK9pjJc/ZyNZNBKtQr9Lrk8SXnjZga31E22GJLbdGYYwsaa7pdwhr7gn5jt8FLK3XNOrqn5JmFyWWXgv+IZZ/xAzyEEvHPrQvYxzpOxrDxeBH0uxOaWf8luTT634Jf4LDD4M/LzunheGElkOg82rsmhT+vDGcV/wiYmvBcAuGDCRNDP+Eo/17YjTq+W3jfQQ+eIUwnJPNtOWID9u0T0q72mfwpnGWR/nybSnrZshb7ls3D9JKOkkj9Sn0J31U8Dzp1/kOq3yzSEMbu8ZK8pv27GNoc9KmvDHc/gA/9FGQNPTR9fS/0fYkHQvCWl+zfI0kzYWU8SyERyVvVXaNo4pn+c14VvIsxjOZ2+mLJ+/riEdHtelzr4muW/q0rXWfaO03uVZsoI409Wjb1HiFZ5NImkdm4DHt56rPDCMu5V4Xr/03xMqaP+5hkzS3Z+Axp3roeusLR8ErbWqUgaR5HObGO4C3tO9f8v4pxvsIfPAiHqOPrtN42fLGuBrnHzZ4o510yql8+baOy0g948nAY9rurX0luP5A+nW+eZWP68kx8mkdTa8ZLMd9RJt7CvCYJ/aJA/wQj0maKnz1rPnBstNIfWk8Rn8nSfOsDDym7Rv03eV87jknhnx3iVW0727I/37fOvClDWGVteY32MAzyUNfwmMGj0cNHmNHHkO6QAw602IoeuCxPPaxV+a0j4nM0+xj5Jl957B65l03oXkjBp3a19Hbdql9La26kTSvy6gbvS4iMmfd6LkyioZtv5Zt0yvOaxr/cwb/b8jA0l4xK7yxdAxeadukDCTNm4Br/kuGbfNdBW2b9L1wWpdvOfqxDq1vSrs6YPCm/UE9ypdvS1n7IG+5fyewtF4vlvoU+pM+LBic9Ot8h1W+2Wj1Gr2FweW31E0iv19Gm3sXsLSnf9TBAD/E0jo2fx1sm0JLmm3z6rnKI9o2GXdG8nLO9NRJQ+uC9AmQZ1bcGdpl11rcGa6/C848Dn4s2+bHjJjGDfCo9y9JXp6dQd2s7HGprb6tZcI2+yfo9zv2ruZrvezzraMelBZHIk0Pom4dReXO17GPTMw1fH12HeeAT2fgQK+9Ud76CdeyabeI8VzSfB598++A8zTmT97LxM/3EfjgRRxIHWC94UDyVhcc+NUUHCj1mRcHan/fcXDg36PNyUeqxoHCD2OFpJ3RxLVIbb9LaK9LDAHiD5mHuJfGsmPV5YwLxiMYBTsRT3hjwLbiQ8fEJZbYGtmYjPhid5/ukJ+izqvj/zqtY3doi45QRqT4l4v77jzPzPHCUcRtbH/kS8rNwlvMt4j8TrR3SJO2e1nnCjRT2pzFn7VGruOfE08Sx1v65b01LpnQpMvn/DJfY9lRN6dusZbXSarYkyc0WTHVRD7Haiw7zs3sR/KMuiJ1pbKxb6y+fVjJkzQ1QJOnLzXjN1B2LFOeber/jvu/mVfSvB3nWd0PNpIThqyPOsp6QX1bYzMrBry3Tq99hKT8GOV7tr8T6tu6/Vl1rWPvsq6fi7p+WEpdk9dHIs8PAvN6nUFRtZ1G1yntNI9NwS3ryU5z3JCBpPkO1P9F2GG0n0Py/snG+wh88Nqw00zOTnPX3kFabW+R+sxrp1lQ+cax01xGm3vyhOw0ehylnYbrL1Y8jjqfrVAEC3r6g4WwIO1jGgt66iW0AbE8pzi9rdA+2B9EH3ibMVdzDcU6B6dqXKp9fzUu3Yw0L8qYV9fLHr/jhgwkzUtQvy/DvBn333NefZ3xPgIfvDivbuzxK698+XbaHr/XYl7Ve/WkPvPu8YtVvnH2+L0Sbe51mFc992ftD/DDeUjS8HzAKudLvVbNeWmrSmPF0Pz5lPGMGCHu/w35XXvim5DfNetBnnH/goUR5H1V9qIsv9fZyI7/IXOfFXOCPi9vQ7+4/74BT564J4TZiHssG60VX82z3YTiq7Hd6DOFvf1PQnZO1rPVbq29jXXB5RVg2xbHHe5xfO9ed3l02Za07WUeMpI0X9w3SPt7oM8rprq1bzcp+w9qKJufgmw+CN3AOuPI0kXXakxDrqlw7SdWz7wxjZQnPMpv7hfRaxqee2QcbVu9vL73+8Gvl67lya+c7zmn+DmseI3Bp+f8G4oVxvnXskHJ+6rWckN2HMvfhvNfU8k35M/qicXmFe3zSp70r6DfeBq+rODMpQ7X7COUESl+IkWn59oF55xRaKogBlXbE+dxfKR8iZtLKqtFPYf9IaQfsZ+Vlc/yyWCfrSCOQWqfpe6q+6xjOxjCj7TdXbfPvezc+PHxwI+z/fu1HIPQW48LxY+3fNGISzfOyMw+IzMUu9xLB/ac+4jXdLxq6+yZo/2+t97PnlkwZCBpjmMsWujfE79yP/B5430EPngRY2ycPVNe+fLttLNnzu0bpNVnyEh9TvLsmVNoc+cxP8f4jtfaoOaH+pGksfwLJH1oH4infhTaB0JMqPd65YkP6Kk/x4r2WMkzFNPIC+PkiYV9f2CztXLWihX7sIp4QvJt6yxmax963WTHdZSsuEd1PNfXipFVxZgk37bGpKaSZx1lx3rn+rfn3vNQ7HuWmSf2/ZUUHBuKff9ixBmQ71hrddRTPHWn0LoFdae0dQv2z7rtp6hDzK40P+t/l9J++C3JJzLnOCl80Z7oqefFAf6o40ia78vQ82InOr31PO1HPm/IQNL8ADD3c6HH6f3QyfuXG+8j8MGLel4cDWS63vzIY/BWFz/yl0HPy/IHn8R+/xegzb0cep6n/TK039/yI+dY7IlB9Pxg+bvp+V77h7FOfzxlPOP6AGMX6Dnee04M4a4YdGq/pWmDb9rw14uPBbGK9qfw1sez9qjSHkzsJfcNPJM89A+JDR4PGTzei86J7HG81HjFOify7Rl4LHROJPGYPieSPLPvHFDPvOsmNG+wbmJFuyNNXdos0+pG0vxGRt2EzlRh3ei5MoqG7WTWGZ9OOLKXxv9hg//3ZWBpL7+gqtdMjhkykDQfAK75Q2BlfXZ58v7jxvsIfPAilqYf13o745O81eWMz48BS+uzOqU+857xeUDlG+eMzw+hzX0cWNpzP9W+AD/E0pImjgY0eeJ7vcau94XQNqCxNM+PkTR/nYGlLd8+ycs501MnjaNhnuU31+LkmeXbdwC0rzXfPq7PCc7kWpyuW/qMU19ogEf6B1lrFroNlz0u6Vgbel8C9aUvo9+396/ma0MPKka7px5E3TqKyp2vqzzLPk1Hme63xRAO9DqT3ls/0We9zxsykDQ79g/kdVP/nv6otKk2jPcR+OBFHEgdYL3hQPJWFxwY7x+k1XhO6nOSZ73vQZuTNlU1DtQ6rYUDQ2drWv6sdcQfMg/RNmnZsapY3xHaDyl58px6xhYcBTsRT1S9Bm/Zv0XOGrPz3ANJczZl7gntI3wvMKGOJ5uUr+Pqy5o5Y3JJmvugD/7g/tXftfwd5FkdfUWIJ7lmoPFPQnvTkfaQ/3QTdOp9DsRpxJiSpwHaY0faNVbV5zAlz2XMkzYu7xgnWNI8OKWNzyAd29oh9exeZmc3MWxb0UQM+20pMua3JJ/InHFxLVutF/alnVLH+WHsG0nzrzMwumecHycZmBj9pCEDSXMRY/WdBgY/BXk+tSBGZyyc9YbRyVtdMPpTUjC61OckMfp3os09FRjrCL5TFUann7WkIc7Vaz3W3o+Eds8Y+0cV7fKbfvh6P3XyTPsuTUerz23wxuhHFO1a57HiyDDuiIXbBbsQX3rXwalomA/tM0psqX1SiZElzQsyMLrOm/D6u7tW7q0zaK14/d72zZDuSOyZtheRWLqpnnnbN5uKdvlt2TeJr7XeG4pl6DSWmTGC9XlhHN9elYHhtO+qtDdiuLh/X8FeeBPDCS1WrMbXThDDVRmrccGQgaT5Wcynrzcw2iLk+bYSMNxGrMbxypdvp8Vq/BVgOB1zUeozb6zGwyrfOLEa34g297aKMFzId4jnPUmaOBrQ5Gk/jRVN+szKJI0+/8g6g1rSvCtlPAvhUY0FvO0ai9Ewz/L7IOjU51USj86D9jrjUWJPvSZLPMr1dl23Sf/4SeA2Hd+R9cf1dU8baKj+LBuodbbnWrOBOtLUo36m8UoTdEqaP8nAY1rXE5kTjwlf9M93wspdYmXNH33vJc0nMvCYUz10vfWFGLzSpkYZSJq/xNz418Bb0i6p0/298T4CH7yIx5qQqdN42fLGuBrnW3F7aSedcipfvq19ralnfBF4TNu9pT4ZX1HmENKv8+n9aIyxQBwVioPFWC6fRpv7e+AxnnXtPZcKP8Rjei71ttPo+cGy00h9aTxG/0dJ888ZeEzbN6aj1XO895yobVPym1hFnvHMU8130nbuNrAKbUwW1vTE1yGswrXZUbGKtjvV3T5mnSnYwLOmwWNs8Oipk0l5wqP8PgI69X5vR5p6ee1j+/oD7qj2MZF5mn2MPLPvaL8g77oJzRusm6ai3dt2qeOPWXVz1Y8oo270+rrInHWj58rl7+I+Nvh3wpG9NP6PGvwvpvDviM163liadU3bJmUgaVoHBvLq9O9Dts2vN95H4IMXsTR9L9bbvnzyVpd9+bcdGKTV68VSn3n35R9W+cbZl38WbU7alLd/1MEAP8TSkob6kSf2aiqa8tg2afuQNPdPGc9o2xTcGcKbnjppCG/SJ0Cecf1dx9FkHDxisVOOtIfi4J0CnVYcPOvcD8GZjHmk63Y5PiH0BX3GOnUTGZek7bQhE+pmZY9LbfVtLRO22W9Hv3/FgdV8EcudVM+8de1Q3VLnEZ5O4plug3XVgywb9Ch6EHXrKCp3vq5yDV/vV+Mc8KQMHOh5zq+nfqLjM50yZCBpnoa++XTgPI35k/fPM95H4IMXceDGOb/llT8KDnxuCg6U+syLA7W/7zg48Floc8+bEA4UfrgfR+NAYieuRWr7XUJ725H2kB2SGFaexXgm8xDjn8r7qvzBYkV7rOTJPeSLeDYKdiKe8MaA7WiYD332LrHE1sjGZMQXr0qZe6aNvMv7pnYNeHVax+5QN4hQRqT4l0vo8NSZPHEUcRvb3zzkLuVm4S3mIw53or0zFa2OKaDjSZPOn8+w+2n+RB6MsyXt18KTxPFN9ayOfqeT9qng/DJfY9lZ52qu9XWS2JGm0L6CGPJMO8+wLrLj3Mx+JM+oK1JXKhv7HlHf1ucAkybG8vf0pWZ8LsqOZcqzTf3f2ieO+W7tg8/lc09hI1k0ZB07ylrHiJGyrDVgytpTp4+jYVlrH0jv9reovq3bn1XXC0purOttqOsPp9Q1ef0T6ExbDw74drKNVW6n0XVKO83H7yV2mmOGDCTNJ1H/fwU7jPZzSN5/0XgfgQ9eG3aaydlpvpBip5H6zGun0fG3x7HTfApt7osTstPocZR2Gq4T6dgb9KGuKgZGCO/ThiHPYjwbFQtWud8iVvK0sKCnXkIbEMujvlZi322F9sFuxVx9oX9vYSAr5t8kcKn2/ZXyrT1+s/2b9b7H75ghA0mzE/W7u3/P/TOcV5vG+wh88OK8urHHr7zy5dtpe/zmDg7S6r16Up959/gdUfnG2eO3D22uCSzvuT9rf4CfGPxIGp5H5bl+rdfeZUxlmVJfW1UankclaU6mjGfECIxdavnBTHKPGP1guH/Bwgjyvip7UZbfK88Np+1Q5j7iNZkjGSvtAvrFB9AvPHFPCLMR91g2Wiu+WuxIZ55zTao64zlk5+R6iNVurb2NdcHlFWDbFscd7nF84EF3eZhnxusxiO3rmYcGab/Vv0+2rH27SdkPq6FsboFsvg26gR4bQrroJNeexolpyDUVrv3Ubc859S/air32yDjatnp5fe951oWXruXJ7w33fGNntPr878OKV9Zr7MQnbbVStvyWMkM2KHlf1VpurOiU35a/Dec/y8/a8metY8zkUWKaefphcM0+QhmR4idSdHquXXDOGYWmCmJQtT1xHsdHype4uaSyWtRz2B9C+hH7WVn5LJ8M9lm2e885ONRnqbvqPuvYDobwI213L64hfvws9N2XG7bltRaD0FuP03PPeoqBWJU+IN9Oi8HY8JdTy3PuI17T8aqtM6pfn7EO4rVe4z0267MFFwwZSJpfwFj0ZqxzxP333A/8TuN9BD54EWNw/HfSG1qOayxtrrdLu9pv8KbXKjzKl29LWXshb7n/dayDSDpJI/Up9PN8UNKv88Uq3yzS0GdErzfIb/pnvAVt7p2Ynz1t2KEzbKkfSRrLv0DSh2zAnnsVQzZg+kbo/W554gPGjrSHbDUx6LRiGnlhnDyxsD8AbKb3p4baQRU4SGRp4SAr9mEV8YTk27p89qGTNZYd+1BW3CN9dk0d6l2fseNd7zrmmC6f489ijWXHeuf6d5V7z08pOZHurSrNSYOXT6fg2Gkj77KP386Ve+pzTeSx9BRP3Sm0bkHdKW3dYiNm19XLjNmV5mf95ZT2w29JPpE5x8m4f097oqeedyTAH3Wcq9jjUJg/x3pw1/O0H/m8IYOr+jDWLLf177mfn/arPcb7CHzwop7HNZn15kdO3uriR7770CBtlj/4JPb7T6PNSZvytl+G9vtbfuRxNKDJE4PEiiZtG7bm+0VF45AdJ2U84/qA8E7cxfncc04M4S7qp9pvadrgmzb89eJjQayi/Sm89fGQ71YMOi27tdzTP0TyNPDsiMHjIYPHe9E5kT2OlxqvWOdE3prSv62xV2ROPKbPiSTP7DsH1DPvugnNG6wbHevbkaYubZZpdSNpvimjbkJnqrBu9FwZRcN2MuuMTycc2Uvj/7DB/4MysLSXX1DVayZNQwaS5qHANQ8HVpb6YpyaO4z3EfjgRSxNP671dsYneavLGZ8XgaX1WZ1Sn3nP+Dyg8o1zxuej0ObuAJb23E+1L8APsbSkoX7kib30eoLQwjKlvjSWpu1D0nxXBpYedX+pp04awptci7N82wVvHQDta823j+tzgjNj8KPrlj7j1BcYQ5X+QdaahdZRyx6XdKwNXXfUl56Nfv+2Q6v52tCDitHuqQdRt46icufrKs+yT9NRXpKBA73OpPfWT/RZ7/OGDCTNK9A3fxQ4T/tsJu9/zngfgQ9exIHUAdYbDiRvdcGBP5uCA6U+J3nW+4+jzf3chHCg1mktHBg6W9PyZ60j/pB5iLZJy45VxfqO0H5IyXMWz5p4Ngp2Ip6oeg3esn+HMPsC8kmad6TMPaF9hA+E7+KZ/nPGWH03xudO//kZvH8PZMWYsLf1/7bGvJLvnoA8yrSdkOcIZfDinMO+6RVb97poMK595+W7H3j5Wd928bufcOni3U+460kPu/yUp19+2t1TKPqMIpPvQqxswrPrcd823vPajvQe3eGUovWUotGxKXQdh9uepVpp9ZlD8AcyTKl66JY2IN+cgcy4FeGMD38dutKQzkjRKdcZ0OQ0vHbydm3KyWva5TQ/Ck1Uu4870rSQgyaGbXJSoZe36h3PQROXbr2W0JNvzznWQVPJl8vVDKXfVDKQ33MO+RhGX+iaRh55521OmVO06xAaFix1pKmXd7xj+/RqQ55uiGyfPOIpTzs7OqF8iVwaSHNbVEgmXf2A9DRAo8w5PFpMaOG859lfQiY89hfLrOiED1pUJUNz/1TJ5VlbMZ36RyfvHMq26dQOOnldFDlGxT40DY0jo9AUgyYvl6y8W/a4nOe1DZLbkUahia46XmYXT/MyTUiWq2xUWlndJZqGaIrPco1ivvaY+axtadPIQ9zvab7ULqHym+Y+eUbTmowrpwzaj9aQ9irc64gHWPdx/576//zhwf3C4QFtJ31o6+bVhbndx8vM5bmVaBo8EG+cAI/llLUynugtkFNR9jGaxD/l0bOCffSRRKPQY+XjOCVytMzIjm03NUQotyPLM+qkTjaT3rSiScqIFJ1yHa9ATp62D9pj2F70kXRT0bDdZnNkbymuMh917igqV/+TsmhD0dsq6H7CudHLnsclI5GJDmFIt6gKQhsvhyBqq3pJ5r6HYu5zmmc6XCMR27vQwqOZJc3n40HaR/bpS+zpsvRFd7cz6pnnfEk+NM08jk5447znpNebx0Dq8jmHdGosO9pu2pCnPOOWoZPqmSeWGWXuto7k9p6TQ2t1nJO13auOsiPusY51jPFMu9Q6rl+1ku+dAN3EPSxTnm2KhnEe80qau6F3PPfwgH+rf1phE+pST9Sj12obc+yfQ7bpUOiGsu2tseKZbczqT3otv0R6zCPqdKgV9ot/j34xd8SWV1XzJtuM1S8t3cvJJyJV9zoBOuUZj/id9PHf1rgg7zkudBzpDNVxB3RqLOqIg1ocG6WMpM2/Cjjcqd6W3ag7KJPjJI8DlzS/EA/Svsafvhbd2+j+9jqU7YSju1OqTMqB/l2S5tHxIO3PYoyV99RRTqlnk8aFxNTEW3LfxLM0DEY8Pq+eeevX84pH+c2tD/qIFEes2HNcH+vl9cXh+o2nL44XvxJmX2+fOq54Zb16zr8hWw7nX+nb0v+no9X+hd545oSiU34Tz8gz2gb0tiHaBtifPfFEyDZAPCHPaI+UsYo2hLh/X8EaSofzeYQyIsVPpOh0HB+7eX2jaBv3HC+8bGAcHylfD1d42pzZH0I2cPazsvJZuiz7LNu95xwc6rO0ces+6+njFNoe8b9qiB+PxIO0f27gR4YjteyKnvNICD/S1mnhR22vqqOuPGPwU5U8p1LkuYGpbZp0W6m6/NAYNw+ZyL1gEStsK+eo0Fb+smnPs55L/GStn8p7tsVJr23IM+JwqYNQ+yjTxmn5FjmOb0Pzm5SxfBz4Efc66bJO9Px20qinjx0ZpL2uf7+W13DX8jqkZcdZy7btDduyeXVH1Ye5xrKWbZae63eO/bhLXKPt8IuQgaQ51a+r0F5UbfdpG7LTc6W3Pm7pYZ0j7mXn1sN+BPPU2QLzlGefCM1TrNdR5ymtX9RBD7PmLrmP8UzyNEF7FXqQ1jlYpg4JcVzxRzvx/VL6r49P9Mr41fCRkRniXmTWAP+S5kEZ/HuGuHeSwXI7YfhNjimUgaR5KMaZh/fv6ZfKddk7jPcR+OAVWvdx2mPR4p4gD5nqcK8HDd50GHqP8uXbUhZDb8n9xSODtDoMkdQnQwfLvhjSr/MdU/kYvoh7eUJ7bxgm7VFoc3dg7vXa/zwVrd6LZYV+lDRpervlz+StW2m56COCssLCExfEjnSG5tYYdMqzqkJpjnLkkqWzyXviEs/2GQr9z/0Dlu2u27+nDeQZ/ni2RywdoYxI8SEXfc691ms97TPE2dSj5dktKDePP3mrYL7TBfNJe0n4uVbxkzy7rn9PXeUFmPe3959fizzb+vfX4dmm/v12PLumf78N36Cu0DR40rpS2+DzpZhPPpxhP6ib7zL1IssuRl3phHpW1RqH0K7XOKgXUX/SehHXImLQXsUag3xb2g/LlLFVdCWNeTnX/lSKrjCDdGxrR9SzhGfP0IehY0MPg07RAY7402QeLd1RNG1Gmjdm2JM0hhOZd8Cf8MW4B16xGKhrCX/HVfnUtX4pQ9/0qgdHGZjHQJwxZCBp3oax+r9iXpF2yXnnd4z3EfjgRazB4/TW29HZ5K0uR2f/NvRNfQS21Gfeo7MbKt84R2f/Otrc71Skbx4I8EMfJH1MHjG+pA/NI552xtA8Qtr1kVXUo6ifyHtiFk/bVygeXAN0WvqzYBXq/nH/XrAL8aXnOgXXCoQPvVZAbLk1CmNkSfNnKXNPaH9DB1har7vV1YcqzXa/1nyYLB+eGeSJQbvTWLaMcaTvaAw3B34kzecyMFxDyUGvTSf8CQ5vgD8vW7yF4YQW69jfL0wQw3kePamPxT1pyEDS/CPm0y8bGI22qGvj1e8j8MErhOHW27G45K0ux+Jujwdp9ZEKUp95j8VtqHzjHIv7L2hz0qa8MdzBAD+0/0ka+pF7rr3rPT/a1y1JI/WlccEx5JM0N8Yrf0NHeVl41PLB8bRrhHxwGHdOnmXF26kzHh113Yn7oXTd0u9yrfvta9/etWID9dzPSdumxivzoPOq/3S88jeEx7QvtsiceEz7mXjuESNW1vxxn6Wk6cZh/hzroeutL3Cspk2NMpA05+OBvG7t31M/o053f+N9BD54EY/Rj9xpvGx5Y1yN8xsGb7STTjmVL9/WRxNRz/jmeJBW2721Pw/XH0i/zreo8tHngThK62h6zSCR333jwb20KW//+LkAP8Rjei71XG9OvqfXXrUdhXOIxmP0+5Q0D41X/obwmLZvcE7kfD7JOZH7ubkPNG0P5HqJUbGWfVubeCZ5YjybN3i04ld66mShmAdzoDMtzqcHHstjH3tivPJ3VPuYyDzNPkae2Xca6pl33YTmDdaN9sf1tl1qf2CrbiTNM+OVv6G60esiInPWjZ4ro2jY9mvZNr1iEafxf9zg/zlxmH9HbNbzxtKsa9o2KQNJ87x4IK/n9+85ztG2+UrjfQQ+eBFLV3BOhOexx0Prm9KurDMatM+yR/nybSnrAOQt96+IB2n1erHUp9Cf9GHB4KRf5zum8s1Gq9foLQyuz4BI5PeieHAvbaqqPQKaH2JpSUP9yBN76TWyPLZN2j4kzWvilb9Ztk3GRrLwpqdOGsKb9AmQZ1ZsJPp71zk2EnVOwZlcf4/79yfAj65bxtzjXrgmeNR77KTtdCATrqGXPS511Le1TNhm3xIPaP2beDVf62Uveh31IMsGPYoeRN06isqdr6tcw5d+Yeko/z1e+RvCgU7zUtdbP+FaNu1oli7w3nggr/f37xkrhfviPmq8j8AHL+JA6gDrDQeSt7rgwI/Eg7Qaz0l95sWB2t93HBz4gXhwL23K20/+cIAfxrPROJDYiWuR2n6X0F6XOBeMLWTt96rzOSzcxzMKdiKe8MaAHcWHjttMLLE1sjEZ8cXn4pW/IT9FnVfHqHZax859jjn3hnqe6+SFo4jb2P70mssoeIv5rodcnGjvkCZ9ro919sVX4pW/Ibuf5k/kYZ0FY+FJ4vh59ayOfqd1WD9aUPKso+x4djF1i7W8TjLpuH8in/kay45zM/uRPItBJ3WlsrHvnPp2Q8mTNDVBk6cvdQNyo+xYpjzb1P+tfeKY78X9h8k4fqQx4OuUIetjjrI+qb6tsRlpoqw9dXrtI6R9IL3b3yn1bd3+rLrW8aFZ17ejrk+k1DV5PYU8j20M+HayjVVup9F1SjtNp3+z3u00JwwZSJpzqP8L/XvqCcSB32y8j8AHrw07zeTsNPdrDNJqe4vUZ147zUmVbxw7zdeizX0zxpwq7TR6HKWdxjpfk/7f1lqCpz0+tJZA/dA6Q2NULFjlfgt9Nq6FBT31EtqAWB71tRL7biu0D/ax6AP/wZiruYZindVUNS7Vvr8al25Gmjsy5tX1ssfvhCEDSfOdqN8nYN7Ue6eT98803kfggxfn1Y09fuWVL99O2+P3DMyreq+e1GfePX5zKt84e/yeiDb3TMyrTjjW3OMn/HAekjRVnZut5xzt/0Eb2laVhjqhpPn+lPGMGEF4D/nBeGKEkB8MMYI8a+CZhRHkfVX2ooaivaHkORvZ8T9k7mNbi/v3jIn+H9AvGkcHPHninpCNlrjHstFa8dU8cXEovhplqs+99m7LITsn27LVbq29jZ77MvOcy1cBtm1x3OEex9c23OXRZVvStpdFyEjS/P7RQdqfAX1ecf+tfbtJ2a+voWyeBdm8EbqBdQ6XdRblJNeexolpyDUVrv3Ubc859S/air32yDjatnp544ocBL9eupYnvzdEK2fQHlf8NBSvrFfP+TcUK4zzr2WDkvdVreXm8bfh/HdUyTfkz+qJxUL+FcRi8ox+4zJWpcU08/TD4Jp9hDIixU+k6PRcu+CcMwpNtI97jhdeOI/jI+VL3FxSWS3qOewPIf2I/aysfJZPBvss273nHBzqs9RddZ91bAdD+JG2u7+oIX68Dfjxrw3b8lqLQeitx4XOOLB80YhLtZ/SvdkXTb6dFoMx9pdT5ecjCR/Ej5LmyxnrIOvlfKSThgwkzVdhe5vqd5TQfuAdxvsIfPAixtg4H6m88uXbaecj3XB0kFafcyT1OcnzkbZg/tsBe+8kzkeifiRpLP8Cax9qXc4jpH9BkfiAnvpzyFZD/dmKaeSFcfLEwpa1CPq/1/2sFSv2YRXxhOTbunz2oTM1lh3XUbLiHtXx7Gk9JlQ1Jsm3rTHpqJJnHWXHeuf6d5V7z/VZ1aR7q0pzxuDlvn1hhvaU6bzJ2PZQxBmQ71hrddRTPHWn0LoFdae0dYu1uBelyphdaX7W35LSfvgtyadj31kxu7z1vLkAf9RxJM0jUvjz9Hf31vO0H/miIQNJ8xhg7tuhx+n90Mn77zLeR+CDF/U8rsmsNz9y8lYXP/InQM/L8gefxH7/70Cb+y7oeZ72y9B+f8uPvKqY9qH9tSxTn2tu2Y8lzVNTxjOuDzB2gT4PeNJzItcjuY6RZsNfLz4WxCran2LSe1RpDyb2kvsmnun9oMmzOYPHIwaP96JzInscLzVesc6JfHEGHgudE0k8ps+JJM/sO4fUM++6Cc0brBsd69tzTwJtlml1I2lelVE3oTNVWDd6royiYTuZdcanE47spfHfMPh/XQaW9vILqnrNZN6QgaT5OeCaNwArS70xTs3bjfcR+OBFLE0/rvV2xid5q8sZn28DltZndUp95j3j84jKN84Zn7+ANvd2YGnPc28PBPghlpY01I88sZdeTxBaWGZo7whtH5Lm3RlY2vLts/Cmp04awptci7N82wVvHQHtdfbto84pOJPrc3H/nmtxum7pM059oQkedewka82EOmrZ45KOtaHrjvr7B9Hvr51bzdeGHlSMdk89iLp1FJU7X1d5ln2ajvLJDBzodSa9t36iz3pfNGQgaf4GffPTwHmCGWlT/ZLxPgIfvIgDqQOsNxxI3uqCA/8xBQdKfU7yrPe/RZv7EnCg57760FnvaTgwdLam5c9ax70FMg/RNmnZsapY3xHajyh58pz6eTwbBTsRT1S9Bq9tvGmY/STyXfXX6dMdWu+29hFyj6XP+kP7ypQhRymL8USPK17lHWN3SprdKbwmvDRdeOm0qGvJuC28NUGnpNmXQqelt4lPAn1YhGdJuwn3xGtMS6wpdC0g7VHjW028J10ag3Ithfqtjx/EisylbC1znuUjaW7JkPlR/E7yzfTvKXNtr9+E95QN0xIjSz7K/LjxLdLCe12/XBc6mlKOC8Zut1qa/qOKTis2+Hakq0JX6Sj5cNzRYwrbjaQ5mzF+6rxJW3zI9pV76p7bUD5tniz/6vnrkVsMp2UZLYBP0jOP55Lmvhn9ZiHAy7Txra8f8VuST+rAOn9Y0m7CPXVspr0Gz5sZ+UiDtock7XmbSjcTrfZ79sNp7eVxj2MyZc4yQ+eMcj6SNN+SUS+6vco3qAfRXhhqU5LmYSPOf7q8aeNbj8w5l+p5me2Ec6m8H6VNZeVjfen4OhzDSVNTleM5hi8Y9JO+axTtflhqeHyKIrvtprVvjm2S5vKIYzjHslMYwy2fU/qHJmV1+795tpOk+bdzg7RvmVv93R5oOameefsAhXx+aYPU/srWvsaEdh0DyNumqtuJ/CbO1fMFx2uuM0seng1WhU1Vvi3th2VKe5c2Lu+64FnSfF9KG+d4wrZ2VD3z1tE1xpbfDdBZYXyUZTtu3P+W7sdcy5Y0P5Qx18SKP5F5F/wJXzH4ix35ayj+jqvyaaP64Qz92aseHGVg+v6eMWQgaV6Ksfrl/XvuBeOZgj9lvI/AB6/NuG9AphsxpMcrX76d5vv7urlBWm03lvrM6/ur/a7G8f39UbS5n4Kd0RNjHQ7wQ9uCpKGNR+YKxoe05hHP/S+heYS0yzPqbtqePR2tPkOLONuD9qai3cLbWodgvMsFPLPORH0L2o9nXFJ93prMcSxT78uyMLKkeXsGRtd5l/dG95XxpM+e7j8nvjmhniUyWXCUSWiNn9jTwtfap4HxONguJx2Pw8LXck8src/FdBzLzP1N0lYs2/v7CtreieGseHlONk0TwwktUiYx3B9MEMN52nVj8MpxgzKQNB/CfPo/DYx2GvL8yxIwnJOPRcvbZ1H7Mh82eNM4y6N8+baURb8Suf8kMJxeY5f6pF+84HnSr/PNqXxcm6ePgMZK8ps+QH+CNveXFWG4IwF+uuBHx2BMaDrtSJO2JwktLFPv35I0XL+WNJ9NGc9CeFTyVmXXCO3faoBObeMlHqXfRJ3xKLGn9iUmHuVeOl23y31l68o9baDE5KfVM28bqJQnMpDflg30NJ7J/VqzgTrS1KNtU+MVrgVdXQ/uN64QHtPruSJz4jFrjdkJK3eJlTV/XD++2i9S+HOsh663vqDPGzxjyEDS7GwO5LW7f0/9jDpd03gfgQ9exGMV7NVteWNcjfPnDN5ilD/lVL58W8qiLVzu55qDtJJO0kh9MqaHzCGkX+fT67D0xSOOCsXJoj/QPrQ5aVPe2KcZ4Id4TM+l3nYaPT9YdhqpL43HuJZ6dZ5OGc+s8zUYU4fzueecqG1T8ptYRZ6dBp2a76Tt/KKBVWhj0nYnbx/dEFbh2uyoWEXbnepuH6ONSfLQN2je4PGYwaOnThbSBZqg04pv5ERTL6997Jsz8Jgee0XmafYx8sy+M6eeeddNaN5g3Vg+rJ62S+3DatWNpHl4Rt3odRGROetGz5VRNGz7tWybTjiyl8a/5cP72Aws7YTNet5YmnVN2yZlIGm+A7jmIrCyZdt8svE+Ah+8iKXpexH78N3y3oejz/iMDd5oW51yKl++rWN30I54F7C0Xi+W+oz7fxmbhPSH4pxIPsbsJc6PVT75zdjgl9Hmngws7ekf1QjwQywtaagfTdq2KbSk2TYlzTMzsLTMi4I7uS7IOdNTJw2tC1r7PhgLWu+LYCxoYrG2I+2hWNBt0GmdNS04k+vv2kc0ZNt8GvQFeU+/Udo6ONZ3IRPqZmWPS131bS0TttkfQb//zeZqvojlzqhn3n0xVLfUeXQsV+pGddeDLBv0KHoQdesoKne+9sTBWkfRey84B7wmAwd6xij11E+4lk27haUL/DT65s8C52nMn7x/q/E+Ah+8iAOpA8Q+fE8MB4bir04SB/5yCg6U+oz7f0fFgdrfdxwc+PNoc2+dEA7UMXgtHEjsxLVIbb9LaO860h6yQxLDyjPiD5mHeAaAZceqyxmJp/FsFOxEPOGNAbvRMB/SblimyHlrZGMy4ov3pcw900behNfv3jrg1ck23CEGi1BGpPiXi7Z4L5zmuW5PWVPvkGebUG7WHifma0EuXmdhkiZt9zph0PmRDLuf5k/kQbufXoOhrZ04fkE9q6v/wiTxOeeXkzWWHfffU4/QPirEhZxf6hZTbNI+0JybF2osu9nIjvmR5ZddNvY9pr7dVPIkTadAk5f+ZtnadRwVyndTNOyvyLyS5gm3rPxNxvEvw0ZyxpD1cUdZn1bflrIs2wdl7dROu6RBZK1tbd7tT9vRdPuz6vq0khvr+izqesstq+XaQZ6r5yMhz9ItA76dfD5a3nUqMtwS2XXKtaqZPr/VxmNasdNUcU6ftOsThgwkzU2o/139e8vHNXk/Z7yPwAcvYvkmZNrw4bvlaAMa8mWXdtUweNO2FI/y5dtSFvcOX41pd8sgrd4boM+P5Z5v0q/znVb5rP2Xlj1Efsf9v4n89qLNzWHMqXJPph5HuSeT6y+ClemHZe3b8/SpCuF92pj0GWt5sKDnOkgIC9Imo7Ggp15i7Q3Q+lqJfbcVsi8toQ883piruYYisqIvWdW4VPvBaFxK2//XZsyrXnsRHWUwZOvV8yplIGn+Fer3GzFvyhzMefXhxvsIfPDivEpfEac1Cs841UNnyEi7suKy6n14HuXLt6WsQ5C33D8M86o+G0bqU+hP+mjcvyf9Ot8xlW8WaWLkyzoHKZHfN6PNPRzzqhOOHdr3qvmx4tXKvFr1fKnjQ3Fe2qrSWHFbb08Zz4gRrHPFq4o5EfI3YD3IsyaeWRhB3ldlL2oq2ptKntyXQNth2loO/Qwfj37xFfQLT9wTwmzEPZaN1vLX92w3IX99thvt6+G5bpJm52Q9W+3W8pOpCy6vANu2OO5wD+D33OIujy7bkra90LdQ0rzh2CDts/375JBsSOcP1FA2j4Bsfgi6wXqIIbOe98g4zZE9R9tWj/N9hDIiJQO5YvDrpWt58nvDPd/YGQ3aWazqdrNRr57zb2jPD+dfywal9yt5r+WG7DjEY5bvk45nTL+IqmxQIf8KYjF5xr29o/gKefphcM0+QhmR4idSdHquXeTd9077uOd44YXzOD5SvsTNJZXVop7D/hDSj9jPyspn+WSwz1YVYzvUZ6m76j7r2A6G8CNtd++qIX48APz4G4Ztue7xvK34OlXsWZ9SclwP8cSr0gfk22nxzDv+cqp8H4jwQfwoaf5nxjrIetkHctqQgaT5U9je/hfWObT/T/L+M8b7CHzwIsbY2AdSXvny7bR9IJ/GOojez6Fjl09iH8ifo819BvPzJPaBUD+SNJZ/QdY+EE/9KLQPhJgwbR8I7dd13gdShf06zx6TrwCbrdXYPVXto5Vv6/LZh9o1lh3XUbL2++pYSHWodz0mVDUmybetMcnah1Y32bHeuf496dj3QlNa7HtJs68/gOaJfd9EnAH5Tt3Ptx819v1a2YvitR5B29IoftYLKe2H35J8InOOk8IX7Ymeet6xAH/UcSTNmRT+PP3dvfU87UeeFvOgB5vT2f4948HQfvVNxvsIfPCinsc1mYYP3xPzIydvdfEj/8Zjg7RZ/uCj+pHPq3zj+JHfijYnbcrbfnk0wI/lR86x2BOD6PnB8nfT870VD1nSPDhlPOP6gPBO3MX53HNODOEu6qfab2na4Js2/I1zesanPeS7VcY5PYzdSR7nDB6dfMxT1+yPgk6ZIys4g6fH8VLjFdpqJc0TMvCYHnuv4hzwJ3w1DJ7ZdxrqmXfdhOYN1o0+/8JzTwJtlml1I2nuzqibWPEnMmfd6LkyiobtZHMG/044spfGf9Pg/3szsHTsRGfVayYLhgwkzfcD1/wgsLLUF887f5nxPgIfvIil42gg0/V2PlQM3upyPtRLgaX1OU9Sn3nPh2qofLNR8fOhno829zJgac/9VEcC/BBLW+dDeeJ7vcau94XQNqCxNM8jkDSvysDSlm+fdT5U7MhzaA0lBp163xrtrw3QvtZ8+7g+Z50PpeuWPuPUFxhDVcdOstZM2J7KHpdOq2/rfQnUl96Mfv+Xx1bztaEHFaPdUw+ibh1F5c7Xnjg4j47y7gwc6GT/q9U5ob+JvvnbwHmCGWlT/WPjfQQ+eBEHUgfYOCd0vPJHwYEfSsGBUp95cWBT5RsHB74fbe6PJ4QDtU5r4UBiJ0kf8metI/6QeYi2ScuOVcX6jtCuz5uZxbO8Z2sST1S9Bm/Zv0XOGrOfRj5J86mM9W5rH+H3ABPqPchJ+TquvqyZMyaXpPk8+uDS8dXfzYprTyxatqxD+8yJV9Li2vO8Bct/f9GR9lBfXQSdwofl+30azyTPYdBepZ+1PguOmFPauLxjnOCruLTfrqw2ThzKtmbppZ7jU83OKst9Hta1KTLmtySfyNw6q4zxUDwxelPxd0KVz/n5hhT+POuhqjUEwehtQwaSZtfxgbz29O/pI9SBPG8x3kfggxcxehMy9YzzUyVGP2LwVheM3jw+SKuxttSnFecnDaMfV/mI0WPkC8X5IUbfjzYnbcrbfy4O8EMfZ0ljYXTa1Cw7kmeM/ZAdiX742h+Q2Jf+pfK+gvMHR7IjzUarbUb0faC9VrCKYBfiS+866ETDfGifUWJL7ZNqxa29NWXumTbyJrw+bsvKfdJnJY4+8c0p9cxbbzkVDcvEwp4WvpZ7YulF9cx7nWRR0a71WWvPJHEzsbRe/3Icy4biPmsMNw9+JM2DMjCc9r2S9kYMJzi8At9cE8MJLZZv7sMmiOE8/cP0ervlnyxpHoX59DEGRmtBno8vAcPFPny771HUsRpjg7e6xGr8TmA4HXNR6jPu/6XPTFqsRmuPoqThekSs8slv+v5+O9rc4yvCcI0AP9aZpfTj9Nyrotfbrb0qUl8aF3C9XdI8OWU8C+FRjQW87RqtaJhn+U27qzyz8Ogp0F5nPGrtgVrEM5nvaQPXdZv0jx5wm8yvxOQt9czbBhqqP8sG2sIzuV9rNlBHmnrUzzReWQSdkuZHMvCY1vVE5sRj2mfAESt3iZXTztKSNC/PwGNO9dCtyq9K29QoA0nznzA3vgp4S9oldbqfN95H4IMX8VgFfiCeZ520LZxv7UuknXTKqXz5tpRFW7jcvwF4TNu99doh1x9Iv853SuXj3hviqKz9k4n8XoM29/PAYy18x3suFX6Ix/Rc6m2nCZ0hzzKlvtLOkJc0v5SBx7R9YzpaPcd7z4naNiW/iVXkWQt0WuerX2dgFdqYLKzpia9DWIVrs6NiFW13qrt9jDYmyUPfmkWDxwWDR0+drGhMLyeaenntY7+f0z4mMk+zj5Fn9p26xTxlGzruT5O5L92qG0nzkYy60evrInPWjZ4ro2jY9mvZNp1wZC+N/xMG/x/PwNKe8ZqriI+vbZuUgaT5JHDNX2XYNr9Y0LZJ3wundfmWo8/v0PqmtKujBm9677xH+fJtKSuGvOX+C8DSer1Y6tPai0r6db7jKh99LonzNQaX31I3ifw+hTb3RWBpT/+oZoAfYmlJQ/3IE3vpNbI8tk3aPiTNV0a0bQruDOFNT500hDfpEyDPuP6u454zDh6xWMeR9lAcvA7olGf0h9V7gGjbZGw8XbdJ//iD/kA6g/f0G6Wtg2N9FzKhblb2uNRV39YyYZvdMT+g9X7zq/kilrNiHHrq2qG6pc4jPLXxTLfBuupBlg16FD2IunUUlTtfV7mGr8+94RzQ6D8M4UAn+1/XWz/hWjbtFpYucAx9c75/T1+sLuR5zngfgQ9exIHUAdYbDiRvdcGBZ+cHaTWek/rMiwO1v+84OPAk2py0qapxoI4lZ+FAYieuRWr7XUJ715H2kB2SGFbHkSV2YvxTy45V5b55fYYE40a18GwU7EQ84Y0Bu9EwH9JuWKbIWe8l4j4LSfOglLln2sib8PrezQNenfSTDjFYhDIixb9ctMV74TTPdXvKmnqHPLsG5WbtcWK+WyAXJ9o7pEnbvU4ZdN6e0uYs/kQetPvpNRja2rPOD6mj/8Ik8TnnlzM1lh33qlKP0D4qxIWcXyYdC0L7IE/aB5pz88kay477H9iPsvyyy8a+C+rb80qepImxVLz0N8vWLuWzTHm2qf9br+Ex3+eAiZ8NG0nbkLVnjJiW+rbeE0OaKGundtolDSJrbWvzbn/ajqbbn1XX2pbJun4H6vqFKXVNXn8EeX4NmNfJ56PlXaciwy2RXadcq3pZhp3Gy57kPf4yxi7xAWUgaX4U9f9jsMNov43k/RuM9xH44EUsPw+ZNn349owlNOTLLu2qafAWo/wpp/Ll21JWA/KW+9fDTiPpJI2Ohck936Rf57N8xiUN13eaKp/85j72V6PNvQFjjid2Ohbgh7qZpOH6i2Bl+mFZ+/Y81/VCeJ82JnlWBAt6roOEsCBtMhoLeuol1t4Ara+V2HdbIfvSr6EPfNaYq7mGIrKiL1nVuFT7wWhcStv/b2TMq57nU3juRWmCV/ZDykDS/A7q932YN2UO5rz6EeN9BD54cV69t5xP4XkOoV5bkbKs8yk+jHk1dA6h0J/0UZnz0s4hXFD5ZpGGeKah8snvuP83kd/vo819BPOq55rg0QA/nIckDeNJeu6X0usaMqayTL333/IzkDSfSBnPiBF43pTlb1DlGVw6JhZ9SebxzMII8r4qe9G8on1eyZP7Emg7lLmPeE3mSPoZfhb94vsXBjx54p4QZiPusWy0lv+UJy4O+U+x/2pfD+/+G7Jzcj3EareWn0xdcHkF2LbFcYc+X/8y7y6PLtuStr2cgYwkzeKJQdpN/n1ySDakc8tC/WTz0YVB2mv79+slhsx63iPjNEf2HG1bPc73EcqIlAzkOgp+vXQtT35vuOcbO6NBO9P7Nzcb9eo5/4b2/HD+tWxQVkwzz7XckB2HeMzyfZpT8qVfRFU2qJB/BbGYPqdtVF8hTz8MrtlHKCNS/ESKTs+1i7z73mkf9xwvvHAex0fKl7i5pLJa1HPYH0L6EftZWfksnwz2WbZ7zzk41Gepu+o+69gOhvAjbXdfX0P8+Frgx28CftQ2CdZrneJ5W/F1qtizPqXkuB7iiVelD8i3LX0gbQ+Ih73aa+4jXpN+KHwQP0qax/T73nrfB9IyZCBp/g3Gosf174lfeU7BXcb7CHzwIsbY2AdSXvny7bR9IE9aGKTV+zl07PJJ7AO5hDZ3F+bnSewDoX4kaSz/Au4DsWzAnjF4QjZg+kbIM2sfCO3Xdd4HUoX9Os8ek+8HNlursXu8dXfd7nX5efahT1J21j700H5fHQupDvWu41F517vec6XLD+1Dq5vsWO9c/5507PtQHIiOwctrUnBsKPb9c/oAjfqctVZXQczP1HUL6k6jxr5fK3tRvNYjaFsaxc/6zSnth9+SfCJzjpP6vAxvPW8hwB91HEnz1gw9z8vf3VvP037kaTEPfhWY+x3Q46Rd0n71fuN9BD54Uc/jmkzTh++J+ZGTtxjlTzmVL9+WshqQt9y/D3qepJM02h98VD/yRZVvHD/yd6PNvR96nqf98liAH8uPnGOxJwbR84O2DVvzvRUPWdL8Ucp4xvUB4Z24i/O555wYwl3UT7Xf0rTBN23468XHYr2e08PYneTxuMGjZ8yxrPjOCZ0yR1ZwBk+P46XGK9YZPJ/LwGN67BWZE48JX02DZ/adpnrmXTeheYN1s6Bo99yTQJtlWt1Imn/MqBtt/xSZs270XBlFw3ay4wb/Tjiyl8b/vMH/VzOwtJdfUNVrJicNGVxNA9/Irf179qVTkOdu430EPngRS9OPK/bhe2LnQ5G3upwPtevEIK0+50nqM+7/TfqwYPC086GaKt8450NdhzYnbcrTZ4e6iOaHWFrSUD/yxF56PUFoYZlSXxpL0/YhaQ71ZZm1dyRrf6mnThrCm1yLs3zbBW81Qfta8+3j+px1PpSuW/qMU19gDFUdO8laM6GOWva4pGNt6LobWuNDv3/8idV8behBxWj31IOoW0dRufN1leeEpuko/ypl3HS0/9XqnND7oW/eHzhP+2wm7x9tvI/ABy/iQOoAsQ/fG+eE4v5RKThQ6jPu/x0VB86rfOPgwAejzT16QjhQ67QWDiR2svYWVBXnuyj+sM7WtOxYVazvCO36vJlZPMt7tibxRNVr8Jb9O4TZW8gnaZ6YMveE9hFyj2XPhdf2leR7S+rbUtY5PNfxYuVdz5DR3RnzrE/f6bQsnLyk5Mr+9MwUOq1+uK1/L9+kr42k3RStjtGq03bwTOhizN7TxrfYHnmvY7tY57xtj4Z1ibJlTn9bylzKZNt4XobMdcyBXf17ylz7PG2KVtezTkvfUR0rlrTyW6RlCfdaP2M8CtK5pMphPSTXbfK9ca52q0WaSD/p6yrat0er+30p9ATGz3NKPmljCvuqpHllxvip8yZt8RH9gMhJXdzaf34e5V9A2s19OSXXgciWUdkY7yz4JD1LeC5pXpPRb84GeDlnfOt1I35L8gnOlG/OgFZJuwn3F5Cfab8Gz3sZ+Xh/q8qT0HFepWM5tNXeCr5KnDeXx70eaKTMWabwtlWl4bwpad6cs47lGweQhvHbmYdtStK8JaO8bqC8c8a3fmXEb0k+aVPyzRnQKmk34T3bJNOyTWXl4/0FlYdj+NmUcrZHw23ztv7f1jhXfwwn/bpPzIIGzieSzmMM13U2q+TDPqDbN9uhpPmtjDFc503aXRtj+I395zcgz071LJHJLkeZ7IyGZSK/pcwZ8LdzQjTNKpqSNLv797qediKfpPkfGX1Z0m1RMtgGfm9G+rLnzT2gmfTcjOeS5n9m8LInwMu08a2Pjvgtydc/RvnqN2dAq6RNZLUP3ygbm+9X/Em97wOdkubjGXrbfic6/WSw0l4OgNfN4I8ykDSfhK3qr2D/lPq6EfL8ovE+Ah+8aB/dD5ke8uF7WaaHHWWqYyweMniLUf6UU/nybSnLirH4BdhHJZ2kkfoU+pM+KnZO0q/z7VH56HNKu6qOzSi/pW6WzxpFm/si7Ft78Z2y6+9ggJ9Z/JU0u/FM5llJP433nIN3ONK+W9Euv3eATnm2F3TqOS+R95v6HTWp912gX/LcqJ558yblCW83Kt4SOm/q3984IZq2KJqmINutKs2NyCdpti8O5+fFb21RMtgNfrchfdljC+d+0rMNzyXNTAYv0wFe9hjf2jHitySftGP55gxolbRV4wupdwtf7Enhbz3hi5sMGUiaA4sDeR1aHNSV1NcuyPOk8T4CH7w28MXk8MXi4iCtpJM0Up958cW0yjcOvmigzUmbqhpfcBwUfg7iXv5y7pW/0p84B3vq0zcp2uX3LtApz4gv9JyX/L4R+OJ6pJW/1nh9gyNvUp7wJr+lzJn+vwjvHGlaSr63A/LiHHID6JQ0X5cxR+5Q/G3Dt4U/4WsH+LvRkb+bAvwRG0mab8qYI29yotNRBkM2KpkjZwwZSJoHYLx6EOZAkcn1kOftxvsIfPDiHMkxZbcP38tz5B5Hmd4MOVAPIm8c46ecypdvS1m0w8n9YzFHSjpJI/Up9FMXI/063w6VbxZpLNun5NM2uER+D0Gbux1zpOdYvCvAD+dIzjlC04wjTXp+4LgpZUp9aV1vFvkkzZ0p41mS/qru0/87Ha2eJx3HvTb50bTfBDrlGdceNN/J75/p3///M1BxT78oBwA=","debug_symbols":"7L3bjuW8lp35LvvaaIjU1Mmv0mg07PYBBRTKDdt9ZfjdO3ZVakVkJSXqj+KKwcn5+cL4a0O5kvMbkeIYQ7Go//W3//Sf/+P/91//73/4p//y3/7H3/79//m//vaP/+3/+Q//8x/+2z99/F//63//u7/9x//+D//4j//wX//vr//z36Z//v/+j7z/85/4H//vf/inv/8P/+N//of//j//9u+Xaft3f/vP//SfPv5rPz4+4b/8wz/+57/9+3nd/vf/9e/+/oeOb/yhOZf+0G77rz+0L3PhD83f+UP2nT+0fOcPrd/5Q9t3/tD+nT90fOMP2fSdP5S+84e+8xNh3/mJsO/8RNh3fiLsOz8R9p2fCPvOT4R95ydi+c5PxPKdn4jlOz8Ry3d+Ipbv/EQs3/mJWL7zE7F85ydi+c5PxPKdn4j1Oz8R63d+Itbv/ESs3/mJWL/zE7F+5ydi/c5PxPqdn4j1Oz8R63d+Irbv/ERs3/mJ2L7zE7F95ydi+85PxPadn4jtOz8R23d+Irbv/ERs3/mJ2L/zE7F/5ydi/85PxP6dn4j9Oz8R+3d+Ivbv/ETs3/mJ2L/zE7F/5yfi+M5PxPGdn4jjOz8Rx3d+Io7v/EQc3/mJOL7zE3F85yfi+M5PxPGdn4g0Td/6U+lbfyp/60/N3/pT9q0/tXzrT63f+lPbt/7U/q0/9a2fjfStn430rZ+N9K2fjfStn430rZ+N9K2fjfStn41ygbJOx68/tR3ptz/17/68Nm/26+J1Tuvr6pTnwtUp7euvq1POnyvKdi5o6W1Ba28L2npb0N7bgo7OFlQu2pQLSr0tKPe2oLm3BfV2p7be7tTW253aertTW293auvtTr30dqdeertTL73dqZfe7tRLb3fqpbc79dLbnXrp7U699HanXnq7U68//M9+2Uq/85CPfK7HOlvPD/9Ir9N0XjytpfXsna3n6Gs929TZelJn68mdrWfubD0N7j/Ll/VstRv0safzBn3s+ctn7+eKlu5WtHa3oq27Fe3drejobUX71N2KUncryt2taO5uRd3ds/fu7tl7d/fsvbt79t7dPXvv7p59dHfPPrq7Zx/d3bOP7u7ZR3f37KO7e/bR3T376O6effzwPTtP+QyQH/+ZSis6OltRnqbuVpS6W1HubkVzdyuy7la0dLeitbsVbd2tqLd7dp66u2en7u7Zqbt7durunp26u2en7u7Zqbt7durunp26u2en7u7Zqbt7du7unp1//J69fK7oYxWFFeXuVjR3tyLrbkVLdytau1vR1t2KduGKdvttRX9e/aXamdJvv5lU6IHm4/VrTDb/+WtMOR9hRp2nOKOmOKPmOKPOcUa1OKMucUZd44y6xRk1jlua47gli+OWLI5bsjhuyeK4pRbfzfUyahy3ZHHcksVxSxbHLVkct7TEcUtLHLe0xHFLSxy31OL78V5GjeOWljhuaYnjlpY4bmmJ45bWOG5pjeOW1jhuaY3jllqcK+Jl1DhuaY3jltY4bmmN45bWjtzSv6xo68jU/FrRT+9SaTpF+/jP0i/W/fQhMQ9W9NN3h4//+bWivJVWtHe3oqO3Ff30ASgPVpS6W9FP2/G0pdeKfnst32tFc3crsu5WtHS3orW7FW3drWjvbkWHbkUfzuQnreAxxRk1xRk1xxl1jjOqxRl1iTPqGmfULc6oe5xRw7ileQrjluYpjFuapzBuaZ7CuKV5sjijhnFL8xTGLc1TGLc0T2Hc0jzFcUspjltKcdxSiuOWUhy39OMntglHjeOWUhy3lOK4pRTHLaU4binHcUs5jlvKcdxSjuOWfvysROGocdxSjuOWchy3lOO4pRzHLc1St1T4pbF5Tt2tKHe3orm7FVl3K1q6W9Ha3Yq27la0d7eio7cVWXf37B8/vC6tn188KJ2ePf/4GXP1Fc3drci6W9HS3YrW7la0dbeivbsVHb2t6MfP5qqvqLt79tLdPXvp7p69dHfPXrq7Zy/d3bOX7u7ZS3f37KW7e/ba3T177e6evXZ3z167u2ev3d2z1+7u2Wt39+y1u3v22t09e+3unr11d8/eurtnb93ds7fu7tlbd/fs7afv2Xl+rSgvqbSitbsVbd2taO9uRUdvK/rxg3TqK0rdrSgLV7Ruv63ozY+kf/yEHuGoFmfUJc6oa5xRtzij7nFGPcKMekxxRk1xRo3jlo44bunHz20SjhrHLR1x3NIRxy0dcdzSEcYt2RTGLdkUxi3ZFMYt2RTGLdlkcUYN45ZsCuOWbArjlmwK45ZsiuOWUhy3lOK4pRTHLaU4bunHz20SjhrHLaU4binFcUspjltKcdxSjuOWchy3lOO4pdyRW/q1IutuRT9+696P14qOVFrR0duKfvy4kfnz/ZRzmkormrtbkXW3oqW7Fa3dreinPer8ujrPWy6taO9uRUdvK/rx40bqK0rdrSh3t6K5uxWZcEX7/pNW8MfPMRGOusYZdYsz6h5n1CPMqMsUZ9QUZ9QcZ9Q5zqgWZ9Q4bmmJ45aWOG5pieOWljhuaY3jltY4bmmN45bWOG7px4/YEo4axy2tcdzSGsctrXHc0hrHLW1x3NIWxy1tcdzSFsct/fjhdsJR47ilLY5b2uK4pS2OW9riuKU9jlva47ilPY5b2uO4pR8/pFE4qtItHaVfGtvX7la0dbeivbsVHb2t6Ji6W1HqbkW5uxXN3a3IultRd/fsHz/RbbbPLx6UTs+2Hz94rb6ivbsVHZ2taPnx08bqK0rdrSh3t6K5uxVZdytaultRb/fsZertnr1Mvd2zl6m7e3bq7p6durtnp+7u2am7e3bq7p6durtnp+7u2am7e3bq7p6durtn5+7u2bm7e3bu7p6du7tn5+7u2bm7e3bu7p6du7tn5+7u2bm7e/bc3T177u6ePXd3z567u2fP3d2z5+7u2XN39+y5u3v23N09e+7unm3d3bOtu3u2dXfPtu7u2dbdPdu6u2dbd/ds6+6ebd3ds627e/bS3T176e6evXR3z/7xc0LM8rkiW6fSiqy7FS3drWjtbkVbdyvau1vR0duK3ntww6+/I/3A35F/4O+Yf+DvsB/4O5Yf+DvWH/g7th/4O/Yf+DuO9/8d2w/8O99+4N/59gP/zrcf+He+/cC/8+0H/p1vP/DvfPuBf+fbD/w7337g3/n+A//O9x/4d77/wL/z/Qf+ne8/8O+8wTeR5jy//o4vKbHsKlPaX1+NyvnPr0YtDb6I1HhBW28L2ntb0NHZghp8CanxglJvC8q9LWjubUHW24J6u1Mfvd2pj97u1Edvd+qjszv1OnV2p16nzu7U69TZnXqdOrtTr1Nnd+p16uxOvU6d3anXqbM79Tp1dqdeG3zjyJbzxIrV9rm2oHwGxbTM//uPrn9t8H2jtutJna0nd7aeubP1WGfrWTpbz9rZerbO1rN3tp7O7s+5s/tz7uz+nDu7P+fO7s+5s/tz7uz+nDu7P+fO7s+5s/tz7uz+PHd2f547uz/Pnd2f587uz3Nn9+e5s/vz3Nn9ee7s/jx3dn+eO7s/W2f3Z+vs/myd3Z+ts/uzdXZ/ts7uz9bZ/dk6uz9bZ/dn6+z+vHR2f146uz8vnd2fl87uz0tn9+els/vz0tn9eens/rx0dn9eOrs/r53dn9fO7s9rZ/fntbP789rZ/Xnt7P68dnZ/Xju7P6+d3Z/Xzu7PW2f3562z+/PW2f156+z+vHV2f946uz9vnd2ft87uz1tn9+ets/vz3tn9ee/s/rx3dn/eO7s/753dn/fO7s97Z/fnvbP7897Z/Xnv7P58dHZ/Pjq7Px+d3Z+Pzu7PR2f356Oz+/PR2f356Oz+fHR2fz76uj9vU1/3523q6/68TX3dn7epr/vzNvV1f96mvu7P29TX/Xmb+ro/b1Nf9+ets+8Pbp19f3Dr7PuDW2ffH9w6+/7g1tn3B7fOvj+4dfb9wa2z7w9unX1/cOvs+4NbZ98f3Dr7/uDW2fcHt86+P7h19v3BrbPvD26dfX9w6+z7g1tn3x/cOvv+4NbZ9we3zr4/uHX2/cGts+8Pbp19f3Dr7PuDW2ffH9w6+/7g1tn3B7fOvj+4dfb9wa2z7w9unX1/cOvs+4NbZ98f3Dr7/uDW2fcHt86+P7h19v3BrbPvD26dfX9w6+z7g1tn3x/cOvv+4NbZ9we3zr4/uHX2/cGts+8Pbp19f3Dr7PuDW2ffH9w6+/7g1tn3B7fOvj+4dfb9wa2z7w9unX1/cOvs+4NbZ98f3Dr7/uDW2fcHt86+P7h19v3BrbPvD26dfX9w6+z7g1tn3x/cOvv+4NbZ9we3zr4/uHX2/cHtp78/mO385Hnaf1vPn9falM+Lbdry6+pcWsZHkjyXvH8uubgGm/bzY/Nyf+m+ne9WPib7vNRKpCuvith++quRkVHPoP4p1Abqn0K9gPqnUK+g/inUG6h/CvUO6p9CfYD6h1D/9Ff+I6MmLf4YatLij6EmLf4YagP1T6EmLf4YatLij6EmLf4YatLij6EmLf4Q6n0iLX5e+gsJqe4PJBHT1zKfH7tYAUnElFRBYiD510gipo4KkojpYD937K/r/UQS0cVXkER02xUkEV3xPZIU0L0u03np8mUNn0gCutcakoDutYYkoHutITGQ/GskAX3Jks/CZMklJAF9SQVJDrjjrPP5seuSC0gC7jg1JD3vOOl1saV9+4rk1+J73huqi++5g6guvue2oLr4nvfP6uJ73umqi+85K9cWP/ecaquL79kNJJvvF9/zvp3y8rn4vbD4rnfY2uK73mFri//hHXbe7eXgaotPczot3Md//n71r9Wvrle/uV797nr1h+fV//TZl39t9fa5eiuuPrlefXa9+tn16q3n1W/Ha/X7VFp913ttdfVd77XV1Xe911ZX3/VeW1v90vMd06YzV33851Jafc93zPrqe/5Xu9p0rn5dij85Pf+rra++53+19dX37JCrq197dsj11ffskOur7/l+X199z/f731Z/lFZvPa/+9StRaT1yafU9O+T66rvea6ur73qvra6+6722uvqu99ra6reu99rP1W9TKq2+6722uvqu99rq6n96r31dbNtRW/00769wNdmXPiovS+n6tL6mzWn9vPp81PLTB7Jqh10iDbtGGnaLNOweadgj0LA/fXyvdtgUadgcadhIDuqnT6jVDhvJQe2RHNQeyUHtkRzUHslBHZEc1BHJQR2RHNQRyUH99KmN2mEjOagjkoM6RnJQOX+eczZbYdiRHFR12JEcVGXYYxrJQVWHHclBVYcdyUFVhx3JQVWHtVGHPQrDjuSgqsOO5KCyvd4WmJdcGHYoB1UbdigHVRt2KAdVGTYN5aBqww7loGrDDuWgasMO5aC+DrsVhrWhTMXyOexeGHakffZjgefl87YUhh1pn60OO9I+Wxs2j7TPVocdaZ+tDjvSPlsddqR9tjrsSPvsvL+++DQXzrE58khNRXXYkZqK6rBDOajasEM5qNqwQzmoyrDzUA6qMuxPn5GzpHM96786BaEAJtn5yfNvJ+nlc/Gz58Wb58Uvnhe/el785nnxu+fFH44Xv0yeF588L97zDrt43mEXzzvs4nmHXTzvsIvnHXbxvMMunnfY1fMOu3reYVfPO+zqeYf96TOs2i7e8w67et5hV8877Op5h10977Cb5x1287zDbp532M3zDvvTR1G1XbznHXbzvMNunnfYzfMOu3neYXfPO+zueYfdPe+wu+cd9qePKmq7eM877N7zDptfb3aa85wKi+95h60uvucdtrr4nnfY2uKPnnfY6uJ73mGri+95h60uvucdNs/ra/FfXtTwufied9jq4nveYauL73qHrS2+6x22tviud9ja4rveYe8Xn6ap6y12XV6r//Lbvl9W3/UeW11915tsdfVd77LV1Xe9zVZX3/U+W1191xttdfVd77RfVl9oET5W3/VWW11913ttbfU/farHms5PXpe5svqP1b2OEZrst9X/ebHZfB5kaFb8R/LTZ3ooR81x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"},{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"},"visibility":"private"},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"7P3djiN7st9338sc6yDjPUK38uCBIduyIcCQDEs+EubenTWri9W9u1ZzzR4260sGj7xlcLgi/ln9YzCrPpH/82//+3/+X//f//N/+S//9f/4b//9b//x//c///Z//bf/7T/9j//y3/7r+f/6n38z+8f/v//+f/+n//r2//zv/+M//T//42//8fgPf/vP//V/P/+/f/8Pf/s//sv/9Z//9h8t6+//4afXaU19e6m2zOXVYvbJq22sv73aD5Urr5ZDLb69/Py/4+PdNeKz10fa+8uj/aNy/fTN6/JiUf3+xf////A389eh/Hwo8TqUnw8lX4fy86HU61B+PpR+HcrPhzKvQ/npUPx4HcrPhyKvQ/n5UPR1KD8fymui/eRQ/HUoPx/Ka6L95FBeE+0nh/KaaD85lNdE+8mhvCbanw8lXhPtJ4fymmg/ORTyRFv6cSjdVw7lfIW81zKH/kuHQp5ov+xQ/HUoPx/Ka6L95FBeE+0nh/KaaD85lNdE+8mhvCbanw8lXxPtJ4fymmg/OZTXPdpPDuV1j/aTQ/HXofx8KK+J9pNDeU20nxzKa6L95FBeE+0nh/KaaH8+lHpNtJ8cymui/eRQXvdoPzmU1z3aTw7FX4fy86HccaJ1nXw/FKsBZ0q+DuXnQ6nXofx8KP06lJ8PZV6H8tOh9PE6lJ8PRcCH8lUfyX3HidZt5v1QvAL8k2KvQ/n5UPx1KD8fSrwO5edDydeh/Hwo9TqUnw+lwYfyZR/J/9JEa5PvLz0bzo82j3h78zl+55v/SxOWqL3PTKJd310g/+TV4/p+8cf9x1I+uTwm8n7k5//t+lPp+rilfzqtyPT7j7sebz/iv27A8/LT7v3Rbn5Wv4jUpVv5qOfzd/66dBl/HcznBxOvg/n8YPJ1MJ8fTL0O5vOD6dfBfH4w8zqYTw9GjuN1Mn9yMvI6mT85GX2dzJ+czGv6/bOT8dfJ/MnJvObfPzuZ1wD8ZyfzmoD/7GToI/BX3ciTgz4Df9nJyE1m4MvtXwmdX5+Mhr73enYnV976vJ38cWc5PgqR8k/viqpc7orGd/fnVP5oVjY1q5uatU3N+qZmY1OzuanZ2tRsb2p2FjWrmyYo3TRB6aYJSjdNUOqbmt00QemmCUo3TVC6aYLSTROUbZqgbNMEZZsmKNs0QdmmCco2TVC2aYKyTROUbZqgbNME5ZsmKN80QfmmCco3TVC+aYLyTROUb5qgfNME5ZsmKN80QcWmCSo2TVCxaYKKTRNUbJqgYtMEFZsmqNg0QcWmCSo2TVC5aYLKTRNUbpqgctMElZsmqNw0QeWmCSo3TVC5aYLKTRNUbZqgatMEVZsmqNo0QdWmCao2TVD1XBNUXHZuHkf+0OwnZce8L1w8vw/5z0fzXPPWP3U0+XE0pfHz0TzTdOaHX5anH331aPSyHlPUvz8a++zY4/1fn3+3lt2yP3vnw/ry1of7tQUJIh+rGlQ+6tb64xo901D5pNeon2kWftZr9Ewj/LNeo2f65vGs1+iZvjA96zXy1zXCX6Nn+nr6rNfomb5VP+s1eqav9896jV73GfjX6HWfAX+N5nWfgX+NXvcZ+NfodZ+Bf41e9xn418hf1wh/jV73GfjX6HWfgX+NXvcZ+NfodZ+Bf41e9xno10iP130G/jV63WfgX6PXfQb+NXrdZ+BfI39dI/w1et1n4F+j130G/jV63WfgX6PXfQb+NXrdZwBcI9W8VGLzb6/RUz3P81mv0es+A/8ave4zEK6R+6WSqJ+u0es+A/8a+esa4a/R6z4D4Bqdzb+/3Cp+ukav+wx/7RqFvPv8POLKNTLxywoI6e/+XegfZ/66b/Abzlwz3s9cPznz132A+5/563v93c/8qZ4a/Shn/vreff8zf32Pvv+Zv74X3//M/XXmdz/z1/fW+5/563vo/c/89T30r515yvuJZNjfr92fkfy4PfPDmX9StNv7gfj3t37eL9DrSyv8Ar2+4bIvkL2+DsMv0OLvzhaXC2T54wX6x9Es/op77WgWfxO9djS+92j8uJTtPlcST+ZSydvpfATT579GO7Quf8N2aF/7tdv5ivdfAekcH1vATT9987pcU9EfXvyPS7r4++izXtLFX3ef9ZI+17fpee/VJa5d0tGjv716zrsKH68+Pj10k8tkev7frj+8/h9H+Vzfe7/0KO/+DTXlvQFNzx/e+q0gv/s3svLL1aq0nwsSWkFKK8hoBTmtoKAVlLSCilZQ0woaWEFBS+qgJXXQkjpoSR20pA5aUgctqYOW1EFL6qAlddKSOmlJnbSkTlpSJy2pk5bUSUvqpCV10pI6aUldtKQuWlIXLamLltRFS+qiJXXRkrpoSV20pC5aUjctqZuW1E1L6qYlddOSumlJ3bSkblpSNy2pm5bUQ0vqoSX10JJ6aEk9tKQeWlIPLamHltRDS+qBJbUdsKS2A5bUdsCS2g5YUtsBS2o7YEltByyp7YAltR2wpLaDltRCS2qhJbXQklpoSS20pBZaUgstqYWW1EJLaqEltdKSWmlJrbSkVlpSKy2plZbUSktqpSW10pJaaUlttKQ2WlIbLamNltRGS2qjJbXRktpoSW20pDZaUtOMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotOMotOMotOMotOMoh+wpHaaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUQyaUQyaUQyaUQyaUYwDltRBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pJM4pJM4pJM4pJM4p5wJI6aUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUaxaEaxaEaxaEaxaEaxDlhSF80oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oNs0oNs0oNs0oNs0o9gFL6qYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxb6/Ufx4azskrrz1tLy/8yEfdehn7yw2+f5itx9e/I9OZU2nuqZTW9Opr+k01nSaazqtNZ32mk5nS6ezZkaaNTPSrJmRZs2MdH+B/WWdrpmRZs2MNGtmpFkzI82WGWmOLTPSHFtmpDm2zEhzbJmR5vA1nW6ZkebYMiPNsWVGmmPLjDTHmhlJ1sxIsmZGkjUzkqyZke6/deTLOl0zI8maGUnWzEiyZkaSNTOSrpmRdM2MpGtmJF0zI91/38+XdbpmRtI1M5KumZF0zYx092VNduT7i00O/eGt3wq6+7ImE3s/TdO3I/y3Bd174jD1j4JSfi7oFoNB+HEpqK4UJFWXF9d89+JP3znz8uKs736Sj2/V20NX7w9dfdy7+o5+f2vRa9VPfUTVGXEf9csRn2Wmidj7u5u4/vD6f/Sby/qtZf32sn6H3e95F+1SiGj9VP9N1nv9M/WrzPuL1VOv1B8TH/EpJT/XLw9ev6LrTz3mUr9a/ly/PXj9/uD1x4PXv2we8GXzgC+bBxw+D9y63ziW9SvL+tVl/dqyfn1Zv8vut8Sy+SruPl+V6eVuYMj3/f6jnobVM6x6En7/oepSfbT2Tz9v99+cGPpekUbIlbfW/rj/0/FRiNRn7+3HvP/rconvvqypfPYrLz3e/6WP/ptbS/+ef7r33/n4vEdpr6O81VH6Y99gTPYNouv154PXDxtIEjaQJGwguf/Gz6eNznrNRjc7ytdsdLOjXHaH5ybrZx+p32V3eGrZHZ5a9hu0WvYbtIINhC2wehRWD/svQK7ewbvJQtpbnueDf2G//zLYpx1V779t9nmPsh/8X9U8dv1zsFJ2YJ+iY7B6nD11dly81fmz9fPfNU/AzvP1qXirKJ/Xp+LNjvL+vwy4oZ2aeeDq5TiOxy5/119Cng3v+lPIs+Fdd8rPhn1bw/B75Vf02tkA+ua3HpkfDZTIlSsm2XEJ6O8g/nuz6Dvft24Wfdv71s2i1ciNmxU0Gbl1s+gp6Z9utiw/vuT2T82iJ6RbN4uejm7drG9qFj0V3brZ55qgrjT7XBPUlWafa4K60uxzTVC/blafa4K60uymCUo3TVC6aYK6yZ7Rh2l20wSlmyYo3TRB6aYJSjdNULZpgrJNE5RtmqBs0wR1/0WvX9nspgmKvRT21s1umqDY62Bv3eymCco3TVC+aYLyTROUb5qg7r7s9kub3TRBsdfo3rrZTRMUe4HurZvdNEGxV+feutlNExR7ae6tm900QbHX5d662U0TFHtR7q2b3TRBxaYJKjZNULlpgspNE1RumqBy0wR19326X9rspgkqN01QuWmCyk0TVG6aoGrTBFWbJqjaNEGxd/reulnf1OymCYq9yvfWzW6aoNhLfG/d7KYJqjdNUL1pgupNE1RvmqDuv/L5K5vdNEH1pgmqN01QvWmC6k0T1GyaoGbTBDWbJqjZNEGx14PfutlNE9RsmqBm0wQ1myaoWTRBybFoghL23vFbN7toghL2vvFbN+ubml00QcmT7SS/0uyiCUqebCf5lWY3TVBPtpP8SrObJqhNO8ll005y2bSTXJ5tJ3l9PDShf272ySaoXzf7ZBPUr5t97Mewng089nNYz4/DA91A6jGXBtTykwbk0RvQR2+A/cT3v9CAoxuoo/2SoeZzLXJ/+QQiUfbz5G/cbG5qtjY1y54cbtwse8r4Z5v99VcbY08kN26WPb3cuFn2pHPjZtlT0Y2b9U3NPtcEdaXZ55qgrjT7XBPUlWafa4K60uymCco3TVC+aYLyTROUb5qg7r6L+0ub3TRB+aYJyjdNUL5pgvJNE1RsmqBi0wQVmyao2DRB3X0X95c2u2mCik0TVGyaoGLTBBWbJqjcNEHlpgkqN01QuWmCuvsu7i9tdtMElZsmqNw0QeWmCSo3TVC1aYKqTRNUbZqgatMEdfdd3F/a7KYJqjZNULVpgqpNE1RtmqB60wTVmyao3jRB9aYJ6u67uL+02U0TVG+aoHrTBNWbJqjeNEHNpglqNk1Qs2mCmk0T1N13cX9ps5smqNk0Qc2mCWo2TVCzaILSY9EEpceiCUqPRROUHosmKD18U7OLJig9Fk1QeiyaoPRYNEHpsWmCkk0TlGyaoGTTBCVPNkH9aq+v3n0X95c2+2QT1K+bRe/iPu8azeUf4bTElWbVROz93U1cf3j9Hw2j93H/jobRTzX5HQ2jn2zyGxpW9NNNfkfD6Cec/I6G0U85+R0No5908jsa9m0No5948jsa3jZp3X1/+TnqXl5c80PDfxTUtIIGVtDdd3VfLUhoBd39k7hMP25DyM8FGa0gpxUUtIKSVlDRCmpaQQMryA9aQUIrSGEfHW60gpxWUNAKYv9+Oaou/wSitX+eweH7W/9CA/AnCl5vAP5EwasNwHen/oUGaN8hgvbJFLRPprvv/rxaEO2TKZJW0C0+aXzqUpBei4nQ93/45+WRK2+tLZfn3HZ8FCL12Xv7Me83t1ziu0dMqnzy6tHj/UbbnHe9/v4v3zm7yRrN11n+cZbzOstbneVNloC+zvKPs5TXWd7sLPV1ljc7S3ud5c3O0l9nebOzjNdZ3uws83WWNztL2m+5k/ZbbviW15i4vHVKyc+XGL659S80wFYIf6EBtiz4Cw2wtcBfaMAfvQH2X/X/hQbgv4u63gD8d1HXG4D/Lup6A7S/N2va35s17XdFTftdUdN+V3T3DZNXC6L9rqhpvytq2nempn1nalpSDy2ph5bUQ0vqoSX10JJ6aEk9tKQeWlIPLakHltR2wJLaDlhS2wFLajtgSW0HLKntgCW1HbCktgOW1HbAktoOWlILLamFltRCS2qhJbXQklpoSS20pBZaUgstqYWW1EpLaqUltdKSWmlJrbSkVlpSKy2paRssjLbBwmgbLIy2wcJoGyzMaElttKQ2WlIbLamNltRGS2qjJbXRktppSe20pKZtsDDaBgujbbAw2gYLc1pSOy2pnZbUTkvqoCU1baOD0TY6GG2jg9E2Ohhto4PRNjpY0JI6aEkdtKROWlInLamTltRJS+qkJXXSkjqfapNzmnx7det31jbkW7NP9byMa80+1bMyrjX7VM/JuNJsPdUzMq41+1TPx7jW7FM9G+Nas0/1XIxrzfqmZp/qeRjXmt00QRXte3TRvkfTXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLRXLLTXLLTXLLTXLLTXLIfsKR2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkt2mkv2pCU17dm4Tns2rictqYuW1EVL6qIlddGSumhJXbSkLlpS04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04xi0Ixi0Ixi0Ixi0IxiHLCkDppRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRTJpRTJpRTJpRTJpRzAOW1EkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikUzikUzikUzikUzinXAkrpoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFpRrFpRrFpRrFpRrEPWFI3zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSgOzSgOzSgOzSgOzSjOAUvqoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFgRlFPWBG8SyIldRnQaykPgtiJfVZECupz4JYSX0WxErqsyBWUp8FsZL6LIiW1DCjeBZES2qYUTwLoiU1zCieBdGSGmYUz4JoSQ0zimdBtKSGGcWzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwonv81WlLDjOLbf41WEC2pYUbx/K/RkhpmFM//Gi2pYUZRD5hRPAuiJTXMKJ4F0ZIaZhTPgmhJDTOKZ0G0pIYZxbMgWlLDjOJZEC2pYUbxLIiW1DCjeBZES2qYUTwLoiU1zCieBdGSGmYUz4JoSQ0zimdBtKSGGcWzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQbSkhhnFsyBaUsOM4lkQLalhRvEsiJbUMKN4FkRLaphRPAuiJTXMKJ4F0ZIaZhTPgmhJDTOKZ0G0pIYZxbMgWlLDjOJZECyphWYUhWYUhWYUhWYU5YAltdCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotzfKHb0+1ufvxz7vqCfX/ym3etSSIlcXi5HfN5tXLrtvrw6vjVbm5rtTc3Oombvb0K/slnZ1KxuatY2Neubmo1NzW6aoBo9Qb09Yzrf33pa4kqzaiL2/u52/jb5h9f/0TB6ivodDaMnqd/Q8KCnqd/RMHqi+h0No6eq39Hw/e/DmF4+NUJ+usvwBa79SkFBK4h2x5zm2oXm2uULXPsvf4b0C1z7lYKEVpDSCoIltR6wpNYDltT6Ba79SkGwpNa7u/a3If79rT31yrwVVZfzjNb+aX7Suzv4Wzdwdzd/8wbk0RugfdII7ZPmC1z+lYKC/TM3cXnrlJJPfuby0RuoR2/gFp98PnVpQK81EPr+M63x3c/052+tLZd7wR0fhUh99t5+zPt9BpfIj1erfPLqOT/2v716VOvv/+pNDL3JioPXWf7jLG+yneF1ln+cpbzO8mZnqa+zvNlZ2ussb3aW/uCDiD76LKuPPsvqo8+yCr+Lc70B+F2cqw3QNrUobVOL0ja1KG1Ti9I2tShtU4vSNrUobVOL0ja1KG1Ti9I2tShtU4vSNrUobVOL0ja1KG1Ti9I2tShtU4vSNrUobVOL0ja1KG1Ti9I2tShtU4vSNrUobVOL0ja1KG1Ti9I2tShtU4vSNrUobVOL0ja1KG1Ti9I2tShtU4vSNrUobVOL0ja1aD6V0EqTb69u/e63gufvE//RbD2VzrrW7FPJrGvNPpXKutYs2rrfulnf1CztE71on+hF+0Qv2id60b57Ne27V9O+ezXtu1fTvnvdf+PJtYJoSd20pG5aUjctqZuW1ENL6qEl9dCSemhJPbSk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nINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnIM0nIM0nIM0nIM0nIO0g5bZhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQjnOQjnOQjnOQjnOQftAy23EO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0u/vID/e2g6JK289Le/vfMhHHfrZO4tNvr/Y7YcX/9Gq7WnV97Qae1rNPa3WnlZ7T6uzptX7e96va1X2tLpnWso909L9zfTXtbpnWso901LumZZyz7SUe6al2jMt1Z5pqfZMS7VnWrr/toKva3XPtFR7pqXaMy3Vnmmp9kxLvWda6j3TUu+ZlnrPtHT/PSFf1+qeaan3TEu9Z1rqPdNS75mWZs+0NHumpdkzLc2eaen+G3q+rtU909LsmZZmz7Q0e6alWTMtxbFmWoq7L4SyI9//GNvk0B/e+o+K7j3UmNj7eZq+HeJPFd179jD1j4pSPqnIb1BRSV0qiisVyfjlx2jq4wc049Ne83h/cX73Yjvey4/HLj8fu/y6c/nn+73/7Ksd18qf+kisM+k+Xi7HZ69XE7HLu4vrD6//o+He1vAsa/gmS7seqmFhNzyXt9ZDtD5pQMkN6JH50UCJXLlikh0fn+4f1+u9WdvUrG9qNjY1m5uaRU9J/3SzZflRSf/ULHpCunWz6Onoxs0qejK6dbPoqejWzT7XBHWl2eeaoK4065uafa4J6kqzzzVBXWl20wSlmyYo3TRB2aYJyjZNULZpgrJNE9RNloI+TLObJijbNEHZpgnKNk1QtmmC8k0TlG+aoHzTBOWbJqibrOh9mGY3TVC+aYLyTROUb5qgfNMEFZsmqNg0QcWmCSo2TVA3WT/9MM1umqBi0wQVmyao2DRBxaYJKjdNULlpgspNE1RumqBuspL6YZrdNEHlpgkqN01QuWmCyk0TVG2aoGrTBFWbJqjaNEHdZE31wzS7aYKqTRNUbZqgatMEVZsmqN40QfWmCao3TVC9aYK6yerqh2l20wTVmyao3jRB9aYJqjdNULNpgppNE9RsmqBm0wR1k3XWD9PspglqNk1Qs2mCmk0T1CyaoPJYNEHlsWiCymPRBJXHogkqD9/U7KIJKo9FE1Sy947futlFE1Sy943fuFn2rvFbN7tpgnqyneRXmt00QT3ZTvIrzW6aoJ5sJ/mVZjdNUJt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS5aSd5btpJnpt2kuemneS1aSd5bdpJXpt2ktemneR1+KZmF01QtWkneW3a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qWHPTDwLoiU17JmJZ0G0pIY9M/EsiJbUNI8oNI8oTktqpyW105LaaUnttKR2WlI7LamdltSwZyaeBdGSmuYRheYRheYRheYRheYRheYRheYRheYRJWhJHbSkTlpSJy2pYc9MPAuiJTXsmYlnQbSkhj0z8SyIltQ0jyg0jyhFS+qiJXXRkrpoSV20pKZ5RKF5RClaUsOemXgWREvqpiV105Ka5hGF5hGF5hGF5hGF5hGF5hGlaUndtKSGPTPxLIiW1LBnJp4F0ZIa9szEsyBaUsOemXgWREtqmkcUmkfUA5bUesCSWg9YUusBS2o9YEmtByyp9YAltR6wpFbaMxOV9sxEFVpSCy2phZbUQktqoSU17ZmJSntmogotqYWW1EJLappRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRNJpRNJpRNJpRNJpRtAOW1EYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzik4zik4zik4zik4zin7AktppRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRjFoRjFoRjFoRjFoRjEOWFIHzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgmzSgmzSgmzSgmzSjmAUvqpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFohnFohnFohnFohnFOmBJXTSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSj2DSj2DSj2DSj2DSj2AcsqZtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFIdmFIdmFIdmFIdmFOeAJfXQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLAjGIcMKN4FsRK6rMgVlKfBbGS+iyIldRnQaykPgtiJfVZECupz4JYSX0WREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQbSkhhnFsyBaUsOM4lkQLalhRvEsiJbUMKN4FkRLaphRPAuiJTXMKJ4F0ZIaZhTPgmhJDTOKZ0G0pIYZxbMgWlLDjOJZEC2pYUbxLIiW1DCjeBZES2qYUTwLoiU1zCieBdGSGmYUz4JoSQ0zimdBtKSGGcWzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQbSkhhnFsyBaUsOM4lkQLalhRvEsiJbUMKN4FkRLaphRPAuiJTXMKJ4F0ZIaZhTPgmhJDTOKZ0G0pIYZxbMgWlLDjOJZEC2pYUbxLIiW1DCjeBZES2qYUTwLoiU1zCieBdGSGmYUz4JoSQ0zimdBtKSGGcWzIFhSC80oCs0oCs0oCs0oygFLaqEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaUZRaUZRaUZRaUZRT1gSa00o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o2g0o2g0o2g0o2g0o2gHLKmNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSdZhSdZhSdZhSdZhT9gCW104yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04xi0Ixi0Ixi0Ixi0IxiHLCkDppRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRTJpRTJpRTJpRTJpRzAOW1EkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikUzikUzikUzikUzinXAkrpoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFpRrFpRrFpRrFpRrEPWFI3zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSj23Y3i+X7+/tZ2/FDQZy/OrEshJXJ5uRzxaSUVl0q6L69+b9Y3NRubms1NzdamZntTs7Oo2bs72S9tVjY1q5uaRU9Q59A3HwPg+aucK82qidjl3cX1h9f/0bBvaxg9Sf2OhtHT1O9oGD1R/Y6G0VPV72j4FpNV+PFeVdRc+eJdph+n8/EZc77zPwq6iT2/aUFCK0jvXlBdXlwzPxdktIKcVlDQfoaSVlDRCmpaQbSkLlpSFy2pS2kFGa0gWlJX0ApKWkFFK+jeSa0y7y9WT/2+oM/eueryT+Dtz1p+nsFrHryBPh69AXn0BmifNE37pLmJnb9pQcH+mZu4vHWetzQ++ZnLR2+gHr2BW3zy+VzuVoVeayD0/Wda47uf6c/fWvtyI0zPXwd81F+fvbcf836vyuW722ai8smrR4/+9upRrb//yzfCbrKG4HWW/zjLm2xQeJ3lH2cpr7O82Vnq6yxvdpb2OsubnaU/+CAyjz7LzqPPsvPos+zA7+JcbwB+F+daA3McrBt7cwitINhvXueA/eZ1DqcVBLufPwfsfv4csPv5czStoIEVJLSkFlpSCy2phZbUQktqoSW10JJaaEkttKQWWlIrLamVltRKS2qlJbXSklppSa20pFZaUistqZWW1EZLaqMltdGS2mhJbbSkNlpSGy2pjZbURktqoyW105LaaUnttKR2WlI7LamdltROS2qnJbXTktppSR20pA5aUgctqYOW1EFL6qAlddCSOmhJHbSkDlpSJy2pk5bUNHU/NHU/NHU/SUvqpCV10pI6aUmdtKQuWlIXLamLltRFS2qauh+auh+auh+aup+iJXXRkrppSd20pG5aUjctqZuW1E1L6qYlddOSumlJ3bSkHlpSDy2ph5bUQ0vqoSX10JJ6aEk9tKQeWlIPK6nzgBnFsyBWUp8FsZL6LIiV1GdBrKQ+C2Il9VkQK6nPglhJfRbESuqzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQTdJ6surJcV+XVBeHvWU890b67dynFVOsMpJVjnFKqdZ5bCeHZwH7CnvZ0GsZwefBbGeHXwWxHrK+1mQ0wpiPeX9LIj1lPezINZT3s+CWE95PwuiJTXsKe9nQbSkhj3l/SyIltROS2qnJbXTktppSe20pHZaUgctqYOW1EFL6qAlddCSOmhJHbSkDlpSBy2pg5bUSUvqpCV10pI6aUmdtKROWlInLamTltRJS+qkJXXRkrpoSV20pC5aUhctqYuW1EVL6qIlddGSumhJ3bSkblpSNy2pm5bUTUvqpiV105K6aUndtKRuWlIPLamHltRDS+qhJfXQknpoST20pB5aUg8tqQeW1HLAkloOWFLLAUtqOWBJLQcsqeWAJbUcsKSWA5bUcsCSWg5aUgstqYWW1EJLaqEltdCSWmhJLbSkFlpSCy2phZbUSktqpSW10pJaaUmttKRWWlIrLamVltRKS2qaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaURSaUVSaUVSaUVSaUVSaUdQDltRKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pKM4pGM4pGM4pGM4pGM4p2wJLaaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaEbRaUbRaUbRaUbRaUbRD1hSO80oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oBs0oBs0oBs0oBs0oxgFL6qAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaQZxaQZxaQZxaQZxTxgSZ00o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o1g0o1g0o1g0o1g0o1gHLKmLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSbZhSbZhSbZhSbZhT7gCV104xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04zi0Izi0Izi0Izi0IziHLCkHppRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJhRrANmFM+CWEl9FsRK6rMgVlKfBbGS+iyIldRnQaykPgtiJfVZECupz4JoSQ0zimdBtKSGGcWzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQbSkhhnFsyBaUsOM4lkQLalhRvEsiJbUMKN4FkRLaphRPAuiJTXMKJ4F0ZIaZhTPgmhJDTOKZ0G0pIYZxbMgWlLDjOJZEC2pYUbxLIiW1DCjeBZES2qYUTwLoiU1zCieBdGSGmYUz4JoSQ0zimdBtKSGGcWzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C7p3Up/v5+9vbccPBX324sy6FFIil5fLEZ9WUnGppPvy6m/N3t0/fmmzsqlZ3dSsbWrWNzUL+kT/5MWZx/uL87sX21Hfygd9/v97ygdNC/+e8pv8L+VscD6abYkr/1LUROzy7uL6w+v/aBg9u/yGhhs9v/yOhtEzzO9oGD3HyIx8fNqJ1icNPNdskv3xcX3ov/24vruw/tJmY1OzuanZ2tQsekr6579PWH5U8tP3iX6yuzu/bHae7O7Or5t9srs7v272ye7u/LrZJ7u78+tmfVOzzzVBXWn2uSaoK80+1wR1pdlNE9QsmqDkWDRBybFogpJj0QQlx6IJSg7f1OyiCUqORROUHIsmKDkWTVBybJqgZNMEJZsmKNk0QcmmCerum4K+tNlNE5RsmqBk0wQlmyYo2TRB6aYJSjdNULppgtJNE9TdN3h9abObJijdNEHppglKN01QummCsk0TlG2aoGzTBGWbJqi7b9b70mY3TVC2aYKyTROUbZqgbNME5ZsmKN80QfmmCco3TVB333j5pc1umqB80wTlmyYo3zRB+aYJKjZNULFpgopNE1RsmqDuvon2S5vdNEHFpgkqNk1QsWmCik0TVG6aoHLTBJWbJqjcNEHdfUP0lza7aYLKTRNUbpqgctME9Wzbvn/Z7LNt+/51s5smqGfb9v3rZjdNUM+27fvXzW6aoGrTBFWbJij23vFbN7tpgmLvG791s5smKPae8Vs3u2mCerKd5Fea3TRBPdlO8ivNbpqgNu0kl007yWXTTnLZtJNcNu0kl007yWXTTnLZtJNcNu0kl007yWXTTnLZtJNcN+0k1007yXXTTnLdtJNcD9/U7KIJSjftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8lt005y27ST3DbtJLdNO8nt8E3NLpqgbNNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w37ST3TTvJfdNOct+0k9wP39TsognKN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k92fbSV5xqaR/bvbJJqhfN3v3Ccry/SdN0/rXzUpMHO9vned/54dm/9HA/feM37oBQTeQesylgfN/+kkD+ugN2KM34I/eQKAbqKP98tbmcy1ysz8i99B/G7n338X9lc3WpmZ7U7PsyeG2zTp7yvhnm/31tO/sieTGzbKnlxs3y550btysb2r2uSaoK80+1wR1pdnnmqCuNPtcE9SVZp9rgvp1s7FpgopNE1RsmqBi0wR1/13cX9nspgkqNk1QsWmCik0TVGyaoHLTBJWbJqjcNEHlpgnq/ru4v7LZTRNUbpqgctMElZsmqNw0QdWmCao2TVC1aYKqTRPU/Xdxf2Wzmyao2jRB1aYJqjZNULVpgupNE1RvmqB60wTVmyao++/i/spmN01QvWmC6k0TVG+aoHrTBDWbJqjZNEHNpglqNk1Q99/F/ZXNbpqgZtMENZsmqNk0Qc2iCSqORRNUHIsmqDgWTVBxLJqg4vBNzS6aoOJYNEHFsWiCimPRBBXHpglKNk1QsmmCkk0TlGyaoO6/i/srm900QcmmCUo2TVCyaYKSTROUbpqgdNMEpZsmKN00Qd1/F/dXNrtpgtJNE5RumqB00wQF38V922bhe7tv3OymCQq+D/zGzW6aoOB7xm/c7KYJ6sl2kl9pdtME9WQ7ya80u2mC2rSTPDbtJI9NO8lj007y2LSTPDbtJI9NO8lj007y2LSTPDbtJI9NO8lj007y2LSTPDbtJI9NO8lj007y2LSTPDbtJI9NO8lj007y2LSTPDbtJI9NO8lj007y2LSTPDbtJI9NO8lj007y2LSTPDbtJI9NO8lj007y2LSTPDbtJI9NO8lj007y2LSTPDbtJI9n20lecXl5/9zsk01Qv2z2/jvJD3svX+2t4l82OzWXn8tpiSvNqonY5d3F9YfX/9GwbGtYtzVs2xr2bQ3HtoZzW8O1reHe1vAsa3i2TVp3318u4x8t1A8N/1GQ0goyWkFOKyhoBd3ikzj8eP9vnN82rxRUph/Vy8eL61tBRSuoaQUNq6C8yQ7mmxYktIKUVpDRCnJaQUErKFkfHXncP6nr8uKa+fmEmlbQwAqSg1aQ0AqCzdQpsJk65d5JrTLvL1ZP/f6SffbOVZcYPe8V90/f41Li0RvIR2+gHr2BfvQGBpYqd9+hebUg2N2eVNonk9I+me6+0/FqQbf4pPG5FBR6LSZC3//ha3z3HeLzt9a+9KodH4VIffbefsz7DVKX705GVD559ejR3149qvVDAv177r7mTdY6vs7yj7Os11ne7Cz7dZY3O8t5neWtzvImKzVfZ/nHWcrrLG92lvo6y5udpb3O8mZn6a+zvNlZwn7LnUb73YnB74BNXN76vFsnn1xi+B2w6w3Mgzfgx6M3II/egD56A/boDfijNwD/XdT1BuC/i7reQMFGg7tvmLxaEO13RUH7XVHQflcUtN8VBe13RXffHHi1oPv/vdmv/xImklYQ7e/Ngvb3ZkH7e7Ok/b1Z0v7eLJVWkNEKclpBtLtbSbu7lbSkTlpSJy2pi5bURUvqos3URZupi5bURZupizZTFy2pi5bURbv70bS7H027+9G0pG5aUt99w8rVgmhJ3bSkblpSNy2pmzZTD22mHtpMPbS7H0O7+3GTDRY3LYh292Nodz+GltRDS+qBJXUdsKSuA5bUdcCSug5YUtcBS+o6YDN1HbCZug7Y337UAfvbjzpgdz9KYHc/SmB3P4q2waJoGyzqJhssbloQLamFltQCm6lLYDN1CW2mVtpMrbSZWmkztdJm6ptsdLhpQbC7H6Wwux+ltKRWWlIrLamNltRGS2qjzdRGm6mNltRGm6mNNlMbLamNltRGu/vhtLsfTrv74bSkdlpS38RM3rQgWlI7LamdltROS2qnzdRBm6mDNlMH7e5H0O5+3MQo3rQg2t2PoN39oBnFohnFohnFohnFohnFohnFohnFohnFStpMnbSZOml/+5G0v/1I2t2Pot39KNrdD5pRLJpRrJsYxZsWREtqmlEsmlEsmlGsos3UTZupmzZTN22mbtpMfROjeNOCaHc/mnb3g2YUi2YUi2YUi2YUi2YUi/aU7aI9ZbtoRrGGNlMPbaamGcWiGcUa2N2PPmB3P/qA3f3oA5bUfcCSug+nFQRL6qYZxaY9ZbtpT9lu2lO2m/aU7aY9ZbsFdvejBXb3o+/+lO2rBcHufrTA7n40zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSi20mZqpc3Ueu+//Tjfz9/f2o4fPjo++5w57xddPmjOD97Lyz9/IF+afHv1+Y/j47Uh35rtTc3Oombt2NSsbGpWNzVrm5r1Tc3GpmZzU7Owv55tg/31bNPscNPscNPscNPscNPscNPscDvtrqTT7krSnm/atOebNu35pk17vmnTnm/atOebNu35pk17vmnT7HDT7HAHLamDltRBS+qkJXXSkjppSZ20pE5aUtOeb9q055s2zQ43zQ43zQ43zQ43zQ43zQ43zQ43zQ530ZK6aEldtKQuWlLTnm/atOebNu35pk17vmnTnm/atOebNs0ON80Od9OSumlJ3bSkHlpSDy2paXa4aXa4h5bUtOebNu35pj20pB5aUtPs8NDs8NDs8NDs8NDs8BywpJ4DltRzwJJ6aM83HdrzTYf2fNOhPd90aM83HdrzTYf2fNOhPd90aHZ4aHZ4hJbUQktqoSW10pJaaUmttKRWWlIrLalpzzcd2vNNR2lJrbSkVlpSGy2pjZbUtOebDu35pmO0pDZaUhstqWlGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWBGsQ+YUTwLYiX1WRArqc+CWEl9FsRK6rMgVlKfBbGS+iyIldRnQaykPguiJTXMKJ4F0ZIaZhTPgmhJDTOKZ0G0pIYZxbMgWlLDjOJZEC2pYUbxLIiW1DCjeBZES2qYUTwLoiU1zCieBdGSGmYUz4JoSQ0zimdBtKSGGcWzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQbSkhhnFsyBaUsOM4lkQLalhRvEsiJbUMKN4FkRLaphRPAuiJTXMKJ4F0ZIaZhTPgmhJDTOKZ0G0pIYZxbMgWlLDjOJZEC2pYUbxLIiW1DCjeBZES2qYUTwLoiU1zCieBdGSGmYUz4JoSQ0zimdBtKSGGcWzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQbSkhhnFsyBaUsOM4lkQLKmFZhSFZhSFZhSFZhTlgCW10Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0oyi0oyi0oyi0oyiHrCkVppRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRNJpRNJpRNJpRNJpRtAOW1EYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzik4zik4zik4zik4zin7AktppRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRjFoRjFoRjFoRjFoRjEOWFIHzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgmzSgmzSgmzSgmzSjmAUvqpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFohnFohnFohnFohnFOmBJXTSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSj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ZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSdZhSdZhSdZhSdZhT9gCW104yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04xi0Ixi0Ixi0Ixi0IxiHLCkDppRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRjLsbxfP9/P2t7fihoM9enFmXQkrk8nI54tNKKi6VdF9e/d6sbGpWNzVrm5r1Tc3GpmZzU7O1qdne1OwsarbQE9Q59M3HANgSV5pVE7HLu4vrD6//o2H0FPU7GkZPUr+jYfQ09Tsa9m0No6eq39HwLSar8zdQ71VFzZUv3mX6cTofnzHnO/9RUNEKalpBc/eC6vLimvmpoJvY85sWJLSCFPYzdBN7ftOCnFZQ0AqiJXXTkrppSd0DK2gOWkG0pB6lFWS0gpxW0L2TWmXeX6ye+n1Bn71z1eWfwDkI9M8z+OSjN1CP3kA/egOwT5o8YJ80eQitIGX/zE1c3jrPWxo//czlYY/egD96A7f45PO53K0KvdZA6PvPtMZ3P9Ofv7X25UaYdnwUIvXZe/sx7/eqXL67bSYqn7x69Ohvrx7V+vu/eiMsb7KG4HWWf5xlvc7yZmfZr7O82VnO6yxvdZY3WbnxOss/zlIefBCRR59l5dFn2ZtsL/nSBuB3ca43AL+Lc72BYt3YS2laQbDfvKbCfvOaCrufnwq7n58Ku5+fN9mmctOCglZQ0gqiJbXSklppSW20pDZaUhstqY2W1EZLaqMltdGS2mhJbbSkNlpSOy2pnZbUTktqpyW105LaaUnttKR2WlI7LamdltRBS+qgJXXQkjpoSR20pA5aUgctqYOW1EFL6qAlddKSOmlJnbSkTlpSJy2pk5bUSUvqpCV10pI6aUldtKQuWlIXLamLltRFS+qiJXXRkrpoSV20pKap+6Sp+6Sp+2xaUjctqZuW1E1L6qYlddOSumlJ3bSkHlpS09R90tR90tR90tR9Di2ph5bUQ0vqoSX1wJK6DlhS1wFL6jpgSV0HLKnrgCV1HbCkrgOW1HXAkroOWFLXQUtqoSW10JJaaEkttKQWWlILLamFltQ0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1j+VM9WSpNvr279qFpCvjX7VM9VutbsUz1T6VqzT/U8pWvN+qZmn+o5SteahT1vuhz2vOly2POmy2HPm644aAUJrSClFWS0gpxWUNAKoiV10JI6aEkdtKROWlInLamTltRJS+qkJXXSkjppSZ20pE5aUictqYuW1EVL6qIlddGSumhJXbSkLlpSFy2pi5bURUvqpiV105K6aUndtKRuWlI3LambltRNS+qmJXXTknpoST20pB5aUg8tqYeW1ENL6qEl9dCSemhJPbCk7gOW1H3AkroPWFL3AUvqPmBJ3QcsqfuAJXUfsKTuA5bUfdCSWmhJLbSkFlpSCy2phZbUQktqoSW10JJaaEkttKRWWlIrLamVltRKS2qlJbXSklppSa20pFZaUistqY2W1EZLaqMltdGS2mhJbbSkNlpSGy2pjZbURktqpyW105LaaUnttKR2WlI7LalpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRrFpRnFoRnFoRnFoRnFoRnEOWFIPzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzSgOzCjKccCQ4ltFrKx+q4gV1m8VsdL6rSJWXL9VxMrrt4pYgf1WESux3ypiRfZbRbjMhnHFt4pwmQ0Di28V4TIbRhbfKsJlNgwtvlWEy2wYW3yrCJfZMLj4VhEus2F08a0iXGbD8OJbRbjMhvHFt4pwmQ0DjG8V4TIbRhjfKsJlNgwxvlWEy2wYY3yrCJfZMMj4VhEus2GU8a0iXGbDMONbRbjMhnHGt4pwmQ0DjW8V4TIbRhrfKsJlNgw1vlWEy2wYa3yrCJfZMNj4VhEus2G08a0iXGbDcONbRbjMhvHGt4pwmQ0Djm8V4TIbRhzfKsJlNgw5vlWEy2wYc3yrCJfZMOj4VhEus2HU8a0iXGbDsONbRbjMhnHHt4pwmQ0Dj28V4TIbRh7fKsJlNgw9vlWEy2wYe3yrCJfZMPj4VhEus2H08a0iXGbD8ONbRbjMhvHHt4pwmQ0DkG8V4TIbRiDfKsJlNgxBvlWEy2wYg3yriJbZgnOQgnOQgnOQgnOQctAyW3AOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnEOUnEOUnEOUnEOUg9aZivOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQRrOQRrOQRrOQRrOQdpBy2zDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjHOUjHOUjHOUjHOUg/aJntOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAcZOAcZOAcZOAcZOAcZBy2zA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgE+cgE+cgE+cgE+cg86BlduIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOEcZOEcZOEcZOEcZB20zC6cgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycg6y7O8jz/fz9re34oaLPXpxZl0JK5PJyOeLTSioulXRfXn3ptlZ126u6nU3d3t2dfm23sqpb0Gf7Jy/OPN5fnN+92I56rx80Cfy76vcHrz/I/1rODuej25a48q9FTcQu7y6uP7z+W8foKea3dIyeZH5Lx+hp5rd0jJ5oZEY+PvVE6+cO+niuKSX743P70H/7ud3Hc00p17rVVd3aqm59Vbfoeemf/3Zh+VFJ/9ztk93xudLtk93xudLtk93xudLtk93x+XW38mR3fK50+2R3fK50+1yz1LVun2uWutatr+p21Swlq2YpWTVLyapZSlbNUrpqltJVs5SumqV01Sx1900wX9vtqllKV81SumqW0lWzlK6apWzVLGWrZilbNUvZqlnq7huavrbbVbOUrZqlbNUsZatmKVs1S/mqWcpXzVK+apbyVbPU3TenfW23q2YpXzVL+apZylfNUr5qlopVs1SsmqVi1SwVq2apu280/NpuV81SsWqWilWzVKyapWLVLJWrZqlcNUvlqlkqV81Sd980+rXdrpqlctUslatmqVw1S+WqWapWzVK1apaqVbNUrZql7r4B+Gu7XTVL1apZqlbNUrVqlqpVs1SvmqV61SzVq2apXjVL3X0z99d2u2qWeraN4le6XTVLPdtG8Svdrpqlnm2j+JVuV81Ss2qWmlWz1N23lX9tt6tmKfZe85t3u2qWYu8zv3m3m2apebK959e63TRLzZPtPb/W7aZZag5f1e2mWWpW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fTXvP5di09/zsdtEsdXa7aJY6u100S53d+qpuF81SZ7eLZqmz20Wz1Nntolnq7HbVLLVp7/nZ7apZatPe87PbVbPUpr3nZ7erZqlNe8/PblfNUpv2np/drpqlNu09P7tdNUtt2nt+drtqltq09/zsdtUstWnv+dntqllq097zs9tVs9Smvednt6tmqU17z89uV81Sm/aen92umqU27T0/u101S23ae352u2qW2rT3/Ox21Sy1ae/52e2qWWrT3vOz21Wz1Ka952e3q2apTXvPz25XzVKb9p6f/5tVs9Smvefn/2bVLLVp7/n5v1k1S23ae37+b1bNUpv2np//m1Wz1Ka952e3q2apTXvPz25XzVKb9p6f3a6apTbtPT+7XTVLbdp7fna7apbatPf87HbVLLVp7/nZ7apZatPe87PbVbPUpr3nZ7erZqlNe8/PblfNUpv2np/drpqlNu09P7tdNUtt2nt+drtqltq09/zsdtUstWnv+dntqllq097zs9tVs9Smvednt6tmqU17z98eOL+q21Wz1Ka952+PVVnV7aZZSlbtPZdVe89l1d5zWbX3XA5f1e2mWUpW7T2XVXvPZdXec1m191xW7T2XVXvPZdXec1m191xW7T2XVXvPZdXec1m191xW7T2XVXvPZdXec1m191xW7T2XVXvPZdXec1m191xW7T2XVXvPZdXec1m191xW7T2XVXvPZdXec1m191xW7T2XVXvPZdXec1m191xW7T2XVXvPZdXec1m191xW7T2XVXvP5dn2nldcKulPun2yWepKt3efpSzff9g0rX/drcTE8f7Wef53fuj2Wwf18B00uoPUYy4dnP/TzzqYR+/g/nvEb96BPHwHiu6gjvbLW5vPteTN/kjeQ39K3vvv+/7Sbn1Vt7GqW/YMcetu2fPGP9vtldk/2LPJrbtlzzE37jbZM8+tu2XPR7fu9rlmqWvdPtcsda1bX9Xtc81S17p9rlnqWrerZqlcNUvlqlmqVs1StWqWqlWzVK2ape6/7/tLu101S9WqWapWzVK1apaqVbNUr5qletUs1atmqV41S91/3/eXdrtqlupVs1SvmqV61SzVq2apWTVLzapZalbNUrNqlrr/vu8v7XbVLDWrZqlZNUvNqllqNs1SemyapfTYNEvpsWmW0mPTLKWHr+p20yylx6ZZSo9Ns5Qem2YpPVbNUrJqlpJVs5SsmqVk1Sx1/33fX9rtqllKVs1SsmqWklWzlKyapXTVLKWrZildNUvpqlnq/vu+v7TbVbOUrpqldNUspatmKV01S9mqWcpWzVK2apayVbPU/fd9f2m3q2YpWzVL2apZylbNUrZqlvJVs5SvmqV81Szlq2ap++/7/tJuV81S8H3ft+521SwF3yN+625XzVLw/eS37nbVLPVke8+vdbtqlnqyvefXul01Sz3Z3vNr3a6apVbtPddVe8911d5zXbX3XFftPddVe8911d5zXbX3XFftPddVe8911d5zXbX3XFftPddVe8911d5zXbX3XFftPddVe8911d5zXbX3XFftPddVe8911d5zXbX3XFftPddVe8911d5zXbX3XFftPddVe8911d5zXbX3XFftPddVe8911d5zXbX3XFftPddn23tecXl5f9Ltk81SV7q9+yx12Hv9am8l/7Lbqbn8aE5LXOlWTcQu7y6uP7z+W8e9ruNZ1rHdfwf6l3cs6zrWdR3buo59XcexruNc1/G2mcvuviNdxj96qB86/lbR0Cq6+67x6xUJriLFVXSLz+Tw4/0/EjVXKirTj/Ll48X1XpHjKgpcRYmrqHAVNa6ioVV0k53Gt61IcBUpriKjfYro/TO7Li+umU/OKHAVJa6iwlXUuIpwc7bh5my7d2arzPuL1VO/v2qfvXPVJU+jtT/5fmf68B3Yw3fgD99BPHwHicuWwlWEuxdkuM8ox31GOe5e0E12O/pcKgq9lhah7//+Nb77XvH5W2tfmtWOj0KkPntvP+b9HqrLd0cjKp+8evTob68e1fohiP59N2hvsjrydZjfDtNfh3m7w4zXYd7uMPN1mLc7zHod5u0Os1+HebvDnNdh3uwwb7LT9HWY3w5TXod5u8PE/TY8cL9Zuclm0994T2ni8tZ5dv7ZVYbfFfsLHeTDd1AP30E/fAfz6B3k8fAdwH9T9Rc6gP+m6i90AP9N1V/owGlTwt23WF6vCPebpMT9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sxXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIA3nIA3nIA3nIA3nIO2gZbbhHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKTjHKTjHKTjHKTjHKQftMx2nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIMMnIMMnIMMnIMMnIOMg5bZgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQiXOQiXOQiXOQiXOQedAyO3EOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOsnAOsnAOsnAOsnAOsg5aZhfOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQTbOQTbOQTbOQTbO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kHnQMjtxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDrJwDrJwDrJwDrJwDrIOWmYXzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkE2zkE2zkE2zkE2zkH2QcvsxjnIxjnIxjnI/6+9u92RI0vOO35Hi4z3iKsxZMMwFhAkw5YN+IPv3Tkrdjfpaaq5tTWn/2TMF2EHquoTp5h8Oph1fpGNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CDc5CDc5CDc5CDc5Bz0TJ7cA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5yaA7SL5qDvCuCZfZdESyz74pgmX1XBMvsuyJYZt8VwTL7rgiW2XdFsMy+K8JlNs1B3hXhMpvmIO+KcJlNc5B3RbjMpjnIuyJcZtMc5F0RLrNpDvKuCJfZNAd5V4TLbJqDvCvCZTbNQd4V4TKb5iDvinCZTXOQd0W4zKY5yLsiXGbTHORdES6zaQ7yrgiX2TQHeVeEy2yag7wrwmU2zUHeFeEym+Yg74pwmU1zkHdFuMymOci7Ilxm0xzkXREus2kO8q4Il9k0B3lXhMtsmoO8K8JlNs1B3hXhMpvmIO+KcJlNc5B3RbjMpjnIuyJcZtMc5F0RLrNpDvKuCJfZNAd5V4TLbJqDvCvCZTbNQd4V4TKb5iDvinCZTXOQd0W4zKY5yLsiXGbTHORdES6zaQ7yrgiX2TQHeVeEy2yag7wrwmU2zUHeFeEym+Yg74pwmU1zkHdFuMymOci7Ilxm0xzkXREtswXnIAXnIAXnIAXnIOWiZbbgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTiHKTiHKTiHKTiHKRetMxWnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnINUnIM0nIM0nIM0nIM0nIO0i5bZhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQhnOQjnOQjnOQjnOQjnOQftEy23EO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEO0nEOMnAOMnAOMnAOMo47yPvn+cuPtuubit57cWa9FlIiry+XK96tpOK1ku7XV7/u1lftNlbtNlfttlbttlftFvS7/Z0XZ14vL86vXmxXfamfpGsfqh/UNzxUv5L/ttw7nLfdtsQHf1vUROz1p4vrN6//smN0F/OH7NjX7RjdzfwhO0Z3NDIjb7/1ROu9HfxaXUr22+/tS3/3e1t+rS7lo93Opt0e1+efu1tZtVt0v/T3/+vC8q2S3//rQn+xOz4f7NZX7fYXu+PzwW5/sTs+H+z2F7vj88Fuf7E7Ph/s9tfqpT7Yrf1avdRHu/21eqmPdruql7JVvdTxKRyfu9tVvZSt6qVsVS9lq3opW9VL+apeylf1Ur6ql/JVvdTx6Tifu9tVvZSv6qV8VS/lq3opX9VLxapeKlb1UrGql4pVvdTxqVWfu9tVvVSs6qViVS8Vq3qpWNVL5apeKlf1Urmql8pVvdTxaXKfu9tVvVSu6qVyVS+Vq3qpXNVL1apeqlb1UrWql6pVvdTxKY+fu9tVvVSt6qVqVS9Vq3qpWtVL9apeqlf1Ur2ql+pVvdTx6aufu9tVvVSv6qV6VS/Vq3qpXtVLzapealb1UrOql5pVvdTxqcifu9tVvdSs6qVmVS81q3qp2dRL5bWpl8prUy+V16ZeKn+1ieIf7NZX7XZTL5W/2kTxD3a7qZfKX22i+Ae7XdVLyapeSlb1UuzZ5k/f7apeij3T/Om7XdVLsWeZP323q3qpX2zu+Ue7XdVL/WJzzz/a7apeatXc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w19zxXzT3PVXPPc9Xc81w197xWzT2vVXPPa9Xc81o197wuX7XbTb1UrZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmntequee1au55rZp7Xqvmnvequee9au55r5p73qvmnvflq3a7qZfqVXPPe9Xc814197xXzT3vVXPPe9Xc814197xXzT3vVXPPe9Xc814197xXzT3vVXPPe9Xc814197xXzT3vVXPPe9Xc814197xXzT3vVXPPe9Xc814197xXzT3vVXPPe9Xc814197xXzT3vVXPPe9Xc814197xXzT3vVXPPe9Xc814197xXzT3vVXPPe9Xc814197xXzT3vVXPPe9Xc814197xXzT3vVXPPe9Xc814197xXzT3vVXPPe9Xc814197xXzT3vVXPPe9Xc814197zPzz23fClI0/o/3q3ExPXyo/Ne55vdftmB/vQ7MPQOUq953cH91vd24D/9DuKn30H+9Dso9A7qan/90ebzUfJmx+vLL/198vaq3c6m3Z6f9/2pu2X3EM/eLbvf+Ht3+0F/WOze5Nm79VW7Zfc8z94tuz969m5/rV7qo93+Wr3UR7v9tXqpD3bbv1Yv9dFuf61e6qPdruqlelUvdX7e96fudlUv1at6qV7VS/WqXqpX9VKzqpeaVb3UrOqlZlUvdX7e96fudlUvNat6qVnVS82qXmo29VJzbeql5trU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zkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkE6zkE6zkE6zkE6zkH6RctsxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxznIwDnIwDnIwDnIwDnIuGiZHTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHmTgHmTgHmTgHmTgHmRctsxPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIAvnIAvnIAvnIAvnIOuiZXbhHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGTjHGTjHGTjHGTjHGRftMxunINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnIMcnIMcnIMcnIMcnIOci5bZg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQQ3OQedEc5F0RLLPvimCZfVcEy+y7Ilhm3xXBMvuuCJbZd0WwzL4rgmX2XREus2kO8q4Il9k0B3lXhMtsmoO8K8JlNs1B3hXhMpvmIO+KcJlNc5B3RbjMpjnIuyJcZtMc5F0RLrNpDvKuCJfZNAd5V4TLbJqDvCvCZTbNQd4V4TKb5iDvinCZTXOQd0W4zKY5yLsiXGbTHORdES6zaQ7yrgiX2TQHeVeEy2yag7wrwmU2zUHeFeEym+Yg74pwmU1zkHdFuMymOci7Ilxm0xzkXREus2kO8q4Il9k0B3lXhMtsmoO8K8JlNs1B3hXhMpvmIO+KcJlNc5B3RbjMpjnIuyJcZtMc5F0RLrNpDvKuCJfZNAd5V4TLbJqDvCvCZTbNQd4V4TKb5iDvinCZTXOQd0W4zKY5yLsiXGbTHORdES6zaQ7yrgiX2TQHeVeEy2yag7wrwmU2zUHeFeEym+Yg74pomS04Byk4Byk4Byk4BykXLbMF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAF5yAV5yAV5yAV5yAV5yD1omW24hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4hyk4Ryk4Ryk4Ryk4RykXbTMNpyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDNJyDdJyDdJyDdJyDdJyD9IuW2Y5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkI5zkIFzkIFzkIFzkIFzkHHRMjtwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJwDjJxDjJxDjJxDjJxDjIvWmYnzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEmzkEWzkEWzkEWzkEWzkHWRcvswjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIxjnIxjnIxjnIxjnIvmiZ3TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH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aTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgH6TgH6TgH6TgH6TgH6Rctsx3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIAPnIAPnIAPnIAPnIOOiZXbgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTiHGTiHGTiHGTiHGRetMxOnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnIMsnIMsnIMsnIMsnIOsi5bZhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQjXOQjXOQjXOQjXOQfdEyu3EOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOcnAOcnAOcnAOcnAOci5aZg/OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7O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"}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"00000000000000000000000000000000000000000000000000000000906cb9c3"},{"kind":"string","value":"EcdsaPublicKeyNote"}],"kind":"tuple"}],"storage":[{"fields":[{"name":"public_key","value":{"fields":[{"name":"slot","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000001"}}],"kind":"struct"}}],"kind":"struct"}]},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}}],"kind":"struct","path":"EcdsaKAccount::constructor_parameters"}}],"kind":"struct","path":"EcdsaKAccount::constructor_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"}}],"kind":"struct","path":"EcdsaKAccount::entrypoint_parameters"}}],"kind":"struct","path":"EcdsaKAccount::entrypoint_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaKAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaKAccount::verify_private_authwit_abi"}]}},"file_map":{"105":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX, NUM_KEY_TYPES, sk_generators},\n oracle::{\n key_validation_request::get_key_validation_request, arguments, returns::pack_returns,\n call_private_function::call_private_function_internal, header::get_header_at,\n logs::{emit_encrypted_note_log, emit_encrypted_event_log},\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal\n}\n}\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext, function_selector::FunctionSelector, gas::Gas,\n max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, public_call_stack_item::PublicCallStackItem,\n public_call_stack_item_compressed::PublicCallStackItemCompressed, read_request::ReadRequest,\n note_hash::NoteHash, nullifier::Nullifier, log_hash::{LogHash, NoteLogHash, EncryptedLogHash}\n},\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_NOTE_HASHES_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader, traits::Empty\n};\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n args_hash: Field,\n return_hash: Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n private_call_requests : BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_requests : BoundedVec<PublicCallRequest, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_call_request: PublicCallRequest,\n l2_to_l1_msgs : BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<LogHash, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() });\n }\n\n fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: nullified_note_hash, counter: self.next_counter() });\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n key_validation_requests_and_generators: self.key_validation_requests_and_generators.storage,\n note_hashes: self.note_hashes.storage,\n nullifiers: self.nullifiers.storage,\n private_call_requests: self.private_call_requests.storage,\n public_call_requests: self.public_call_requests.storage,\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage,\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage,\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage,\n unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\"Setting {0} as fee payer\", [self.this_address().to_field()]);\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number = MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one \n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale. We fetch new values from oracle and instruct\n // protocol circuits to validate them by storing the validation request in context.\n let request = get_key_validation_request(pk_m_hash, key_index);\n let request_and_generator = KeyValidationRequestAndGenerator { request, sk_app_generator: sk_generators[key_index] };\n // We constrain that the pk_m_hash matches the one in the request (otherwise we could get an arbitrary\n // valid key request and not the one corresponding to pk_m_hash).\n assert(request.pk_m.hash() == pk_m_hash);\n self.key_validation_requests_and_generators.push(request_and_generator);\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(&mut self, note_hash_counter: u32, log: [u8; M], log_hash: Field) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_private_function_no_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_private_function_with_packed_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n let (end_side_effect_counter, returns_hash) = call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = end_side_effect_counter + 1;\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n self.private_call_requests.push(\n PrivateCallRequest {\n contract_address,\n call_context,\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter\n }\n );\n\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n let call_request = PublicCallRequest { item, counter };\n self.public_call_requests.push(call_request);\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.set_public_teardown_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn set_public_teardown_function_with_packed_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n self.public_teardown_call_request = PublicCallRequest {\n item,\n counter,\n };\n }\n\n fn generate_call_context(\n self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> CallContext {\n let msg_sender = if is_delegate_call {\n self.msg_sender()\n } else {\n self.this_address()\n };\n let storage_contract_address = if is_delegate_call {\n self.this_address()\n } else {\n contract_address\n };\n CallContext { msg_sender, storage_contract_address, function_selector, is_static_call, is_delegate_call }\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n}\n"},"113":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\nuse std::{\n embedded_curve_ops::fixed_base_scalar_mul as derive_public_key,\n hash::from_field_unsafe as fr_to_fq_unsafe, field::bn254::decompose\n};\n\nuse crate::{\n event::event_interface::EventInterface, oracle::unsafe_rand::unsafe_rand,\n utils::point::point_to_bytes, note::note_interface::NoteInterface,\n encrypted_logs::{\n header::EncryptedLogHeader, incoming_body::EncryptedLogIncomingBody,\n outgoing_body::EncryptedLogOutgoingBody\n}\n};\n\npub fn compute_encrypted_event_log<Event, let NB: u32, let MB: u32, let OB: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n ovsk_app: Field,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress,\n event: Event\n) -> [u8; OB] where Event: EventInterface<NB, MB> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_event(event, randomness).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; OB] = [0; OB];\n // @todo We ignore the tags for now \n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = OB - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\npub fn compute_encrypted_note_log<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress,\n note: Note\n) -> [u8; M] where Note: NoteInterface<N, NB> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_note(note, storage_slot).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; M] = [0; M];\n // @todo We ignore the tags for now \n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\n/// Converts a base field element to scalar field element.\n/// This is fine because modulus of the base field is smaller than the modulus of the scalar field.\nfn fr_to_fq(r: Field) -> Scalar {\n let (lo, hi) = decompose(r);\n\n Scalar { lo, hi }\n}\n\nfn generate_ephemeral_key_pair() -> (Scalar, Point) {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n // We use the unsafe version of `fr_to_fq` because multi_scalar_mul (called by derive_public_key) will constrain\n // the scalars.\n let eph_sk = fr_to_fq_unsafe(unsafe_rand());\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\nmod test {\n use crate::{encrypted_logs::payload::compute_encrypted_note_log, test::mocks::mock_note::MockNoteBuilder};\n use dep::protocol_types::{address::AztecAddress, point::Point};\n use std::test::OracleMock;\n\n #[test]\n fn test_encrypted_note_log_matches_typescript() {\n // All the values in this test were copied over from `tagged_log.test.ts`\n let contract_address = AztecAddress::from_field(0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04);\n let storage_slot = 0x0fe46be583b71f4ab5b70c2657ff1d05cccf1d292a9369628d1a194f944e6599;\n let ovsk_app = 0x03a6513d6def49f41d20373d2cec894c23e7492794b08fc50c0e8a1bd2512612;\n let ovpk_m = Point {\n x: 0x1961448682803198631f299340e4206bb12809d4bebbf012b30f59af73ba1a15,\n y: 0x133674060c3925142aceb4f1dcd9f9137d0217d37ff8729ee5ceaa6e2790353d,\n is_infinite: false\n };\n let ivpk_m = Point {\n x: 0x260cd3904f6df16e974c29944fdc839e40fb5cf293f03df2eb370851d3a527bc,\n y: 0x0eef2964fe6640e84c82b5d2915892409b38e9e25d39f68dd79edb725c55387f,\n is_infinite: false\n };\n\n let note_value = 0x301640ceea758391b2e161c92c0513f129020f4125256afdae2646ce31099f5c;\n let note = MockNoteBuilder::new(note_value).contract_address(contract_address).storage_slot(storage_slot).build();\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk);\n\n let recipient = AztecAddress::from_field(0x10ee41ee4b62703b16f61e03cb0d88c4b306a9eb4a6ceeb2aff13428541689a2);\n\n let log: [u8; 448] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n note\n );\n\n // The following value was generated by `tagged_log.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let encrypted_note_log_from_typescript = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 70, 12, 14, 67, 77, 132, 110, 193, 234, 40, 110, 64, 144, 235, 86, 55, 111, 242, 123, 221, 193, 170, 202, 225, 216, 86, 84, 159, 112, 31, 167, 126, 79, 51, 186, 47, 71, 253, 172, 99, 112, 241, 59, 197, 241, 107, 186, 232, 87, 187, 230, 171, 62, 228, 234, 42, 51, 145, 146, 238, 242, 42, 71, 206, 13, 244, 66, 111, 195, 20, 203, 98, 148, 204, 242, 145, 183, 156, 29, 141, 54, 44, 220, 194, 35, 229, 16, 32, 204, 211, 49, 142, 112, 82, 202, 116, 241, 254, 146, 42, 217, 20, 189, 70, 228, 182, 171, 205, 104, 27, 99, 171, 28, 91, 244, 21, 30, 130, 240, 5, 72, 174, 124, 97, 197, 157, 248, 193, 23, 193, 76, 46, 141, 144, 70, 211, 45, 67, 167, 218, 129, 140, 104, 190, 41, 110, 249, 209, 68, 106, 135, 164, 80, 235, 63, 101, 80, 32, 13, 38, 99, 145, 91, 11, 173, 151, 231, 247, 65, 153, 117, 229, 167, 64, 239, 182, 126, 235, 83, 4, 169, 8, 8, 160, 4, 235, 252, 21, 96, 84, 161, 69, 145, 145, 215, 254, 161, 117, 246, 198, 65, 89, 179, 194, 90, 19, 121, 12, 202, 114, 80, 195, 14, 60, 128, 105, 142, 100, 86, 90, 108, 157, 219, 22, 172, 20, 121, 195, 25, 159, 236, 2, 70, 75, 42, 37, 34, 2, 17, 149, 20, 176, 32, 18, 204, 56, 117, 121, 34, 15, 3, 88, 123, 64, 68, 74, 233, 63, 59, 131, 222, 194, 192, 167, 110, 217, 10, 128, 73, 129, 172, 205, 103, 212, 60, 151, 141, 10, 151, 222, 151, 180, 43, 91, 148, 201, 110, 165, 10, 238, 32, 134, 235, 99, 216, 200, 182, 31, 22, 156, 18, 209, 222, 172, 239, 193, 212, 86, 99, 62, 70, 182, 45, 175, 241, 91, 202, 179, 225, 99, 1, 150, 232, 2, 252, 20, 83, 49, 132, 162, 93, 116, 212, 87, 71, 211, 58, 159, 163, 40, 253, 31, 3, 192, 48, 14, 201, 80, 24, 135, 154, 207, 58, 140, 128, 29, 101, 207, 189, 182, 191, 71, 210, 64, 172, 131, 83, 46, 232, 19, 216, 183, 108, 234, 17, 104, 60, 113, 231, 145, 195, 157, 24\n ];\n for i in 0..encrypted_note_log_from_typescript.len() {\n assert_eq(log[i], encrypted_note_log_from_typescript[i]);\n }\n assert_eq(encrypted_note_log_from_typescript.len(), log.len());\n }\n}\n"},"114":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/encrypted_note_emission.nr","source":"use crate::{\n context::PrivateContext, note::{note_emission::NoteEmission, note_interface::NoteInterface},\n encrypted_logs::payload::compute_encrypted_note_log, oracle::logs_traits::LensForEncryptedLog\n};\nuse dep::protocol_types::{\n hash::sha256_to_field, address::AztecAddress, point::Point, abis::note_hash::NoteHash,\n constants::MAX_NOTE_HASHES_PER_CALL\n};\n\nunconstrained fn compute_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n )\n}\n\nfn compute<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let encrypted_log: [u8; M] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n let log_hash = sha256_to_field(encrypted_log);\n (encrypted_log, log_hash)\n}\n\nfn emit_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n note: Note,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress,\n inner_compute: fn(AztecAddress, Field, Field, Point, Point, AztecAddress, Note) -> ([u8; M], Field)\n) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let note_header = note.get_header();\n let note_hash_counter = note_header.note_hash_counter;\n let storage_slot = note_header.storage_slot;\n\n let note_exists = context.note_hashes.storage.any(|n: NoteHash| n.counter == note_hash_counter);\n assert(note_exists, \"Can only emit a note log for an existing note.\");\n\n let contract_address: AztecAddress = context.this_address();\n let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n let (encrypted_log, log_hash) = inner_compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n}\n\npub fn encode_and_encrypt_note<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let header = context.get_header();\n let ovpk = header.get_ovpk_m(context, ov);\n let ivpk = header.get_ivpk_m(context, iv);\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute);\n }\n}\n\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let header = context.get_header();\n let ovpk = header.get_ovpk_m(context, ov);\n let ivpk = header.get_ivpk_m(context, iv);\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute_unconstrained);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, Point, Point, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, Point, Point, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute_unconstrained);\n }\n}\n"},"115":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/outgoing_body.nr","source":"use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, constants::GENERATOR_INDEX__SYMMETRIC_KEY,\n hash::poseidon2_hash_with_separator\n};\nuse std::aes128::aes128_encrypt;\n\nuse crate::{keys::point_to_symmetric_key::point_to_symmetric_key, utils::point::point_to_bytes};\n\nstruct EncryptedLogOutgoingBody {\n eph_sk: Scalar,\n recipient: AztecAddress,\n recipient_ivpk: Point,\n}\n\nimpl EncryptedLogOutgoingBody {\n pub fn new(eph_sk: Scalar, recipient: AztecAddress, recipient_ivpk: Point) -> Self {\n Self { eph_sk, recipient, recipient_ivpk }\n }\n\n /// Encrypts ephemeral secret key and recipient's ivpk --> with this information the recipient of outgoing will\n /// be able to derive the key with which the incoming log can be decrypted.\n pub fn compute_ciphertext(self, ovsk_app: Scalar, eph_pk: Point) -> [u8; 144] {\n // Again, we could compute `eph_pk` here, but we keep the interface more similar\n // and also make it easier to optimise it later as we just pass it along\n\n let mut buffer = [0 as u8; 128];\n\n let serialized_eph_sk_high = self.eph_sk.hi.to_be_bytes(32);\n let serialized_eph_sk_low = self.eph_sk.lo.to_be_bytes(32);\n\n let address_bytes = self.recipient.to_field().to_be_bytes(32);\n let serialized_recipient_ivpk = point_to_bytes(self.recipient_ivpk);\n\n for i in 0..32 {\n buffer[i] = serialized_eph_sk_high[i];\n buffer[i + 32] = serialized_eph_sk_low[i];\n buffer[i + 64] = address_bytes[i];\n }\n for i in 0..32 {\n buffer[i + 96] = serialized_recipient_ivpk[i];\n }\n\n // We compute the symmetric key using poseidon.\n let full_key: [u8; 32] = poseidon2_hash_with_separator(\n [ovsk_app.hi, ovsk_app.lo, eph_pk.x, eph_pk.y],\n GENERATOR_INDEX__SYMMETRIC_KEY as Field\n ).to_be_bytes(32).as_array();\n\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(buffer, iv, sym_key).as_array()\n }\n}\n\nmod test {\n use crate::encrypted_logs::outgoing_body::EncryptedLogOutgoingBody;\n use dep::protocol_types::{\n address::AztecAddress, traits::Empty, constants::GENERATOR_INDEX__NOTE_NULLIFIER,\n scalar::Scalar, point::Point, hash::poseidon2_hash_with_separator\n };\n use std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\n\n use crate::context::PrivateContext;\n\n #[test]\n fn test_encrypted_log_outgoing_body_matches_typescript() {\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000d0d302ee245dfaf2807e604eec4715fe,\n hi: 0x000000000000000000000000000000000f096b423017226a18461115fa8d34bb\n };\n let recipient_ivsk = Scalar {\n lo: 0x000000000000000000000000000000004828f8f95676ebb481df163f87fd4022,\n hi: 0x000000000000000000000000000000000f4d97c25d578f9348251a71ca17ae31\n };\n let sender_ovsk_app = Scalar {\n lo: 0x0000000000000000000000000000000074d2e28c6bc5176ac02cf7c7d36a444e,\n hi: 0x00000000000000000000000000000000089c6887cb1446d86c64e81afc78048b\n };\n\n let eph_pk = derive_public_key(eph_sk);\n let recipient_ivpk = derive_public_key(recipient_ivsk);\n\n let recipient = AztecAddress::from_field(0xdeadbeef);\n\n let body = EncryptedLogOutgoingBody::new(eph_sk, recipient, recipient_ivpk);\n\n let ciphertext = body.compute_ciphertext(sender_ovsk_app, eph_pk);\n\n // The following value was generated by `encrypted_log_outgoing_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let outgoing_body_ciphertext_from_typescript = [\n 127, 182, 227, 75, 192, 197, 54, 47, 168, 134, 233, 148, 251, 46, 86, 12, 73, 50, 238, 50, 31, 174, 27, 202, 110, 77, 161, 197, 244, 124, 17, 100, 143, 150, 232, 14, 156, 248, 43, 177, 16, 82, 244, 103, 88, 74, 84, 200, 15, 65, 187, 14, 163, 60, 91, 22, 104, 31, 211, 190, 124, 121, 79, 92, 239, 65, 185, 106, 51, 178, 168, 137, 84, 43, 79, 158, 151, 152, 83, 42, 170, 13, 106, 209, 254, 74, 39, 145, 73, 215, 17, 234, 196, 89, 30, 58, 120, 127, 88, 69, 121, 61, 18, 206, 89, 118, 243, 238, 177, 71, 73, 47, 147, 4, 155, 25, 173, 248, 206, 52, 17, 180, 122, 186, 106, 191, 252, 102, 197, 91, 16, 39, 94, 91, 224, 30, 168, 177, 26, 144, 5, 124, 128, 6\n ];\n\n for i in 0..outgoing_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], outgoing_body_ciphertext_from_typescript[i]);\n }\n assert_eq(outgoing_body_ciphertext_from_typescript.len(), ciphertext.len());\n }\n}\n"},"116":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/header.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\n\nuse crate::keys::point_to_symmetric_key::point_to_symmetric_key;\n\nuse std::aes128::aes128_encrypt;\n\nstruct EncryptedLogHeader {\n address: AztecAddress,\n}\n\nimpl EncryptedLogHeader {\n fn new(address: AztecAddress) -> Self {\n EncryptedLogHeader { address }\n }\n\n fn compute_ciphertext(self, secret: Scalar, point: Point) -> [u8; 48] {\n let full_key = point_to_symmetric_key(secret, point);\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n\n let input: [u8; 32] = self.address.to_field().to_be_bytes(32).as_array();\n aes128_encrypt(input, iv, sym_key).as_array()\n }\n}\n\n#[test]\nfn test_encrypted_log_header_matches_noir() {\n let address = AztecAddress::from_field(0xdeadbeef);\n let header = EncryptedLogHeader::new(address);\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let ciphertext = header.compute_ciphertext(secret, point);\n\n // The following value was generated by `encrypted_log_header.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_header_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 194, 44, 7, 131, 160, 83, 64, 181, 98, 38, 153, 214, 62, 171, 253, 161, 111, 191, 28, 247, 216, 26, 222, 171, 176, 218, 48, 209, 73, 89, 200, 209\n ];\n\n assert_eq(ciphertext, expected_header_ciphertext_from_typescript);\n}\n"},"117":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/incoming_body.nr","source":"use crate::note::note_interface::NoteInterface;\nuse crate::event::event_interface::EventInterface;\nuse dep::protocol_types::{scalar::Scalar, point::Point};\n\nuse std::aes128::aes128_encrypt;\nuse crate::keys::point_to_symmetric_key::point_to_symmetric_key;\n\nstruct EncryptedLogIncomingBody<let M: u32> {\n plaintext: [u8; M]\n}\n\nimpl<let M: u32> EncryptedLogIncomingBody<M> {\n pub fn from_note<T, let N: u32>(note: T, storage_slot: Field) -> Self where T: NoteInterface<N, M> {\n let mut plaintext = note.to_be_bytes(storage_slot);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn from_event<T, let MR: u32>(\n event: T,\n randomness: Field\n ) -> Self where T: EventInterface<M, MR> {\n let mut plaintext = event.private_to_be_bytes(randomness);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn compute_ciphertext(self, eph_sk: Scalar, ivpk: Point) -> [u8] {\n let full_key = point_to_symmetric_key(eph_sk, ivpk);\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(self.plaintext, iv, sym_key)\n }\n}\n\nmod test {\n use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, traits::Serialize,\n abis::event_selector::EventSelector\n };\n\n use crate::{\n note::{note_header::NoteHeader, note_interface::NoteInterface},\n encrypted_logs::incoming_body::EncryptedLogIncomingBody, event::event_interface::EventInterface,\n context::PrivateContext\n };\n\n struct AddressNote {\n address: AztecAddress,\n owner: AztecAddress,\n randomness: Field,\n header: NoteHeader,\n }\n\n global ADDRESS_NOTE_LEN: Field = 3;\n global ADDRESS_NOTE_BYTES_LEN = 32 * 3 + 64;\n\n impl NoteInterface<ADDRESS_NOTE_LEN, ADDRESS_NOTE_BYTES_LEN> for AddressNote {\n fn compute_note_hiding_point(self) -> Point {\n crate::generators::Ga1\n }\n\n fn get_note_type_id() -> Field {\n 1\n }\n\n fn get_header(self) -> NoteHeader { self.header}\n\n fn set_header(&mut self, header: NoteHeader) {self.header = header; }\n\n fn compute_nullifier(_self: Self, _context: &mut PrivateContext, _note_hash_for_nullify: Field) -> Field {\n 1\n }\n\n fn compute_nullifier_without_context(_self: Self) -> Field {\n 1\n }\n\n fn serialize_content(self) -> [Field; ADDRESS_NOTE_LEN] { [self.address.to_field(), self.owner.to_field(), self.randomness]}\n\n fn deserialize_content(fields: [Field; ADDRESS_NOTE_LEN]) -> Self {\n AddressNote { address: AztecAddress::from_field(fields[0]), owner: AztecAddress::from_field(fields[1]), randomness: fields[2], header: NoteHeader::empty() }\n }\n\n fn to_be_bytes(self, storage_slot: Field) -> [u8; ADDRESS_NOTE_BYTES_LEN] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ADDRESS_NOTE_BYTES_LEN] = [0; ADDRESS_NOTE_BYTES_LEN];\n\n let storage_slot_bytes = storage_slot.to_be_bytes(32);\n let note_type_id_bytes = AddressNote::get_note_type_id().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = storage_slot_bytes[i];\n buffer[32 + i] = note_type_id_bytes[i];\n }\n\n for i in 0..serialized_note.len() {\n let bytes = serialized_note[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n }\n\n impl AddressNote {\n pub fn new(address: AztecAddress, owner: AztecAddress, randomness: Field) -> Self {\n AddressNote { address, owner, randomness, header: NoteHeader::empty() }\n }\n }\n\n #[test]\n fn test_encrypted_note_log_incoming_body_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\n let note = AddressNote::new(\n AztecAddress::from_field(0x1),\n AztecAddress::from_field(0x2),\n 3\n );\n\n let storage_slot = 2;\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let ivpk = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n /// 1. `EncryptedLogIncomingBody::from_note` calls `note.to_be_bytes(storage_slot)` function which serializes\n /// the note to bytes - note that in the case of `AddressNote` the `to_be_bytes` function was automatically\n /// implemented by Aztec macros.\n let body = EncryptedLogIncomingBody::from_note(note, storage_slot);\n\n /// 2. `body.compute_ciphertext(...)` function then derives symmetric key from `eph_sk` and `ivpk` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_note_log_incoming_body.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let note_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 27, 176, 228, 74, 242, 190, 138, 48, 33, 93, 46, 37, 223, 130, 25, 245, 188, 163, 159, 223, 187, 24, 139, 206, 131, 154, 159, 130, 37, 17, 158, 114, 242, 141, 124, 193, 232, 54, 146, 96, 145, 100, 125, 234, 57, 43, 95, 115, 183, 39, 121, 232, 134, 229, 148, 25, 46, 77, 87, 127, 95, 7, 77, 188, 37, 234, 245, 142, 232, 87, 252, 28, 67, 67, 90, 214, 254, 89, 47, 68, 66, 187, 227, 8, 59, 162, 25, 141, 97, 141, 217, 197, 115, 15, 212, 202, 157, 41, 150, 62, 219, 57, 224, 92, 185, 212, 142, 94, 146, 41, 178, 145, 68, 169, 23, 185, 206, 138, 70, 47, 176, 210, 165, 236, 23, 206, 229, 108\n ];\n\n assert_eq(note_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..note_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], note_body_ciphertext_from_typescript[i]);\n }\n }\n\n struct TestEvent {\n value0: Field,\n value1: Field,\n value2: Field,\n }\n\n impl Serialize<3> for TestEvent {\n fn serialize(self) -> [Field; 3] {\n [self.value0, self.value1, self.value2]\n }\n }\n\n global TEST_EVENT_LEN: Field = 3;\n global TEST_EVENT_BYTES_LEN = 32 * 3 + 64;\n global TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS = 32 * 3 + 32;\n\n impl EventInterface<TEST_EVENT_BYTES_LEN, TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS> for TestEvent {\n fn get_event_type_id() -> EventSelector {\n EventSelector::from_signature(\"TestEvent(Field,Field,Field)\")\n }\n\n fn private_to_be_bytes(self, randomness: Field) -> [u8; TEST_EVENT_BYTES_LEN] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN] = [0; TEST_EVENT_BYTES_LEN];\n\n let randomness_bytes = randomness.to_be_bytes(32);\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = randomness_bytes[i];\n buffer[32 + i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn to_be_bytes(self) -> [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] = [0; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS];\n\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[32 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n }\n\n #[test]\n fn test_encrypted_log_event_incoming_body() {\n let test_event = TestEvent { value0: 1, value1: 2, value2: 3 };\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n\n let ivpk = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let randomness = 2;\n\n let body = EncryptedLogIncomingBody::from_event(test_event, randomness);\n\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_event_log_incoming_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let event_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 185, 29, 14, 152, 216, 130, 219, 151, 80, 185, 43, 223, 167, 8, 89, 189, 88, 188, 101, 137, 255, 136, 84, 252, 79, 18, 52, 3, 110, 54, 54, 206, 244, 209, 246, 226, 207, 247, 143, 253, 211, 75, 160, 224, 172, 41, 45, 7, 208, 137, 90, 56, 59, 4, 234, 48, 53, 23, 130, 230, 49, 249, 142, 243, 170, 72, 183, 242, 49, 124, 46, 52, 198, 75, 55, 102, 56, 89, 254, 67, 59, 157, 249, 120, 184, 67, 154, 16, 148, 227, 93, 37, 120, 199, 93, 166, 80, 127, 173, 52, 80, 135, 87, 1, 168, 164, 51, 48, 126, 120, 47, 102, 211, 227, 234, 170, 208, 99, 111, 198, 170, 226, 156, 244, 241, 174, 206, 30\n ];\n\n assert_eq(event_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..event_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], event_body_ciphertext_from_typescript[i]);\n }\n }\n}\n"},"121":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_getter/mod.nr","source":"use dep::protocol_types::{constants::{MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, GET_NOTES_ORACLE_RETURN_LENGTH}};\nuse crate::context::PrivateContext;\nuse crate::note::{\n constants::{GET_NOTE_ORACLE_RETURN_LENGTH, MAX_NOTES_PER_PAGE, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, Comparator, NoteStatus, PropertySelector},\n note_interface::NoteInterface, note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request\n};\nuse crate::oracle;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n serialized_note: [Field; N],\n selector: PropertySelector\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the serialized note. \n // This allows easier packing and custom (de)serialization schemas. A note property is located\n // inside the serialized note using the index inside the array, a byte offset and a length.\n let value = serialized_note[selector.index].to_be_bytes(32);\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[31 + offset - i] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_note_header<Note, let N: u32, let M: u32>(\n context: PrivateContext,\n storage_slot: Field,\n note: Note\n) where Note: NoteInterface<N, M> {\n let header = note.get_header();\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address), \"Mismatch note header contract address.\");\n assert(header.storage_slot == storage_slot, \"Mismatch note header storage slot.\");\n}\n\nfn check_note_fields<let N: u32>(\n serialized_note: [Field; N],\n selects: BoundedVec<Option<Select>, N>\n) {\n for i in 0..selects.len {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field = extract_property_value_from_selector(serialized_note, select.property_selector);\n\n // Values are computed ahead of time because circuits evaluate all branches\n let is_equal = value_field == select.value.to_field();\n let is_lt = value_field.lt(select.value.to_field());\n\n if (select.comparator == Comparator.EQ) {\n assert(is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.NEQ) {\n assert(!is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LT) {\n assert(is_lt, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LTE) {\n assert(is_lt | is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GT) {\n assert(!is_lt & !is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GTE) {\n assert(!is_lt, \"Mismatch return note field.\");\n }\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>\n) {\n for i in 0..sorts.len {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32, let M: u32>(\n context: &mut PrivateContext,\n storage_slot: Field\n) -> (Note, Field) where Note: NoteInterface<N, M> {\n let note = get_note_internal(storage_slot);\n\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n context.push_note_hash_read_request(note_hash_for_read_request);\n (note, note_hash_for_read_request)\n}\n\npub fn get_notes<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N, M> + Eq {\n let opt_notes = get_notes_internal(storage_slot, options);\n\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS>(\n notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor: fn([Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL], PREPROCESSOR_ARGS) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor_args: PREPROCESSOR_ARGS\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] {\n preprocessor(notes, preprocessor_args)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N, M> + Eq {\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the contents of the notes (as opposed to simply removing some),\n // the private kernel will later validate that these note actually exist, so transformations would cause for that\n // check to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = crate::utils::collapse(filtered_notes);\n let mut note_hashes: BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL> = BoundedVec::new();\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_fields = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let note = notes.get_unchecked(i);\n let fields = note.serialize_content();\n check_note_header(*context, storage_slot, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_note_hash_read_request(note_hash_for_read_request);\n note_hashes.push(note_hash_for_read_request);\n };\n }\n\n (notes, note_hashes)\n}\n\nunconstrained fn get_note_internal<Note, let N: u32, let M: u32>(storage_slot: Field) -> Note where Note: NoteInterface<N, M> {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_note,\n placeholder_fields,\n placeholder_note_length\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] where Note: NoteInterface<N, M> {\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n apply_preprocessor(opt_notes, options.preprocessor, options.preprocessor_args)\n}\n\nunconstrained pub fn view_notes<Note, let N: u32, let M: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N, M>\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE> where Note: NoteInterface<N, M> {\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let notes_array = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n let mut notes = BoundedVec::new();\n for i in 0..notes_array.len() {\n if notes_array[i].is_some() {\n notes.push(notes_array[i].unwrap_unchecked());\n }\n }\n\n notes\n}\n\nunconstrained fn flatten_options<Note, let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects] = select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects] = select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects] = select.unwrap_unchecked().property_selector.length;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order\n )\n}\n"},"123":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/utils.nr","source":"use crate::{\n context::PrivateContext, generators::G_slot,\n note::{note_header::NoteHeader, note_interface::NoteInterface}\n};\n\nuse dep::protocol_types::{\n hash::{\n compute_unique_note_hash, compute_siloed_note_hash as compute_siloed_note_hash,\n compute_siloed_nullifier as compute_siloed_nullifier_from_preimage\n},\n point::Point, utils::arr_copy_slice\n};\nuse dep::std::{embedded_curve_ops::multi_scalar_mul, hash::from_field_unsafe};\n\npub fn compute_siloed_nullifier<Note, let N: u32, let M: u32>(\n note_with_header: Note,\n context: &mut PrivateContext\n) -> Field where Note: NoteInterface<N, M> {\n let header = note_with_header.get_header();\n let note_hash_for_nullify = compute_note_hash_for_nullify(note_with_header);\n let inner_nullifier = note_with_header.compute_nullifier(context, note_hash_for_nullify);\n\n compute_siloed_nullifier_from_preimage(header.contract_address, inner_nullifier)\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_read_request<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n let nonce = note.get_header().nonce;\n let counter = note.get_header().note_hash_counter;\n\n if counter != 0 {\n note_hash\n } else {\n compute_unique_note_hash(nonce, note_hash)\n }\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_nullify_internal<Note, let N: u32, let M: u32>(\n note: Note,\n note_hash_for_read_request: Field\n) -> Field where Note: NoteInterface<N, M> {\n let header = note.get_header();\n\n if header.note_hash_counter != 0 {\n if header.nonce == 0 {\n // Case 1: Transient note\n note_hash_for_read_request\n } else {\n // Case 2: Non-revertible note, nullified by a revertible nullifier\n let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash_for_read_request);\n compute_siloed_note_hash(header.contract_address, unique_note_hash)\n }\n } else {\n // Case 3: Note from a previous transaction\n // note_hash_for_read_request is already the unique_note_hash in this case\n compute_siloed_note_hash(header.contract_address, note_hash_for_read_request)\n }\n}\n\n// TODO(#7775): nuke this commented out code - kept it around as it contains comments which might be helpful when tackling #7775\n// pub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n// let header = note.get_header();\n// // There are 3 cases for reading a note intended for consumption:\n// // 1. The note was inserted in this transaction, is revertible, or is not nullified by a revertible nullifier in \n// // the same transaction: (note_hash_counter != 0) & (nonce == 0)\n// // 2. The note was inserted in this transaction, is non-revertible, and is nullified by a revertible nullifier in \n// // the same transaction: (note_hash_counter != 0) & (nonce != 0)\n// // 3. The note was inserted in a previous transaction: (note_hash_counter == 0) & (nonce != 0)\n\n// // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n// let note_hash = note.compute_note_hiding_point().x;\n\n// if header.nonce == 0 {\n// // Case 1.\n// // If a note is transient, we just read the note_hash (kernel will hash it with nonce and silo by contract address).\n// note_hash\n// } else {\n// // Case 2: If a note is non-revertible, and is nullified by a revertible nullifier, we cannot squash them in the \n// // private reset circuit. Because if the tx reverts, we will have to keep the note hash and throw away the \n// // nullifier.\n// // And if the tx does not revert, both will be emitted. In which case, the nullifier must be created in the app\n// // from the siloed note hash.\n// // The kernel circuit will check that a nullifier with non-zero note_nonce is linked to a note hash, whose\n// // siloed note hash matches the note hash specified in the nullifier.\n\n// // Case 3: If a note is not from the current transaction, that means we are reading a settled note (from \n// // tree) created in a previous TX. So we need the siloed_note_hash which has already been hashed with\n// // nonce and then contract address. This hash will match the existing leaf in the note hash\n// // tree, so the kernel can just perform a membership check directly on this hash/leaf.\n// let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash);\n// compute_siloed_note_hash(header.contract_address, unique_note_hash)\n// // IMPORTANT NOTE ON REDUNDANT SILOING BY CONTRACT ADDRESS: The note hash computed above is\n// // \"siloed\" by contract address. When a note hash is computed solely for the purpose of\n// // nullification, it is not strictly necessary to silo the note hash before computing\n// // its nullifier. In other words, it is NOT NECESSARY for protocol security that a nullifier\n// // be computed from a siloed note hash. After all, persistable note hashes and nullifiers are\n// // siloed by the kernel circuit. That being said, the siloed note hash computed above CAN be\n// // used for nullifier computation, and this achieves the (arguably unnecessary) property that\n// // nullifiers are computed from a note hash's fully-computed note hash tree leaf.\n// }\n// }\n\npub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n compute_note_hash_for_nullify_internal(note, note_hash_for_read_request)\n}\n\npub fn compute_note_hash_and_optionally_a_nullifier<T, let N: u32, let M: u32, let S: u32>(\n deserialize_content: fn([Field; N]) -> T,\n note_header: NoteHeader,\n compute_nullifier: bool,\n serialized_note: [Field; S]\n) -> [Field; 4] where T: NoteInterface<N, M> {\n let mut note = deserialize_content(arr_copy_slice(serialized_note, [0; N], 0));\n note.set_header(note_header);\n\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n let unique_note_hash = compute_unique_note_hash(note_header.nonce, note_hash);\n let siloed_note_hash = compute_siloed_note_hash(note_header.contract_address, unique_note_hash);\n\n let inner_nullifier = if compute_nullifier {\n note.compute_nullifier_without_context()\n } else {\n 0\n };\n // docs:start:compute_note_hash_and_optionally_a_nullifier_returns\n [note_hash, unique_note_hash, siloed_note_hash, inner_nullifier]\n // docs:end:compute_note_hash_and_optionally_a_nullifier_returns\n}\n"},"124":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/lifecycle.nr","source":"use crate::context::{PrivateContext, PublicContext};\nuse crate::note::{\n note_header::NoteHeader, note_interface::NoteInterface,\n utils::{compute_note_hash_for_read_request, compute_note_hash_for_nullify_internal},\n note_emission::NoteEmission\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\n\npub fn create_note<Note, N, M>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note\n) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n let note_hash_counter = context.side_effect_counter;\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter };\n note.set_header(header);\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n\n let serialized_note = Note::serialize_content(*note);\n assert(\n notify_created_note(\n storage_slot,\n Note::get_note_type_id(),\n serialized_note,\n note_hash,\n note_hash_counter\n )\n == 0\n );\n\n context.push_note_hash(note_hash);\n\n NoteEmission::new(*note)\n}\n\npub fn create_note_hash_from_public<Note, N, M>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note\n) where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n // Public note hashes are transient, but have no side effect counters, so we just need note_hash_counter != 0\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter: 1 };\n note.set_header(header);\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n\n context.push_note_hash(note_hash);\n}\n\n// Note: This function is currently totally unused.\npub fn destroy_note<Note, N, M>(\n context: &mut PrivateContext,\n note: Note\n) where Note: NoteInterface<N, M> {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n destroy_note_unsafe(context, note, note_hash_for_read_request)\n}\n\npub fn destroy_note_unsafe<Note, N, M>(\n context: &mut PrivateContext,\n note: Note,\n note_hash_for_read_request: Field\n) where Note: NoteInterface<N, M> {\n let note_hash_for_nullify = compute_note_hash_for_nullify_internal(note, note_hash_for_read_request);\n let nullifier = note.compute_nullifier(context, note_hash_for_nullify);\n\n let note_hash_counter = note.get_header().note_hash_counter;\n let notification_note_hash = if (note_hash_counter == 0) {\n // Counter is zero, so we're nullifying a settled note and we don't populate the note_hash with real value.\n 0\n } else {\n // A non-zero note hash counter implies that we're nullifying a pending note (i.e. one that has not yet been\n // persisted in the trees and is instead in the pending new note hashes array). In such a case we populate its\n // hash with real value to inform the kernel which note we're nullifyng so that it can either squash both\n // the note and the nullifier if it's an inner note hash, or check that the it matches a pending note if it's\n // a siloed note hash.\n note_hash_for_nullify\n };\n\n let nullifier_counter = context.side_effect_counter;\n assert(notify_nullified_note(nullifier, notification_note_hash, nullifier_counter) == 0);\n\n context.push_nullifier_for_note_hash(nullifier, notification_note_hash)\n}\n\n"},"125":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_emission.nr","source":"/**\n * A note emission struct containing the information required for emitting a note.\n * The exact `emit` logic is passed in by the application code\n */\nstruct NoteEmission<Note> {\n note: Note\n}\n\nimpl<Note> NoteEmission<Note> {\n pub fn new(note: Note) -> Self {\n Self { note }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n\n pub fn discard(_self: Self) {}\n}\n\n/**\n * A struct wrapping note emission in `Option<T>`.\n * This is the struct provided to application codes, which can be used to emit\n * only when a note was actually inserted.\n * It is fairly common to have cases where a function conditionally inserts,\n * and this allows us to keep the same API for emission in both cases (e.g. inserting \n * a change note in a token's transfer function only when there is \"change\" left).\n */\nstruct OuterNoteEmission<Note> {\n emission: Option<NoteEmission<Note>>,\n}\n\nimpl<Note> OuterNoteEmission<Note> {\n pub fn new(emission: Option<NoteEmission<Note>>) -> Self {\n Self { emission }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](NoteEmission<Note>) -> ()) {\n if self.emission.is_some() {\n _emit(self.emission.unwrap());\n }\n }\n\n pub fn discard(_self: Self) {}\n}\n"},"133":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER, ARGS_HASH_CHUNK_COUNT,\n GENERATOR_INDEX__FUNCTION_ARGS, ARGS_HASH_CHUNK_LENGTH, MAX_ARGS_LENGTH\n},\n traits::Hash,\n hash::{\n pedersen_hash, compute_siloed_nullifier, sha256_to_field, pedersen_commitment,\n poseidon2_hash_with_separator\n}\n};\n// Note: pedersen_commitment is used only as a re-export here\nuse crate::oracle::logs_traits::{LensForEncryptedLog, ToBytesForUnencryptedLog};\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<T, let N: u32, let M: u32>(\n contract_address: AztecAddress,\n log: T\n) -> Field where T: ToBytesForUnencryptedLog<N, M> {\n let message_bytes: [u8; N] = log.to_be_bytes_arr();\n // can't use N - not in scope error\n let n = message_bytes.len();\n let mut hash_bytes = [0; M];\n // Address is converted to 32 bytes in ts\n let address_bytes = contract_address.to_be_bytes_arr();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes = (n as Field).to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..n {\n hash_bytes[36 + i] = message_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes = sender.to_field().to_be_bytes(32);\n let chain_id_bytes = chain_id.to_be_bytes(32);\n let recipient_bytes = recipient.to_field().to_be_bytes(32);\n let version_bytes = version.to_be_bytes(32);\n let content_bytes = content.to_be_bytes(32);\n let secret_hash_bytes = secret_hash.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n poseidon2_hash_with_separator(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__MESSAGE_NULLIFIER\n )\n}\n\nstruct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n assert(args.len() <= MAX_ARGS_LENGTH, \"Args length exceeds maximum\");\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n let mut current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n\n let mut current_chunk_index = 0;\n let mut index_inside_current_chunk = 0;\n for i in 0..args.len() {\n current_chunk_values[index_inside_current_chunk] = args[i];\n index_inside_current_chunk+=1;\n if index_inside_current_chunk == ARGS_HASH_CHUNK_LENGTH {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n current_chunk_index+=1;\n index_inside_current_chunk = 0;\n }\n }\n if index_inside_current_chunk > 0 {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n poseidon2_hash_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nfn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..MAX_ARGS_LENGTH {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x1cce4dbf69f14c44865919991ee1057922e34d7310ba237d71759aa422621ca9);\n}\n\n#[test]\nfn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nfn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nfn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nfn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"134":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/initializer.nr","source":"use dep::protocol_types::{\n address::AztecAddress, hash::poseidon2_hash_with_separator, constants::GENERATOR_INDEX__CONSTRUCTOR,\n abis::function_selector::FunctionSelector\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext}, oracle::get_contract_instance::get_contract_instance,\n oracle::get_contract_instance::get_contract_instance_avm\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn assert_is_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n assert(context.nullifier_exists(init_nullifier, context.this_address()), \"Not initialized\");\n}\n\npub fn assert_is_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n context.push_nullifier_read_request(init_nullifier);\n}\n\nfn compute_unsiloed_contract_initialization_nullifier(address: AztecAddress) -> Field {\n address.to_field()\n}\n\npub fn assert_initialization_matches_address_preimage_public(context: PublicContext) {\n let address = context.this_address();\n let instance = get_contract_instance_avm(address).unwrap();\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn assert_initialization_matches_address_preimage_private(context: PrivateContext) {\n let address = context.this_address();\n let instance = get_contract_instance(address);\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn compute_initialization_hash(init_selector: FunctionSelector, init_args_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [init_selector.to_field(), init_args_hash],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n"},"136":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr","source":"use dep::protocol_types::{address::AztecAddress, point::Point};\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(_note_hash_counter: u32, _encrypted_note: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_note_log<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32\n) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(_contract_address: AztecAddress, _randomness: Field, _encrypted_event: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_event_log<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedNoteLog)]\nunconstrained fn compute_encrypted_note_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_note_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_note_log_oracle(\n contract_address,\n storage_slot,\n note_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedEventLog)]\nunconstrained fn compute_encrypted_event_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _event_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_event_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n event_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_event_log_oracle(\n contract_address,\n randomness,\n event_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n#[oracle(emitUnencryptedLog)]\nunconstrained fn emit_unencrypted_log_oracle_private<T>(_contract_address: AztecAddress, _message: T, _counter: u32) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log_private_internal<T>(\n contract_address: AztecAddress,\n message: T,\n counter: u32\n) -> Field {\n emit_unencrypted_log_oracle_private(contract_address, message, counter)\n}\n\n#[oracle(emitContractClassUnencryptedLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {}\n\nunconstrained pub fn emit_contract_class_unencrypted_log_private_internal<let N: u32>(contract_address: AztecAddress, message: [Field; N], counter: u32) -> Field {\n emit_contract_class_unencrypted_log_private(contract_address, message, counter)\n}\n"},"138":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr","source":"#[oracle(packReturns)]\nunconstrained fn pack_returns_oracle<let N: u32>(_returns: [Field]) -> Field {}\n\nunconstrained pub fn pack_returns(returns: [Field]) {\n let _unused = pack_returns_oracle(returns);\n}\n\n#[oracle(unpackReturns)]\nunconstrained fn unpack_returns_oracle<let N: u32>(_return_hash: Field) -> [Field; N] {}\n\nunconstrained pub fn unpack_returns<let N: u32>(return_hash: Field) -> [Field; N] {\n unpack_returns_oracle(return_hash)\n}\n"},"139":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_public_data_witness.nr","source":"use dep::protocol_types::{\n constants::PUBLIC_DATA_TREE_HEIGHT, hash::pedersen_hash,\n public_data_tree_leaf_preimage::PublicDataTreeLeafPreimage, traits::{Hash, Serialize},\n utils::arr_copy_slice\n};\n\nglobal LEAF_PREIMAGE_LENGTH: u32 = 4;\nglobal PUBLIC_DATA_WITNESS: Field = 45;\n\nstruct PublicDataWitness {\n index: Field,\n leaf_preimage: PublicDataTreeLeafPreimage,\n path: [Field; PUBLIC_DATA_TREE_HEIGHT],\n}\n\n#[oracle(getPublicDataTreeWitness)]\nunconstrained fn get_public_data_witness_oracle(\n _block_number: u32,\n _public_data_tree_index: Field\n) -> [Field; PUBLIC_DATA_WITNESS] {}\n\nunconstrained pub fn get_public_data_witness(block_number: u32, public_data_tree_index: Field) -> PublicDataWitness {\n let fields = get_public_data_witness_oracle(block_number, public_data_tree_index);\n PublicDataWitness {\n index: fields[0],\n leaf_preimage: PublicDataTreeLeafPreimage { slot: fields[1], value: fields[2], next_index: fields[3] as u32, next_slot: fields[4] },\n path: arr_copy_slice(fields, [0; PUBLIC_DATA_TREE_HEIGHT], 1 + LEAF_PREIMAGE_LENGTH)\n }\n}\n"},"140":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/key_validation_request.nr","source":"use dep::protocol_types::abis::validation_requests::{KeyValidationRequest, key_validation_request::KEY_VALIDATION_REQUEST_LENGTH};\n\n#[oracle(getKeyValidationRequest)]\nunconstrained fn get_key_validation_request_oracle(\n _pk_m_hash: Field,\n _key_index: Field\n) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {}\n\nunconstrained fn get_key_validation_request_internal(\n npk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n let result = get_key_validation_request_oracle(npk_m_hash, key_index);\n KeyValidationRequest::deserialize(result)\n}\n\npub fn get_key_validation_request(pk_m_hash: Field, key_index: Field) -> KeyValidationRequest {\n get_key_validation_request_internal(pk_m_hash, key_index)\n}\n\n"},"143":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/storage.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\n\n#[oracle(storageRead)]\nunconstrained fn storage_read_oracle<let N: u32>(address: Field, storage_slot: Field, block_number: Field, length: Field) -> [Field; N] {}\n\nunconstrained pub fn raw_storage_read<let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> [Field; N] {\n storage_read_oracle(\n address.to_field(),\n storage_slot,\n block_number as Field,\n N as Field\n )\n}\n\nunconstrained pub fn storage_read<T, let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> T where T: Deserialize<N> {\n T::deserialize(raw_storage_read(address, storage_slot, block_number))\n}\n\nmod tests {\n use crate::oracle::storage::{raw_storage_read, storage_read};\n use dep::protocol_types::address::AztecAddress;\n\n use std::test::OracleMock;\n use crate::test::mocks::mock_struct::MockStruct;\n\n global address = AztecAddress::from_field(29);\n global slot = 7;\n global block_number = 17;\n\n #[test]\n fn test_raw_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: [Field; 2] = raw_storage_read(address, slot, block_number);\n assert_eq(read[0], 13);\n assert_eq(read[1], 42);\n }\n\n #[test]\n fn test_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: MockStruct = storage_read(address, slot, block_number);\n assert_eq(read.a, 13);\n assert_eq(read.b, 42);\n }\n}\n"},"144":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/unsafe_rand.nr","source":"#[oracle(getRandomField)]\nunconstrained fn rand_oracle() -> Field {}\n\n// Called `unsafe_rand` because we do not constrain in circuit that we are dealing with an actual random value.\n// Instead we just trust our PXE.\nunconstrained pub fn unsafe_rand() -> Field {\n rand_oracle()\n}\n"},"146":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr","source":"use dep::protocol_types::{abis::function_selector::FunctionSelector, address::AztecAddress, utils::reader::Reader};\n\n#[oracle(callPrivateFunction)]\nunconstrained fn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; 2] {}\n\nunconstrained pub fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> (u32, Field) {\n let fields = call_private_function_oracle(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n let mut reader = Reader::new(fields);\n let end_side_effect_counter = reader.read_u32();\n let returns_hash = reader.read();\n\n (end_side_effect_counter, returns_hash)\n}\n"},"147":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/keys.nr","source":"use crate::keys::PublicKeys;\nuse dep::protocol_types::{address::{AztecAddress, PartialAddress}, point::Point};\n\n#[oracle(getPublicKeysAndPartialAddress)]\nunconstrained fn get_public_keys_and_partial_address_oracle(_address: AztecAddress) -> [Field; 13] {}\n\nunconstrained fn get_public_keys_and_partial_address_oracle_wrapper(address: AztecAddress) -> [Field; 13] {\n get_public_keys_and_partial_address_oracle(address)\n}\n\npub fn get_public_keys_and_partial_address(address: AztecAddress) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle_wrapper(address);\n\n let keys = PublicKeys {\n npk_m: Point { x: result[0], y: result[1], is_infinite: result[2] as bool },\n ivpk_m: Point { x: result[3], y: result[4], is_infinite: result[5] as bool },\n ovpk_m: Point { x: result[6], y: result[7], is_infinite: result[8] as bool },\n tpk_m: Point { x: result[9], y: result[10], is_infinite: result[11] as bool }\n };\n\n let partial_address = PartialAddress::from_field(result[12]);\n\n (keys, partial_address)\n}\n"},"149":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr","source":"use crate::note::{note_header::NoteHeader, note_interface::NoteInterface};\n\nuse dep::protocol_types::{address::AztecAddress, utils::arr_copy_slice};\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _note_hash: Field,\n _counter: u32\n) -> Field {}\n\nunconstrained pub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_created_note_oracle(storage_slot, note_type_id, serialized_note, note_hash, counter)\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle<let N: u32>(_nullifier: Field, _note_hash: Field, _counter: u32) -> Field {}\n\nunconstrained pub fn notify_nullified_note<let N: u32>(\n nullifier: Field,\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_nullified_note_oracle(nullifier, note_hash, counter)\n}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S]\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S]\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields\n )\n}\n\nunconstrained pub fn get_notes<Note, let N: u32, let NB: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N] // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S] where Note: NoteInterface<N, NB> {\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let header = NoteHeader { contract_address, nonce, storage_slot, note_hash_counter };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = Note::deserialize_content(serialized_note);\n note.set_header(header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n// Only ever use this in private!\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\n// Only ever use this in private!\nunconstrained pub fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n"},"150":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr","source":"use dep::protocol_types::{\n address::AztecAddress, contract_instance::ContractInstance, utils::arr_copy_slice,\n constants::CONTRACT_INSTANCE_LENGTH, utils::reader::Reader\n};\n\n#[oracle(getContractInstance)]\nunconstrained fn get_contract_instance_oracle(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {}\n\n// Returns a ContractInstance plus a boolean indicating whether the instance was found.\n#[oracle(avmOpcodeGetContractInstance)]\nunconstrained fn get_contract_instance_oracle_avm(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {}\n\nunconstrained fn get_contract_instance_internal(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n get_contract_instance_oracle(address)\n}\n\nunconstrained pub fn get_contract_instance_internal_avm(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {\n get_contract_instance_oracle_avm(address)\n}\n\npub fn get_contract_instance(address: AztecAddress) -> ContractInstance {\n let instance = ContractInstance::deserialize(get_contract_instance_internal(address));\n assert(instance.to_address().eq(address));\n instance\n}\n\npub fn get_contract_instance_avm(address: AztecAddress) -> Option<ContractInstance> {\n let mut reader = Reader::new(get_contract_instance_internal_avm(address));\n let found = reader.read();\n if found == 0 {\n Option::none()\n } else {\n Option::some(reader.read_struct(ContractInstance::deserialize))\n }\n}\n"},"151":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr","source":"use dep::protocol_types::{abis::{function_selector::FunctionSelector}, address::AztecAddress};\n\n#[oracle(enqueuePublicFunctionCall)]\nunconstrained fn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(setPublicTeardownFunctionCall)]\nunconstrained fn set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn set_public_teardown_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n set_public_teardown_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(notifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n\nunconstrained pub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n"},"153":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/execution.nr","source":"use dep::protocol_types::address::AztecAddress;\n\n#[oracle(getContractAddress)]\nunconstrained fn get_contract_address_oracle() -> AztecAddress {}\n\n#[oracle(getBlockNumber)]\nunconstrained fn get_block_number_oracle() -> u32 {}\n\n#[oracle(getChainId)]\nunconstrained fn get_chain_id_oracle() -> Field {}\n\n#[oracle(getVersion)]\nunconstrained fn get_version_oracle() -> Field {}\n\nunconstrained pub fn get_contract_address() -> AztecAddress {\n get_contract_address_oracle()\n}\n\nunconstrained pub fn get_block_number() -> u32 {\n get_block_number_oracle()\n}\n\nunconstrained pub fn get_chain_id() -> Field {\n get_chain_id_oracle()\n}\n\nunconstrained pub fn get_version() -> Field {\n get_version_oracle()\n}\n"},"156":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/map.nr","source":"use dep::protocol_types::{hash::pedersen_hash, storage::map::derive_storage_slot_in_map, traits::ToField};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:map\nstruct Map<K, V, Context> {\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n}\n// docs:end:map\n\nimpl<K, T, Context> Storage<T> for Map<K, T, Context> {}\n\nimpl<K, V, Context> Map<K, V, Context> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map { context, storage_slot, state_var_constructor }\n }\n // docs:end:new\n\n // docs:start:at\n pub fn at(self, key: K) -> V where K: ToField {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = derive_storage_slot_in_map(self.storage_slot, key);\n\n let state_var_constructor = self.state_var_constructor;\n state_var_constructor(self.context, derived_storage_slot)\n }\n // docs:end:at\n}\n"},"158":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr","source":"use crate::context::{PublicContext, UnconstrainedContext};\nuse crate::oracle::storage::storage_read;\nuse dep::protocol_types::traits::{Deserialize, Serialize};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:public_mutable_struct\nstruct PublicMutable<T, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:public_mutable_struct\n\nimpl<T, Context> Storage<T> for PublicMutable<T, Context> {}\n\nimpl<T, Context> PublicMutable<T, Context> {\n // docs:start:public_mutable_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicMutable { context, storage_slot }\n }\n // docs:end:public_mutable_struct_new\n}\n\nimpl<T, T_SERIALIZED_LEN> PublicMutable<T, &mut PublicContext> where T: Serialize<T_SERIALIZED_LEN> + Deserialize<T_SERIALIZED_LEN> {\n // docs:start:public_mutable_struct_read\n pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n // docs:end:public_mutable_struct_read\n\n // docs:start:public_mutable_struct_write\n pub fn write(self, value: T) {\n self.context.storage_write(self.storage_slot, value);\n }\n // docs:end:public_mutable_struct_write\n}\n\nimpl<T, T_SERIALIZED_LEN> PublicMutable<T, UnconstrainedContext> where T: Deserialize<T_SERIALIZED_LEN> {\n unconstrained pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n}\n"},"174":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr","source":"use dep::protocol_types::{\n address::AztecAddress, constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note, note_getter::{get_note, view_notes}, note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions, note_emission::NoteEmission\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\nstruct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T, Context> Storage<T> for PrivateImmutable<T, Context> {}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor. \n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<N, M>(\n self,\n note: &mut Note\n ) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let storage_slot = self.storage_slot;\n get_note(self.context, storage_slot).0\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UnconstrainedContext> {\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n unconstrained pub fn view_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"},"176":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/utils/point.nr","source":"use dep::protocol_types::point::Point;\n\n// I am storing the modulus divided by 2 plus 1 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field = 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a public key to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(pk: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!pk.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result = pk.x.to_be_bytes(32);\n\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n if !BN254_FR_MODULUS_DIV_2.lt(pk.y) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result.as_array()\n}\n\nmod test {\n use dep::protocol_types::point::Point;\n use crate::utils::point::point_to_bytes;\n\n #[test]\n fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122, 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115\n ];\n\n assert_eq(expected_compressed_point_positive_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_positive_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_positive_sign[i]);\n }\n }\n\n #[test]\n fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169, 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181\n ];\n\n assert_eq(expected_compressed_point_negative_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_negative_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_negative_sign[i]);\n }\n }\n}\n"},"193":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{constants::KEY_VALIDATION_REQUEST_LENGTH, traits::{Empty, Serialize, Deserialize}, point::Point};\n\nstruct KeyValidationRequest {\n pk_m: Point,\n sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m))\n & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest {\n pk_m: Point::empty(),\n sk_app: 0,\n }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [\n self.pk_m.x,\n self.pk_m.y,\n self.pk_m.is_infinite as Field,\n self.sk_app,\n ]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: Point { x:fields[0], y: fields[1], is_infinite: fields[2] as bool},\n sk_app: fields[3],\n }\n }\n}\n\n"},"2":{"path":"std/array.nr","source":"use crate::cmp::Ord;\nuse crate::option::Option;\nuse crate::convert::From;\n\nimpl<T, let N: u32> [T; N] {\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n pub fn sort(self) -> Self where T: Ord {\n self.sort_via(|a: T, b: T| a <= b)\n }\n\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n let sorted_index = self.get_sorting_index(ordering);\n let mut result = self;\n // Ensure the indexes are correct\n for i in 0..N {\n let pos = find_index(sorted_index, i);\n assert(sorted_index[pos] == i);\n }\n // Sort the array using the indexes\n for i in 0..N {\n result[i] = self[sorted_index[i]];\n }\n // Ensure the array is sorted\n for i in 0..N - 1 {\n assert(ordering(result[i], result[i + 1]));\n }\n\n result\n }\n\n /// Returns the index of the elements in the array that would sort it, using the provided custom sorting function.\n unconstrained fn get_sorting_index<Env>(self, ordering: fn[Env](T, T) -> bool) -> [u32; N] {\n let mut result = [0; N];\n let mut a = self;\n for i in 0..N {\n result[i] = i;\n }\n for i in 1..N {\n for j in 0..i {\n if ordering(a[i], a[j]) {\n let old_a_j = a[j];\n a[j] = a[i];\n a[i] = old_a_j;\n let old_j = result[j];\n result[j] = result[i];\n result[i] = old_j;\n }\n }\n }\n result\n }\n\n #[builtin(as_slice)]\n pub fn as_slice(self) -> [T] {}\n\n // Apply a function to each element of an array, returning a new array\n // containing the mapped elements.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> [U; N] {\n let first_elem = f(self[0]);\n let mut ret = [first_elem; N];\n\n for i in 1..self.len() {\n ret[i] = f(self[i]);\n }\n\n ret\n }\n\n // Apply a function to each element of the array and an accumulator value,\n // returning the final accumulated value. This function is also sometimes\n // called `foldl`, `fold_left`, `reduce`, or `inject`.\n pub fn fold<U, Env>(self, mut accumulator: U, f: fn[Env](U, T) -> U) -> U {\n for elem in self {\n accumulator = f(accumulator, elem);\n }\n accumulator\n }\n\n // Apply a function to each element of the array and an accumulator value,\n // returning the final accumulated value. Unlike fold, reduce uses the first\n // element of the given array as its starting accumulator value.\n pub fn reduce<Env>(self, f: fn[Env](T, T) -> T) -> T {\n let mut accumulator = self[0];\n for i in 1..self.len() {\n accumulator = f(accumulator, self[i]);\n }\n accumulator\n }\n\n // Returns true if all elements in the array satisfy the predicate\n pub fn all<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = true;\n for elem in self {\n ret &= predicate(elem);\n }\n ret\n }\n\n // Returns true if any element in the array satisfies the predicate\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n for elem in self {\n ret |= predicate(elem);\n }\n ret\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Convert a sequence of bytes as-is into a string.\n /// This function performs no UTF-8 validation or similar.\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\n// helper function used to look up the position of a value in an array of Field\n// Note that function returns 0 if the value is not found\nunconstrained fn find_index<let N: u32>(a: [u32; N], find: u32) -> u32 {\n let mut result = 0;\n for i in 0..a.len() {\n if a[i] == find {\n result = i;\n }\n }\n result\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n"},"22":{"path":"std/embedded_curve_ops.nr","source":"use crate::ops::arith::{Add, Sub, Neg};\nuse crate::cmp::Eq;\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\nstruct EmbeddedCurvePoint {\n x: Field,\n y: Field,\n is_infinite: bool\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint { \n EmbeddedCurvePoint {\n x: self.x,\n y: -self.y,\n is_infinite: self.is_infinite\n }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite) | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\nstruct EmbeddedCurveScalar {\n lo: Field,\n hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a,b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the \n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N]\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n let point_array = multi_scalar_mul_array_return(points, scalars);\n EmbeddedCurvePoint { x: point_array[0], y: point_array[1], is_infinite: point_array[2] as bool }\n}\n\n#[foreign(multi_scalar_mul)]\nfn multi_scalar_mul_array_return<let N: u32>(points: [EmbeddedCurvePoint; N], scalars: [EmbeddedCurveScalar; N]) -> [Field; 3] {}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_slice(points: [EmbeddedCurvePoint], scalars: [EmbeddedCurveScalar]) -> [Field; 3] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n let g1 = EmbeddedCurvePoint { x: 1, y: 17631683881184975370165255887551781615748388533673675138860, is_infinite: false };\n multi_scalar_mul([g1], [scalar])\n}\n\n// This is a hack as returning an `EmbeddedCurvePoint` from a foreign function in brillig returns a [BrilligVariable::SingleAddr; 2] rather than BrilligVariable::BrilligArray\n// as is defined in the brillig bytecode format. This is a workaround which allows us to fix this without modifying the serialization format.\n// docs:start:embedded_curve_add\nfn embedded_curve_add(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint\n) -> EmbeddedCurvePoint\n// docs:end:embedded_curve_add\n{\n let point_array = embedded_curve_add_array_return(point1, point2);\n let x = point_array[0];\n let y = point_array[1];\n EmbeddedCurvePoint { x, y, is_infinite: point_array[2] == 1 }\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(_point1: EmbeddedCurvePoint, _point2: EmbeddedCurvePoint) -> [Field; 3] {}\n"},"23":{"path":"std/field/bn254.nr","source":"use crate::runtime::is_unconstrained;\n\n// The low and high decomposition of the field modulus\nglobal PLO: Field = 53438638232309528389504892708671455233;\nglobal PHI: Field = 64323764613183177041862057485226039389;\n\nglobal TWO_POW_128: Field = 0x100000000000000000000000000000000;\n\n// Decomposes a single field into two 16 byte fields.\nfn compute_decomposition(x: Field) -> (Field, Field) {\n let x_bytes = x.to_le_bytes(32);\n\n let mut low: Field = 0;\n let mut high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n low += (x_bytes[i] as Field) * offset;\n high += (x_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n\n (low, high)\n}\n\nunconstrained pub(crate) fn decompose_hint(x: Field) -> (Field, Field) {\n compute_decomposition(x)\n}\n\nfn compute_lt(x: Field, y: Field, num_bytes: u32) -> bool {\n let x_bytes = x.to_le_radix(256, num_bytes);\n let y_bytes = y.to_le_radix(256, num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i];\n let y_byte = y_bytes[num_bytes - 1 - i];\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nfn compute_lte(x: Field, y: Field, num_bytes: u32) -> bool {\n if x == y {\n true\n } else {\n compute_lt(x, y, num_bytes)\n }\n}\n\nunconstrained fn lt_32_hint(x: Field, y: Field) -> bool {\n compute_lt(x, y, 32)\n}\n\nunconstrained fn lte_16_hint(x: Field, y: Field) -> bool {\n compute_lte(x, y, 16)\n}\n\n// Assert that (alo > blo && ahi >= bhi) || (alo <= blo && ahi > bhi)\nfn assert_gt_limbs(a: (Field, Field), b: (Field, Field)) {\n let (alo, ahi) = a;\n let (blo, bhi) = b;\n let borrow = lte_16_hint(alo, blo);\n\n let rlo = alo - blo - 1 + (borrow as Field) * TWO_POW_128;\n let rhi = ahi - bhi - (borrow as Field);\n\n rlo.assert_max_bit_size(128);\n rhi.assert_max_bit_size(128);\n}\n\n/// Decompose a single field into two 16 byte fields.\npub fn decompose(x: Field) -> (Field, Field) {\n if is_unconstrained() {\n compute_decomposition(x)\n } else {\n // Take hints of the decomposition\n let (xlo, xhi) = decompose_hint(x);\n\n // Range check the limbs\n xlo.assert_max_bit_size(128);\n xhi.assert_max_bit_size(128);\n\n // Check that the decomposition is correct\n assert_eq(x, xlo + TWO_POW_128 * xhi);\n\n // Assert that the decomposition of P is greater than the decomposition of x\n assert_gt_limbs((PLO, PHI), (xlo, xhi));\n (xlo, xhi)\n }\n}\n\npub fn assert_gt(a: Field, b: Field) {\n if is_unconstrained() {\n assert(compute_lt(b, a, 32));\n } else {\n // Decompose a and b\n let a_limbs = decompose(a);\n let b_limbs = decompose(b);\n\n // Assert that a_limbs is greater than b_limbs\n assert_gt_limbs(a_limbs, b_limbs)\n }\n}\n\npub fn assert_lt(a: Field, b: Field) {\n assert_gt(b, a);\n}\n\npub fn gt(a: Field, b: Field) -> bool {\n if is_unconstrained() {\n compute_lt(b, a, 32)\n } else if a == b {\n false\n } else {\n // Take a hint of the comparison and verify it\n if lt_32_hint(a, b) {\n assert_gt(b, a);\n false\n } else {\n assert_gt(a, b);\n true\n }\n }\n}\n\npub fn lt(a: Field, b: Field) -> bool {\n gt(b, a)\n}\n\nmod tests {\n // TODO: Allow imports from \"super\"\n use crate::field::bn254::{decompose_hint, decompose, compute_lt, assert_gt, gt, lt, TWO_POW_128, compute_lte, PLO, PHI};\n\n #[test]\n fn check_decompose() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_decompose_unconstrained() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n fn check_compute_lt() {\n assert(compute_lt(0, 1, 16));\n assert(compute_lt(0, 0x100, 16));\n assert(compute_lt(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lt(0, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_compute_lte() {\n assert(compute_lte(0, 1, 16));\n assert(compute_lte(0, 0x100, 16));\n assert(compute_lte(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lte(0, TWO_POW_128, 16));\n\n assert(compute_lte(0, 0, 16));\n assert(compute_lte(0x100, 0x100, 16));\n assert(compute_lte(TWO_POW_128 - 1, TWO_POW_128 - 1, 16));\n assert(compute_lte(TWO_POW_128, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_assert_gt() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n unconstrained fn check_assert_gt_unconstrained() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n fn check_gt() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n unconstrained fn check_gt_unconstrained() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n fn check_plo_phi() {\n assert_eq(PLO + PHI * TWO_POW_128, 0);\n let p_bytes = crate::field::modulus_le_bytes();\n let mut p_low: Field = 0;\n let mut p_high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n p_low += (p_bytes[i] as Field) * offset;\n p_high += (p_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n assert_eq(p_low, PLO);\n assert_eq(p_high, PHI);\n }\n}\n"},"24":{"path":"std/field/mod.nr","source":"mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n pub fn to_le_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_le_bits(bit_size)\n }\n\n pub fn to_be_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_be_bits(bit_size)\n }\n\n #[builtin(to_le_bits)]\n fn __to_le_bits(self, _bit_size: u32) -> [u1] {}\n\n #[builtin(to_be_bits)]\n fn __to_be_bits(self, bit_size: u32) -> [u1] {}\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n pub fn assert_max_bit_size(self: Self, bit_size: u32) {\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n pub fn to_le_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_le_radix(256, byte_size)\n }\n\n pub fn to_be_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_be_radix(256, byte_size)\n }\n\n pub fn to_le_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_le_radix(radix, result_len)\n }\n\n pub fn to_be_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_be_radix(radix, result_len)\n }\n\n // decompose `_self` into a `_result_len` vector over the `_radix` basis\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let num_bytes = (modulus_num_bits() as u32 + 7) / 8;\n let x_bytes = x.to_le_bytes(num_bytes);\n let y_bytes = y.to_le_bytes(num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i] as u8;\n let y_byte = y_bytes[num_bytes - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\n"},"243":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/storage/map.nr","source":"use crate::{hash::pedersen_hash, traits::ToField};\n\npub fn derive_storage_slot_in_map<K>(storage_slot: Field, key: K) -> Field where K: ToField {\n pedersen_hash([storage_slot, key.to_field()], 0)\n}\n\nmod test {\n use crate::{address::AztecAddress, storage::map::derive_storage_slot_in_map};\n\n #[test]\n fn test_derive_storage_slot_in_map_matches_typescript() {\n let map_slot = 0x132258fb6962c4387ba659d9556521102d227549a386d39f0b22d1890d59c2b5;\n let key = AztecAddress::from_field(0x302dbc2f9b50a73283d5fb2f35bc01eae8935615817a0b4219a057b2ba8a5a3f);\n\n let slot = derive_storage_slot_in_map(map_slot, key);\n\n // The following value was generated by `map_slot.test.ts`\n let slot_from_typescript = 0x2499880e2b1b831785c17286f99a0d5122fee784ce7b1c04e380c4a991da819a;\n\n assert_eq(slot, slot_from_typescript);\n }\n}\n"},"249":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr","source":"use crate::utils::field::field_from_bytes;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic \n// if a value can actually be zero. In a future refactor, we can \n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\ntrait Empty {\n fn empty() -> Self;\n}\n\nimpl Empty for Field { fn empty() -> Self {0} }\n\nimpl Empty for u1 { fn empty() -> Self {0} }\nimpl Empty for u8 { fn empty() -> Self {0} }\nimpl Empty for u32 { fn empty() -> Self {0} }\nimpl Empty for u64 { fn empty() -> Self {0} }\nimpl Empty for U128 { fn empty() -> Self {U128::from_integer(0)} }\n\npub fn is_empty<T>(item: T) -> bool where T: Empty + Eq {\n item.eq(T::empty())\n}\n\npub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool where T: Empty + Eq {\n array.all(|elem| is_empty(elem))\n}\n\ntrait Hash {\n fn hash(self) -> Field;\n}\n\ntrait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u1 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u8 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u32 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u64 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for U128 {\n fn to_field(self) -> Field {\n self.to_integer()\n }\n}\nimpl<let N: u32> ToField for str<N> {\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\ntrait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool { fn from_field(value: Field) -> Self { value as bool } }\nimpl FromField for u1 { fn from_field(value: Field) -> Self { value as u1 } }\nimpl FromField for u8 { fn from_field(value: Field) -> Self { value as u8 } }\nimpl FromField for u32 { fn from_field(value: Field) -> Self { value as u32 } }\nimpl FromField for u64 { fn from_field(value: Field) -> Self { value as u64 } }\nimpl FromField for U128 {\n fn from_field(value: Field) -> Self {\n U128::from_integer(value)\n }\n}\n\n// docs:start:serialize\ntrait Serialize<let N: u32> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let N: u32> Serialize<N> for [Field; N] {\n fn serialize(self) -> [Field; N] {\n self\n }\n}\nimpl<let N: u32> Serialize<N> for str<N> {\n fn serialize(self) -> [Field; N] {\n let mut result = [0; N];\n let bytes: [u8; N] = self.as_bytes();\n for i in 0..N {\n result[i] = field_from_bytes([bytes[i];1], true);\n }\n result\n }\n}\n\n// docs:start:deserialize\ntrait Deserialize<let N: u32> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let N: u32> Deserialize<N> for [Field; N] {\n fn deserialize(fields: [Field; N]) -> Self {\n fields\n }\n}\n"},"250":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr","source":"// Utility function to console.log data in the acir simulator\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n\n/// NOTE: call this with a str<N> msg of form\n/// \"some string with {0} and {1} ... {N}\"\n/// and an array of N field which will be formatted\n/// into the string in the simulator.\n/// Example:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\nunconstrained pub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n/// NOTE: call this with a str<N> msg of length > 1\n/// Example:\n/// `debug_log(\"blah blah this is a debug string\");`\nunconstrained pub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n"},"253":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_data_tree_leaf_preimage.nr","source":"use crate::{merkle_tree::leaf_preimage::IndexedTreeLeafPreimage, traits::{Empty, Hash}};\n\nstruct PublicDataTreeLeafPreimage {\n slot : Field,\n value: Field,\n next_slot :Field,\n next_index : u32,\n}\n\nimpl Empty for PublicDataTreeLeafPreimage {\n fn empty() -> Self {\n Self {\n slot: 0,\n value: 0,\n next_slot: 0,\n next_index: 0,\n }\n }\n}\n\nimpl Hash for PublicDataTreeLeafPreimage {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0\n } else {\n crate::hash::poseidon2_hash([self.slot, self.value, (self.next_index as Field), self.next_slot])\n }\n }\n}\n\nimpl IndexedTreeLeafPreimage for PublicDataTreeLeafPreimage {\n fn get_key(self) -> Field {\n self.slot\n }\n\n fn get_next_key(self) -> Field {\n self.next_slot\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl PublicDataTreeLeafPreimage {\n pub fn is_empty(self) -> bool {\n (self.slot == 0) & (self.value == 0) & (self.next_slot == 0) & (self.next_index == 0)\n }\n}\n"},"255":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr","source":"use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, log_hash::{LogHash, ScopedLogHash, ScopedEncryptedLogHash},\n note_hash::ScopedNoteHash, nullifier::ScopedNullifier\n},\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n MAX_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX\n},\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n recursion::verification_key::VerificationKey, traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc, point::Point\n};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [\n tx_hash,\n note_index_in_tx as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n let inputs = [nonce, note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n // We assume contract address has already been masked\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n accumulate_sha256([log_hash.contract_address.to_field(), log_hash.log_hash.value])\n }\n}\n\npub fn mask_encrypted_log_hash(scoped_log: ScopedEncryptedLogHash) -> AztecAddress {\n if scoped_log.contract_address.is_zero() {\n AztecAddress::from_field(0)\n } else if (scoped_log.log_hash.randomness == 0) {\n scoped_log.contract_address\n } else {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [scoped_log.contract_address.to_field(), scoped_log.log_hash.randomness],\n 0\n )\n )\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk(_vk: VerificationKey) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes = inputs[i].to_be_bytes(32);\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn silo_l2_to_l1_message(msg: ScopedL2ToL1Message, rollup_version_id: Field, chain_id: Field) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes = input[offset].to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\n// NB: this assumes MAX_ENCRYPTED_LOGS_PER_TX == MAX_UNENCRYPTED_LOGS_PER_TX\n// to avoid doubling code, since we can't define the byte len to be 32*N directly.\npub fn compute_tx_logs_hash(logs: [LogHash; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn compute_tx_note_logs_hash(logs: [LogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_NOTE_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_NOTE_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(\n inputs: [Field; N],\n separator: T\n) -> Field where T: ToField {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of N + 1\n let in_len = N + 1;\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\n 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), EthAddress::from_field(3), 5, 2, 4);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3)\n },\n version,\n chainId\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"},"261":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/point.nr","source":"use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{traits::{Empty, Hash, Serialize}, hash::poseidon2_hash};\n\nglobal POINT_LENGTH: Field = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point {\n x: 0,\n y: 0,\n is_infinite: false\n }\n }\n}\n"},"262":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr","source":"use crate::{\n address::{\n aztec_address::AztecAddress, eth_address::EthAddress, partial_address::PartialAddress,\n public_keys_hash::PublicKeysHash\n},\n contract_class_id::ContractClassId,\n constants::{GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA, CONTRACT_INSTANCE_LENGTH},\n traits::{Deserialize, Hash, Serialize}\n};\n\nstruct ContractInstance {\n salt : Field,\n deployer: AztecAddress,\n contract_class_id : ContractClassId,\n initialization_hash : Field,\n public_keys_hash : PublicKeysHash,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys_hash.eq(other.public_keys_hash) &\n self.initialization_hash.eq(other.initialization_hash) &\n self.contract_class_id.eq(other.contract_class_id) &\n self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys_hash.to_field()\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys_hash: PublicKeysHash::from_field(serialized[4]),\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys_hash,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer\n )\n )\n }\n}\n"},"27":{"path":"std/hash/mod.nr","source":"mod poseidon;\nmod mimc;\nmod poseidon2;\nmod keccak;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::sha256::{digest, sha256_var};\nuse crate::collections::vec::Vec;\nuse crate::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_slice};\nuse crate::meta::derive_via;\n\n#[foreign(sha256)]\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n __pedersen_hash_with_separator(input, separator)\n}\n\nfn pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let value = __pedersen_commitment_with_separator(input, separator);\n if (value[0] == 0) & (value[1] == 0) {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n } else {\n EmbeddedCurvePoint { x: value[0], y: value[1], is_infinite: false }\n }\n}\n\n#[no_predicates]\nfn pedersen_commitment_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n#[no_predicates]\nfn pedersen_hash_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: Vec<EmbeddedCurveScalar> = Vec::from_slice([EmbeddedCurveScalar { lo: 0, hi: 0 }; N].as_slice()); //Vec::new();\n\n for i in 0..N {\n scalars.set(i, from_field_unsafe(input[i]));\n }\n scalars.push(EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field });\n let domain_generators :[EmbeddedCurvePoint; N]= derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n let mut vec_generators = Vec::new();\n for i in 0..N {\n vec_generators.push(domain_generators[i]);\n }\n let length_generator : [EmbeddedCurvePoint; 1] = derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n vec_generators.push(length_generator[0]);\n multi_scalar_mul_slice(vec_generators.slice, scalars.slice)[0]\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n __pedersen_hash_with_separator(input, 0)\n}\n\n#[foreign(pedersen_hash)]\nfn __pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {}\n\n#[foreign(pedersen_commitment)]\nfn __pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\n#[field(bn254)]\nfn derive_generators<let N: u32, let M: u32>(domain_separator_bytes: [u8; M], starting_index: u32) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n // TODO(https://github.com/noir-lang/noir/issues/5672): Add back assert_constant on starting_index\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n // Same as from_field but:\n // does not assert the limbs are 128 bits\n // does not assert the decomposition does not overflow the EmbeddedCurveScalar\n fn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n let (xlo, xhi) = crate::field::bn254::decompose_hint(scalar);\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes(32).as_array();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n// docs:start:keccak256\npub fn keccak256<let N: u32>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{\n crate::hash::keccak::keccak256(input, message_size)\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: [u32; 16], _state: [u32; 8]) -> [u32; 8] {}\n\n// Generic hashing support. \n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\ntrait Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher;\n}\n\ncomptime fn derive_hash(s: StructDefinition) -> Quoted {\n let name = quote { Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: std::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(s, name, signature, for_each_field, quote {}, |fields| fields)\n}\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\ntrait Hasher{\n fn finish(self) -> Field;\n \n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\ntrait BuildHasher<H> where H: Hasher{\n fn build_hasher(self) -> H;\n}\n\nstruct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn build_hasher(_self: Self) -> H{\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn default() -> Self{\n BuildHasherDefault{}\n } \n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H) where H: Hasher {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self.lo as Field);\n H::write(state, self.hi as Field);\n }\n}\n\nimpl<T, let N: u32> Hash for [T; N] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B) where A: Hash, B: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1), 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1), EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false\n }\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2), 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2), EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3), 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3), EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4), 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4), EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5), 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5), EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6), 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6), EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7), 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7), EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false\n }\n );\n}\n\n"},"274":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/root.nr","source":"use crate::{hash::merkle_hash, merkle_tree::merkle_tree::MerkleTree};\n\n// Calculate the Merkle tree root from the sibling path and leaf.\n//\n// The leaf is hashed with its sibling, and then the result is hashed\n// with the next sibling etc in the path. The last hash is the root.\n//\n// TODO(David/Someone): The cpp code is using a uint256, whereas its\n// TODO a bit simpler in Noir to just have a bit array.\n// TODO: I'd generally like to avoid u256 for algorithms like \n// this because it means we never even need to consider cases where \n// the index is greater than p.\npub fn root_from_sibling_path<let N: u32>(\n leaf: Field,\n leaf_index: Field,\n sibling_path: [Field; N]\n) -> Field {\n let mut node = leaf;\n let indices = leaf_index.to_le_bits(N);\n\n for i in 0..N {\n let (hash_left, hash_right) = if indices[i] == 1 {\n (sibling_path[i], node)\n } else {\n (node, sibling_path[i])\n };\n node = merkle_hash(hash_left, hash_right);\n }\n node\n}\n\npub fn calculate_subtree_root<let N: u32>(leaves: [Field; N]) -> Field {\n MerkleTree::new(leaves).get_root()\n}\n\n// These values are precomputed and we run tests to ensure that they\n// are correct. The values themselves were computed from the cpp code.\n//\n// Would be good if we could use width since the compute_subtree\n// algorithm uses depth.\npub fn calculate_empty_tree_root(depth: u32) -> Field {\n if depth == 0 {\n 0\n } else if depth == 1 {\n 0x0b63a53787021a4a962a452c2921b3663aff1ffd8d5510540f8e659e782956f1\n } else if depth == 2 {\n 0x0e34ac2c09f45a503d2908bcb12f1cbae5fa4065759c88d501c097506a8b2290\n } else if depth == 3 {\n 0x21f9172d72fdcdafc312eee05cf5092980dda821da5b760a9fb8dbdf607c8a20\n } else if depth == 4 {\n 0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e\n } else if depth == 5 {\n 0x120157cfaaa49ce3da30f8b47879114977c24b266d58b0ac18b325d878aafddf\n } else if depth == 6 {\n 0x01c28fe1059ae0237b72334700697bdf465e03df03986fe05200cadeda66bd76\n } else if depth == 7 {\n 0x2d78ed82f93b61ba718b17c2dfe5b52375b4d37cbbed6f1fc98b47614b0cf21b\n } else if depth == 8 {\n 0x067243231eddf4222f3911defbba7705aff06ed45960b27f6f91319196ef97e1\n } else if depth == 9 {\n 0x1849b85f3c693693e732dfc4577217acc18295193bede09ce8b97ad910310972\n } else if depth == 10 {\n 0x2a775ea761d20435b31fa2c33ff07663e24542ffb9e7b293dfce3042eb104686\n } else {\n assert(false, \"depth should be between 0 and 10\");\n 0\n }\n}\n\n#[test]\nfn test_merkle_root_interop_test() {\n // This is a test to ensure that we match the cpp implementation.\n // You can grep for `TEST_F(root_rollup_tests, noir_interop_test)`\n // to find the test that matches this.\n let root = calculate_subtree_root([1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]);\n assert(0x1a09d935ae110b4c861fcec8f9099ec30b4485022aeb3d3cf9d7168e38fdc231 == root);\n\n let empty_root = calculate_subtree_root([0; 16]);\n assert(0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e == empty_root);\n}\n\n#[test]\nfn test_empty_subroot() {\n assert(calculate_empty_tree_root(0) == 0);\n\n let expected_empty_root_2 = calculate_subtree_root([0; 2]);\n assert(calculate_empty_tree_root(1) == expected_empty_root_2);\n\n let expected_empty_root_4 = calculate_subtree_root([0; 4]);\n assert(calculate_empty_tree_root(2) == expected_empty_root_4);\n\n let expected_empty_root_8 = calculate_subtree_root([0; 8]);\n assert(calculate_empty_tree_root(3) == expected_empty_root_8);\n\n let expected_empty_root_16 = calculate_subtree_root([0; 16]);\n assert(calculate_empty_tree_root(4) == expected_empty_root_16);\n\n let expected_empty_root_32 = calculate_subtree_root([0; 32]);\n assert(calculate_empty_tree_root(5) == expected_empty_root_32);\n\n let expected_empty_root_64 = calculate_subtree_root([0; 64]);\n assert(calculate_empty_tree_root(6) == expected_empty_root_64);\n\n let expected_empty_root_128 = calculate_subtree_root([0; 128]);\n assert(calculate_empty_tree_root(7) == expected_empty_root_128);\n\n let expected_empty_root_256 = calculate_subtree_root([0; 256]);\n assert(calculate_empty_tree_root(8) == expected_empty_root_256);\n\n let expected_empty_root_512 = calculate_subtree_root([0; 512]);\n assert(calculate_empty_tree_root(9) == expected_empty_root_512);\n\n let expected_empty_root_1024 = calculate_subtree_root([0; 1024]);\n assert(calculate_empty_tree_root(10) == expected_empty_root_1024);\n}\n"},"278":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self, mut result: [Field; K]) -> [Field; K] {\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n // TODO(#4394)\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array([0; K]));\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(&mut self, deserialise: fn([Field; K]) -> T, mut result: [T; C]) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"},"290":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr","source":"pub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes = field.to_be_bytes(31);\n for i in 0..31 {\n assert_eq(inputs[i], return_bytes[i]);\n }\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2 = field.to_be_bytes(31);\n\n for i in 0..31 {\n assert_eq(return_bytes2[i], return_bytes[i]);\n }\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes = max_value.to_be_bytes(32);\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n"},"292":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/mod.nr","source":"// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, let N: u32, let M: u32>(src: [T; N], mut dst: [T; M], offset: u32) -> [T; M] {\n let iterator_len = if N > M { M } else { N };\n for i in 0..iterator_len {\n dst[i] = src[i + offset];\n }\n dst\n}\n"},"307":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n crate::address::{eth_address::EthAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n contract_class_id::ContractClassId, hash::poseidon2_hash_with_separator,\n traits::{Empty, FromField, ToField, Serialize, Deserialize}, utils\n};\n\n// Aztec address\nstruct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [pub_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1\n )\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys_hash() {\n let pub_keys_hash = PublicKeysHash::from_field(1);\n let partial_address = PartialAddress::from_field(2);\n\n let address = AztecAddress::compute(pub_keys_hash, partial_address);\n let expected_computed_address_from_partial_and_pubkey = 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"},"309":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{\n eth_address::EthAddress, salted_initialization_hash::SaltedInitializationHash,\n aztec_address::AztecAddress\n},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator, traits::{ToField, FromField, Serialize, Deserialize}\n};\n\nglobal PARTIAL_ADDRESS_LENGTH = 1;\n\n// Partial address\nstruct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer)\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash\n ) -> Self {\n PartialAddress::from_field(\n poseidon2_hash_with_separator(\n [\n contract_class_id.to_field(),\n salted_initialization_hash.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"310":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::{eth_address::EthAddress, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, hash::poseidon2_hash_with_separator, traits::ToField\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\nstruct SaltedInitializationHash {\n inner: Field\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(\n poseidon2_hash_with_separator(\n [\n salt,\n initialization_hash,\n deployer.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"32":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\nstruct Poseidon2 {\n cache: [Field;3],\n state: [Field;4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n if message_size == N {\n Poseidon2::hash_internal(input, N, false)\n } else {\n Poseidon2::hash_internal(input, message_size, true)\n }\n }\n\n fn new(iv: Field) -> Poseidon2 {\n let mut result = Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) -> [Field; RATE] {\n // zero-pad the cache\n for i in 0..RATE {\n if i >= self.cache_size {\n self.cache[i] = 0;\n }\n }\n // add the cache into sponge state\n for i in 0..RATE {\n self.state[i] += self.cache[i];\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n // return `RATE` number of field elements from the sponge state.\n let mut result = [0; RATE];\n for i in 0..RATE {\n result[i] = self.state[i];\n }\n result\n }\n\n fn absorb(&mut self, input: Field) {\n if (!self.squeeze_mode) & (self.cache_size == RATE) {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n let _ = self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else if (!self.squeeze_mode) & (self.cache_size != RATE) {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n } else if self.squeeze_mode {\n // If we're in squeeze mode, switch to absorb mode and add the input into the cache.\n // N.B. I don't think this code path can be reached?!\n self.cache[0] = input;\n self.cache_size = 1;\n self.squeeze_mode = false;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n if self.squeeze_mode & (self.cache_size == 0) {\n // If we're in squeze mode and the cache is empty, there is nothing left to squeeze out of the sponge!\n // Switch to absorb mode.\n self.squeeze_mode = false;\n self.cache_size = 0;\n }\n if !self.squeeze_mode {\n // If we're in absorb mode, apply sponge permutation to compress the cache, populate cache with compressed\n // state and switch to squeeze mode. Note: this code block will execute if the previous `if` condition was\n // matched\n let new_output_elements = self.perform_duplex();\n self.squeeze_mode = true;\n for i in 0..RATE {\n self.cache[i] = new_output_elements[i];\n }\n self.cache_size = RATE;\n }\n // By this point, we should have a non-empty cache. Pop one item off the top of the cache and return it.\n let result = self.cache[0];\n for i in 1..RATE {\n if i < self.cache_size {\n self.cache[i - 1] = self.cache[i];\n }\n }\n self.cache_size -= 1;\n self.cache[self.cache_size] = 0;\n result\n }\n\n fn hash_internal<let N: u32>(input: [Field; N], in_len: u32, is_variable_length: bool) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\nstruct Poseidon2Hasher{\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv : Field = (self._state.len() as Field)*18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field){\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher {\n _state: &[],\n }\n }\n}\n"},"367":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_k_account_contract/src/main.nr","source":"// Account contract that uses ECDSA signatures for authentication on the same curve as Ethereum.\n// The signing key is stored in an immutable private note and should be different from the signing key.\ncontract EcdsaKAccount {\n use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, NoteGetterOptions, PrivateContext, PrivateImmutable};\n use dep::aztec::encrypted_logs::encrypted_note_emission::encode_and_encrypt_note;\n\n use dep::aztec::protocol_types::abis::call_context::CallContext;\n use dep::std;\n\n use dep::authwit::{\n entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions,\n auth_witness::get_auth_witness\n };\n\n use dep::ecdsa_public_key_note::EcdsaPublicKeyNote;\n\n #[aztec(storage)]\n struct Storage {\n public_key: PrivateImmutable<EcdsaPublicKeyNote>,\n }\n\n // Creates a new account out of an ECDSA public key to use for signature verification\n #[aztec(private)]\n #[aztec(initializer)]\n fn constructor(signing_pub_key_x: [u8; 32], signing_pub_key_y: [u8; 32]) {\n let this = context.this_address();\n let header = context.get_header();\n let this_npk_m_hash = header.get_npk_m_hash(&mut context, this);\n // Not emitting outgoing for msg_sender here to not have to register keys for the contract through which we\n // deploy this (typically MultiCallEntrypoint). I think it's ok here as I feel the outgoing here is not that\n // important.\n\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this_npk_m_hash);\n storage.public_key.initialize(&mut pub_key_note).emit(encode_and_encrypt_note(&mut context, this, this));\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update default_entrypoint.ts\n #[aztec(private)]\n fn entrypoint(app_payload: AppPayload, fee_payload: FeePayload) {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.entrypoint(app_payload, fee_payload);\n }\n\n #[aztec(private)]\n #[aztec(noinitcheck)]\n #[aztec(view)]\n fn verify_private_authwit(inner_hash: Field) -> Field {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.verify_private_authwit(inner_hash)\n }\n\n #[contract_library_method]\n fn is_valid_impl(context: &mut PrivateContext, outer_hash: Field) -> bool {\n // Load public key from storage\n let storage = Storage::init(context);\n let public_key = storage.public_key.get_note();\n\n // Load auth witness\n let witness: [Field; 64] = get_auth_witness(outer_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify payload signature using Ethereum's signing scheme\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\n let outer_hash_bytes: [u8; 32] = outer_hash.to_be_bytes(32).as_array();\n let hashed_message: [u8; 32] = std::hash::sha256(outer_hash_bytes);\n let verification = std::ecdsa_secp256k1::verify_signature(public_key.x, public_key.y, signature, hashed_message);\n assert(verification == true);\n\n true\n }\n}\n"},"368":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_public_key_note/src/lib.nr","source":"use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, NoteInterface, NoteGetterOptions, PrivateContext};\n\nuse dep::aztec::{\n note::utils::compute_note_hash_for_nullify, keys::getters::get_nsk_app,\n protocol_types::{constants::GENERATOR_INDEX__NOTE_NULLIFIER, hash::poseidon2_hash_with_separator}\n};\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: Field = 5;\n// ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 32(storage_slot as bytes) + 32(note_type_id as bytes)\nglobal ECDSA_PUBLIC_KEY_NOTE_BYTES_LEN: Field = 5 * 32 + 64;\n\n// Stores an ECDSA public key composed of two 32-byte elements\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\n#[aztec(note)]\nstruct EcdsaPublicKeyNote {\n x: [u8; 32],\n y: [u8; 32],\n // We store the npk_m_hash only to get the secret key to compute the nullifier\n npk_m_hash: Field,\n}\n\nimpl NoteInterface<ECDSA_PUBLIC_KEY_NOTE_LEN, ECDSA_PUBLIC_KEY_NOTE_BYTES_LEN> for EcdsaPublicKeyNote {\n // Cannot use the automatic serialization since x and y don't fit. Serialize the note as 5 fields where:\n // [0] = x[0..31] (upper bound excluded)\n // [1] = x[31]\n // [2] = y[0..31]\n // [3] = y[31]\n // [4] = npk_m_hash\n fn serialize_content(self) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n\n for i in 1..32 {\n let byte_x: Field = self.x[31 - i] as Field;\n x = x + (byte_x * mul);\n let byte_y: Field = self.y[31 - i] as Field;\n y = y + (byte_y * mul);\n mul *= 256;\n }\n\n let last_x = self.x[31] as Field;\n let last_y = self.y[31] as Field;\n \n [x, last_x, y, last_y, self.npk_m_hash]\n }\n\n // Cannot use the automatic deserialization for the aforementioned reasons\n fn deserialize_content(serialized_note: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> EcdsaPublicKeyNote {\n let mut x: [u8; 32] = [0; 32];\n let mut y: [u8; 32] = [0; 32];\n\n let part_x = serialized_note[0].to_be_bytes(32);\n for i in 0..31 {\n x[i] = part_x[i + 1];\n }\n x[31] = serialized_note[1].to_be_bytes(32)[31];\n\n let part_y = serialized_note[2].to_be_bytes(32);\n for i in 0..31 {\n y[i] = part_y[i + 1];\n }\n y[31] = serialized_note[3].to_be_bytes(32)[31];\n\n EcdsaPublicKeyNote { x, y, npk_m_hash: serialized_note[4], header: NoteHeader::empty() }\n }\n\n fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullify: Field) -> Field {\n let secret = context.request_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator([\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n )\n }\n\n fn compute_nullifier_without_context(self) -> Field {\n let note_hash_for_nullify = compute_note_hash_for_nullify(self);\n let secret = get_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator([\n note_hash_for_nullify,\n secret,\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n )\n }\n}\n\nimpl EcdsaPublicKeyNote {\n pub fn new(x: [u8; 32], y: [u8; 32], npk_m_hash: Field) -> Self {\n EcdsaPublicKeyNote { x, y, npk_m_hash, header: NoteHeader::empty() }\n }\n}\n"},"47":{"path":"std/option.nr","source":"use crate::hash::{Hash, Hasher};\nuse crate::cmp::{Ordering, Ord, Eq};\nuse crate::default::Default;\n\nstruct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::unsafe::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some { self._value } else { default }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n fn expect<let N: u32, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some { self } else { other }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<U, Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some { self } else { default() }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some { Option::none() } else { self }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T> where T: Eq {\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T> where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T> where T: Ord {\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else {\n if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n }\n}\n"},"5":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\nstruct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::unsafe::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Get an element from the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Get an element from the vector at the given index.\n /// Responds with undefined data for `index` where `self.len < index < self.max_len()`.\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Write an element to the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Write an element to the vector at the given index.\n /// Does not check whether the passed `index` is a valid index within the vector.\n ///\n /// Silently writes past the end of the vector for `index` where `self.len < index < self.max_len()`\n /// Panics if the given index points beyond the maximum length of the vector (`self.max_len()`).\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n pub fn len(self) -> u32 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n // This is a intermediate method, while we don't have an\n // .extend method\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n self.len = new_len;\n }\n\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::unsafe::zeroed();\n elem\n }\n\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n ret\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen> where T: Eq {\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n \n (self.len == other.len) & (self.storage == other.storage)\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.storage()[2], 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n assert_eq(bounded_vec.storage()[2], 3);\n }\n\n #[test(should_fail_with=\"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n}\n"},"62":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth_witness.nr","source":"#[oracle(getAuthWitness)]\nunconstrained fn get_auth_witness_oracle<let N: u32>(_message_hash: Field) -> [Field; N] {}\n\n/**\n * Oracle wrapper to fetch an `auth_witness` for a given `message_hash` from the PXE.\n * \n * @param message_hash The hash of the message for which the `auth_witness` is to be fetched.\n * @return The `auth_witness` for the given `message_hash` as Field array.\n */\nunconstrained pub fn get_auth_witness<let N: u32>(message_hash: Field) -> [Field; N] {\n get_auth_witness_oracle(message_hash)\n}\n"},"63":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth.nr","source":"use dep::aztec::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::{\n GENERATOR_INDEX__AUTHWIT_INNER, GENERATOR_INDEX__AUTHWIT_OUTER, GENERATOR_INDEX__AUTHWIT_NULLIFIER,\n CANONICAL_AUTH_REGISTRY_ADDRESS\n},\n hash::poseidon2_hash_with_separator\n};\nuse dep::aztec::{prelude::Deserialize, context::{PrivateContext, PublicContext, gas::GasOpts}, hash::hash_args_array};\n\n/**\n * Authenticaion witness helper library\n *\n * Authentication Witness is a scheme for authenticating actions on Aztec, so users can allow third-parties \n * (e.g. protocols or other users) to execute an action on their behalf.\n * \n * This library provides helper functions to manage such witnesses.\n * The authentication witness, is some \"witness\" (data) that authenticates a `message_hash`.\n * The simplest example of an authentication witness, is a signature. The signature is the \"evidence\",\n * that the signer has seen the message, agrees with it, and has allowed it.\n * It does not need to be a signature. It could be any kind of \"proof\" that the message is allowed.\n * Another proof could be knowing some kind of secret, or having some kind of \"token\" that allows the message.\n *\n * The `message_hash` is a hash of the following structure:\n * hash(consumer, chain_id, version, inner_hash)\n * - consumer: the address of the contract that is \"consuming\" the message,\n * - chain_id: the chain id of the chain that the message is being consumed on,\n * - version: the version of the chain that the message is being consumed on,\n * - inner_hash: the hash of the \"inner\" message that is being consumed, this is the \"actual\" message or action.\n *\n * While the `inner_hash` could be anything, such as showing you signed a specific message, it will often be \n * a hash of the \"action\" to approve, along with who made the call. As part of this library, we provide a few \n * helper functions to deal with such messages.\n *\n * For example, we provide helper function that is used for checking that the message is an encoding of the current call.\n * This can be used to let some contract \"allow\" another contract to act on its behalf, as long as it can \n * show that it is acting on behalf of the contract.\n *\n * If we take a case of allowing a contract to transfer tokens on behalf of an account, the `inner_hash` can be \n * derived as:\n * inner_hash = hash(caller, \"transfer\", hash(to, amount))\n * \n * Where the `caller` would be the address of the contract that is trying to transfer the tokens, and `to` and `amount`\n * the arguments for the transfer. \n * \n * Note that we have both a `caller` and a `consumer`, the `consumer` will be the contract that is consuming the message,\n * in the case of the transfer, it would be the `Token` contract itself, while the caller, will be the actor that is \n * allowed to transfer the tokens.\n *\n *\n * The authentication mechanism works differently in public and private contexts. In private, we recall that everything\n * is executed on the user's device, so we can use `oracles` to \"ask\" the user (not contract) for information. In public\n * we cannot do this, since it is executed by the sequencer (someone else). Therefore we can instead use a \"registry\"\n * to store the messages that we have approved.\n * \n * A simple example would be a \"token\" that is being \"pulled\" from one account into another. We will first outline \n * how this would look in private, and then in public later. \n *\n * Say that a user `Alice` wants to deposit some tokens into a DeFi protocol (say a DEX). \n * `Alice` would make a `deposit` transaction, that she is executing using her account contract. \n * The account would call the `DeFi` contract to execute `deposit`, which would try to pull funds from the `Token` \n * contract. Since the `DeFi` contract is trying to pull funds from an account that is not its own, it needs to \n * convince the `Token` contract that it is allowed to do so. \n * \n * This is where the authentication witness comes in The `Token` contract computes a `message_hash` from the \n * `transfer` call, and then asks `Alice Account` contract to verify that the `DeFi` contract is allowed to \n * execute that call.\n * \n * `Alice Account` contract can then ask `Alice` if she wants to allow the `DeFi` contract to pull funds from her \n * account. If she does, she will sign the `message_hash` and return the signature to the `Alice Account` which\n * will validate it and return success to the `Token` contract which will then allow the `DeFi` contract to pull\n * funds from `Alice`.\n * \n * To ensure that the same \"approval\" cannot be used multiple times, we also compute a `nullifier` for the\n * authentication witness, and emit it from the `Token` contract (consumer).\n * \n * Note that we can do this flow as we are in private were we can do oracle calls out from contracts. \n * \n *\n * Person Contract Contract Contract\n * Alice Alice Account Token DeFi\n * | | | |\n * | Defi.deposit(Token, 1000) | |\n * |----------------->| | |\n * | | deposit(Token, 1000) |\n * | |---------------------------------------->|\n * | | | |\n * | | | transfer(Alice, Defi, 1000)\n * | | |<---------------------|\n * | | | |\n * | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | |<-----------------| |\n * | | | |\n * | Please give me AuthWit for DeFi | |\n * | calling transfer(Alice, Defi, 1000) | |\n * |<-----------------| | |\n * | | | |\n * | | | |\n * | AuthWit for transfer(Alice, Defi, 1000) |\n * |----------------->| | |\n * | | AuthWit validity | |\n * | |----------------->| |\n * | | | |\n * | | throw if invalid AuthWit |\n * | | | |\n * | | emit AuthWit nullifier |\n * | | | |\n * | | transfer(Alice, Defi, 1000) |\n * | | | |\n * | | | |\n * | | | success |\n * | | |--------------------->|\n * | | | |\n * | | | |\n * | | | deposit(Token, 1000)\n * | | | |\n * | | | |\n *\n * \n * If we instead were in public, we cannot do the same flow. Instead we would use an authentication registry to store \n * the messages that we have approved. \n * \n * To approve a message, `Alice Account` can make a `set_authorized` call to the registry, to set a `message_hash`\n * as authorized. This is essentially a mapping from `message_hash` to `true` for `Alice Contract`. Every account\n * has its own map in the registry, so `Alice` cannot approve a message for `Bob`.\n *\n * The `Token` contract can then try to \"spend\" the approval by calling `consume` on the registry. If the message\n * was approved, the value is updated to `false`, and we return the success flag. For more information on the\n * registry, see `main.nr` in `auth_registry_contract`.\n *\n * Person Contract Contract Contract Contract\n * Alice Alice Account Registry Token DeFi\n * | | | | |\n * | Registry.set_authorized(..., true) | | |\n * |----------------->| | | |\n * | | set_authorized(..., true) | |\n * | |------------------->| | |\n * | | | | |\n * | | set authorized to true | |\n * | | | | |\n * | | | | |\n * | Defi.deposit(Token, 1000) | | |\n * |----------------->| | | |\n * | | deposit(Token, 1000) | |\n * | |-------------------------------------------------------------->|\n * | | | | |\n * | | | transfer(Alice, Defi, 1000) |\n * | | | |<---------------------|\n * | | | | |\n * | | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | | |<------------------| |\n * | | | | |\n * | | throw if invalid AuthWit | |\n * | | | | |\n * | | | | |\n * | | set authorized to false | |\n * | | | | |\n * | | | | |\n * | | | AuthWit validity | |\n * | | |------------------>| |\n * | | | | |\n * | | | | transfer(Alice, Defi, 1000)\n * | | | |<-------------------->|\n * | | | | |\n * | | | | success |\n * | | | |--------------------->|\n * | | | | |\n * | | | | deposit(Token, 1000)\n * | | | | |\n *\n *\n * --- FAQ ---\n * Q: Why are we using a success flag of `keccak256(\"IS_VALID()\")` instead of just returning a boolean?\n * A: We want to make sure that we don't accidentally return `true` if there is a collision in the function selector.\n * By returning a hash of `IS_VALID()`, it becomes very unlikely that there is both a colission and we return \n * a success flag.\n * \n * Q: Why are we using static calls?\n * A: We are using static calls to ensure that the account contract cannot re-enter. If it was a normal call, it\n * could make a new call and do a re-entry attack. Using a static ensures that it cannot update any state.\n *\n * Q: Would it not be cheaper to use a nullifier instead of updating state in public?\n * A: At a quick glance, a public state update + nullifier is 96 bytes, but two state updates are 128, so it would be \n * cheaper to use a nullifier, if this is the way it would always be done. However, if both the approval and the \n * consumption is done in the same transaction, then we will be able to squash the updates (only final tx state diff is posted to DA), and now it is cheaper.\n * \n * Q: Why is the chain id and the version part of the message hash?\n * A: The chain id and the version is part of the message hash to ensure that the message is only valid on a specific\n * chain to avoid a case where the same message could be used across multiple chains. \n */\n\nglobal IS_VALID_SELECTOR = 0xabf64ad4; // 4 first bytes of keccak256(\"IS_VALID()\")\n\n/** \n * Assert that `on_behalf_of` have authorized the current call with a valid authentication witness\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n * \n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit\npub fn assert_current_call_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash([context.msg_sender().to_field(), context.selector().to_field(), context.args_hash]);\n assert_inner_hash_valid_authwit(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit\n\n/** \n * Assert that a specific `inner_hash` is valid for the `on_behalf_of` address\n * \n * Used as an internal function for `assert_current_call_valid_authwit` and can be used as a standalone function when\n * the `inner_hash` is from a different source, e.g., say a block of text etc.\n * \n * @param on_behalf_of The address that have authorized the current call\n * @param inner_hash The hash of the message to authorize \n */\npub fn assert_inner_hash_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n // We perform a static call here and not a standard one to ensure that the account contract cannot re-enter.\n let result: Field = context.static_call_private_function(\n on_behalf_of,\n FunctionSelector::from_signature(\"verify_private_authwit(Field)\"),\n [inner_hash]\n ).unpack_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n // Compute the nullifier, similar computation to the outer hash, but without the chain_id and version.\n // Those should already be handled in the verification, so we just need something to nullify, that allow same inner_hash for multiple actors.\n let nullifier = compute_authwit_nullifier(on_behalf_of, inner_hash);\n context.push_nullifier(nullifier);\n}\n\n/** \n * Assert that `on_behalf_of` have authorized the current call in the authentication registry\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n * \n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n * \n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit_public\npub fn assert_current_call_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash(\n [(*context).msg_sender().to_field(), (*context).selector().to_field(), (*context).get_args_hash()]\n );\n assert_inner_hash_valid_authwit_public(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit_public\n\n/** \n * Assert that `on_behalf_of` have authorized a speicifc `inner_hash` in the authentication registry\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n * \n * @param on_behalf_of The address that have authorized the `inner_hash`\n */\npub fn assert_inner_hash_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n let result: Field = context.call_public_function(\n AztecAddress::from_field(CANONICAL_AUTH_REGISTRY_ADDRESS),\n FunctionSelector::from_signature(\"consume((Field),Field)\"),\n [on_behalf_of.to_field(), inner_hash].as_slice(),\n GasOpts::default()\n ).deserialize_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n}\n\n/**\n * Compute the `message_hash` from a function call to be used by an authentication witness \n * \n * Useful for when you need a non-account contract to approve during execution. For example if you need a contract\n * to make a call to nested contract, e.g., contract A wants to exit token T to L1 using bridge B, so it needs to allow\n * B to transfer T on its behalf.\n * \n * @param caller The address of the contract that is calling the function, in the example above, this would be B\n * @param consumer The address of the contract that is consuming the message, in the example above, this would be T\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param selector The function selector of the function that is being called\n * @param args The arguments of the function that is being called\n */\n// docs:start:compute_authwit_message_hash_from_call\npub fn compute_authwit_message_hash_from_call<let N: u32>(\n caller: AztecAddress,\n consumer: AztecAddress,\n chain_id: Field,\n version: Field,\n selector: FunctionSelector,\n args: [Field; N]\n) -> Field {\n let args_hash = hash_args_array(args);\n let inner_hash = compute_inner_authwit_hash([caller.to_field(), selector.to_field(), args_hash]);\n compute_authwit_message_hash(consumer, chain_id, version, inner_hash)\n}\n// docs:end:compute_authwit_message_hash_from_call\n\n/**\n * Computes the `inner_hash` of the authentication witness\n * \n * This is used internally, but also useful in cases where you want to compute the `inner_hash` for a specific message\n * that is not necessarily a call, but just some \"bytes\" or text.\n * \n * @param args The arguments to hash\n */\npub fn compute_inner_authwit_hash<let N: u32>(args: [Field; N]) -> Field {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__AUTHWIT_INNER)\n}\n\n/** \n * Computs the `authwit_nullifier` for a specific `on_behalf_of` and `inner_hash`\n * \n * Using the `on_behalf_of` and the `inner_hash` to ensure that the nullifier is siloed for a specific `on_behalf_of`.\n * \n * @param on_behalf_of The address that have authorized the `inner_hash`\n * @param inner_hash The hash of the message to authorize\n */\npub fn compute_authwit_nullifier(on_behalf_of: AztecAddress, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [on_behalf_of.to_field(), inner_hash],\n GENERATOR_INDEX__AUTHWIT_NULLIFIER\n )\n}\n\n/**\n * Computes the `message_hash` for the authentication witness\n * \n * @param consumer The address of the contract that is consuming the message\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param inner_hash The hash of the \"inner\" message that is being consumed\n */\npub fn compute_authwit_message_hash(consumer: AztecAddress, chain_id: Field, version: Field, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n consumer.to_field(),\n chain_id,\n version,\n inner_hash\n ],\n GENERATOR_INDEX__AUTHWIT_OUTER\n )\n}\n\n/**\n * Helper function to set the authorization status of a message hash\n * \n * Wraps a public call to the authentication registry to set the authorization status of a `message_hash`\n * \n * @param message_hash The hash of the message to authorize\n * @param authorize True if the message should be authorized, false if it should be revoked\n */\npub fn set_authorized(context: &mut PublicContext, message_hash: Field, authorize: bool) {\n context.call_public_function(\n AztecAddress::from_field(CANONICAL_AUTH_REGISTRY_ADDRESS),\n FunctionSelector::from_signature(\"set_authorized(Field,bool)\"),\n [message_hash, authorize as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n\n/**\n * Helper function to reject all authwits\n * \n * Wraps a public call to the authentication registry to set the `reject_all` flag\n *\n * @param reject True if all authwits should be rejected, false otherwise \n */\npub fn set_reject_all(context: &mut PublicContext, reject: bool) {\n context.call_public_function(\n AztecAddress::from_field(CANONICAL_AUTH_REGISTRY_ADDRESS),\n FunctionSelector::from_signature(\"set_reject_all(bool)\"),\n [context.this_address().to_field(), reject as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n"},"64":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/account.nr","source":"use dep::aztec::context::{PrivateContext, PublicContext};\nuse dep::aztec::protocol_types::{address::AztecAddress, abis::function_selector::FunctionSelector, hash::pedersen_hash};\n\nuse crate::entrypoint::{app::AppPayload, fee::FeePayload};\nuse crate::auth::{IS_VALID_SELECTOR, compute_authwit_message_hash};\n\nstruct AccountActions<Context> {\n context: Context,\n is_valid_impl: fn(&mut PrivateContext, Field) -> bool,\n}\n\nimpl<Context> AccountActions<Context> {\n pub fn init(context: Context, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions { context, is_valid_impl }\n }\n}\n\n/**\n * An implementation of the Account Action struct for the private context.\n * \n * Implements logic to verify authorization and execute payloads.\n */\nimpl AccountActions<&mut PrivateContext> {\n\n /** \n * Verifies that the `app_hash` and `fee_hash` are authorized and then executes them.\n * \n * Executes the `fee_payload` and `app_payload` in sequence.\n * Will execute the `fee_payload` as part of the setup, and then enter the app phase.\n * \n * @param app_payload The payload that contains the calls to be executed in the app phase.\n * @param fee_payload The payload that contains the calls to be executed in the setup phase.\n */\n // docs:start:entrypoint\n pub fn entrypoint(self, app_payload: AppPayload, fee_payload: FeePayload) {\n let valid_fn = self.is_valid_impl;\n\n let fee_hash = fee_payload.hash();\n assert(valid_fn(self.context, fee_hash));\n fee_payload.execute_calls(self.context);\n self.context.end_setup();\n\n let app_hash = app_payload.hash();\n assert(valid_fn(self.context, app_hash));\n app_payload.execute_calls(self.context);\n }\n // docs:end:entrypoint\n\n /**\n * Verifies that the `msg_sender` is authorized to consume `inner_hash` by the account.\n * \n * Computes the `message_hash` using the `msg_sender`, `chain_id`, `version` and `inner_hash`.\n * Then executes the `is_valid_impl` function to verify that the message is authorized.\n * \n * Will revert if the message is not authorized. \n * \n * @param inner_hash The hash of the message that the `msg_sender` is trying to consume.\n */\n // docs:start:verify_private_authwit\n pub fn verify_private_authwit(self, inner_hash: Field) -> Field {\n // The `inner_hash` is \"siloed\" with the `msg_sender` to ensure that only it can \n // consume the message.\n // This ensures that contracts cannot consume messages that are not intended for them.\n let message_hash = compute_authwit_message_hash(\n self.context.msg_sender(),\n self.context.chain_id(),\n self.context.version(),\n inner_hash\n );\n let valid_fn = self.is_valid_impl;\n assert(valid_fn(self.context, message_hash) == true, \"Message not authorized by account\");\n IS_VALID_SELECTOR\n }\n // docs:end:verify_private_authwit\n}\n"},"65":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\n\nuse crate::entrypoint::function_call::{FunctionCall, FUNCTION_CALL_SIZE_IN_BYTES};\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u64 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u64 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u64 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\nstruct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:app-payload-struct\n\nimpl Serialize<APP_PAYLOAD_SIZE> for AppPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; APP_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, APP_PAYLOAD_SIZE> = BoundedVec::new();\n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"},"67":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/fee.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__FEE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\nuse crate::entrypoint::function_call::FunctionCall;\n\n// 2 * 5 (FUNCTION_CALL_SIZE) + 2\nglobal FEE_PAYLOAD_SIZE: Field = 12;\n\n// 2 * 98 (FUNCTION_CALL_SIZE_IN_BYTES) + 32\nglobal FEE_PAYLOAD_SIZE_IN_BYTES: Field = 228;\n\nglobal MAX_FEE_FUNCTION_CALLS = 2;\n\n// docs:start:fee-payload-struct\nstruct FeePayload {\n function_calls: [FunctionCall; MAX_FEE_FUNCTION_CALLS],\n nonce: Field,\n is_fee_payer: bool,\n}\n// docs:end:fee-payload-struct\n\nimpl Serialize<FEE_PAYLOAD_SIZE> for FeePayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; FEE_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, FEE_PAYLOAD_SIZE> = BoundedVec::new();\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n fields.extend_from_array(self.function_calls[i].serialize());\n }\n fields.push(self.nonce);\n fields.push(self.is_fee_payer as Field);\n fields.storage\n }\n}\n\nimpl Hash for FeePayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__FEE_PAYLOAD\n )\n }\n}\n\nimpl FeePayload {\n fn to_be_bytes(self) -> [u8; FEE_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, FEE_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n bytes.push(self.is_fee_payer as u8);\n\n bytes.storage\n }\n\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n if self.is_fee_payer {\n context.set_as_fee_payer();\n }\n }\n}\n"},"73":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/point_to_symmetric_key.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__SYMMETRIC_KEY, scalar::Scalar, point::Point, utils::arr_copy_slice};\nuse crate::utils::point::point_to_bytes;\nuse std::{hash::sha256, embedded_curve_ops::multi_scalar_mul};\n\n// TODO(#5726): This function is called deriveAESSecret in TS. I don't like point_to_symmetric_key name much since\n// point is not the only input of the function. Unify naming with TS once we have a better name.\npub fn point_to_symmetric_key(secret: Scalar, point: Point) -> [u8; 32] {\n let shared_secret: Point = multi_scalar_mul([point], [secret]);\n let shared_secret = point_to_bytes(shared_secret);\n let mut shared_secret_bytes_with_separator = [0 as u8; 33];\n shared_secret_bytes_with_separator = arr_copy_slice(shared_secret, shared_secret_bytes_with_separator, 0);\n shared_secret_bytes_with_separator[32] = GENERATOR_INDEX__SYMMETRIC_KEY;\n sha256(shared_secret_bytes_with_separator)\n}\n\n#[test]\nfn test_point_to_symmetric_key_matches_noir() {\n // Value taken from \"derive shared secret\" test in encrypt_buffer.test.ts\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let key = point_to_symmetric_key(secret, point);\n\n // The following value was generated by `encrypt_buffer.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let key_from_typescript = [\n 251, 232, 177, 34, 2, 174, 35, 92, 165, 118, 168, 3, 153, 140, 46, 210, 203, 154, 184, 158, 236, 33, 95, 77, 93, 120, 72, 88, 190, 209, 64, 159\n ];\n assert_eq(key, key_from_typescript);\n}\n"},"74":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/stored_keys.nr","source":"use crate::keys::public_keys::{PublicKeys, PUBLIC_KEYS_LENGTH};\nuse dep::protocol_types::traits::{Serialize, Deserialize};\n\n// This struct represents how public keys are stored in the key registry. We store not just the keys themselves but also\n// their hash, so that when reading in private we can perform a historical read for the hash and then show that it\n// corresponds to a preimage obtained from an unconstrained hint. We do store the keys keys regardless as they might be\n// needed during public execution, and since we need to broadcast and produce hints in some standardized way.\n// While it might seem odd to create a struct for what is effectively some data and a pure function called on it, state\n// variables rely on serializable structs in order to persist data to storage, so we must use this abstraction.\nstruct StoredKeys {\n public_keys: PublicKeys,\n hash: Field,\n}\n\nimpl StoredKeys {\n // Instances of StoredKeys are expected to only be created by calling this function so that we guarantee that the\n // hash field does indeed correspond to the hash of the keys. Ideally we'd forbid direct access to the struct, but \n // Noir doesn't yet support private members.\n fn new(public_keys: PublicKeys) -> Self {\n Self { public_keys, hash: public_keys.hash().inner }\n }\n}\n\n// Our serialization is the concatenation of the public keys serialization plush the hash, so we need one extra field.\nglobal STORED_KEYS_LENGTH: u32 = PUBLIC_KEYS_LENGTH + 1;\n\nimpl Serialize<STORED_KEYS_LENGTH> for StoredKeys {\n fn serialize(self) -> [Field; STORED_KEYS_LENGTH] {\n // The code below is equivalent to:\n // [ ...self.public_keys.serialize(), self.hash ]\n\n let mut array = [0; STORED_KEYS_LENGTH];\n\n let serialized_keys = self.public_keys.serialize();\n for i in 0..serialized_keys.len() {\n array[i] = serialized_keys[i];\n }\n\n array[PUBLIC_KEYS_LENGTH] = self.hash;\n\n array\n }\n}\n\nimpl Deserialize<STORED_KEYS_LENGTH> for StoredKeys {\n fn deserialize(array: [Field; STORED_KEYS_LENGTH]) -> Self {\n // The code below is equivalent to:\n // Self { public_keys: PublicKeys::deserialize(array[0 : PUBLIC_KEYS_LENGTH]), hash: array[PUBLIC_KEYS_LENGTH] }\n\n let mut serialized_keys = [0; PUBLIC_KEYS_LENGTH];\n for i in 0..serialized_keys.len() {\n serialized_keys[i] = array[i];\n }\n\n let hash = array[PUBLIC_KEYS_LENGTH];\n\n Self { public_keys: PublicKeys::deserialize(serialized_keys), hash }\n }\n}\n"},"75":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/public_keys.nr","source":"use dep::protocol_types::{\n address::PublicKeysHash, constants::GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n hash::poseidon2_hash_with_separator, point::Point, traits::{Deserialize, Serialize, Empty, is_empty}\n};\nuse crate::keys::constants::{NUM_KEY_TYPES, NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX};\n\nglobal PUBLIC_KEYS_LENGTH: u32 = 12;\n\nstruct PublicKeys {\n npk_m: Point,\n ivpk_m: Point,\n ovpk_m: Point,\n tpk_m: Point,\n}\n\nimpl Empty for PublicKeys {\n fn empty() -> Self {\n PublicKeys {\n npk_m : Point::empty(),\n ivpk_m : Point::empty(),\n ovpk_m : Point::empty(),\n tpk_m : Point::empty()\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n ( self.npk_m == other.npk_m ) &\n ( self.ivpk_m == other.ivpk_m ) &\n ( self.ovpk_m == other.ovpk_m ) &\n ( self.tpk_m == other.tpk_m )\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(\n if is_empty(self) {\n 0\n } else {\n poseidon2_hash_with_separator(\n [\n self.npk_m.x,\n self.npk_m.y,\n self.npk_m.is_infinite as Field,\n self.ivpk_m.x,\n self.ivpk_m.y,\n self.ivpk_m.is_infinite as Field,\n self.ovpk_m.x,\n self.ovpk_m.y,\n self.ovpk_m.is_infinite as Field,\n self.tpk_m.x,\n self.tpk_m.y,\n self.tpk_m.is_infinite as Field\n ],\n GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field\n )\n }\n )\n }\n\n pub fn get_key_by_index(self, index: Field) -> Point {\n assert(index as u8 < NUM_KEY_TYPES, \"Invalid key index\");\n if index == NULLIFIER_INDEX {\n self.npk_m\n } else if index == INCOMING_INDEX {\n self.ivpk_m\n } else if index == OUTGOING_INDEX {\n self.ovpk_m\n } else {\n self.tpk_m\n }\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.x,\n self.npk_m.y,\n self.npk_m.is_infinite as Field,\n self.ivpk_m.x,\n self.ivpk_m.y,\n self.ivpk_m.is_infinite as Field,\n self.ovpk_m.x,\n self.ovpk_m.y,\n self.ovpk_m.is_infinite as Field,\n self.tpk_m.x,\n self.tpk_m.y,\n self.tpk_m.is_infinite as Field\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: Point { x:serialized[0], y:serialized[1], is_infinite: serialized[2] as bool },\n ivpk_m: Point { x:serialized[3], y: serialized[4], is_infinite: serialized[5] as bool },\n ovpk_m: Point { x:serialized[6], y: serialized[7], is_infinite: serialized[8] as bool },\n tpk_m: Point { x:serialized[9], y: serialized[10], is_infinite: serialized[11] as bool }\n }\n }\n}\n\n#[test]\nfn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: Point { x: 1, y: 2, is_infinite: false },\n ivpk_m: Point { x: 3, y: 4, is_infinite: false },\n ovpk_m: Point { x: 5, y: 6, is_infinite: false },\n tpk_m: Point { x: 7, y: 8, is_infinite: false }\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash = 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nfn compute_empty_hash() {\n let keys = PublicKeys::empty();\n\n let actual = keys.hash();\n let test_data_empty_hash = 0x0000000000000000000000000000000000000000000000000000000000000000;\n\n assert(actual.to_field() == test_data_empty_hash);\n}\n\n#[test]\nfn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: Point { x: 1, y: 2, is_infinite: false },\n ivpk_m: Point { x: 3, y: 4, is_infinite: false },\n ovpk_m: Point { x: 5, y: 6, is_infinite: false },\n tpk_m: Point { x: 7, y: 8, is_infinite: false }\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.x, deserialized.npk_m.x);\n assert_eq(keys.npk_m.y, deserialized.npk_m.y);\n assert_eq(keys.ivpk_m.x, deserialized.ivpk_m.x);\n assert_eq(keys.ivpk_m.y, deserialized.ivpk_m.y);\n assert_eq(keys.ovpk_m.x, deserialized.ovpk_m.x);\n assert_eq(keys.ovpk_m.y, deserialized.ovpk_m.y);\n assert_eq(keys.tpk_m.x, deserialized.tpk_m.x);\n assert_eq(keys.tpk_m.y, deserialized.tpk_m.y);\n}\n"},"77":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/getters/mod.nr","source":"use dep::protocol_types::{\n header::Header, abis::validation_requests::KeyValidationRequest, address::AztecAddress,\n constants::CANONICAL_KEY_REGISTRY_ADDRESS, point::Point, storage::map::derive_storage_slot_in_map,\n traits::is_empty\n};\nuse crate::{\n context::{PrivateContext, UnconstrainedContext},\n oracle::{keys::get_public_keys_and_partial_address, key_validation_request::get_key_validation_request},\n keys::{\n public_keys::{PublicKeys, PUBLIC_KEYS_LENGTH}, stored_keys::StoredKeys,\n constants::{NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX, TAGGING_INDEX}\n},\n state_vars::{\n shared_mutable::shared_mutable_private_getter::SharedMutablePrivateGetter,\n public_mutable::PublicMutable, map::Map\n}\n};\n\nglobal DELAY = 5;\n\nmod test;\n\n// docs:start:key-getters\ntrait KeyGetters {\n fn get_npk_m(header: Header, context: &mut PrivateContext, address: AztecAddress) -> Point;\n fn get_ivpk_m(header: Header, context: &mut PrivateContext, address: AztecAddress) -> Point;\n fn get_ovpk_m(header: Header, context: &mut PrivateContext, address: AztecAddress) -> Point;\n fn get_tpk_m(header: Header, context: &mut PrivateContext, address: AztecAddress) -> Point;\n fn get_npk_m_hash(header: Header, context: &mut PrivateContext, address: AztecAddress) -> Field;\n}\n\nimpl KeyGetters for Header {\n fn get_npk_m(self, _context: &mut PrivateContext, address: AztecAddress) -> Point {\n get_historical_public_keys(self, address).npk_m\n }\n\n fn get_ivpk_m(self, _context: &mut PrivateContext, address: AztecAddress) -> Point {\n get_historical_public_keys(self, address).ivpk_m\n }\n\n fn get_ovpk_m(self, _context: &mut PrivateContext, address: AztecAddress) -> Point {\n get_historical_public_keys(self, address).ovpk_m\n }\n\n fn get_tpk_m(self, _context: &mut PrivateContext, address: AztecAddress) -> Point {\n get_historical_public_keys(self, address).tpk_m\n }\n\n fn get_npk_m_hash(self, context: &mut PrivateContext, address: AztecAddress) -> Field {\n self.get_npk_m(context, address).hash()\n }\n}\n// docs:end:key-getters\n\n// A helper function since requesting nsk_app is very common\n// TODO(#6543)\npub fn get_nsk_app(npk_m_hash: Field) -> Field {\n get_key_validation_request(npk_m_hash, NULLIFIER_INDEX).sk_app\n}\n\n// This is the number of blocks that must pass after a key rotation event until the old keys are fully phased out and\n// become invalid.\nglobal KEY_REGISTRY_UPDATE_BLOCKS = 5;\n\nglobal KEY_REGISTRY_STORAGE_SLOT = 1;\n\n// Returns all current public keys for a given account, applying proper constraints to the context. We read all\n// keys at once since the constraints for reading them all are actually fewer than if we read them one at a time - any\n// read keys that are not required by the caller can simply be discarded.\npub fn get_current_public_keys(context: &mut PrivateContext, account: AztecAddress) -> PublicKeys {\n // We're going to perform historical reads from public storage, and so need to constrain the caller so that they\n // cannot use very old blocks when constructing proofs, and hence e.g. read very old keys. We are lax and allow\n // _any_ recent block number to be used, regardless of whether there may have been a recent key rotation. This means\n // that multiple sets of keys are valid for a while immediately after rotation, until the old keys become phased\n // out. We *must* be lax to prevent denial of service and transaction fingerprinting attacks by accounts that rotate\n // their keys frequently.\n // Note that we constrain the max block number even if the registry ends up being empty: this ensures that proof of\n // an empty registry is also fresh.\n let current_header = context.get_header();\n context.set_tx_max_block_number(current_header.global_variables.block_number as u32 + KEY_REGISTRY_UPDATE_BLOCKS);\n\n get_historical_public_keys(current_header, account)\n}\n\n// Returns historical public keys for a given account at some block determined by a block header. We read all keys at\n// once since the constraints for reading them all are actually fewer than if we read them one at a time - any read keys\n// that are not required by the caller can simply be discarded.\n// WARNING: if called with a historical header created from a fixed block this function will explicitly ignore key\n// rotation! This means that callers of this may force a user to use old keys, potentially leaking privacy (e.g. if the\n// old keys were leaked). Only call this function with a header from a fixed block if you understand the implications of\n// breaking key rotation very well.\npub fn get_historical_public_keys(historical_header: Header, account: AztecAddress) -> PublicKeys {\n // TODO: improve this so that we always hint the correct set of keys (either registry or canonical) and hash them\n // once instead of having two different hints and twice as many constraints due to the double hashing.\n\n // The key registry is the primary source of information for keys, as that's where accounts store their new keys\n // when they perform rotation. The key registry conveniently stores a hash of each user's keys, so we can read that\n // single field and then prove that we know its preimage (i.e. the current set of keys).\n let key_registry_hash = key_registry_hash_public_historical_read(historical_header, account);\n if key_registry_hash != 0 {\n let hinted_registry_public_keys = key_registry_get_stored_keys_hint(\n account,\n historical_header.global_variables.block_number as u32\n );\n assert_eq(hinted_registry_public_keys.hash().to_field(), key_registry_hash);\n\n hinted_registry_public_keys\n } else {\n // If nothing was written to the registry, we may still be able to produce the correct keys if we happen to know\n // the canonical set (i.e. the ones that are part of the account's preimage).\n let (hinted_canonical_public_keys, partial_address) = get_public_keys_and_partial_address(account);\n assert_eq(\n account, AztecAddress::compute(hinted_canonical_public_keys.hash(), partial_address), \"Invalid public keys hint for address\"\n );\n\n hinted_canonical_public_keys\n }\n}\n\nfn key_registry_hash_public_historical_read(historical_header: Header, account: AztecAddress) -> Field {\n // The keys are stored in a Map that is keyed with the address of each account, so we first derive the corresponding\n // slot for this account.\n let keys_storage_slot = derive_storage_slot_in_map(KEY_REGISTRY_STORAGE_SLOT, account);\n\n // The keys are stored as [ ...serialized_keys, hash ], and since arrays get allocated sequential storage slots\n // (prior to siloing!), we simply add the length to the base slot to get the last element.\n let hash_storage_slot = keys_storage_slot + PUBLIC_KEYS_LENGTH as Field;\n\n historical_header.public_storage_historical_read(\n hash_storage_slot,\n AztecAddress::from_field(CANONICAL_KEY_REGISTRY_ADDRESS)\n )\n}\n\nunconstrained fn key_registry_get_stored_keys_hint(account: AztecAddress, block_number: u32) -> PublicKeys {\n // This is equivalent to the key registry contract having an unconstrained getter that we call from an oracle, but\n // PXE does not yet support that functionality so we do this manually instad. Note that this would be a *historical*\n // call!\n\n // TODO (#7524): call the unconstrained KeyRegistry.get_current_keys() function instead\n\n let context = UnconstrainedContext::at_historical(\n AztecAddress::from_field(CANONICAL_KEY_REGISTRY_ADDRESS),\n block_number\n );\n let keys_storage = Map::new(\n context,\n KEY_REGISTRY_STORAGE_SLOT,\n |context, slot| { PublicMutable::new(context, slot) }\n );\n\n let stored_keys: StoredKeys = keys_storage.at(account).read();\n stored_keys.public_keys\n}\n"},"91":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/history/public_storage.nr","source":"use dep::protocol_types::{\n constants::GENERATOR_INDEX__PUBLIC_LEAF_INDEX, hash::poseidon2_hash_with_separator,\n address::AztecAddress, header::Header, utils::field::full_field_less_than\n};\nuse dep::protocol_types::merkle_tree::root::root_from_sibling_path;\n\nuse crate::{context::PrivateContext, oracle::get_public_data_witness::get_public_data_witness};\n\ntrait PublicStorageHistoricalRead {\n fn public_storage_historical_read(header: Header, storage_slot: Field, contract_address: AztecAddress) -> Field;\n}\n\nimpl PublicStorageHistoricalRead for Header {\n fn public_storage_historical_read(self, storage_slot: Field, contract_address: AztecAddress) -> Field {\n // 1) Compute the leaf slot by siloing the storage slot with the contract address\n let public_data_tree_index = poseidon2_hash_with_separator(\n [contract_address.to_field(), storage_slot],\n GENERATOR_INDEX__PUBLIC_LEAF_INDEX\n );\n\n // 2) Get the membership witness of the slot\n let witness = get_public_data_witness(\n self.global_variables.block_number as u32,\n public_data_tree_index\n );\n\n // 3) Extract the value from the witness leaf and check that the storage slot is correct\n let preimage = witness.leaf_preimage;\n\n // Here we have two cases. Code based on same checks in `validate_public_data_reads` in `base_rollup_inputs`\n // 1. The value is the same as the one in the witness\n // 2. The value was never initialized and is zero\n let is_less_than_slot = full_field_less_than(preimage.slot, public_data_tree_index);\n let is_next_greater_than = full_field_less_than(public_data_tree_index, preimage.next_slot);\n let is_max = ((preimage.next_index == 0) & (preimage.next_slot == 0));\n let is_in_range = is_less_than_slot & (is_next_greater_than | is_max);\n\n let value = if is_in_range {\n 0\n } else {\n assert_eq(preimage.slot, public_data_tree_index, \"Public data tree index doesn't match witness\");\n preimage.value\n };\n\n // 4) Prove that the leaf exists in the public data tree. Note that `hash` returns not just the hash of the value\n // but also the metadata (slot, next index and next slot).\n assert(\n self.state.partial.public_data_tree.root\n == root_from_sibling_path(preimage.hash(), witness.index, witness.path), \"Proving public value inclusion failed\"\n );\n\n value\n }\n}\n"},"99":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/unconstrained_context.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\nuse crate::oracle::{\n execution::{get_chain_id, get_version, get_contract_address, get_block_number},\n storage::{raw_storage_read, storage_read}\n};\n\nstruct UnconstrainedContext {\n block_number: u32,\n contract_address: AztecAddress,\n version: Field,\n chain_id: Field,\n}\n\nimpl UnconstrainedContext {\n unconstrained fn new() -> Self {\n // We could call these oracles on the getters instead of at creation, which makes sense given that they might\n // not even be accessed. However any performance gains are minimal, and we'd rather fail early if a user\n // incorrectly attempts to create an UnconstrainedContext in an environment in which these oracles are not\n // available.\n let block_number = get_block_number();\n let contract_address = get_contract_address();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n unconstrained fn at(contract_address: AztecAddress) -> Self {\n let block_number = get_block_number();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n unconstrained fn at_historical(contract_address: AztecAddress, block_number: u32) -> Self {\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n fn block_number(self) -> u32 {\n self.block_number\n }\n\n fn this_address(self) -> AztecAddress {\n self.contract_address\n }\n\n fn version(self) -> Field {\n self.version\n }\n\n fn chain_id(self) -> Field {\n self.chain_id\n }\n\n unconstrained fn raw_storage_read<let N: u32>(self: Self, storage_slot: Field) -> [Field; N] {\n storage_read(self.this_address(), storage_slot, self.block_number())\n }\n\n unconstrained fn storage_read<T, let N: u32>(\n self,\n storage_slot: Field\n ) -> T where T: Deserialize<N> {\n T::deserialize(self.raw_storage_read(storage_slot))\n }\n}\n"}}}
|
|
1
|
+
{"transpiled":true,"noir_version":"0.33.0+61d6f251ea67204af2d17175f120e17f2e9e9156","name":"EcdsaKAccount","functions":[{"name":"constructor","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(initializer)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"private"},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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"},{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"},"visibility":"private"},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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ARLGHKu25X+8mD5IEPN39/y5ez7ZPb/qnm90z7+556Pc8zPu+Qp3/97dz3b3d939Tnf/z90Pc/eH3P0Sd//AXU+760t3veWuP9x63K1P3XrNrV/cfO7mN7/T3PnPnQ9cfbjx4vaf+yz4Qk4r7LQiTivqtGJOK+60u5x2t9PucfvEacZpJdxxc1opp5V2WhmnlXVaOaeVd9q9TqvgtIpOu89plZxWOWacqjitqtOqOa2602o4rabTall99Hj8v/vtfqfVcVpdp9VzWn2nNXBaQ6c1ctoDTmvstCZOa+q0B53WzGkPOa250x52WguntXRaK6e1dlobp7V1WjuntXdaB6d1dFonp3V2WhendXVaN6d1d9ojTuvhtJ5O6+W03k7r47S+TuvntP5OG+C0gU4b5LTBThvitKFOG+a04U4b4bSRThvltEedNtppY5w21mmPOW2c08Y7bYLrv9MmOm2S0yY77QmnTXHaVKdNc9qTTpvutBlOm+m0p5w2y2mznTbHaU87ba7T5jntGac967T5TlvgtOecttBpi5y22GlLnPa8015w2lKnvei0l5z2stOWOe0Vpy132gqnrXTaKqe96rTXnLbaaa87bY3T3nDaWqe96bR1TlvvtA1O2+i0TU7b7LQtTtvqtLects1p2532ttN2OO0dp+102i6n7Xbau07b47T3nLbXae87bZ/TPnDafqd96LQDTvvIaQed9rHTDjntE6cddtqnTjvitM+c9rnTjjrtmNO+cNqXTvvKaced9rXTTjjtG6eddNopp33rtO+cdtpp3zvtB6edcdqPTvvJaT877azTzjntF6f96rTzTrvgtItO+81pl5x22Wm/O+0Pp11x2lWnXXPan0677jR3MojntPhOS+C0hE5L5LTETkvitCinJXVaMqcld1oKp6V0WiqnpXZaGqeldVo6p6V3WganZXRaJqdldloWp2V1WjanZXdaDqfldFoup+V2mt9peZyW12n5nJbfaQWcVtBphZxW2GlFnFbUacWcVtxpdzntbqfd4zR3kjNOK+G0kk4r5bTSTivjtLJOK+e08k6712kVnFbRafc5rZLTKjst4LQqTqvqtGpOq+60Gk6r6bRaTqvttPudVsdpdZ1Wz2n1ndbAaQ2d1shpDzitsdOaOK2p0x50WjOnPeS05k572GktnNbSaa2c1tppbZzW1mntnNbeaR2c1tFpnZzW2WldnNbVad2c1t1pjzith9N6Oq2X03o7rY/T+jqtn9P6O22A0wY6bZDTBjttiNOGOm2Y04Y7bYTTRjptlNMeddpop41x2linPea0cU4b77QJTnvcaROdNslpk532hNOmOG2q06Y57UmnTXfaDKfNdNpTTpvltNlOm+O0p50212nznPaM05512nynLXDac05b6LRFTlvstCVOe95pLzhtqdNedNpLTnvZacuc9orTljtthdNWOm2V01512mtOW+201522xmlvOG2t09502jqnrXfaBqdtdNomp2122hanbXXaW07b5rTtTnvbaTuc9o7Tdjptl9N2O+1dp+1x2ntO2+u09522z2kfOG2/0z502gGnfeS0g0772GmHnPaJ0w477VOnHXHaZ0773GlHnXbMaV847UunfeW040772mknnPaN00467ZTTvnXad0477bTvnfaD08447Uen/eS0n5121mnnnPaL03512nmnXXDaRaf95rRLTrvstN+d9ofTrjjtqtOuOe1Pp113mlsIxHNafKclcFpCpyVyWmKnJXFalNOSOi2Z05I7LYXTUjotldNSOy2N09I6LZ3T0jstg9MyOi2T0zI7LYvTsjotm9OyOy2H03I6LZfTcjvN77Q8TsvrtHxOy++0Ak4r6LRCTivstCJOK+q0Yk4r7rS7nHa30+5xWrTTjNNKOM19L7v7rmn3fcnu+4Pd9+m675d137fqvn/UfR+n+65L9z2S7jsab7z/0Gnue/vcd+K575tz3+XmvifNfQeZ+34v991Z7nup3Hc+ue9Tct9V5L4HyH3HjvvOGfd9Lu77Tdx3h7jv5XDfeeG+T8J9V4P7HgT3HQPu8/vdZ+O7z513n+nuPi/dfRa5+5zvdk5zn0/tPvvZfa6y+8xi93nA7rN23efYus+IdZ+/6j7b1H1uqPtMTvd5l+6zJN3nNLrPQHSfL+g+u899Lp77zDn3eW7us9Lc55C5z/hyn5/lPpvKfe6T+0wl93lF7rOA3OfsjHGa+3wY99kr7nNN3GeGuM/jcOsf9zkS7jMa3OcfuM8WcO/bd++Jd+83d+/ldu+Tdu9Bdu/vde+dde9Lde/5dO+ndO9VdO8DdO+xc+9fc+8Nc++7cu9pcu8Xcu/Fce9zWew09/4M994H974C95p993p491pz9zpu9xpp9/pj99pe97pZ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","debug_symbols":"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oBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFpBnFpBnFpBnFpBnFPGBJnTSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjWDSjWDSjWDSjWDSjWAcsqYtmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFItmFJtmFJtmFJtmFJtmFPuAJXXTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLTjGLT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ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZKe5ZB9aUtOejRu0Z+PGAUvqOGBJHQcsqeOAJXUcsKSOA5bUccCSOg5YUgfNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKCbNKCbNKCbNKCbNKOYBS+qkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWiGcWiGcWiGcWiGcU6YEldNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNY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mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlEMmlEMmlEMmlEMmlGMA5bUQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKSTOKSTOKSTOKSTOKecCSOmlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGsWhGsWhGsWhGsWhGsQ5YUhfNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbN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oxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFpxlFpxlFpxlFpxlFP2BJ7TSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSjGDSjGDSjGDSjGDSjGAcsqYNmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFJNmFJNmFJNmFJNmFPOAJXXSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLRjGLRjGLRjGLRjGIdsKQumlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlFsmlFsmlFsmlFsmlHsA5bUTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKQzOKQzOKQzOKQzOKc8CSemhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhG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M4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pBM4pBM4pBM4pBM4pxwJI6aEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaUYxaUYxaUYxaUYxD1hSJ80oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oFs0oFs0oFs0oFs0o1gFL6qIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaYZxaYZxaYZxaYZxT5gSd00o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0ozg0ozg0ozg0ozg0ozgHLKmHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhQHZhTzgBnFsyBWUp8FsZL6LIiV1GdBrKQ+C2Il9VkQK6nPglhJfRbESuqzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQbSkhhnFsyBaUsOM4lkQLalhRvEsiJbUMKN4FkRLaphRPAuiJTXMKJ4F0ZIaZhTPgmhJDTOKZ0G0pIYZxbMgWlLDjOJZEC2pYUbxLIiW1DCjeBZES2qYUTwLoiU1zCieBdGSGmYUz4JoSQ0zimdBtKSGGcWzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQbSkhhnFsyBaUsOM4lkQLalhRvEsiJbUMKN4FkRLaphRPAuiJTXMKJ4F0ZIaZhTPgmhJDTOKZ0G0pIYZxbMgWlLDjOJZEC2pYUbxLIiW1DCjeBZES2qYUTwLoiU1zCieBcGSWmhGUWhGUWhGUWhGUQ5YUgvNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKCrNKCrNKCrNKCrNKOoBS2qlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUW9u1E8bzX98qO//bj3gj57cWZdXp1Tl5eLHJ9WUnqppOPy6vij2bv7xy9tVjY1q5uatU3N+qZmQZ/on7w483h7cdZ78Sb9vXzQ5/+/pXzQtPBvKb/J/6WcDc57sy125b+U8zckuRRu4vqn1//RMHp2+Q0NB3p++R0No2eY39Eweo6RGXn/tBOtTxp4rtkk+/JxnTP/+uP67sL6S5uNTc3mpmZrU7PoKekf/33C7FJJ/PD7RDzZ7c4vm80nu935dbNPdrvz62af7Hbn180+2e3Or5v1Tc0+1wR1pdnnmqCuNPtcE9SVZjdNULlpgqpNE1RtmqBq0wRVmyaou28k+dJmN01QtWmCqk0TVG2aoGrTBNWbJqjeNEH1pgmqN01Qd98U9KXNbpqgetME1ZsmqN40QfWmCWo2TVCzaYKaTRPUbJqg7r7B60ub3TRBzaYJajZNULNpgppFE5QdiyYoOxZNUHYsmqDsWDRB2eGbml00QdmxaIKyY9EEZceiCcqOTROUbJqgZNMEJZsmKNk0Qd194+WXNrtpgpJNE5RsmqBk0wQlmyYo3TRB6aYJSjdNULppgrr7JtovbXbTBKWbJijdNEHppglKN01QtmmCsk0TlG2aoGzTBHX3DdFf2uymCco2TVC2aYKyTRPUs237/mWzz7bt+9fNbpqgnm3b96+b3TRBPdu27183u2mC8k0TlG+aoNh7x2/d7KYJir1v/NbNbpqg2HvGb93spgnqyXaSX2l20wT1ZDvJrzS7aYLatJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0k9007yX3TTnLftJPcN+0k98M3NbtogvJNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9007y2LSTPDbtJI9NO8lj007yOHxTs4smqNi0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0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UWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlG0WhG0WhG0WhG0WhG0Q5YUhvNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKDrNKDrNKDrNKDrNKPoBS2qnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGcWgGcWgGcWgGcWgGcU4YEkdNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKOYNKOYNKOYNKOYNKOYByypk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUi2YUi2YUi2YUi2YU64AlddGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtOMYtOMYtOMYtOMYh+wpG6aUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaUWyaURyaURyaURyaURyaUZwDltRDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4oDM4p9wIziWRArqc+CWEl9FsRK6rMgVlKfBbGS+iyIldRnQaykPgtiJfVZEC2pYUbxLIiW1DCjeBZES2qYUTwLoiU1zCieBdGSGmYUz4JoSQ0zimdBtKSGGcWzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQbSkhhnFsyBaUsOM4lkQLalhRvEsiJbUMKN4FkRLaphRPAuiJTXMKJ4F0ZIaZhTPgmhJDTOKZ0G0pIYZxbMgWlLDjOJZEC2pYUbxLIiW1DCjeBZES2qYUTwLoiU1zCieBdGSGmYUz4JoSQ0zimdBtKSGGcWzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQbSkhhnFsyBaUsOM4lkQLalhRvEsiJbUMKN4FkRLaphRPAuiJTXMKJ4F0ZIaZhTPgmBJLTSjKDSjKDSjKDSjKAcsqYVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFIVmFJVmFJVmFJVmFJVmFPWAJbXSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLSjKLRjKLRjKLRjKLRjKIdsKQ2mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlE0mlF0mlF0mlF0mlF0mlH0A5bUTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKQTOKQTOKQTOKQTOKccCSOmhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWlGMWlGMWlGMWlGMQ9YUifNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKBbNKBbNKBbNKBbNKNYB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qDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjaDSjaDSjaDSjaDSjaAcsqY1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFJ1mFJ1mFJ1mFJ1mFP2AJbXTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjGLQjGLQjGLQjGLQjGIcsKQOmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlFMmlFMmlFMmlFMmlHMA5bUSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKRTOKRTOKRTOKRTOKdcCSumhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWlGsWlGsWlGsWlGsQ9YUjfNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKA7NKA7NKA7NKA7NKM4BS+qhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcW5u1HUw/zyo7/9uPeCPntxZl1enVOXl4scn1ZSeqmk4/Lq+N5sbGo2NzVbm5rtTc3OomZJlvWTF2ceby/Oei/epL+XD/r8/7eUD5oW/i3lG/m/FPm2P/zSbItd+S9FTeRSuInrn17/R8O+rWH0/PI7GkbPML+jYfQcI9++eru8WrQ+aeC5ZpPsy8d1zvzwcf1cs8mvm7273v7SZmVTs7qpWfSU9I//PmF2qSR++H3i7lr+S5t9studXzf7ZLc7v272yW53ft3sk93u/LrZJ7vd+WWz9VwT1JVmn2uCutLsc01QV5rdNEHdfYvFlza7aYKqTRNUbZqgatMEVZsmqN40QfWmCao3TVC9aYK6+3aZL2120wTVmyao3jRB9aYJqjdNULNpgppNE9RsmqBm0wR1961PX9rspglqNk1Qs2mCmk0T1OyZoOQ4jj0j1Ldu98xQ37rdM0R963bPFPWtW1/V7Z456lu3ewapb93umaS+dbtnlPrW7apZSlbNUrJqlpJVs5SsmqXuvjTxa7tdNUvJqllKVs1SsmqWklWzlK6apXTVLKWrZildNUvdfa3p13a7apbSVbOUrpqldNUspatmKVs1S9mqWcpWzVK2apa6++Lhr+121Sxlq2YpWzVL2apZylbNUr5qlvJVs5SvmqV81Sz1bKvBr3S7apZ6tuXgV7pdNUs923rwK92umqVi1SwVq2apWDVLsbeV37xbX9XtqlmKvaT85t2umqWebJ35tW5XzVJPttD8WrerZqknW2l+rdtVs9Sipebful01Sy1aa/6t21Wz1KLF5t+6XTVLLVpt/q3bVbPUouXm37pdNUstWm/+rdtVs9SiBefful01Sy1acf6t21Wz1KIl59+6XTVLLVpz/q3bVbPUokXn37pdNUstWnX+rdtVs9SiZefful01Sy1ad/6t21Wz1KKF59+6XTVLLVp5/q3bVbPUoqXn37pdNUstWnv+rdtNs5Ss2nsuq/aey6q957Jq77kcvqrbTbOUrNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nuuqvee6au+5rtp7rqv2nuvhq7rdNEvpqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua3ae26r9p7bs+09L71U0p90+2Sz1JVu/d7dWubbj3bRX3crMXG8/eiUkj91+72DePgOEt1B6jGXDs7/0886qIfvoB++g3n0Du6/7/sf6qCO9suPFolryZt9Sd6c+SF577/v+0u71VXd2qpufVW37HnjH+32yuwv7Nnk1t2y55hbd8ueeW7dLXs+unG3+lyz1LVun2uWutbtc81S17p9rlnqWre+qttVs5SumqV01Sylq2YpXTVL2apZylbNUrZqlrJVs9T9931/aberZilbNUvZqlnKVs1StmqW8lWzlK+apXzVLOWrZqn77/v+0m5XzVK+apbyVbOUr5qlfNUsFatmqVg1S8WqWSpWzVL33/f9pd2umqVi1SwVq2apWDVLxapZKlfNUrlqlspVs1SumqXuv+/7S7tdNUvlqlkqV81SuWqWylWzVK2apWrVLFWrZqlaNUvdf9/3l3a7apaqVbNUrZqlatUsVatmqV41S/WqWapXzVK9apa6/77vL+121SzVq2apXjVL9apZqlfNUrNqlppVs9SsmqVm1Sx1/33fX9rtqllqVs1Ss2qWmlWz1GyapfzYNEv5sWmW8mPTLOXHplnKD1/V7aZZyuF7xG/d7aZZyuH7yW/d7apZ6sn2nl/rdtUs9WR7z691u2qWerK959e6XTVLrdp77qv2nvuqvee+au+5r9p77qv2nvuqvee+au+5r9p77qv2nvuqvee+au+5r9p77qv2nvuqvee+au+5r9p77qv2nvuqvee+au+5r9p77qv2nvuqvee+au+5r9p77qv2nvuqvee+au+5r9p77qv2nvuqvee+au+5r9p77qv2nvuqvee+au+5r9p77s+297z08vL+pFtf1e3dZ6nD/PKjv/24X3Y7NW9nI9NiV7pVE7kUbuL6p9d/7zjXdVzrOu51Hc+2ju+/C/3LO5Z1Heu6jm1dx76u43Uz1913pMv4ew9lHzv+XlHhKmpcRUOr6CY7uzP67R+SbVcqKnv/9Snef3TpW0WCq0hxFRmuIsdVFLiKEldR4SpqXEVDq+juu4Gvfor0/TO7jkv5U5+ckeIqMlxFjqsocBXh5uzGzdl978xWmbd3Tc+7/o/v2ic/OT5c2Edrf/LbVM+jdzDHw3cgD9+BPnwHRsuWu+8AvV5R4CrCfUYN7jNqcHdBN9kbmcelovRrd5ZxuYXUVLvyo7Wl3l7d8eHK8tNX+zFvZZ9fuH+IFs1PXj1na99fParXvnD/C9ehcZO1lK/D/H6Y8jrM2x2mvg7zdodpr8O83WH66zBvd5jxOszbHWa+DvN2h1mvw7zdYfbrMG93mLRvw0No36yEwG/FJi735ykln7zLAr8V+wsd2MN34A/fQTx8B/nwHdTDdwD/puovdAD/pup6Bwr/puovdCC0KeHuGzKvV0T7JinuvmnyekW0b5JCad8khdK+SQqlfZMUev+/UPv1X82EHbiKaH+hFkb7C7Uw2l+oxU022t22ItpfqIUlrqLCVdS4inB3X467+3JcZjsusx2X2Y7LbMdltuPmbMfN2Y7LbMfN2YGbswOX2YHL7MDdjdx9Q8/1inB3I4HL7MBlduDuRgKX2YnL7MRlduIyO3Fz9k22fNy2Itycnbi7kcTdjSRuzsZtyYjC3Y0ULrMLl9mFy+zCZXbhMrtwmV24zC5cZhduzm7cnN24vxtp3N+NNO5u5CZbMm5bEe5uBLclI3BbMqJxdyONy+zBZfbg5uzBzdmDm7NvsjXithXh5uzBzdmDm7MHN2cP7W4kD9rdSB60zM6Dltl50DI7D1pm50HL7Dxoc3YetDk7D1pm50Gbs1Noc3YKLrMFl9lCuxvJm7jS21ZEuxtJwWW24DJbaHcjKbjMVlxmKy6zFZfZipuzb+Igb1sRbs5W2t1IKu1uJBU3ZyvubsRwdyM4B5k4B5k4B5k4B5k4B5k4B5k4B5k4B5mGm7MdN2c77e9G0ml/N5KOuxu5iYO8bUW4uxGcg0ycg0zH3Y3gHGTiHGTiHGTiHGQGbs6+iYO8bUW4OTtwc3bg5uzAzdmBuxtJ3N0IzkEmzkEmzkEmzkEmzkEm7mnhiXtaeOIcZCZuzi7cnI1zkIlzkFm4u5GbOMjbVoS7GylcZhcuswt3N4JzkIlzkIl7WnjinhaeuKeFJ+5p4Yl7Wng27m6kcXcjjZuzG3c3Mri7EZyDTJyDTJyDTJyDTJyDTJyDTJyDTJyDzKHN2XXQ5uw67v13I3qYX370tx/3/iny2UdOzftnTst7t58/UTDtrZD+8BxEiXzrVld1a6u69VXdxqpuc1W3tarbXtXtbOr27s/K/dpuaX+DW0L7G9zC+eTC+eTC+eTC+eTC+eTC+eQS2p1lKe3OsnDPaS3cc1oL95zWwj2ntXDPaS3cc1oL95zWwj2ntXA+uXA+uQyX2YbLbMNltuEy23CZbbjMNlxmGy6zcc9pLdxzWgvnkwvnkwvnkwvnkwvnkwvnkwvnkwvnk8txmR24zA5cZgcus3HPaS3cc1oL95zWwj2ntXDPaS3cc1oL55ML55MrcZmduMxOXGYnLrMTl9k4n1w4n1yJy2zcc1oL95zWKlxmFy6zcT65cD65cD65cD65cD65cD65CpfZjcts3HNaC/ec1sI9p7Vwz2kt3HNaC/ec1sI9p7Vwz2ktnE8unE+uwWX24DJ7cJk9uMweXGYPLrMHl9mDy2zcc1ob95zWPmiZ3Qcts/ugZXYftMzug5bZjXtOa+Oe09oHLbP7wGW24DIb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAH5yAH5yAH5yAH5yDnoGX24Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk0BykHDQHeVYEy+yzIlhmnxXBMvusCJbZZ0WwzD4rgmX2WREss8+KYJl9VoTLbJqDPCvCZTbNQZ4V4TKb5iDPinCZTXOQZ0W4zKY5yLMiXGbTHORZES6zaQ7yrAiX2TQHeVaEy2yagzwrwmU2zUGeFeEym+Ygz4pwmU1zkGdFuMymOcizIlxm0xzkWREus2kO8qwIl9k0B3lWhMtsmoM8K8JlNs1BnhXhMpvmIM+KcJlNc5BnRbjMpjnIsyJcZtMc5FkRLrNpDvKsCJfZNAd5VoTLbJqDPCvCZTbNQZ4V4TKb5iDPinCZTXOQZ0W4zKY5yLMiXGbTHORZES6zaQ7yrAiX2TQHeVaEy2yagzwrwmU2zUGeFeEym+Ygz4pwmU1zkGdFuMymOcizIlxm0xzkWREus2kO8tsDanEV4TKb5iC/PToHVxEus2kO8ttSX1xFuMymOchv64ZwFeEym+Ygv0FIWEWCc5CCc5CCc5CCc5Dn1+u4imiZLTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHKTgHqTgHqTgHqTgHqTgHqQctsxXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIBXnIA3nIA3nIA3nIA3nIO2gZbbhHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKThHKTjHKTjHKTjHKTjHKQftMx2nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIN0nIMMnIMMnIMMnIMMnIOMg5bZgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQgXOQiXOQiXOQiXOQiXOQedAyO3EOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOMnEOsnAOsnAOsnAOsnAOsg5aZhfOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQTbOQTbOQTbOQTbOQfZBy+zGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjG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kIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIZzkIZzkIZzkIZzkHbQMttwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJxDtJxDtJxDtJxDtIPWmY7zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkEGzkEGzkEGzkEGzkHGQcvswDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIxDnIxDnIxDnIxDnIPGiZnTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmXd3kHqYX370tx/3XtFnL86sy6tz6vJykePTSkovlXRcXh3fu727sfzabmVVt7qqW1vVra/qFvTZ/smLM4+3F2e9V2/Sb/WDJoF/U/2gueHfVH+T/2s5O5z3blvsyn8taiKXwk1c//T67x2jp5jf0XGiJ5nf0jF6mvktHaMnGpmR90890fqsg+eaUrIvn9s588Pn9t0V99d2G6u6zVXd1qpu0fPSP/7bhdmlkvjxt4t8shufX3dbT3bjc6XbJ7vxudLtk934XOn2yW58rnTrq7p9rlnqWrfPNUtd6/a5Zqlr3a6apWrVLNWrZqleNUv1qlmqV81Sd9968rXdrpqletUs1atmqV41S/WqWWpWzVKzapaaVbPUrJql7r6N6Gu7XTVLzapZalbNUrNqlppNs1Qdm2apOjbNUnVsmqXq2DRL1eGrut00S9WxaZaqY9MsVcemWaqOVbOUrJqlZNUsJatmKVk1S919e9/XdrtqlpJVs5SsmqVk1Swlq2YpXTVL6apZSlfNUrpqlrr7Vs2v7XbVLKWrZildNUvpqllKV81StmqWslWzlK2apWzVLHX3bbdf2+2qWcpWzVK2apayVbOUrZqlfNUs5atmKV81S/mqWeruW6i/tttVs5SvmqV81Szlq2apZ9so/utun22j+JVuV81Sz7ZR/Eq3q2apZ9sofqXbVbNUrJqlYtUsxd5tfvNuV81S7J3mN+921SzF3mV+825XzVJPtvf8WrerZqkn23t+rdtVs9Sqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nveqvee9au95r9p73qv2nvfhq7rdNEv1qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrv+azaez6r9p7Pqr3ns2rv+Ry+qttNs9Ss2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q95/9/e3e3I8dypWf4lnL9r3U1hmZgGAIEyZiRDfjA9z7BLXY393SLJZaqol8qeCJsQlUVXxQzPkZn55M5R933fI667/kcdd/zOeq+53PUfc/nqPuez1H3PZ+j7ns+R933fI667/kcdd/zOeq+53PUfc/nqPuez1H3PZ+j7ns+R933fI667/kcdd/zOeq+53PUfc/nqPuez1H3PZ+j7ns+R933fI667/mcdN9zv0667/ma7UF7qTXbg/ZSa7YH7aXWbP2o2R60l1qzPWgvtWa7fS9lmS8f7aLfn63ExPXy0Sklv5vt1xn0Tz+DQc8g9ZrXGay3fjCD/fccf/gM5Kefgf70MzD0DOpqf/1okbjVvNn6OuGZd827/37fnzrbOGq2edRs2XuIR8+Wvd/40dne2B8Ke2/y4Nkqex/z6Nmy9zyPni17f/To2f5r7aVuzdaPmu2/1l7q1mz/tfZSt2b7r7WXujXbo/ZSetReyo7aS9lReyk7ai9lR+2l9t/v+1Nne9Reyo7aS9lReyk7ai9lR+2l/Ki9lB+1l/Kj9lJ+1F5q//2+P3W2R+2l/Ki9lB+1l/Kj9lJ+1F4qjtpLxVF7qThqLxVH7aX23+/7U2d71F4qjtpLxVF7qThqLxVH7aXyqL1UHrWXyqP2UnnUXmr//b4/dbZH7aXyqL1UHrWXyqP2UnnUXqqO2kvVUXupOmovVUftpfbf7/tTZ3vUXqqO2kvVUXupOmovVUftpfqovVQftZfqo/ZSfdReav/9vj91tkftpfqovVQftZfqo/ZSfdReao7aS81Re6k5ai81R+2l9t/v+1Nne9Reao7aS81Re6k5ai81J+2l5DppLyXXSXspuU7aS8l10l5KLj9qtiftpeQ6aS8l8Pt9P3q2J+2lBH4f8QfPFn7P8UfP9qi9FPxe5o+e7VF7qX+x+57fmu1Re6l/sfue35rtUXupo+57Lkfd91yOuu+5HHXfcznqvudy1H3P5aj7nstR9z2Xo+57Lkfd91yOuu+5HHXfcznqvudy1H3P5aj7nstR9z2Xo+57Lkfd91yOuu+5HHXfcznqvudy1H3P5aj7nstR9z2Xo+57Lkfd91yOuu+5HHXfcznqvudy1H3P5aj7nstR9z2Xo+57Lkfd91yOuu+5HHXfcznqvudy1H3PZf99zy/z14/+8nHfne3UvHw3Mi12Y7ZqIq/Bbf2A97vXf51xHTfjPm7Gc9qM998H/dNnLMfNWI+bsR03Yz9uxnHcjI/bc22/R7qMv82h7NsZf03UuERDS7T9fuC3Ez3i3/yMfhkk224kKtO3H5/ePrr0JZHiEhkukeMSBS5R4hIVLlHjEg0t0UPuO/zYREL7V6T3d3Zdr/GnPviODJfIcYkClyhxiXD77Mbts3t3Z6vMy9+arnP93/6tffDJUfXap9HaH/w0NddPPwP56WegP/0M7KefgdO6Zfs9QG8nSlwi3L9Rg/s3amjngvQh943M6zVR+q1zlvF6FlJT7cZHa0u9vLrjm1OWH776y42Yv776i4R8e7XmB6+eNbWvrx7VW79w/wdOh+pDbkv568v8+mXqry/zcV+m/foyH/dl+q8v83FfZvz6Mh/3ZeavL/NxX2b9+jIf92X2ry/zcV/m/PoyH/ZlCu234Sq036yowM+KTbyeP08p+ehvGX5W7B+Ygf/0M4iffgb508+gfvoZ9E8/A/hvqm7PQOG/qfoHZgD/TdU/MAOl7RK23yHzdiLHJaL9JkmV9pskVdpvklRpv0lSxf0myfZfofb9q2bUBJeIdoWaGu0KNX3I3fIem4h2hZoa7Qo1tcIlalyioSVy3Lkvx537clxnO66zHdfZjutsx3W24/bZjttnO66zA7fPDtw+O3CdHbjO3n73n5trLXDnRgJ3biRwnR24zg7cuZHEdXbiOjtxnZ24zn7IXUQemwi3z07cPjtx50YSd24kcfts3F0ytHDnRgrX2YXr7MJ1duE6u3CdXbjOLlxnF66zG7fPbtw+u3HXjTTuupGH3CXjsYlw50Yad24Ed5cMxd0lQxt3bmRwnT24zh7cPntw++yH3DXisYlw++zB7bMHt88e3D57aPtsu2jnRuyinRuxi9bZdtE62y5aZ9tF62y7aJ1tF22fbRdtn20XrrOFts82oe2zTXCdLbjOfohDfehaE9q5ERPauRETXGcLrrOFdm7EFNfZiutsxXW24jr7IQ7ysYlw+2zF7bOVdm7ElHZuxBS3zzbcuRHDnRvBOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUhz3D7bcftsp103Yk67bsQe4iAfmwh3bsRx50ZwDtJwDtIcd24E5yAN5yAN5yAN5yDtIQ7ysYlw++zA7bMDt88O3D47cPvsxJ0bSdy5EZyDNJyDNJyDNJyDNJyDNNzTwg33tHDDOUgr3D67cPtsnIM0nIO0hzjIh661wp0bKdy5kcJ1duE6u3DnRnAO0nAO0nBPCzfc08IN97Rwwz0t3HBPC7fGnRtp3LmRxu2zB3duZHDnRnAO0nAO0nAO0nAO0nAO0nAO0nAO0nAO0i/aPtsv2j7bL9p1I37Rrhvxy3GJaOdG/KKdG3Gcg3Scg/SLdm7Ecc/7dNzzPl1wnS24zsY5SMc5SMc5SMc5SMc5SMc5SFdcZyuus3HPg3Tc8yAd9zxIxz0P0nHPg3Tc8yAd9zxIxz0P0nEO0nEO0g3X2YbrbMN1tuE623CdbbjONlxnG66zcc+DdNzzIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nID1wnR24zg5cZweus3HPg3Tc8yAd9zxIxz0P0nHPg3Tc8yAd5yAd5yA9cZ2duM5OXGcnrrMT19k4B+k4B+mJ62zc8yAd9zxIL1xnF66zcQ7ScQ7ScQ7ScQ7ScQ7ScQ7SG9fZjets3PMgHfc8SMc9D9Jxz4N03PMgHfc8SMc9D9Jxz4N0nIN0nIP0wXX24Dp7cJ09uM4eXGcPrrMH19lD6+zAPQ8ycM+DDJyDDJyDjIvW2YFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIlzkIlzkIlzkIlzkHnROjtxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDrJwDrJwDrJwDrJwDrIuWmcXzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkE2zkE2zkE2zkE2zkH2RevsxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIwTnIwTnIwTnIwTnIuWidPTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTQHGRfNQa5EsM5eiWCdvRLBOnslgnX2SgTr7JUI1tkrEayzVyJYZ69EuM6mOciVCNfZNAe5EuE6m+YgVyJcZ9Mc5EqE62yag1yJcJ1Nc5ArEa6zaQ5yJcJ1Ns1BrkS4zqY5yJUI19k0B7kS4Tqb5iBXIlxn0xzkSoTrbJqDXIlwnU1zkCsRrrNpDnIlwnU2zUGuRLjOpjnIlQjX2TQHuRLhOpvmIFciXGfTHORKhOtsmoNciXCdTXOQKxGus2kOciXCdTbNQa5EuM6mOciVCNfZNAe5EuE6m+YgVyJcZ9Mc5EqE62yag1yJcJ1Nc5ArEa6zaQ5yJcJ1Ns1BrkS4zqY5yJUI19k0B7kS4Tqb5iBXIlxn0xzkSoTrbJqDXIlwnU1zkCsRrrNpDnIlwnU2zUGuRLjOpjnIlQjX2TQHuRLhOpvmIFciXGfTHORKhOtsmoNciWidLTgHKTgHKTgHKTgHKRetswXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIAXnIBXnIBXnIBXnIBXnIPWidbbiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKTiHKThHKThHKThHKThHKRdtM42nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIM0nIN0nIN0nIN0nIN0nIP0i9bZjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQjnOQgXOQgXOQgXOQgXOQcdE6O3AOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnAOMnEOMnEOMnEOMnEOMi9aZyfOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQSbOQRbOQRbOQRbOQRbOQdZF6+zCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjCOcjGOcjGOcjGOcjGOci+aJ3dOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZOAfZ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B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4Bxk4Bxk4Bxk4Bxk4BxkXrbMD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAT5yAT5yAT5yAT5yDzonV24hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4Rxk4Rxk4Rxk4RxkXbTOLpyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyD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"},{"name":"verify_private_authwit","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(noinitcheck)","aztec(view)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"inner_hash","type":{"kind":"field"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"7Z3djhzHkYXfhde6qIzfTL/KYmHItmwQECjDkhdYGH73bQ7Z3cOtFlsqdkV/nqwbm2NndZyMzDgTVZNf9b/e/eWHP/3zb398/+GvP/387g//9a93P/705+9/ef/Th9NP/3rX9OV/+/nv33/4+OPPv3z/j1/e/WH57t0PH/5y+u9/f/fur+9//OHdHzTHv79bjZMc+Xmo9DYuo5v2G6NNRnwebS+f99XRbRH1z8NP/7Z+GS+x3Brvoefh3uWqXG5+eF4GN/li8H9/967ZkZR1UvxIyjopcSRlnZQ8krJOSj+Ssk7KOJKySoosR1LWSWngpKRck9LjTlKk93bWMpblm5IihUnRMc5JsXTwTtEjKeuk2JGUdVL8SMo6KXEkZZ2UBCflab99vqmj1RHnoacJX2W3trx8+Njxw/V3dFgfh9/sPUTFzplUt3t7IDSue+AaIm4OXlwuq7TEqwkErDBUjtT8Wmr0SM2vpcbwqXmWqaofqfm11MSRml9LTT4gNT2Xq5y4kxq/3CJLiN796HZtgPw6uv3KL+9L1nX4dapN4mWufaK5jnnmastEc20TzVUmmqtONFebaK4+0VxjorlO1DfZRH2TTdQ3+UR9k0/UN/lEfZNP1De5TTTXifomn6hv8on6Jp+ob/KJ+qaYqG+KifqmmKhvion6prCJ5jpR3xQT9U0xUd8UE/VNMVHflBP1TTlR35QT9U05Ud+UNtFcJ+qbcqK+KSfqm3Kivikn6pv6RH1Tn6hv6hP1TX2ivqnbRHOdqG/qE/VNfaK+qU/UN/WJ+qYxUd80JuqbxkR905iobxo20Vwn6pvGRH3TmKhvGhP1TWOivqktEzVObZmoc2rLRK1TW95W7+SXl7ssr4R8nOx6dPNxlt1CbZ0amzc1cU1Niq9T85Y6M1vs8kK6pd9NzXJNTZPl1ehbby1QP1effYx9Vt1vvgJk0X55C8Fi918Z0iQvSnq7js5Pa/SWOsq3ukZvqRN+q2v0ljr4t7pGb+nO442uUXtLN0xvdY3e0n3eW12jt3R7+lbX6C3dVb/VNbJjjfBrdDxn4K/R8ZyBv0bHcwb+Gh3PGfhrdDxnwK+RHM8Z+Gt0PGfgr9HxnIG/RsdzBv4a2bFG+DU6njPw1+h4zsBfo+M5A3+NjucM/DU6njPg10iP5wz8NTqeM/DX6HjOwF+j4zkDf43sWCP8Gh3PGfhrdDxnIKzROH/4SYit1uh4zsBfo+M5A3+NjucMgDWSZVzW6NWXD39eozf1za1vdY2O5wz8NTqeMwDWSPXyJe5qy2qNjucMv22NvJ0Hx+J31khP9vR5sLae15zLp5zbkfPH51zCzzmXGzk/ngPU5/y4r6/P+XGfXp/z4767PufHfXR5zt/UN3P/p+T8uM+tz/lx31qf8+M+tD7nduT8N+U82vkxV7zS8WvPZ1pcH898kfMbou3ycMZeP/o5L9Bx0wpfoOMOF75Ax+0wfIEmvncWvSyQmHyxQC+pmfgW905qYuI70XupmfiGUfp5kk0l7jheGxclbfRXxnT7z2iL5OXvaIu80nJ7vPTerim8uq/KzQ9PvVq1vB78sqQT34++1SWd+Hb3rS6pvaklHee52svCfHVJhyz98+ghr19e324mXVvTS07a699hp/EvqXxb971PTWX5HWqMcwWeanH54qNfBJXfkfXL93FI11wL6jRBAyYoF5qgRhMkNEFKE2Q0QU4TFDRBNKdOmlMnzak7zak7zak7zak7zak7zak7zak7zak7zak7zak7zakHzakHzakHzakHzakHzakHzakHzakHzakHzakHzKllgTm1LDCnlgXm1LLAnFoWmFPLAnNqWWBOLQvMqWWBObUsNKduNKduNKduNKduNKduNKduNKduNKduNKduNKduNKcWmlMLzamF5tRCc2qhObXQnFpoTi00pxaaUwvNqZXm1EpzaqU5tdKcWmlOrTSnVppTK82plebUSnNqozm10ZzaaE5tNKc2mlMbzamN5tRGc2qjObXRnNppTu00p3aaUzvNqZ3m1E5zaqc5tdOc2mlO7TSnDppTB82pg+bUQXPqoDl10Jw6aE5NYxSFxigKjVEUGqMoNEZRaIyi0BhFoTGKQmMUhcYoCo1RFBqjKDRGUWiMotAYRaExikJjFIXGKAqNURQaoyg0RlFojKLQGEWhMYpCYxSFxigKjVEUGqMoNEZRaIyi0BhFoTGKQmMUlcYoKo1RVBqjqDRGUReYUyuNUVQao6g0RlFpjKLSGEWlMYpKYxSVxigqjVFUGqOoNEZRaYyi0hhFpTGKSmMUlcYoKo1RVBqjqDRGUWmMotIYRaUxikpjFJXGKCqNUVQao6g0RlFpjKLSGEWlMYpKYxSVxigqjVFUGqOoNEZRaYyi0hhFpTGKSmMUlcYoKo1RVBqjqDRGUWmMotIYRaUxikpjFJXGKCqNUVQao6g0RlFpjKLSGEWlMYpKYxSVxigqjVFUGqOoNEZRaYyi0hhFpTGKSmMUlcYoKo1RVBqjqDRGUWmMotIYRaUxikpjFJXGKCqNUVQao6g0RlFpjKLSGEWlMYpKYxSVxigqjVFUGqOoNEZRaYyi0hhFpTGKSmMUlcYoKo1RVBqjqDRGUWmMotIYRaUxikpjFI3GKBqNUTQao2g0RtEWmFMbjVE0GqNoNEbRaIyi0RhFozGKRmMUjcYoGo1RNBqjaDRG0WiMotEYRaMxikZjFI3GKBqNUTQao2g0RtFojKLRGEWjMYpGYxSNxigajVE0GqNoNEbRaIyi0RhFozGKRmMUjcYoGo1RNBqjaDRG0WiMotEYRaMxikZjFI3GKBqNUTQao2g0RtFojKLRGEWjMYpGYxSNxigajVE0GqNoNEbRaIyi0RhFozGKRmMUjcYoGo1RNBqjaDRG0WiMotEYRaMxikZjFI3GKBqNUTQao2g0RtFojKLRGEWjMYpGYxSNxigajVE0GqNoNEbRaIyi0RhFozGKRmMUjcYoGo1RNBqjaDRG0WiMotEYRaMxikZjFI3GKBqNUTQao2g0RtFojKLRGEWjMYpGYxSdxig6jVF0GqPoNEbRF5hTO41RdBqj6DRG0WmMotMYRacxik5jFJ3GKDqNUXQao+g0RtFpjKLTGEWnMYpOYxSdxig6jVF0GqPoNEbRaYyi0xhFpzGKTmMUncYoOo1RdBqj6DRG0WmMotMYRacxik5jFJ3GKDqNUXQao+g0RtFpjKLTGEWnMYpOYxSdxig6jVF0GqPoNEbRaYyi0xhFpzGKTmMUncYoOo1RdBqj6DRG0WmMotMYRacxik5jFJ3GKDqNUXQao+g0RtFpjKLTGEWnMYpOYxSdxig6jVF0GqPoNEbRaYyi0xhFpzGKTmMUncYoOo1RdBqj6DRG0WmMotMYRacxik5jFJ3GKDqNUXQao+g0RtFpjKLTGEWnMYpOYxSdxig6jVF0GqPoNEbRaYyi0xhFpzGKTmMUg8YoBo1RDBqjGDRGMRaYUweNUQwaoxg0RjFojGLQGMWgMYpBYxSDxigGjVEMGqMYNEYxaIxi0BjFoDGKQWMUg8YoBo1RDBqjGDRGMWiMYtAYxaAxikFjFIPGKAaNUQwaoxg0RjFojGLQGMWgMYpBYxSDxigGjVEMGqMYNEYxaIxi0BjFoDGKQWMUg8YoBo1RDBqjGDRGMWiMYtAYxaAxikFjFIPGKAaNUQwaoxg0RjFojGLQGMWgMYpBYxSDxigGjVEMGqMYNEYxaIxi0BjFoDGKQWMUg8YoBo1RDBqjGDRGMWiMYtAYxaAxikFjFIPGKAaNUQwaoxg0RjFojGLQGMWgMYpBYxSDxigGjVEMGqMYNEYxaIxi0BjFoDGKQWMUg8YoBo1RDBqjGDRGMWiMYtAYxaAxikFjFJPGKCaNUUwao5g0RjEXmFMnjVFMGqOYNEYxaYxi0hjFpDGKSWMUk8YoJo1RTBqjmDRGMWmMYtIYxaQxikljFJPGKCaNUUwao5g0RjFpjGLSGMWkMYpJYxSTxigmjVFMGqOYNEYxaYxi0hjFpDGKSWMUk8YoJo1RTBqjmDRGMWmMYtIYxaQxikljFJPGKCaNUUwao5g0RjFpjGLSGMWkMYpJYxSTxigmjVFMGqOYNEYxaYxi0hjFpDGKSWMUk8YoJo1RTBqjmDRGMWmMYtIYxaQxikljFJPGKCaNUUwao5g0RjFpjGLSGMWkMYpJYxSTxigmjVFMGqOYNEYxaYxi0hjFpDGKSWMUk8YoJo1RTBqjmDRGMWmMYtIYxaQxikljFJPGKCaNUUwao5g0RjFpjGLSGMWkMYpJYxQ7jVHsNEax0xjFTmMU+wJz6k5jFDuNUezljKIuoZ8H69L9zkePflY/xlW82I2hTUd8Htus2evBLxPts0x0TDLRclbzaRNts0xUZpmozjJRm2WiPstEY5aJztIZtVk6ozZLZySzdEYyS2cks3RGMktnVM6eP22is3RGMktnJLN0RjJLZySzdEY6S2eks3RGOktnpLN0RuXvenjaRGfpjHSWzkhn6Yx0ls5IZ+mMbJbOyGbpjGyWzshm6YzK363ytInO0hnZLJ2RzdIZ2Sydkc3SGfksnZHP0hn5LJ2Rz9IZlb/L6GkTnaUzKn/3kp5UnCfaMr746BdB5R2MLH4WJKOvBZV3GtouglR9LehmR3D+/OWOlIilfx4aYXoZ3dry8um3X6T02z895fLpo33x6TfSkiPPaeltXEdrvzHa5LKT7SX6V0e35bQu542/iF0XVuKWluaXAmze5TpPufnheRnc5IvBLzlsRw6/OYdy5PCbc6hHDr85h3bk8Jtz6EcOvzmH8WZyeJFy+nePOzmUful1T63T8m05TGwOdYxzDi2dvA/7kcNvzuE4cvitOUzufcp/Tg659yn/OTnk3qf83hw+5/fy6Yc//eP9jz++/9sff/zpz9//8v6nDz9/vHT5+B+3T/pkv0g9peG62k3iRvDXo2X5cvRpBW+fsXlsiLF7iNvnSh4bou0fQvYPofuHsP1D+P4hYv8Q+1e37V/dtn91+/7V7ftXt+9f3b5/dfv+1e37V7fvX92+f3X7/tXt+1d37F/dsX91x/7VHftXd+xf3bF/dcf+1R37V3fsX92xf3Xn/tWd+1d37l/duX915/7VnftXd+5f3bl/def+1Z37V3ffv7r7/tXd96/uvn919/2ru+9f3X3/6u77V3ffv7r7/tU99q/usX91j/2re+xf3WP/6h77V/fYv7rH/tU99q/usX91t2UpiNEKYkhBDC2IYQUxvCBGFMR4QJXr9Wy4Zr7666PfOkkurZ3/iCe+fDn6RVHHKRo0RW3BKWo4RYJTpDhFD3DKBytynKLAKcJ5dsN5dsN5tuA8W3CeLTjPFpxnC86zBefZgvNswXm24DxbcJ6tOM9WnGcrzrMV59mK82zFebbiPFtxnq04z1acZxvOsw3n2YbzbMN5tuE823CebTjPNpxnG86zDefZjvNsx3m24zzbcZ7tOM92nGc7zrMd59mO82zHeXbgPDtwnh04zw6cZwfOswPn2YHz7NjZs19iPMKFc1xeiNgXWccY+8d4BLpxN0YriCEFMbQghj06xljH8IIYURDjEXXery8lPV24jtELYoz9YzwC4rgboxXEkIIYj6iPPi7vgB2tr2NEQYwH7CsLv7xhJbquYjwCH7gboxXEkIIYd39/yOtu5vMp2PtQwM2rfNNVsemq3HRV33TV2HCV3D8Ff/Oqtukq2XSVbrrKNl3lm66KTVflpqv6pqs27Y22aW+0TXujbdobbdPeaJv2Rtu0N9qmvdE27Y22aW+0TXtDNu0N2bQ3ZNPekE17QzbtDdm0N2TT3pBNe0M27Q3ZtDd0097QTXtDN+0N3bQ3dNPe0E17QzftDd20N3TT3tBNe8M27Q3btDds096wTXvDNu0N27Q3bNPesE17wzbtDdu0N3zT3vBNe8M37Q3ftDd8097wTXvDN+0N37Q3fNPe8N+wN+7dT955zi2xFMRo3x4jL7fF+eppi+unALJ3AN07gO0c4BEv/dChcnlWZL5a50e8L8NO9zfn5x9iuo7RC2KM/WM85JnXvRitIIYUxNCCGFYQwwtiPOCZsJ2e+n41RhbE6AUxxu4x9BHvzrgb4yF1HtcYva9jSEEMLYhhBTG8IEYUxHhEnauee0NTuxGjF8QY+8d4xBsr7sZoBTEeUecq1286srGOoQUxrCCGF8SIghhZEKM/OIbHOsbYP4YsBTEeUecu57/rm+uNGFIQQwtiWEGMR9S5jeUaI7+IsR7dXn3JjOS14zuV0SdFgVOUOEUdp2jQFD2C/3+wooZTJDhFilNkOEU4z1acZyvOsxXn2YrzbMN5tuE823CebTjPNpxnG86zrbz6Pc9fXen9ehd9etz3oscXmJ7yXR3LeXAssdZjMD0O0xMwPTt3IC8xHtFTeFye2MTS77nKuHzn6+mfr77GtS+fFA2aokewzg9W1HCKBKdIcYoMp8hxigKnKHGKcJ4dOM9OnGcnzrMT59mJ8+zEeXbiPDtxnp04z06cZyfOs3u5Z8si57uj0z/bWlHDKRKcIsUpMpwixykKnKLEKeo4RYOmaOA8e+A8e+A8e+A8e+A8e+A8e+A8e+A8e+A8e9A82xaaZ9vyBM/2q6Loa0WCU6Q4RYZT5DhFgVOUOEX9qYpOKl4rWo++PrYY4/oXVLn5iOP6UtNmzV4PfpnpmGWmbZlmpm2amco0M9VpZmrTzNSnmWlMM9MkzfSjIqn/vdeW8+jTP9fdlTSconrPaXJ5B0+TXCtynKLAKUqcovr7hpbtouj1id+zokFTpAtOUcMpEpwixSkynCJ/pqLXb6Tbu8vRmGamOc1M+zQzHbPM1JZpZtqmmalMM1OdZqb23JmuexlznKLAKUqcoo5TNGiKfMEpajhFglOkOEU4z/YneHZcn4fd+Du6B05R4hR1nKJBUxQLTlHDKRKcIsUpMpwinGcHzrMD59mB8+zAeXbiPLuedxa5vL1ZxNenjOt557uKFKfIcIocpyhwihKnqD9VUegXivZ8mljPUT9rpk/gs5810zbNTGWameo0M7VpZurTzDSmmWmSZvpR0ROIcrl8p5XIWHdXTyDK7ymqr0S9njLWtj6J/QRa+p6ixCnqOEX13bS6XRTl6q1E/gRa+p6ihlMkOEWKU2Q4RY5TFE9V1K2qy/EnUNjPmmmfZqZjlpm2ZZqZtmlmKtPMVKeZqU0z0+f2MmPdy7TAKUqcoo5TNGiKZMEpajhFglOkOEWGU4Tz7CdQ92rX52Hrv6P7E6j7e4o6TtGgKXoCdX9PUcMpEpwixSkynCLHKcJ5tuI8W3GerTjPNpxnG86zDefZhvNsw3m24TzbcJ5tOM82nGcbzrMd59mO82zHebbjPNtxnu04z3acZzvOs59AF5udP1tOw9eKBk3RE+jie4oaTpHgFClOkeEU7ezZLzGiIMYjfDVELjH+3/fO3xrt4zK661pRxykaNEUPIYAfq6jtq+glhhTE0IIYVhDjEf4U/eIdudi37pDAKUqcoo5TNPZV9DHGQ1jTezEe4k9fz9VD+Mp7MbQghhXE8IIYURAjC2L0ghhj/xgP+f7YezEK6nwU1PkoqPNRUOejoM5HQZ2PgjofBXU+9q/zWJaCGK0ghhTE0IIYVhDDC2JEQYwsiNELYhTUeSuo81ZQ562gzltBnbeCOm8Fdd4K6rwV1HkrqPNWUOdSUOdSUOdSUOdSUOdSUOdSUOdSUOdSUOdSUOdSUOdaUOdaUOdaUOdaUOdaUOdaUOdaUOdaUOdaUOdaUOdWUOdWUOdWUOdWUOdWUOdWUOdWUOdWUOdWUOdWUOdeUOdeUOdeUOdeUOdeUOdeUOdeUOdeUOdeUOdeUOdRUOdRUOdRUOdRUOdRUOdRUOdRUOdRUOdRUOdRUOdZUOdZUOdZUOdZUOdZUOdZUOdZUOdZUOdZUOdZUOe9oM4LzsNFwXm4KDgPFwXn4aLgPFwUnIeLgvNwUXAeLgrOw0XBebgoOA8XBefhouA8XBSch4uC83BRcB4uCs7DRcF5uCg4D5cF5+Gy4DxcFpyHy4LzcLlYQQwviBEFMbIgRi+IUVDnBefhsuA8XBach8uC83BZcB4uC87DZcF5uCw4D5cF5+Gy4DxcFpyHy4LzcFlwHi4LzsNlwXm4LDgPlwXn4bLgPFwWnIfLgvNwWXAeLgvOw2XBebgsOKuWBWfVsuCsWhacVcuCs2pptO9KTKN9V2I+4Z2V9xQZTtET3n8my1mRiq8VBU5R4hR1nKJBU/SMd1Y2vSqKtaKGUyQ4RYpTZDhFjlMUOEWJU9RxigZN0RPeWfn170nOJ7yz8p4iwSlSnCLDKaJ9b3sG7XvbM2jf255B+972jEFTlDjPTpxnJ86zE+fZifPsxHl21vtRuypqr0ZfFA2aor7gFDWcono/apoXRSZrRYpTZDhFjlMUOEX5BEXLVZGuFXWcokFTNBacooZTJDhFilNkOEWOUxQ4RU/wbLk8h2ySa0Udp2jAFPVlwSlqOEWCU6Q4RYZT5DhFgVNE8+y+0Dy7LzjPbjjPbjjPbjjPfgjnYOPcg5nf/cYpz/NNtvdx1bPEJz0B05MwPR2mZ1Tricuf+UN0pechDMcj9TSYHoHp0XI9y7josbUeg+lxmJ6A6UmYng7TU+/Py3lwLLHSowtMT4PpEZgehekxmB6H6QmYnoTp6TA9MH82mD8bzJ8N5s8G82eD+bPB/Nlg/mwwfzaYPxvJn08/yceRtx+62PVBTbveCER+nMftxyJfvaL97ivkd1+hv++K0w/6Mv+b17W8nEt7/UXRpz8K//e/Tz/+z/f/eP/9n3784efTJR//339++PMv73/68PnHX/7375/+n9Pg/wM="},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"compute_nullifier","type":{"kind":"boolean"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":5,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"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","debug_symbols":"7b3RruxIk533Lv+1LshkkEzqVQzDGNmyMcBgZEhjA4agd/fu3k3WPs3KirM1WTsiMr4b44zFrpPxrf8w11qsSv73f/wf//k//T//1//2z//6f/6X//aP//i//Pd//Mt/+d//6d/++b/868f/9d//x3/4x3/6r//8L//yz//X//b1//c/pj/+P6X+ef1/+7//6V//+D//27/903/9t3/8x3Xa/8M//vO//h8ff6rHx3//f/7zv/znf/zHZT/+x//6H/5Rjm//J0t59p9UqX/9J3Vdbv/J8v3/RL7/n6zf/0+27/8n+/f/k/r9/+T49n8i0/f/k/n7/8n31Zfvqy/fV1++r758X335vvryffXl++qv31d//b766/fVX7+v/vp99dfvq79+X/31++qv31d//b762/fV376v/vZ99bfvq799X/3t++pv31d/+7762/fV376v/v599ffvq79/X/39++rv31d//776+/fV37+v/v599ffvq1+/r379vvr1++rX76tfv69+/b769fvq1++rX7+vfv2++sf31T++r/7xffWP76s/T0/n36bjr/9mP+Zf/pv/cL92Xue/Lt7m4/E3zKU+uXqe6/bX1XOZ5Lq6yJ/LmSdfy5l9Laf4Ws7iazniazmrr+Vsvpaz+1pO9bUcX3fl4uuuXHzdlYuvu3LxdVcuvu7Kxdddufi6Kxdfd+Xi665cfN2VF1935eWH/6Gv+9MnJtP2uZrV1Wp++H/I2zSdF3+s4Laaw9NqZHK1mtnVaoqr1XRwFsuX1Yh2wznqefXHH8vjs+v0uR5xtp7V2Xo2Z+vZna2nOlvP4Ws96+RsPbOz9RRn63F2f16d3Z9XZ/fn1dn9eXV2f16d3Z9XZ/fnzdn9eXN2f96c3Z83Z/fnzdn9efvh+3OZyhl3Pv4439ezOVvP7mw91dl6Dl/r2Sdn65mdrac4W8/ibD3ibD3O7s+7s/vz7uz+vDu7P+/O7s/V2f25Ors/V2f35+rs/lyd3Z+rs/tz/fH78/pYz1bv69mdrac6W8/haz3H5Gw9s7P1FGfrWQzX87GGr+u5X/0oH45jv64t8qyoWI7rmw4y377pcEiSOdckc25J5tyTzFmTzHmkmLNMU5I55yRzFj9z/rmen97n5unE8/HHel/P5mw9P32fmctyrafst/XMk7P1zM7WU5yt56dzwceTjms9X7+N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"}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"00000000000000000000000000000000000000000000000000000000906cb9c3"},{"kind":"string","value":"EcdsaPublicKeyNote"}],"kind":"tuple"}],"storage":[{"fields":[{"name":"public_key","value":{"fields":[{"name":"slot","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000001"}}],"kind":"struct"}}],"kind":"struct"}]},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}}],"kind":"struct","path":"EcdsaKAccount::constructor_parameters"}}],"kind":"struct","path":"EcdsaKAccount::constructor_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"}}],"kind":"struct","path":"EcdsaKAccount::entrypoint_parameters"}}],"kind":"struct","path":"EcdsaKAccount::entrypoint_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaKAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaKAccount::verify_private_authwit_abi"}]}},"file_map":{"104":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/unconstrained_context.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\nuse crate::oracle::{\n execution::{get_chain_id, get_version, get_contract_address, get_block_number},\n storage::{raw_storage_read, storage_read}\n};\n\nstruct UnconstrainedContext {\n block_number: u32,\n contract_address: AztecAddress,\n version: Field,\n chain_id: Field,\n}\n\nimpl UnconstrainedContext {\n unconstrained fn new() -> Self {\n // We could call these oracles on the getters instead of at creation, which makes sense given that they might\n // not even be accessed. However any performance gains are minimal, and we'd rather fail early if a user\n // incorrectly attempts to create an UnconstrainedContext in an environment in which these oracles are not\n // available.\n let block_number = get_block_number();\n let contract_address = get_contract_address();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n unconstrained fn at(contract_address: AztecAddress) -> Self {\n let block_number = get_block_number();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n unconstrained fn at_historical(contract_address: AztecAddress, block_number: u32) -> Self {\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n fn block_number(self) -> u32 {\n self.block_number\n }\n\n fn this_address(self) -> AztecAddress {\n self.contract_address\n }\n\n fn version(self) -> Field {\n self.version\n }\n\n fn chain_id(self) -> Field {\n self.chain_id\n }\n\n unconstrained fn raw_storage_read<let N: u32>(self: Self, storage_slot: Field) -> [Field; N] {\n storage_read(self.this_address(), storage_slot, self.block_number())\n }\n\n unconstrained fn storage_read<T, let N: u32>(\n self,\n storage_slot: Field\n ) -> T where T: Deserialize<N> {\n T::deserialize(self.raw_storage_read(storage_slot))\n }\n}\n"},"110":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX, NUM_KEY_TYPES, sk_generators},\n oracle::{\n key_validation_request::get_key_validation_request, arguments, returns::pack_returns,\n call_private_function::call_private_function_internal, header::get_header_at,\n logs::{emit_encrypted_note_log, emit_encrypted_event_log},\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal\n}\n}\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext, function_selector::FunctionSelector, gas::Gas,\n max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, public_call_stack_item::PublicCallStackItem,\n public_call_stack_item_compressed::PublicCallStackItemCompressed, read_request::ReadRequest,\n note_hash::NoteHash, nullifier::Nullifier, log_hash::{LogHash, NoteLogHash, EncryptedLogHash}\n},\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_NOTE_HASHES_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader, traits::Empty\n};\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n args_hash: Field,\n return_hash: Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n private_call_requests : BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_requests : BoundedVec<PublicCallRequest, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_call_request: PublicCallRequest,\n l2_to_l1_msgs : BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<LogHash, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() });\n }\n\n fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: nullified_note_hash, counter: self.next_counter() });\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n key_validation_requests_and_generators: self.key_validation_requests_and_generators.storage,\n note_hashes: self.note_hashes.storage,\n nullifiers: self.nullifiers.storage,\n private_call_requests: self.private_call_requests.storage,\n public_call_requests: self.public_call_requests.storage,\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage,\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage,\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage,\n unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\"Setting {0} as fee payer\", [self.this_address().to_field()]);\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number = MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one \n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale. We fetch new values from oracle and instruct\n // protocol circuits to validate them by storing the validation request in context.\n let request = get_key_validation_request(pk_m_hash, key_index);\n let request_and_generator = KeyValidationRequestAndGenerator { request, sk_app_generator: sk_generators[key_index] };\n // We constrain that the pk_m_hash matches the one in the request (otherwise we could get an arbitrary\n // valid key request and not the one corresponding to pk_m_hash).\n assert(request.pk_m.hash() == pk_m_hash);\n self.key_validation_requests_and_generators.push(request_and_generator);\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(&mut self, note_hash_counter: u32, log: [u8; M], log_hash: Field) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_private_function_no_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_private_function_with_packed_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n let (end_side_effect_counter, returns_hash) = call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = end_side_effect_counter + 1;\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n self.private_call_requests.push(\n PrivateCallRequest {\n contract_address,\n call_context,\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter\n }\n );\n\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n let call_request = PublicCallRequest { item, counter };\n self.public_call_requests.push(call_request);\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.set_public_teardown_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn set_public_teardown_function_with_packed_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n self.public_teardown_call_request = PublicCallRequest {\n item,\n counter,\n };\n }\n\n fn generate_call_context(\n self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> CallContext {\n let msg_sender = if is_delegate_call {\n self.msg_sender()\n } else {\n self.this_address()\n };\n let storage_contract_address = if is_delegate_call {\n self.this_address()\n } else {\n contract_address\n };\n CallContext { msg_sender, storage_contract_address, function_selector, is_static_call, is_delegate_call }\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n}\n"},"118":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\nuse std::{\n embedded_curve_ops::fixed_base_scalar_mul as derive_public_key,\n hash::from_field_unsafe as fr_to_fq_unsafe, field::bn254::decompose\n};\n\nuse crate::{\n event::event_interface::EventInterface, oracle::unsafe_rand::unsafe_rand,\n utils::point::point_to_bytes, note::note_interface::NoteInterface,\n encrypted_logs::{\n header::EncryptedLogHeader, incoming_body::EncryptedLogIncomingBody,\n outgoing_body::EncryptedLogOutgoingBody\n},\n keys::public_keys::{OvpkM, IvpkM}\n};\n\npub fn compute_encrypted_event_log<Event, let NB: u32, let MB: u32, let OB: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n event: Event\n) -> [u8; OB] where Event: EventInterface<NB, MB> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_event(event, randomness).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; OB] = [0; OB];\n // @todo We ignore the tags for now\n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = OB - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\npub fn compute_encrypted_note_log<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> [u8; M] where Note: NoteInterface<N, NB> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_note(note, storage_slot).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; M] = [0; M];\n // @todo We ignore the tags for now\n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\n/// Converts a base field element to scalar field element.\n/// This is fine because modulus of the base field is smaller than the modulus of the scalar field.\nfn fr_to_fq(r: Field) -> Scalar {\n let (lo, hi) = decompose(r);\n\n Scalar { lo, hi }\n}\n\nfn generate_ephemeral_key_pair() -> (Scalar, Point) {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n // We use the unsafe version of `fr_to_fq` because multi_scalar_mul (called by derive_public_key) will constrain\n // the scalars.\n let eph_sk = fr_to_fq_unsafe(unsafe_rand());\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\nmod test {\n use crate::{\n encrypted_logs::payload::compute_encrypted_note_log, keys::public_keys::{OvpkM, IvpkM},\n test::mocks::mock_note::MockNoteBuilder\n };\n use dep::protocol_types::{address::AztecAddress, point::Point};\n use std::test::OracleMock;\n\n #[test]\n fn test_encrypted_note_log_matches_typescript() {\n // All the values in this test were copied over from `tagged_log.test.ts`\n let contract_address = AztecAddress::from_field(0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04);\n let storage_slot = 0x0fe46be583b71f4ab5b70c2657ff1d05cccf1d292a9369628d1a194f944e6599;\n let ovsk_app = 0x03a6513d6def49f41d20373d2cec894c23e7492794b08fc50c0e8a1bd2512612;\n let ovpk_m = OvpkM {\n inner: Point {\n x: 0x1961448682803198631f299340e4206bb12809d4bebbf012b30f59af73ba1a15,\n y: 0x133674060c3925142aceb4f1dcd9f9137d0217d37ff8729ee5ceaa6e2790353d,\n is_infinite: false\n }\n };\n let ivpk_m = IvpkM {\n inner: Point {\n x: 0x260cd3904f6df16e974c29944fdc839e40fb5cf293f03df2eb370851d3a527bc,\n y: 0x0eef2964fe6640e84c82b5d2915892409b38e9e25d39f68dd79edb725c55387f,\n is_infinite: false\n }\n };\n\n let note_value = 0x301640ceea758391b2e161c92c0513f129020f4125256afdae2646ce31099f5c;\n let note = MockNoteBuilder::new(note_value).contract_address(contract_address).storage_slot(storage_slot).build();\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk);\n\n let recipient = AztecAddress::from_field(0x10ee41ee4b62703b16f61e03cb0d88c4b306a9eb4a6ceeb2aff13428541689a2);\n\n let log: [u8; 448] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n note\n );\n\n // The following value was generated by `tagged_log.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let encrypted_note_log_from_typescript = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 70, 12, 14, 67, 77, 132, 110, 193, 234, 40, 110, 64, 144, 235, 86, 55, 111, 242, 123, 221, 193, 170, 202, 225, 216, 86, 84, 159, 112, 31, 167, 126, 79, 51, 186, 47, 71, 253, 172, 99, 112, 241, 59, 197, 241, 107, 186, 232, 87, 187, 230, 171, 62, 228, 234, 42, 51, 145, 146, 238, 242, 42, 71, 206, 13, 244, 66, 111, 195, 20, 203, 98, 148, 204, 242, 145, 183, 156, 29, 141, 54, 44, 220, 194, 35, 229, 16, 32, 204, 211, 49, 142, 112, 82, 202, 116, 241, 254, 146, 42, 217, 20, 189, 70, 228, 182, 171, 205, 104, 27, 99, 171, 28, 91, 244, 21, 30, 130, 240, 5, 72, 174, 124, 97, 197, 157, 248, 193, 23, 193, 76, 46, 141, 144, 70, 211, 45, 67, 167, 218, 129, 140, 104, 190, 41, 110, 249, 209, 68, 106, 135, 164, 80, 235, 63, 101, 80, 32, 13, 38, 99, 145, 91, 11, 173, 151, 231, 247, 65, 153, 117, 229, 167, 64, 239, 182, 126, 235, 83, 4, 169, 8, 8, 160, 4, 235, 252, 21, 96, 84, 161, 69, 145, 145, 215, 254, 161, 117, 246, 198, 65, 89, 179, 194, 90, 19, 121, 12, 202, 114, 80, 195, 14, 60, 128, 105, 142, 100, 86, 90, 108, 157, 219, 22, 172, 20, 121, 195, 25, 159, 236, 2, 70, 75, 42, 37, 34, 2, 17, 149, 20, 176, 32, 18, 204, 56, 117, 121, 34, 15, 3, 88, 123, 64, 68, 74, 233, 63, 59, 131, 222, 194, 192, 167, 110, 217, 10, 128, 73, 129, 172, 205, 103, 212, 60, 151, 141, 10, 151, 222, 151, 180, 43, 91, 148, 201, 110, 165, 10, 238, 32, 134, 235, 99, 216, 200, 182, 31, 22, 156, 18, 209, 222, 172, 239, 193, 212, 86, 99, 62, 70, 182, 45, 175, 241, 91, 202, 179, 225, 236, 95, 71, 66, 151, 225, 203, 53, 216, 85, 102, 130, 6, 8, 25, 180, 86, 58, 140, 198, 105, 102, 177, 42, 94, 115, 247, 145, 147, 24, 231, 39, 73, 27, 10, 219, 130, 115, 188, 74, 114, 5, 177, 199, 83, 183, 106, 87, 204, 238, 231, 72, 45, 240, 39, 174, 25, 98, 53, 187, 156, 159, 244, 38\n ];\n for i in 0..encrypted_note_log_from_typescript.len() {\n assert_eq(log[i], encrypted_note_log_from_typescript[i]);\n }\n assert_eq(encrypted_note_log_from_typescript.len(), log.len());\n }\n}\n"},"119":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/encrypted_note_emission.nr","source":"use crate::{\n context::PrivateContext, note::{note_emission::NoteEmission, note_interface::NoteInterface},\n keys::{getters::get_current_public_keys, public_keys::{OvpkM, IvpkM}},\n encrypted_logs::payload::compute_encrypted_note_log, oracle::logs_traits::LensForEncryptedLog\n};\nuse dep::protocol_types::{\n hash::sha256_to_field, address::AztecAddress, point::Point, abis::note_hash::NoteHash,\n constants::MAX_NOTE_HASHES_PER_CALL\n};\n\nunconstrained fn compute_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n )\n}\n\nfn compute<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let encrypted_log: [u8; M] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n let log_hash = sha256_to_field(encrypted_log);\n (encrypted_log, log_hash)\n}\n\nfn emit_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n note: Note,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n inner_compute: fn(AztecAddress, Field, Field, OvpkM, IvpkM, AztecAddress, Note) -> ([u8; M], Field)\n) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let note_header = note.get_header();\n let note_hash_counter = note_header.note_hash_counter;\n let storage_slot = note_header.storage_slot;\n\n let note_exists = context.note_hashes.storage.any(|n: NoteHash| n.counter == note_hash_counter);\n assert(note_exists, \"Can only emit a note log for an existing note.\");\n\n let contract_address: AztecAddress = context.this_address();\n let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n let (encrypted_log, log_hash) = inner_compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n}\n\npub fn encode_and_encrypt_note<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let ovpk = get_current_public_keys(context, ov).ovpk_m;\n let ivpk = get_current_public_keys(context, iv).ivpk_m;\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute);\n }\n}\n\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let ovpk = get_current_public_keys(context, ov).ovpk_m;\n let ivpk = get_current_public_keys(context, iv).ivpk_m;\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute_unconstrained);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute_unconstrained);\n }\n}\n"},"120":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/outgoing_body.nr","source":"use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, constants::GENERATOR_INDEX__SYMMETRIC_KEY,\n hash::poseidon2_hash_with_separator\n};\nuse std::aes128::aes128_encrypt;\n\nuse crate::{keys::public_keys::IvpkM, utils::point::point_to_bytes};\n\nstruct EncryptedLogOutgoingBody {\n eph_sk: Scalar,\n recipient: AztecAddress,\n recipient_ivpk: IvpkM,\n}\n\nimpl EncryptedLogOutgoingBody {\n pub fn new(eph_sk: Scalar, recipient: AztecAddress, recipient_ivpk: IvpkM) -> Self {\n Self { eph_sk, recipient, recipient_ivpk }\n }\n\n /// Encrypts ephemeral secret key and recipient's ivpk --> with this information the recipient of outgoing will\n /// be able to derive the key with which the incoming log can be decrypted.\n pub fn compute_ciphertext(self, ovsk_app: Scalar, eph_pk: Point) -> [u8; 144] {\n // Again, we could compute `eph_pk` here, but we keep the interface more similar\n // and also make it easier to optimise it later as we just pass it along\n\n let mut buffer = [0 as u8; 128];\n\n let serialized_eph_sk_high = self.eph_sk.hi.to_be_bytes(32);\n let serialized_eph_sk_low = self.eph_sk.lo.to_be_bytes(32);\n\n let address_bytes = self.recipient.to_field().to_be_bytes(32);\n let serialized_recipient_ivpk = point_to_bytes(self.recipient_ivpk.to_point());\n\n for i in 0..32 {\n buffer[i] = serialized_eph_sk_high[i];\n buffer[i + 32] = serialized_eph_sk_low[i];\n buffer[i + 64] = address_bytes[i];\n }\n for i in 0..32 {\n buffer[i + 96] = serialized_recipient_ivpk[i];\n }\n\n // We compute the symmetric key using poseidon.\n let full_key: [u8; 32] = poseidon2_hash_with_separator(\n [ovsk_app.hi, ovsk_app.lo, eph_pk.x, eph_pk.y],\n GENERATOR_INDEX__SYMMETRIC_KEY as Field\n ).to_be_bytes(32).as_array();\n\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(buffer, iv, sym_key).as_array()\n }\n}\n\nmod test {\n use crate::{encrypted_logs::outgoing_body::EncryptedLogOutgoingBody, keys::public_keys::IvpkM};\n use dep::protocol_types::{\n address::AztecAddress, traits::Empty, constants::GENERATOR_INDEX__NOTE_NULLIFIER,\n scalar::Scalar, point::Point, hash::poseidon2_hash_with_separator\n };\n use std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\n\n use crate::context::PrivateContext;\n\n #[test]\n fn test_encrypted_log_outgoing_body_matches_typescript() {\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000d0d302ee245dfaf2807e604eec4715fe,\n hi: 0x000000000000000000000000000000000f096b423017226a18461115fa8d34bb\n };\n let recipient_ivsk = Scalar {\n lo: 0x000000000000000000000000000000004828f8f95676ebb481df163f87fd4022,\n hi: 0x000000000000000000000000000000000f4d97c25d578f9348251a71ca17ae31\n };\n let sender_ovsk_app = Scalar {\n lo: 0x0000000000000000000000000000000074d2e28c6bc5176ac02cf7c7d36a444e,\n hi: 0x00000000000000000000000000000000089c6887cb1446d86c64e81afc78048b\n };\n\n let eph_pk = derive_public_key(eph_sk);\n let recipient_ivpk = IvpkM { inner: derive_public_key(recipient_ivsk) };\n\n let recipient = AztecAddress::from_field(0xdeadbeef);\n\n let body = EncryptedLogOutgoingBody::new(eph_sk, recipient, recipient_ivpk);\n\n let ciphertext = body.compute_ciphertext(sender_ovsk_app, eph_pk);\n\n // The following value was generated by `encrypted_log_outgoing_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let outgoing_body_ciphertext_from_typescript = [\n 127, 182, 227, 75, 192, 197, 54, 47, 168, 134, 233, 148, 251, 46, 86, 12, 73, 50, 238, 50, 31, 174, 27, 202, 110, 77, 161, 197, 244, 124, 17, 100, 143, 150, 232, 14, 156, 248, 43, 177, 16, 82, 244, 103, 88, 74, 84, 200, 15, 65, 187, 14, 163, 60, 91, 22, 104, 31, 211, 190, 124, 121, 79, 92, 239, 65, 185, 106, 51, 178, 168, 137, 84, 43, 79, 158, 151, 152, 83, 42, 170, 13, 106, 209, 254, 74, 39, 145, 73, 215, 17, 234, 196, 89, 30, 58, 120, 127, 88, 69, 121, 61, 18, 206, 89, 118, 243, 238, 177, 71, 73, 47, 147, 4, 155, 25, 173, 248, 206, 52, 17, 180, 122, 186, 106, 191, 252, 102, 197, 91, 16, 39, 94, 91, 224, 30, 168, 177, 26, 144, 5, 124, 128, 6\n ];\n\n for i in 0..outgoing_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], outgoing_body_ciphertext_from_typescript[i]);\n }\n assert_eq(outgoing_body_ciphertext_from_typescript.len(), ciphertext.len());\n }\n}\n"},"121":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/header.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\n\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::ToPoint};\n\nuse std::aes128::aes128_encrypt;\n\nstruct EncryptedLogHeader {\n address: AztecAddress,\n}\n\nimpl EncryptedLogHeader {\n fn new(address: AztecAddress) -> Self {\n EncryptedLogHeader { address }\n }\n\n fn compute_ciphertext<T>(self, secret: Scalar, pk: T) -> [u8; 48] where T: ToPoint {\n let full_key = point_to_symmetric_key(secret, pk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n\n let input: [u8; 32] = self.address.to_field().to_be_bytes(32).as_array();\n aes128_encrypt(input, iv, sym_key).as_array()\n }\n}\n\n#[test]\nfn test_encrypted_log_header_matches_noir() {\n let address = AztecAddress::from_field(0xdeadbeef);\n let header = EncryptedLogHeader::new(address);\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = crate::keys::public_keys::IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let ciphertext = header.compute_ciphertext(secret, point);\n\n // The following value was generated by `encrypted_log_header.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_header_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 194, 44, 7, 131, 160, 83, 64, 181, 98, 38, 153, 214, 62, 171, 253, 161, 111, 191, 28, 247, 216, 26, 222, 171, 176, 218, 48, 209, 73, 89, 200, 209\n ];\n\n assert_eq(ciphertext, expected_header_ciphertext_from_typescript);\n}\n"},"122":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/incoming_body.nr","source":"use crate::note::note_interface::NoteInterface;\nuse crate::event::event_interface::EventInterface;\nuse dep::protocol_types::{scalar::Scalar, point::Point};\n\nuse std::aes128::aes128_encrypt;\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::IvpkM};\n\nstruct EncryptedLogIncomingBody<let M: u32> {\n plaintext: [u8; M]\n}\n\nimpl<let M: u32> EncryptedLogIncomingBody<M> {\n pub fn from_note<T, let N: u32>(note: T, storage_slot: Field) -> Self where T: NoteInterface<N, M> {\n let mut plaintext = note.to_be_bytes(storage_slot);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn from_event<T, let MR: u32>(\n event: T,\n randomness: Field\n ) -> Self where T: EventInterface<M, MR> {\n let mut plaintext = event.private_to_be_bytes(randomness);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn compute_ciphertext(self, eph_sk: Scalar, ivpk: IvpkM) -> [u8] {\n let full_key = point_to_symmetric_key(eph_sk, ivpk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(self.plaintext, iv, sym_key)\n }\n}\n\nmod test {\n use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, traits::Serialize,\n abis::event_selector::EventSelector\n };\n\n use crate::{\n note::{note_header::NoteHeader, note_interface::NoteInterface},\n encrypted_logs::incoming_body::EncryptedLogIncomingBody, event::event_interface::EventInterface,\n context::PrivateContext, keys::public_keys::IvpkM\n };\n\n struct AddressNote {\n address: AztecAddress,\n owner: AztecAddress,\n randomness: Field,\n header: NoteHeader,\n }\n\n global ADDRESS_NOTE_LEN: Field = 3;\n global ADDRESS_NOTE_BYTES_LEN = 32 * 3 + 64;\n\n impl NoteInterface<ADDRESS_NOTE_LEN, ADDRESS_NOTE_BYTES_LEN> for AddressNote {\n fn compute_note_hiding_point(self) -> Point {\n crate::generators::Ga1\n }\n\n fn get_note_type_id() -> Field {\n 1\n }\n\n fn get_header(self) -> NoteHeader { self.header}\n\n fn set_header(&mut self, header: NoteHeader) {self.header = header; }\n\n fn compute_nullifier(_self: Self, _context: &mut PrivateContext, _note_hash_for_nullify: Field) -> Field {\n 1\n }\n\n fn compute_nullifier_without_context(_self: Self) -> Field {\n 1\n }\n\n fn serialize_content(self) -> [Field; ADDRESS_NOTE_LEN] { [self.address.to_field(), self.owner.to_field(), self.randomness]}\n\n fn deserialize_content(fields: [Field; ADDRESS_NOTE_LEN]) -> Self {\n AddressNote { address: AztecAddress::from_field(fields[0]), owner: AztecAddress::from_field(fields[1]), randomness: fields[2], header: NoteHeader::empty() }\n }\n\n fn to_be_bytes(self, storage_slot: Field) -> [u8; ADDRESS_NOTE_BYTES_LEN] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ADDRESS_NOTE_BYTES_LEN] = [0; ADDRESS_NOTE_BYTES_LEN];\n\n let storage_slot_bytes = storage_slot.to_be_bytes(32);\n let note_type_id_bytes = AddressNote::get_note_type_id().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = storage_slot_bytes[i];\n buffer[32 + i] = note_type_id_bytes[i];\n }\n\n for i in 0..serialized_note.len() {\n let bytes = serialized_note[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n }\n\n impl AddressNote {\n pub fn new(address: AztecAddress, owner: AztecAddress, randomness: Field) -> Self {\n AddressNote { address, owner, randomness, header: NoteHeader::empty() }\n }\n }\n\n #[test]\n fn test_encrypted_note_log_incoming_body_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\n let note = AddressNote::new(\n AztecAddress::from_field(0x1),\n AztecAddress::from_field(0x2),\n 3\n );\n\n let storage_slot = 2;\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n /// 1. `EncryptedLogIncomingBody::from_note` calls `note.to_be_bytes(storage_slot)` function which serializes\n /// the note to bytes - note that in the case of `AddressNote` the `to_be_bytes` function was automatically\n /// implemented by Aztec macros.\n let body = EncryptedLogIncomingBody::from_note(note, storage_slot);\n\n /// 2. `body.compute_ciphertext(...)` function then derives symmetric key from `eph_sk` and `ivpk` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_note_log_incoming_body.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let note_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 27, 176, 228, 74, 242, 190, 138, 48, 33, 93, 46, 37, 223, 130, 25, 245, 188, 163, 159, 223, 187, 24, 139, 206, 131, 154, 159, 130, 37, 17, 158, 114, 242, 141, 124, 193, 232, 54, 146, 96, 145, 100, 125, 234, 57, 43, 95, 115, 183, 39, 121, 232, 134, 229, 148, 25, 46, 77, 87, 127, 95, 7, 77, 188, 37, 234, 245, 142, 232, 87, 252, 28, 67, 67, 90, 214, 254, 89, 47, 68, 66, 187, 227, 8, 59, 162, 25, 141, 97, 141, 217, 197, 115, 15, 212, 202, 157, 41, 150, 62, 219, 57, 224, 92, 185, 212, 142, 94, 146, 41, 178, 145, 68, 169, 23, 185, 206, 138, 70, 47, 176, 210, 165, 236, 23, 206, 229, 108\n ];\n\n assert_eq(note_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..note_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], note_body_ciphertext_from_typescript[i]);\n }\n }\n\n struct TestEvent {\n value0: Field,\n value1: Field,\n value2: Field,\n }\n\n impl Serialize<3> for TestEvent {\n fn serialize(self) -> [Field; 3] {\n [self.value0, self.value1, self.value2]\n }\n }\n\n global TEST_EVENT_LEN: Field = 3;\n global TEST_EVENT_BYTES_LEN = 32 * 3 + 64;\n global TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS = 32 * 3 + 32;\n\n impl EventInterface<TEST_EVENT_BYTES_LEN, TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS> for TestEvent {\n fn get_event_type_id() -> EventSelector {\n EventSelector::from_signature(\"TestEvent(Field,Field,Field)\")\n }\n\n fn private_to_be_bytes(self, randomness: Field) -> [u8; TEST_EVENT_BYTES_LEN] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN] = [0; TEST_EVENT_BYTES_LEN];\n\n let randomness_bytes = randomness.to_be_bytes(32);\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = randomness_bytes[i];\n buffer[32 + i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn to_be_bytes(self) -> [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] = [0; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS];\n\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[32 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n }\n\n #[test]\n fn test_encrypted_log_event_incoming_body() {\n let test_event = TestEvent { value0: 1, value1: 2, value2: 3 };\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let randomness = 2;\n\n let body = EncryptedLogIncomingBody::from_event(test_event, randomness);\n\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_event_log_incoming_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let event_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 185, 29, 14, 152, 216, 130, 219, 151, 80, 185, 43, 223, 167, 8, 89, 189, 88, 188, 101, 137, 255, 136, 84, 252, 79, 18, 52, 3, 110, 54, 54, 206, 244, 209, 246, 226, 207, 247, 143, 253, 211, 75, 160, 224, 172, 41, 45, 7, 208, 137, 90, 56, 59, 4, 234, 48, 53, 23, 130, 230, 49, 249, 142, 243, 170, 72, 183, 242, 49, 124, 46, 52, 198, 75, 55, 102, 56, 89, 254, 67, 59, 157, 249, 120, 184, 67, 154, 16, 148, 227, 93, 37, 120, 199, 93, 166, 80, 127, 173, 52, 80, 135, 87, 1, 168, 164, 51, 48, 126, 120, 47, 102, 211, 227, 234, 170, 208, 99, 111, 198, 170, 226, 156, 244, 241, 174, 206, 30\n ];\n\n assert_eq(event_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..event_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], event_body_ciphertext_from_typescript[i]);\n }\n }\n}\n"},"126":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_getter/mod.nr","source":"use dep::protocol_types::{constants::{MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, GET_NOTES_ORACLE_RETURN_LENGTH}};\nuse crate::context::PrivateContext;\nuse crate::note::{\n constants::{GET_NOTE_ORACLE_RETURN_LENGTH, MAX_NOTES_PER_PAGE, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, Comparator, NoteStatus, PropertySelector},\n note_interface::NoteInterface, note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request\n};\nuse crate::oracle;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n serialized_note: [Field; N],\n selector: PropertySelector\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the serialized note. \n // This allows easier packing and custom (de)serialization schemas. A note property is located\n // inside the serialized note using the index inside the array, a byte offset and a length.\n let value = serialized_note[selector.index].to_be_bytes(32);\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[31 + offset - i] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_note_header<Note, let N: u32, let M: u32>(\n context: PrivateContext,\n storage_slot: Field,\n note: Note\n) where Note: NoteInterface<N, M> {\n let header = note.get_header();\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address), \"Mismatch note header contract address.\");\n assert(header.storage_slot == storage_slot, \"Mismatch note header storage slot.\");\n}\n\nfn check_note_fields<let N: u32>(\n serialized_note: [Field; N],\n selects: BoundedVec<Option<Select>, N>\n) {\n for i in 0..selects.len {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field = extract_property_value_from_selector(serialized_note, select.property_selector);\n\n // Values are computed ahead of time because circuits evaluate all branches\n let is_equal = value_field == select.value.to_field();\n let is_lt = value_field.lt(select.value.to_field());\n\n if (select.comparator == Comparator.EQ) {\n assert(is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.NEQ) {\n assert(!is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LT) {\n assert(is_lt, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LTE) {\n assert(is_lt | is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GT) {\n assert(!is_lt & !is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GTE) {\n assert(!is_lt, \"Mismatch return note field.\");\n }\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>\n) {\n for i in 0..sorts.len {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32, let M: u32>(\n context: &mut PrivateContext,\n storage_slot: Field\n) -> (Note, Field) where Note: NoteInterface<N, M> {\n let note = get_note_internal(storage_slot);\n\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n context.push_note_hash_read_request(note_hash_for_read_request);\n (note, note_hash_for_read_request)\n}\n\npub fn get_notes<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N, M> + Eq {\n let opt_notes = get_notes_internal(storage_slot, options);\n\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS>(\n notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor: fn([Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL], PREPROCESSOR_ARGS) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor_args: PREPROCESSOR_ARGS\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] {\n preprocessor(notes, preprocessor_args)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N, M> + Eq {\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the contents of the notes (as opposed to simply removing some),\n // the private kernel will later validate that these note actually exist, so transformations would cause for that\n // check to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = crate::utils::collapse(filtered_notes);\n let mut note_hashes: BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL> = BoundedVec::new();\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_fields = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let note = notes.get_unchecked(i);\n let fields = note.serialize_content();\n check_note_header(*context, storage_slot, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_note_hash_read_request(note_hash_for_read_request);\n note_hashes.push(note_hash_for_read_request);\n };\n }\n\n (notes, note_hashes)\n}\n\nunconstrained fn get_note_internal<Note, let N: u32, let M: u32>(storage_slot: Field) -> Note where Note: NoteInterface<N, M> {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_note,\n placeholder_fields,\n placeholder_note_length\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] where Note: NoteInterface<N, M> {\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n apply_preprocessor(opt_notes, options.preprocessor, options.preprocessor_args)\n}\n\nunconstrained pub fn view_notes<Note, let N: u32, let M: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N, M>\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE> where Note: NoteInterface<N, M> {\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let notes_array = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n let mut notes = BoundedVec::new();\n for i in 0..notes_array.len() {\n if notes_array[i].is_some() {\n notes.push(notes_array[i].unwrap_unchecked());\n }\n }\n\n notes\n}\n\nunconstrained fn flatten_options<Note, let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects] = select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects] = select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects] = select.unwrap_unchecked().property_selector.length;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order\n )\n}\n"},"128":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/utils.nr","source":"use crate::{context::PrivateContext, note::{note_header::NoteHeader, note_interface::NoteInterface}};\n\nuse dep::protocol_types::{\n hash::{\n compute_unique_note_hash, compute_siloed_note_hash as compute_siloed_note_hash,\n compute_siloed_nullifier as compute_siloed_nullifier_from_preimage\n},\n utils::arr_copy_slice\n};\n\npub fn compute_siloed_nullifier<Note, let N: u32, let M: u32>(\n note_with_header: Note,\n context: &mut PrivateContext\n) -> Field where Note: NoteInterface<N, M> {\n let header = note_with_header.get_header();\n let note_hash_for_nullify = compute_note_hash_for_nullify(note_with_header);\n let inner_nullifier = note_with_header.compute_nullifier(context, note_hash_for_nullify);\n\n compute_siloed_nullifier_from_preimage(header.contract_address, inner_nullifier)\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_read_request<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n let nonce = note.get_header().nonce;\n let counter = note.get_header().note_hash_counter;\n\n if counter != 0 {\n note_hash\n } else {\n compute_unique_note_hash(nonce, note_hash)\n }\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_nullify_internal<Note, let N: u32, let M: u32>(\n note: Note,\n note_hash_for_read_request: Field\n) -> Field where Note: NoteInterface<N, M> {\n let header = note.get_header();\n\n if header.note_hash_counter != 0 {\n if header.nonce == 0 {\n // Case 1: Transient note\n note_hash_for_read_request\n } else {\n // Case 2: Non-revertible note, nullified by a revertible nullifier\n let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash_for_read_request);\n compute_siloed_note_hash(header.contract_address, unique_note_hash)\n }\n } else {\n // Case 3: Note from a previous transaction\n // note_hash_for_read_request is already the unique_note_hash in this case\n compute_siloed_note_hash(header.contract_address, note_hash_for_read_request)\n }\n}\n\n// TODO(#7775): nuke this commented out code - kept it around as it contains comments which might be helpful when tackling #7775\n// pub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n// let header = note.get_header();\n// // There are 3 cases for reading a note intended for consumption:\n// // 1. The note was inserted in this transaction, is revertible, or is not nullified by a revertible nullifier in \n// // the same transaction: (note_hash_counter != 0) & (nonce == 0)\n// // 2. The note was inserted in this transaction, is non-revertible, and is nullified by a revertible nullifier in \n// // the same transaction: (note_hash_counter != 0) & (nonce != 0)\n// // 3. The note was inserted in a previous transaction: (note_hash_counter == 0) & (nonce != 0)\n\n// // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n// let note_hash = note.compute_note_hiding_point().x;\n\n// if header.nonce == 0 {\n// // Case 1.\n// // If a note is transient, we just read the note_hash (kernel will hash it with nonce and silo by contract address).\n// note_hash\n// } else {\n// // Case 2: If a note is non-revertible, and is nullified by a revertible nullifier, we cannot squash them in the \n// // private reset circuit. Because if the tx reverts, we will have to keep the note hash and throw away the \n// // nullifier.\n// // And if the tx does not revert, both will be emitted. In which case, the nullifier must be created in the app\n// // from the siloed note hash.\n// // The kernel circuit will check that a nullifier with non-zero note_nonce is linked to a note hash, whose\n// // siloed note hash matches the note hash specified in the nullifier.\n\n// // Case 3: If a note is not from the current transaction, that means we are reading a settled note (from \n// // tree) created in a previous TX. So we need the siloed_note_hash which has already been hashed with\n// // nonce and then contract address. This hash will match the existing leaf in the note hash\n// // tree, so the kernel can just perform a membership check directly on this hash/leaf.\n// let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash);\n// compute_siloed_note_hash(header.contract_address, unique_note_hash)\n// // IMPORTANT NOTE ON REDUNDANT SILOING BY CONTRACT ADDRESS: The note hash computed above is\n// // \"siloed\" by contract address. When a note hash is computed solely for the purpose of\n// // nullification, it is not strictly necessary to silo the note hash before computing\n// // its nullifier. In other words, it is NOT NECESSARY for protocol security that a nullifier\n// // be computed from a siloed note hash. After all, persistable note hashes and nullifiers are\n// // siloed by the kernel circuit. That being said, the siloed note hash computed above CAN be\n// // used for nullifier computation, and this achieves the (arguably unnecessary) property that\n// // nullifiers are computed from a note hash's fully-computed note hash tree leaf.\n// }\n// }\n\npub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n compute_note_hash_for_nullify_internal(note, note_hash_for_read_request)\n}\n\npub fn compute_note_hash_and_optionally_a_nullifier<T, let N: u32, let M: u32, let S: u32>(\n deserialize_content: fn([Field; N]) -> T,\n note_header: NoteHeader,\n compute_nullifier: bool,\n serialized_note: [Field; S]\n) -> [Field; 4] where T: NoteInterface<N, M> {\n let mut note = deserialize_content(arr_copy_slice(serialized_note, [0; N], 0));\n note.set_header(note_header);\n\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n let unique_note_hash = compute_unique_note_hash(note_header.nonce, note_hash);\n let siloed_note_hash = compute_siloed_note_hash(note_header.contract_address, unique_note_hash);\n\n let inner_nullifier = if compute_nullifier {\n note.compute_nullifier_without_context()\n } else {\n 0\n };\n // docs:start:compute_note_hash_and_optionally_a_nullifier_returns\n [note_hash, unique_note_hash, siloed_note_hash, inner_nullifier]\n // docs:end:compute_note_hash_and_optionally_a_nullifier_returns\n}\n"},"129":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/lifecycle.nr","source":"use crate::context::{PrivateContext, PublicContext};\nuse crate::note::{\n note_header::NoteHeader, note_interface::NoteInterface,\n utils::{compute_note_hash_for_read_request, compute_note_hash_for_nullify_internal},\n note_emission::NoteEmission\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\n\npub fn create_note<Note, N, M>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note\n) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n let note_hash_counter = context.side_effect_counter;\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter };\n note.set_header(header);\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n\n let serialized_note = Note::serialize_content(*note);\n assert(\n notify_created_note(\n storage_slot,\n Note::get_note_type_id(),\n serialized_note,\n note_hash,\n note_hash_counter\n )\n == 0\n );\n\n context.push_note_hash(note_hash);\n\n NoteEmission::new(*note)\n}\n\npub fn create_note_hash_from_public<Note, N, M>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note\n) where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n // Public note hashes are transient, but have no side effect counters, so we just need note_hash_counter != 0\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter: 1 };\n note.set_header(header);\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n\n context.push_note_hash(note_hash);\n}\n\n// Note: This function is currently totally unused.\npub fn destroy_note<Note, N, M>(\n context: &mut PrivateContext,\n note: Note\n) where Note: NoteInterface<N, M> {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n destroy_note_unsafe(context, note, note_hash_for_read_request)\n}\n\npub fn destroy_note_unsafe<Note, N, M>(\n context: &mut PrivateContext,\n note: Note,\n note_hash_for_read_request: Field\n) where Note: NoteInterface<N, M> {\n let note_hash_for_nullify = compute_note_hash_for_nullify_internal(note, note_hash_for_read_request);\n let nullifier = note.compute_nullifier(context, note_hash_for_nullify);\n\n let note_hash_counter = note.get_header().note_hash_counter;\n let notification_note_hash = if (note_hash_counter == 0) {\n // Counter is zero, so we're nullifying a settled note and we don't populate the note_hash with real value.\n 0\n } else {\n // A non-zero note hash counter implies that we're nullifying a pending note (i.e. one that has not yet been\n // persisted in the trees and is instead in the pending new note hashes array). In such a case we populate its\n // hash with real value to inform the kernel which note we're nullifyng so that it can either squash both\n // the note and the nullifier if it's an inner note hash, or check that the it matches a pending note if it's\n // a siloed note hash.\n note_hash_for_nullify\n };\n\n let nullifier_counter = context.side_effect_counter;\n assert(notify_nullified_note(nullifier, notification_note_hash, nullifier_counter) == 0);\n\n context.push_nullifier_for_note_hash(nullifier, notification_note_hash)\n}\n\n"},"130":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_emission.nr","source":"/**\n * A note emission struct containing the information required for emitting a note.\n * The exact `emit` logic is passed in by the application code\n */\nstruct NoteEmission<Note> {\n note: Note\n}\n\nimpl<Note> NoteEmission<Note> {\n pub fn new(note: Note) -> Self {\n Self { note }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n\n pub fn discard(_self: Self) {}\n}\n\n/**\n * A struct wrapping note emission in `Option<T>`.\n * This is the struct provided to application codes, which can be used to emit\n * only when a note was actually inserted.\n * It is fairly common to have cases where a function conditionally inserts,\n * and this allows us to keep the same API for emission in both cases (e.g. inserting \n * a change note in a token's transfer function only when there is \"change\" left).\n */\nstruct OuterNoteEmission<Note> {\n emission: Option<NoteEmission<Note>>,\n}\n\nimpl<Note> OuterNoteEmission<Note> {\n pub fn new(emission: Option<NoteEmission<Note>>) -> Self {\n Self { emission }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](NoteEmission<Note>) -> ()) {\n if self.emission.is_some() {\n _emit(self.emission.unwrap());\n }\n }\n\n pub fn discard(_self: Self) {}\n}\n"},"138":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER, ARGS_HASH_CHUNK_COUNT,\n GENERATOR_INDEX__FUNCTION_ARGS, ARGS_HASH_CHUNK_LENGTH, MAX_ARGS_LENGTH\n},\n traits::Hash,\n hash::{\n pedersen_hash, compute_siloed_nullifier, sha256_to_field, pedersen_commitment,\n poseidon2_hash_with_separator\n}\n};\n// Note: pedersen_commitment is used only as a re-export here\nuse crate::oracle::logs_traits::{LensForEncryptedLog, ToBytesForUnencryptedLog};\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<T, let N: u32, let M: u32>(\n contract_address: AztecAddress,\n log: T\n) -> Field where T: ToBytesForUnencryptedLog<N, M> {\n let message_bytes: [u8; N] = log.to_be_bytes_arr();\n // can't use N - not in scope error\n let n = message_bytes.len();\n let mut hash_bytes = [0; M];\n // Address is converted to 32 bytes in ts\n let address_bytes = contract_address.to_be_bytes_arr();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes = (n as Field).to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..n {\n hash_bytes[36 + i] = message_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes = sender.to_field().to_be_bytes(32);\n let chain_id_bytes = chain_id.to_be_bytes(32);\n let recipient_bytes = recipient.to_field().to_be_bytes(32);\n let version_bytes = version.to_be_bytes(32);\n let content_bytes = content.to_be_bytes(32);\n let secret_hash_bytes = secret_hash.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n poseidon2_hash_with_separator(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__MESSAGE_NULLIFIER\n )\n}\n\nstruct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n assert(args.len() <= MAX_ARGS_LENGTH, \"Args length exceeds maximum\");\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n let mut current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n\n let mut current_chunk_index = 0;\n let mut index_inside_current_chunk = 0;\n for i in 0..args.len() {\n current_chunk_values[index_inside_current_chunk] = args[i];\n index_inside_current_chunk+=1;\n if index_inside_current_chunk == ARGS_HASH_CHUNK_LENGTH {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n current_chunk_index+=1;\n index_inside_current_chunk = 0;\n }\n }\n if index_inside_current_chunk > 0 {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n poseidon2_hash_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nfn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..MAX_ARGS_LENGTH {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x1cce4dbf69f14c44865919991ee1057922e34d7310ba237d71759aa422621ca9);\n}\n\n#[test]\nfn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nfn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nfn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nfn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"139":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/initializer.nr","source":"use dep::protocol_types::{\n address::AztecAddress, hash::poseidon2_hash_with_separator, constants::GENERATOR_INDEX__CONSTRUCTOR,\n abis::function_selector::FunctionSelector\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext}, oracle::get_contract_instance::get_contract_instance,\n oracle::get_contract_instance::get_contract_instance_avm\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn assert_is_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n assert(context.nullifier_exists(init_nullifier, context.this_address()), \"Not initialized\");\n}\n\npub fn assert_is_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n context.push_nullifier_read_request(init_nullifier);\n}\n\nfn compute_unsiloed_contract_initialization_nullifier(address: AztecAddress) -> Field {\n address.to_field()\n}\n\npub fn assert_initialization_matches_address_preimage_public(context: PublicContext) {\n let address = context.this_address();\n let instance = get_contract_instance_avm(address).unwrap();\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn assert_initialization_matches_address_preimage_private(context: PrivateContext) {\n let address = context.this_address();\n let instance = get_contract_instance(address);\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn compute_initialization_hash(init_selector: FunctionSelector, init_args_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [init_selector.to_field(), init_args_hash],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n"},"141":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr","source":"use dep::protocol_types::{address::AztecAddress, point::Point};\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(_note_hash_counter: u32, _encrypted_note: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_note_log<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32\n) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(_contract_address: AztecAddress, _randomness: Field, _encrypted_event: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_event_log<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedNoteLog)]\nunconstrained fn compute_encrypted_note_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_note_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_note_log_oracle(\n contract_address,\n storage_slot,\n note_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedEventLog)]\nunconstrained fn compute_encrypted_event_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _event_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_event_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n event_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_event_log_oracle(\n contract_address,\n randomness,\n event_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n#[oracle(emitUnencryptedLog)]\nunconstrained fn emit_unencrypted_log_oracle_private<T>(_contract_address: AztecAddress, _message: T, _counter: u32) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log_private_internal<T>(\n contract_address: AztecAddress,\n message: T,\n counter: u32\n) -> Field {\n emit_unencrypted_log_oracle_private(contract_address, message, counter)\n}\n\n#[oracle(emitContractClassUnencryptedLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {}\n\nunconstrained pub fn emit_contract_class_unencrypted_log_private_internal<let N: u32>(contract_address: AztecAddress, message: [Field; N], counter: u32) -> Field {\n emit_contract_class_unencrypted_log_private(contract_address, message, counter)\n}\n"},"143":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr","source":"#[oracle(packReturns)]\nunconstrained fn pack_returns_oracle<let N: u32>(_returns: [Field]) -> Field {}\n\nunconstrained pub fn pack_returns(returns: [Field]) {\n let _unused = pack_returns_oracle(returns);\n}\n\n#[oracle(unpackReturns)]\nunconstrained fn unpack_returns_oracle<let N: u32>(_return_hash: Field) -> [Field; N] {}\n\nunconstrained pub fn unpack_returns<let N: u32>(return_hash: Field) -> [Field; N] {\n unpack_returns_oracle(return_hash)\n}\n"},"144":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_public_data_witness.nr","source":"use dep::protocol_types::{\n constants::PUBLIC_DATA_TREE_HEIGHT, public_data_tree_leaf_preimage::PublicDataTreeLeafPreimage,\n utils::arr_copy_slice\n};\n\nglobal LEAF_PREIMAGE_LENGTH: u32 = 4;\nglobal PUBLIC_DATA_WITNESS: Field = 45;\n\nstruct PublicDataWitness {\n index: Field,\n leaf_preimage: PublicDataTreeLeafPreimage,\n path: [Field; PUBLIC_DATA_TREE_HEIGHT],\n}\n\n#[oracle(getPublicDataTreeWitness)]\nunconstrained fn get_public_data_witness_oracle(\n _block_number: u32,\n _public_data_tree_index: Field\n) -> [Field; PUBLIC_DATA_WITNESS] {}\n\nunconstrained pub fn get_public_data_witness(block_number: u32, public_data_tree_index: Field) -> PublicDataWitness {\n let fields = get_public_data_witness_oracle(block_number, public_data_tree_index);\n PublicDataWitness {\n index: fields[0],\n leaf_preimage: PublicDataTreeLeafPreimage { slot: fields[1], value: fields[2], next_index: fields[3] as u32, next_slot: fields[4] },\n path: arr_copy_slice(fields, [0; PUBLIC_DATA_TREE_HEIGHT], 1 + LEAF_PREIMAGE_LENGTH)\n }\n}\n"},"145":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/key_validation_request.nr","source":"use dep::protocol_types::abis::validation_requests::{KeyValidationRequest, key_validation_request::KEY_VALIDATION_REQUEST_LENGTH};\n\n#[oracle(getKeyValidationRequest)]\nunconstrained fn get_key_validation_request_oracle(\n _pk_m_hash: Field,\n _key_index: Field\n) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {}\n\nunconstrained fn get_key_validation_request_internal(\n npk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n let result = get_key_validation_request_oracle(npk_m_hash, key_index);\n KeyValidationRequest::deserialize(result)\n}\n\npub fn get_key_validation_request(pk_m_hash: Field, key_index: Field) -> KeyValidationRequest {\n get_key_validation_request_internal(pk_m_hash, key_index)\n}\n\n"},"148":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/storage.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\n\n#[oracle(storageRead)]\nunconstrained fn storage_read_oracle<let N: u32>(address: Field, storage_slot: Field, block_number: Field, length: Field) -> [Field; N] {}\n\nunconstrained pub fn raw_storage_read<let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> [Field; N] {\n storage_read_oracle(\n address.to_field(),\n storage_slot,\n block_number as Field,\n N as Field\n )\n}\n\nunconstrained pub fn storage_read<T, let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> T where T: Deserialize<N> {\n T::deserialize(raw_storage_read(address, storage_slot, block_number))\n}\n\nmod tests {\n use crate::oracle::storage::{raw_storage_read, storage_read};\n use dep::protocol_types::address::AztecAddress;\n\n use std::test::OracleMock;\n use crate::test::mocks::mock_struct::MockStruct;\n\n global address = AztecAddress::from_field(29);\n global slot = 7;\n global block_number = 17;\n\n #[test]\n fn test_raw_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: [Field; 2] = raw_storage_read(address, slot, block_number);\n assert_eq(read[0], 13);\n assert_eq(read[1], 42);\n }\n\n #[test]\n fn test_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: MockStruct = storage_read(address, slot, block_number);\n assert_eq(read.a, 13);\n assert_eq(read.b, 42);\n }\n}\n"},"149":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/unsafe_rand.nr","source":"#[oracle(getRandomField)]\nunconstrained fn rand_oracle() -> Field {}\n\n// Called `unsafe_rand` because we do not constrain in circuit that we are dealing with an actual random value.\n// Instead we just trust our PXE.\nunconstrained pub fn unsafe_rand() -> Field {\n rand_oracle()\n}\n"},"151":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr","source":"use dep::protocol_types::{abis::function_selector::FunctionSelector, address::AztecAddress, utils::reader::Reader};\n\n#[oracle(callPrivateFunction)]\nunconstrained fn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; 2] {}\n\nunconstrained pub fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> (u32, Field) {\n let fields = call_private_function_oracle(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n let mut reader = Reader::new(fields);\n let end_side_effect_counter = reader.read_u32();\n let returns_hash = reader.read();\n\n (end_side_effect_counter, returns_hash)\n}\n"},"152":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/keys.nr","source":"use crate::keys::{PublicKeys, public_keys::{NpkM, IvpkM, OvpkM, TpkM}};\nuse dep::protocol_types::{address::{AztecAddress, PartialAddress}, point::Point};\n\n#[oracle(getPublicKeysAndPartialAddress)]\nunconstrained fn get_public_keys_and_partial_address_oracle(_address: AztecAddress) -> [Field; 13] {}\n\nunconstrained fn get_public_keys_and_partial_address_oracle_wrapper(address: AztecAddress) -> [Field; 13] {\n get_public_keys_and_partial_address_oracle(address)\n}\n\npub fn get_public_keys_and_partial_address(address: AztecAddress) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle_wrapper(address);\n\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: result[0], y: result[1], is_infinite: result[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x: result[3], y: result[4], is_infinite: result[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x: result[6], y: result[7], is_infinite: result[8] as bool } },\n tpk_m: TpkM { inner: Point { x: result[9], y: result[10], is_infinite: result[11] as bool } }\n };\n\n let partial_address = PartialAddress::from_field(result[12]);\n\n (keys, partial_address)\n}\n"},"154":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr","source":"use crate::note::{note_header::NoteHeader, note_interface::NoteInterface};\n\nuse dep::protocol_types::{address::AztecAddress, utils::arr_copy_slice};\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _note_hash: Field,\n _counter: u32\n) -> Field {}\n\nunconstrained pub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_created_note_oracle(storage_slot, note_type_id, serialized_note, note_hash, counter)\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle<let N: u32>(_nullifier: Field, _note_hash: Field, _counter: u32) -> Field {}\n\nunconstrained pub fn notify_nullified_note<let N: u32>(\n nullifier: Field,\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_nullified_note_oracle(nullifier, note_hash, counter)\n}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S]\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S]\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields\n )\n}\n\nunconstrained pub fn get_notes<Note, let N: u32, let NB: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N] // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S] where Note: NoteInterface<N, NB> {\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let header = NoteHeader { contract_address, nonce, storage_slot, note_hash_counter };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = Note::deserialize_content(serialized_note);\n note.set_header(header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n// Only ever use this in private!\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\n// Only ever use this in private!\nunconstrained pub fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n"},"155":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr","source":"use dep::protocol_types::{\n address::AztecAddress, contract_instance::ContractInstance, utils::arr_copy_slice,\n constants::CONTRACT_INSTANCE_LENGTH, utils::reader::Reader\n};\n\n#[oracle(getContractInstance)]\nunconstrained fn get_contract_instance_oracle(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {}\n\n// Returns a ContractInstance plus a boolean indicating whether the instance was found.\n#[oracle(avmOpcodeGetContractInstance)]\nunconstrained fn get_contract_instance_oracle_avm(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {}\n\nunconstrained fn get_contract_instance_internal(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n get_contract_instance_oracle(address)\n}\n\nunconstrained pub fn get_contract_instance_internal_avm(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {\n get_contract_instance_oracle_avm(address)\n}\n\npub fn get_contract_instance(address: AztecAddress) -> ContractInstance {\n let instance = ContractInstance::deserialize(get_contract_instance_internal(address));\n assert(instance.to_address().eq(address));\n instance\n}\n\npub fn get_contract_instance_avm(address: AztecAddress) -> Option<ContractInstance> {\n let mut reader = Reader::new(get_contract_instance_internal_avm(address));\n let found = reader.read();\n if found == 0 {\n Option::none()\n } else {\n Option::some(reader.read_struct(ContractInstance::deserialize))\n }\n}\n"},"156":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr","source":"use dep::protocol_types::{abis::{function_selector::FunctionSelector}, address::AztecAddress};\n\n#[oracle(enqueuePublicFunctionCall)]\nunconstrained fn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(setPublicTeardownFunctionCall)]\nunconstrained fn set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn set_public_teardown_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n set_public_teardown_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(notifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n\nunconstrained pub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n"},"158":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/execution.nr","source":"use dep::protocol_types::address::AztecAddress;\n\n#[oracle(getContractAddress)]\nunconstrained fn get_contract_address_oracle() -> AztecAddress {}\n\n#[oracle(getBlockNumber)]\nunconstrained fn get_block_number_oracle() -> u32 {}\n\n#[oracle(getChainId)]\nunconstrained fn get_chain_id_oracle() -> Field {}\n\n#[oracle(getVersion)]\nunconstrained fn get_version_oracle() -> Field {}\n\nunconstrained pub fn get_contract_address() -> AztecAddress {\n get_contract_address_oracle()\n}\n\nunconstrained pub fn get_block_number() -> u32 {\n get_block_number_oracle()\n}\n\nunconstrained pub fn get_chain_id() -> Field {\n get_chain_id_oracle()\n}\n\nunconstrained pub fn get_version() -> Field {\n get_version_oracle()\n}\n"},"161":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/map.nr","source":"use dep::protocol_types::{storage::map::derive_storage_slot_in_map, traits::ToField};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:map\nstruct Map<K, V, Context> {\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n}\n// docs:end:map\n\nimpl<K, T, Context> Storage<T> for Map<K, T, Context> {}\n\nimpl<K, V, Context> Map<K, V, Context> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map { context, storage_slot, state_var_constructor }\n }\n // docs:end:new\n\n // docs:start:at\n pub fn at(self, key: K) -> V where K: ToField {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = derive_storage_slot_in_map(self.storage_slot, key);\n\n let state_var_constructor = self.state_var_constructor;\n state_var_constructor(self.context, derived_storage_slot)\n }\n // docs:end:at\n}\n"},"163":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr","source":"use crate::context::{PublicContext, UnconstrainedContext};\nuse crate::oracle::storage::storage_read;\nuse dep::protocol_types::traits::{Deserialize, Serialize};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:public_mutable_struct\nstruct PublicMutable<T, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:public_mutable_struct\n\nimpl<T, Context> Storage<T> for PublicMutable<T, Context> {}\n\nimpl<T, Context> PublicMutable<T, Context> {\n // docs:start:public_mutable_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicMutable { context, storage_slot }\n }\n // docs:end:public_mutable_struct_new\n}\n\nimpl<T, T_SERIALIZED_LEN> PublicMutable<T, &mut PublicContext> where T: Serialize<T_SERIALIZED_LEN> + Deserialize<T_SERIALIZED_LEN> {\n // docs:start:public_mutable_struct_read\n pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n // docs:end:public_mutable_struct_read\n\n // docs:start:public_mutable_struct_write\n pub fn write(self, value: T) {\n self.context.storage_write(self.storage_slot, value);\n }\n // docs:end:public_mutable_struct_write\n}\n\nimpl<T, T_SERIALIZED_LEN> PublicMutable<T, UnconstrainedContext> where T: Deserialize<T_SERIALIZED_LEN> {\n unconstrained pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n}\n"},"179":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr","source":"use dep::protocol_types::{\n address::AztecAddress, constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note, note_getter::{get_note, view_notes}, note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions, note_emission::NoteEmission\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\nstruct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T, Context> Storage<T> for PrivateImmutable<T, Context> {}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor. \n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<N, M>(\n self,\n note: &mut Note\n ) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let storage_slot = self.storage_slot;\n get_note(self.context, storage_slot).0\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UnconstrainedContext> {\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n unconstrained pub fn view_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"},"181":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/utils/point.nr","source":"use dep::protocol_types::point::Point;\n\n// I am storing the modulus divided by 2 plus 1 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field = 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a public key to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(pk: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!pk.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result = pk.x.to_be_bytes(32);\n\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n if !BN254_FR_MODULUS_DIV_2.lt(pk.y) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result.as_array()\n}\n\nmod test {\n use dep::protocol_types::point::Point;\n use crate::utils::point::point_to_bytes;\n\n #[test]\n fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122, 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115\n ];\n\n assert_eq(expected_compressed_point_positive_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_positive_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_positive_sign[i]);\n }\n }\n\n #[test]\n fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169, 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181\n ];\n\n assert_eq(expected_compressed_point_negative_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_negative_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_negative_sign[i]);\n }\n }\n}\n"},"198":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{constants::KEY_VALIDATION_REQUEST_LENGTH, traits::{Empty, Serialize, Deserialize}, point::Point};\n\nstruct KeyValidationRequest {\n pk_m: Point,\n sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m))\n & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest {\n pk_m: Point::empty(),\n sk_app: 0,\n }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [\n self.pk_m.x,\n self.pk_m.y,\n self.pk_m.is_infinite as Field,\n self.sk_app,\n ]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: Point { x:fields[0], y: fields[1], is_infinite: fields[2] as bool},\n sk_app: fields[3],\n }\n }\n}\n\n"},"2":{"path":"std/array.nr","source":"use crate::cmp::Ord;\nuse crate::option::Option;\nuse crate::convert::From;\n\nimpl<T, let N: u32> [T; N] {\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n pub fn sort(self) -> Self where T: Ord {\n self.sort_via(|a: T, b: T| a <= b)\n }\n\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n let sorted_index = unsafe {\n // Safety: These indices are asserted to be the sorted element indices via `find_index`\n let sorted_index: [u32; N] = self.get_sorting_index(ordering);\n\n for i in 0..N {\n let pos = find_index(sorted_index, i);\n assert(sorted_index[pos] == i);\n }\n\n sorted_index\n };\n\n // Sort the array using the indexes\n let mut result = self;\n for i in 0..N {\n result[i] = self[sorted_index[i]];\n }\n // Ensure the array is sorted\n for i in 0..N - 1 {\n assert(ordering(result[i], result[i + 1]));\n }\n\n result\n }\n\n /// Returns the index of the elements in the array that would sort it, using the provided custom sorting function.\n unconstrained fn get_sorting_index<Env>(self, ordering: fn[Env](T, T) -> bool) -> [u32; N] {\n let mut result = [0; N];\n let mut a = self;\n for i in 0..N {\n result[i] = i;\n }\n for i in 1..N {\n for j in 0..i {\n if ordering(a[i], a[j]) {\n let old_a_j = a[j];\n a[j] = a[i];\n a[i] = old_a_j;\n let old_j = result[j];\n result[j] = result[i];\n result[i] = old_j;\n }\n }\n }\n result\n }\n\n #[builtin(as_slice)]\n pub fn as_slice(self) -> [T] {}\n\n // Apply a function to each element of an array, returning a new array\n // containing the mapped elements.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> [U; N] {\n let first_elem = f(self[0]);\n let mut ret = [first_elem; N];\n\n for i in 1..self.len() {\n ret[i] = f(self[i]);\n }\n\n ret\n }\n\n // Apply a function to each element of the array and an accumulator value,\n // returning the final accumulated value. This function is also sometimes\n // called `foldl`, `fold_left`, `reduce`, or `inject`.\n pub fn fold<U, Env>(self, mut accumulator: U, f: fn[Env](U, T) -> U) -> U {\n for elem in self {\n accumulator = f(accumulator, elem);\n }\n accumulator\n }\n\n // Apply a function to each element of the array and an accumulator value,\n // returning the final accumulated value. Unlike fold, reduce uses the first\n // element of the given array as its starting accumulator value.\n pub fn reduce<Env>(self, f: fn[Env](T, T) -> T) -> T {\n let mut accumulator = self[0];\n for i in 1..self.len() {\n accumulator = f(accumulator, self[i]);\n }\n accumulator\n }\n\n // Returns true if all elements in the array satisfy the predicate\n pub fn all<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = true;\n for elem in self {\n ret &= predicate(elem);\n }\n ret\n }\n\n // Returns true if any element in the array satisfies the predicate\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n for elem in self {\n ret |= predicate(elem);\n }\n ret\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Convert a sequence of bytes as-is into a string.\n /// This function performs no UTF-8 validation or similar.\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\n// helper function used to look up the position of a value in an array of Field\n// Note that function returns 0 if the value is not found\nunconstrained fn find_index<let N: u32>(a: [u32; N], find: u32) -> u32 {\n let mut result = 0;\n for i in 0..a.len() {\n if a[i] == find {\n result = i;\n }\n }\n result\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n"},"22":{"path":"std/embedded_curve_ops.nr","source":"use crate::ops::arith::{Add, Sub, Neg};\nuse crate::cmp::Eq;\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\nstruct EmbeddedCurvePoint {\n x: Field,\n y: Field,\n is_infinite: bool\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint { \n EmbeddedCurvePoint {\n x: self.x,\n y: -self.y,\n is_infinite: self.is_infinite\n }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite) | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\nstruct EmbeddedCurveScalar {\n lo: Field,\n hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a,b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the \n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N]\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n let point_array = multi_scalar_mul_array_return(points, scalars);\n EmbeddedCurvePoint { x: point_array[0], y: point_array[1], is_infinite: point_array[2] as bool }\n}\n\n#[foreign(multi_scalar_mul)]\nfn multi_scalar_mul_array_return<let N: u32>(points: [EmbeddedCurvePoint; N], scalars: [EmbeddedCurveScalar; N]) -> [Field; 3] {}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_slice(points: [EmbeddedCurvePoint], scalars: [EmbeddedCurveScalar]) -> [Field; 3] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n let g1 = EmbeddedCurvePoint { x: 1, y: 17631683881184975370165255887551781615748388533673675138860, is_infinite: false };\n multi_scalar_mul([g1], [scalar])\n}\n\n// This is a hack as returning an `EmbeddedCurvePoint` from a foreign function in brillig returns a [BrilligVariable::SingleAddr; 2] rather than BrilligVariable::BrilligArray\n// as is defined in the brillig bytecode format. This is a workaround which allows us to fix this without modifying the serialization format.\n// docs:start:embedded_curve_add\nfn embedded_curve_add(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint\n) -> EmbeddedCurvePoint\n// docs:end:embedded_curve_add\n{\n let point_array = embedded_curve_add_array_return(point1, point2);\n let x = point_array[0];\n let y = point_array[1];\n EmbeddedCurvePoint { x, y, is_infinite: point_array[2] == 1 }\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(_point1: EmbeddedCurvePoint, _point2: EmbeddedCurvePoint) -> [Field; 3] {}\n"},"23":{"path":"std/field/bn254.nr","source":"use crate::runtime::is_unconstrained;\n\n// The low and high decomposition of the field modulus\nglobal PLO: Field = 53438638232309528389504892708671455233;\nglobal PHI: Field = 64323764613183177041862057485226039389;\n\nglobal TWO_POW_128: Field = 0x100000000000000000000000000000000;\n\n// Decomposes a single field into two 16 byte fields.\nfn compute_decomposition(x: Field) -> (Field, Field) {\n let x_bytes = x.to_le_bytes(32);\n\n let mut low: Field = 0;\n let mut high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n low += (x_bytes[i] as Field) * offset;\n high += (x_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n\n (low, high)\n}\n\nunconstrained pub(crate) fn decompose_hint(x: Field) -> (Field, Field) {\n compute_decomposition(x)\n}\n\nfn compute_lt(x: Field, y: Field, num_bytes: u32) -> bool {\n let x_bytes = x.to_le_radix(256, num_bytes);\n let y_bytes = y.to_le_radix(256, num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i];\n let y_byte = y_bytes[num_bytes - 1 - i];\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nfn compute_lte(x: Field, y: Field, num_bytes: u32) -> bool {\n if x == y {\n true\n } else {\n compute_lt(x, y, num_bytes)\n }\n}\n\nunconstrained fn lt_32_hint(x: Field, y: Field) -> bool {\n compute_lt(x, y, 32)\n}\n\nunconstrained fn lte_16_hint(x: Field, y: Field) -> bool {\n compute_lte(x, y, 16)\n}\n\n// Assert that (alo > blo && ahi >= bhi) || (alo <= blo && ahi > bhi)\nfn assert_gt_limbs(a: (Field, Field), b: (Field, Field)) {\n let (alo, ahi) = a;\n let (blo, bhi) = b;\n unsafe {\n let borrow = lte_16_hint(alo, blo);\n\n let rlo = alo - blo - 1 + (borrow as Field) * TWO_POW_128;\n let rhi = ahi - bhi - (borrow as Field);\n\n rlo.assert_max_bit_size(128);\n rhi.assert_max_bit_size(128);\n }\n}\n\n/// Decompose a single field into two 16 byte fields.\npub fn decompose(x: Field) -> (Field, Field) {\n if is_unconstrained() {\n compute_decomposition(x)\n } else {\n unsafe {\n // Take hints of the decomposition\n let (xlo, xhi) = decompose_hint(x);\n\n // Range check the limbs\n xlo.assert_max_bit_size(128);\n xhi.assert_max_bit_size(128);\n\n // Check that the decomposition is correct\n assert_eq(x, xlo + TWO_POW_128 * xhi);\n\n // Assert that the decomposition of P is greater than the decomposition of x\n assert_gt_limbs((PLO, PHI), (xlo, xhi));\n (xlo, xhi)\n }\n }\n}\n\npub fn assert_gt(a: Field, b: Field) {\n if is_unconstrained() {\n assert(compute_lt(b, a, 32));\n } else {\n // Decompose a and b\n let a_limbs = decompose(a);\n let b_limbs = decompose(b);\n\n // Assert that a_limbs is greater than b_limbs\n assert_gt_limbs(a_limbs, b_limbs)\n }\n}\n\npub fn assert_lt(a: Field, b: Field) {\n assert_gt(b, a);\n}\n\npub fn gt(a: Field, b: Field) -> bool {\n if is_unconstrained() {\n compute_lt(b, a, 32)\n } else if a == b {\n false\n } else {\n // Take a hint of the comparison and verify it\n unsafe {\n if lt_32_hint(a, b) {\n assert_gt(b, a);\n false\n } else {\n assert_gt(a, b);\n true\n }\n }\n }\n}\n\npub fn lt(a: Field, b: Field) -> bool {\n gt(b, a)\n}\n\nmod tests {\n // TODO: Allow imports from \"super\"\n use crate::field::bn254::{decompose_hint, decompose, compute_lt, assert_gt, gt, lt, TWO_POW_128, compute_lte, PLO, PHI};\n\n #[test]\n fn check_decompose() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_decompose_unconstrained() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n fn check_compute_lt() {\n assert(compute_lt(0, 1, 16));\n assert(compute_lt(0, 0x100, 16));\n assert(compute_lt(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lt(0, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_compute_lte() {\n assert(compute_lte(0, 1, 16));\n assert(compute_lte(0, 0x100, 16));\n assert(compute_lte(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lte(0, TWO_POW_128, 16));\n\n assert(compute_lte(0, 0, 16));\n assert(compute_lte(0x100, 0x100, 16));\n assert(compute_lte(TWO_POW_128 - 1, TWO_POW_128 - 1, 16));\n assert(compute_lte(TWO_POW_128, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_assert_gt() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n unconstrained fn check_assert_gt_unconstrained() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n fn check_gt() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n unconstrained fn check_gt_unconstrained() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n fn check_plo_phi() {\n assert_eq(PLO + PHI * TWO_POW_128, 0);\n let p_bytes = crate::field::modulus_le_bytes();\n let mut p_low: Field = 0;\n let mut p_high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n p_low += (p_bytes[i] as Field) * offset;\n p_high += (p_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n assert_eq(p_low, PLO);\n assert_eq(p_high, PHI);\n }\n}\n"},"24":{"path":"std/field/mod.nr","source":"mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n pub fn to_le_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_le_bits(bit_size)\n }\n\n pub fn to_be_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_be_bits(bit_size)\n }\n\n #[builtin(to_le_bits)]\n fn __to_le_bits(self, _bit_size: u32) -> [u1] {}\n\n #[builtin(to_be_bits)]\n fn __to_be_bits(self, bit_size: u32) -> [u1] {}\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n pub fn assert_max_bit_size(self: Self, bit_size: u32) {\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n pub fn to_le_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_le_radix(256, byte_size)\n }\n\n pub fn to_be_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_be_radix(256, byte_size)\n }\n\n pub fn to_le_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_le_radix(radix, result_len)\n }\n\n pub fn to_be_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_be_radix(radix, result_len)\n }\n\n // decompose `_self` into a `_result_len` vector over the `_radix` basis\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let num_bytes = (modulus_num_bits() as u32 + 7) / 8;\n let x_bytes = x.to_le_bytes(num_bytes);\n let y_bytes = y.to_le_bytes(num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i] as u8;\n let y_byte = y_bytes[num_bytes - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\n"},"248":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/storage/map.nr","source":"use crate::{hash::pedersen_hash, traits::ToField};\n\npub fn derive_storage_slot_in_map<K>(storage_slot: Field, key: K) -> Field where K: ToField {\n pedersen_hash([storage_slot, key.to_field()], 0)\n}\n\nmod test {\n use crate::{address::AztecAddress, storage::map::derive_storage_slot_in_map};\n\n #[test]\n fn test_derive_storage_slot_in_map_matches_typescript() {\n let map_slot = 0x132258fb6962c4387ba659d9556521102d227549a386d39f0b22d1890d59c2b5;\n let key = AztecAddress::from_field(0x302dbc2f9b50a73283d5fb2f35bc01eae8935615817a0b4219a057b2ba8a5a3f);\n\n let slot = derive_storage_slot_in_map(map_slot, key);\n\n // The following value was generated by `map_slot.test.ts`\n let slot_from_typescript = 0x2499880e2b1b831785c17286f99a0d5122fee784ce7b1c04e380c4a991da819a;\n\n assert_eq(slot, slot_from_typescript);\n }\n}\n"},"254":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr","source":"use crate::utils::field::field_from_bytes;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic \n// if a value can actually be zero. In a future refactor, we can \n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\ntrait Empty {\n fn empty() -> Self;\n}\n\nimpl Empty for Field { fn empty() -> Self {0} }\n\nimpl Empty for u1 { fn empty() -> Self {0} }\nimpl Empty for u8 { fn empty() -> Self {0} }\nimpl Empty for u32 { fn empty() -> Self {0} }\nimpl Empty for u64 { fn empty() -> Self {0} }\nimpl Empty for U128 { fn empty() -> Self {U128::from_integer(0)} }\n\npub fn is_empty<T>(item: T) -> bool where T: Empty + Eq {\n item.eq(T::empty())\n}\n\npub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool where T: Empty + Eq {\n array.all(|elem| is_empty(elem))\n}\n\ntrait Hash {\n fn hash(self) -> Field;\n}\n\ntrait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u1 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u8 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u32 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u64 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for U128 {\n fn to_field(self) -> Field {\n self.to_integer()\n }\n}\nimpl<let N: u32> ToField for str<N> {\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\ntrait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool { fn from_field(value: Field) -> Self { value as bool } }\nimpl FromField for u1 { fn from_field(value: Field) -> Self { value as u1 } }\nimpl FromField for u8 { fn from_field(value: Field) -> Self { value as u8 } }\nimpl FromField for u32 { fn from_field(value: Field) -> Self { value as u32 } }\nimpl FromField for u64 { fn from_field(value: Field) -> Self { value as u64 } }\nimpl FromField for U128 {\n fn from_field(value: Field) -> Self {\n U128::from_integer(value)\n }\n}\n\n// docs:start:serialize\ntrait Serialize<let N: u32> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let N: u32> Serialize<N> for [Field; N] {\n fn serialize(self) -> [Field; N] {\n self\n }\n}\nimpl<let N: u32> Serialize<N> for str<N> {\n fn serialize(self) -> [Field; N] {\n let mut result = [0; N];\n let bytes: [u8; N] = self.as_bytes();\n for i in 0..N {\n result[i] = field_from_bytes([bytes[i];1], true);\n }\n result\n }\n}\n\n// docs:start:deserialize\ntrait Deserialize<let N: u32> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let N: u32> Deserialize<N> for [Field; N] {\n fn deserialize(fields: [Field; N]) -> Self {\n fields\n }\n}\n"},"255":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr","source":"// Utility function to console.log data in the acir simulator\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n\n/// NOTE: call this with a str<N> msg of form\n/// \"some string with {0} and {1} ... {N}\"\n/// and an array of N field which will be formatted\n/// into the string in the simulator.\n/// Example:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\nunconstrained pub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n/// NOTE: call this with a str<N> msg of length > 1\n/// Example:\n/// `debug_log(\"blah blah this is a debug string\");`\nunconstrained pub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n"},"258":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_data_tree_leaf_preimage.nr","source":"use crate::{merkle_tree::leaf_preimage::IndexedTreeLeafPreimage, traits::{Empty, Hash}};\n\nstruct PublicDataTreeLeafPreimage {\n slot : Field,\n value: Field,\n next_slot :Field,\n next_index : u32,\n}\n\nimpl Empty for PublicDataTreeLeafPreimage {\n fn empty() -> Self {\n Self {\n slot: 0,\n value: 0,\n next_slot: 0,\n next_index: 0,\n }\n }\n}\n\nimpl Hash for PublicDataTreeLeafPreimage {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0\n } else {\n crate::hash::poseidon2_hash([self.slot, self.value, (self.next_index as Field), self.next_slot])\n }\n }\n}\n\nimpl IndexedTreeLeafPreimage for PublicDataTreeLeafPreimage {\n fn get_key(self) -> Field {\n self.slot\n }\n\n fn get_next_key(self) -> Field {\n self.next_slot\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl PublicDataTreeLeafPreimage {\n pub fn is_empty(self) -> bool {\n (self.slot == 0) & (self.value == 0) & (self.next_slot == 0) & (self.next_index == 0)\n }\n}\n"},"260":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr","source":"use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, log_hash::{LogHash, ScopedLogHash, ScopedEncryptedLogHash},\n note_hash::ScopedNoteHash, nullifier::ScopedNullifier\n},\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n MAX_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX\n},\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n recursion::verification_key::VerificationKey, traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc, point::Point\n};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [\n tx_hash,\n note_index_in_tx as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n let inputs = [nonce, note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n // We assume contract address has already been masked\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n accumulate_sha256([log_hash.contract_address.to_field(), log_hash.log_hash.value])\n }\n}\n\npub fn mask_encrypted_log_hash(scoped_log: ScopedEncryptedLogHash) -> AztecAddress {\n if scoped_log.contract_address.is_zero() {\n AztecAddress::from_field(0)\n } else if (scoped_log.log_hash.randomness == 0) {\n scoped_log.contract_address\n } else {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [scoped_log.contract_address.to_field(), scoped_log.log_hash.randomness],\n 0\n )\n )\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk(_vk: VerificationKey) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes = inputs[i].to_be_bytes(32);\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn silo_l2_to_l1_message(msg: ScopedL2ToL1Message, rollup_version_id: Field, chain_id: Field) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes = input[offset].to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\n// NB: this assumes MAX_ENCRYPTED_LOGS_PER_TX == MAX_UNENCRYPTED_LOGS_PER_TX\n// to avoid doubling code, since we can't define the byte len to be 32*N directly.\npub fn compute_tx_logs_hash(logs: [LogHash; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn compute_tx_note_logs_hash(logs: [LogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_NOTE_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_NOTE_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(\n inputs: [Field; N],\n separator: T\n) -> Field where T: ToField {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of N + 1\n let in_len = N + 1;\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\n 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), EthAddress::from_field(3), 5, 2, 4);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3)\n },\n version,\n chainId\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"},"266":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/point.nr","source":"use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{traits::{Empty, Hash, Serialize}, hash::poseidon2_hash};\n\nglobal POINT_LENGTH: Field = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point {\n x: 0,\n y: 0,\n is_infinite: false\n }\n }\n}\n"},"267":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr","source":"use crate::{\n address::{\n aztec_address::AztecAddress, eth_address::EthAddress, partial_address::PartialAddress,\n public_keys_hash::PublicKeysHash\n},\n contract_class_id::ContractClassId,\n constants::{GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA, CONTRACT_INSTANCE_LENGTH},\n traits::{Deserialize, Hash, Serialize}\n};\n\nstruct ContractInstance {\n salt : Field,\n deployer: AztecAddress,\n contract_class_id : ContractClassId,\n initialization_hash : Field,\n public_keys_hash : PublicKeysHash,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys_hash.eq(other.public_keys_hash) &\n self.initialization_hash.eq(other.initialization_hash) &\n self.contract_class_id.eq(other.contract_class_id) &\n self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys_hash.to_field()\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys_hash: PublicKeysHash::from_field(serialized[4]),\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys_hash,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer\n )\n )\n }\n}\n"},"27":{"path":"std/hash/mod.nr","source":"mod poseidon;\nmod mimc;\nmod poseidon2;\nmod keccak;\nmod sha256;\nmod sha512;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::collections::vec::Vec;\nuse crate::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_slice};\nuse crate::meta::derive_via;\n\n// Kept for backwards compatibility\nuse sha256::{digest, sha256, sha256_compression, sha256_var};\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n __pedersen_hash_with_separator(input, separator)\n}\n\nfn pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let value = __pedersen_commitment_with_separator(input, separator);\n if (value[0] == 0) & (value[1] == 0) {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n } else {\n EmbeddedCurvePoint { x: value[0], y: value[1], is_infinite: false }\n }\n}\n\n#[no_predicates]\nfn pedersen_commitment_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n#[no_predicates]\nfn pedersen_hash_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: Vec<EmbeddedCurveScalar> = Vec::from_slice([EmbeddedCurveScalar { lo: 0, hi: 0 }; N].as_slice()); //Vec::new();\n\n for i in 0..N {\n scalars.set(i, from_field_unsafe(input[i]));\n }\n scalars.push(EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field });\n let domain_generators :[EmbeddedCurvePoint; N]= derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n let mut vec_generators = Vec::new();\n for i in 0..N {\n vec_generators.push(domain_generators[i]);\n }\n let length_generator : [EmbeddedCurvePoint; 1] = derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n vec_generators.push(length_generator[0]);\n multi_scalar_mul_slice(vec_generators.slice, scalars.slice)[0]\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n __pedersen_hash_with_separator(input, 0)\n}\n\n#[foreign(pedersen_hash)]\nfn __pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {}\n\n#[foreign(pedersen_commitment)]\nfn __pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\n#[field(bn254)]\nfn derive_generators<let N: u32, let M: u32>(domain_separator_bytes: [u8; M], starting_index: u32) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n // TODO(https://github.com/noir-lang/noir/issues/5672): Add back assert_constant on starting_index\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n // Same as from_field but:\n // does not assert the limbs are 128 bits\n // does not assert the decomposition does not overflow the EmbeddedCurveScalar\n fn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n let (xlo, xhi) = unsafe {\n crate::field::bn254::decompose_hint(scalar)\n };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes(32).as_array();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n// docs:start:keccak256\npub fn keccak256<let N: u32>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{\n crate::hash::keccak::keccak256(input, message_size)\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n// Generic hashing support. \n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\ntrait Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher;\n}\n\n// docs:start:derive_hash\ncomptime fn derive_hash(s: StructDefinition) -> Quoted {\n let name = quote { Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: std::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(s, name, signature, for_each_field, quote {}, |fields| fields)\n}\n// docs:end:derive_hash\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\ntrait Hasher{\n fn finish(self) -> Field;\n \n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\ntrait BuildHasher<H> where H: Hasher{\n fn build_hasher(self) -> H;\n}\n\nstruct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn build_hasher(_self: Self) -> H{\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn default() -> Self{\n BuildHasherDefault{}\n } \n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H) where H: Hasher {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self.lo as Field);\n H::write(state, self.hi as Field);\n }\n}\n\nimpl<T, let N: u32> Hash for [T; N] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B) where A: Hash, B: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1), 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1), EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false\n }\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2), 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2), EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3), 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3), EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4), 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4), EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5), 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5), EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6), 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6), EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7), 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7), EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false\n }\n );\n}\n\n"},"279":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/root.nr","source":"use crate::{hash::merkle_hash, merkle_tree::merkle_tree::MerkleTree};\n\n// Calculate the Merkle tree root from the sibling path and leaf.\n//\n// The leaf is hashed with its sibling, and then the result is hashed\n// with the next sibling etc in the path. The last hash is the root.\n//\n// TODO(David/Someone): The cpp code is using a uint256, whereas its\n// TODO a bit simpler in Noir to just have a bit array.\n// TODO: I'd generally like to avoid u256 for algorithms like \n// this because it means we never even need to consider cases where \n// the index is greater than p.\npub fn root_from_sibling_path<let N: u32>(\n leaf: Field,\n leaf_index: Field,\n sibling_path: [Field; N]\n) -> Field {\n let mut node = leaf;\n let indices = leaf_index.to_le_bits(N);\n\n for i in 0..N {\n let (hash_left, hash_right) = if indices[i] == 1 {\n (sibling_path[i], node)\n } else {\n (node, sibling_path[i])\n };\n node = merkle_hash(hash_left, hash_right);\n }\n node\n}\n\npub fn calculate_subtree_root<let N: u32>(leaves: [Field; N]) -> Field {\n MerkleTree::new(leaves).get_root()\n}\n\n// These values are precomputed and we run tests to ensure that they\n// are correct. The values themselves were computed from the cpp code.\n//\n// Would be good if we could use width since the compute_subtree\n// algorithm uses depth.\npub fn calculate_empty_tree_root(depth: u32) -> Field {\n if depth == 0 {\n 0\n } else if depth == 1 {\n 0x0b63a53787021a4a962a452c2921b3663aff1ffd8d5510540f8e659e782956f1\n } else if depth == 2 {\n 0x0e34ac2c09f45a503d2908bcb12f1cbae5fa4065759c88d501c097506a8b2290\n } else if depth == 3 {\n 0x21f9172d72fdcdafc312eee05cf5092980dda821da5b760a9fb8dbdf607c8a20\n } else if depth == 4 {\n 0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e\n } else if depth == 5 {\n 0x120157cfaaa49ce3da30f8b47879114977c24b266d58b0ac18b325d878aafddf\n } else if depth == 6 {\n 0x01c28fe1059ae0237b72334700697bdf465e03df03986fe05200cadeda66bd76\n } else if depth == 7 {\n 0x2d78ed82f93b61ba718b17c2dfe5b52375b4d37cbbed6f1fc98b47614b0cf21b\n } else if depth == 8 {\n 0x067243231eddf4222f3911defbba7705aff06ed45960b27f6f91319196ef97e1\n } else if depth == 9 {\n 0x1849b85f3c693693e732dfc4577217acc18295193bede09ce8b97ad910310972\n } else if depth == 10 {\n 0x2a775ea761d20435b31fa2c33ff07663e24542ffb9e7b293dfce3042eb104686\n } else {\n assert(false, \"depth should be between 0 and 10\");\n 0\n }\n}\n\n#[test]\nfn test_merkle_root_interop_test() {\n // This is a test to ensure that we match the cpp implementation.\n // You can grep for `TEST_F(root_rollup_tests, noir_interop_test)`\n // to find the test that matches this.\n let root = calculate_subtree_root([1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]);\n assert(0x1a09d935ae110b4c861fcec8f9099ec30b4485022aeb3d3cf9d7168e38fdc231 == root);\n\n let empty_root = calculate_subtree_root([0; 16]);\n assert(0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e == empty_root);\n}\n\n#[test]\nfn test_empty_subroot() {\n assert(calculate_empty_tree_root(0) == 0);\n\n let expected_empty_root_2 = calculate_subtree_root([0; 2]);\n assert(calculate_empty_tree_root(1) == expected_empty_root_2);\n\n let expected_empty_root_4 = calculate_subtree_root([0; 4]);\n assert(calculate_empty_tree_root(2) == expected_empty_root_4);\n\n let expected_empty_root_8 = calculate_subtree_root([0; 8]);\n assert(calculate_empty_tree_root(3) == expected_empty_root_8);\n\n let expected_empty_root_16 = calculate_subtree_root([0; 16]);\n assert(calculate_empty_tree_root(4) == expected_empty_root_16);\n\n let expected_empty_root_32 = calculate_subtree_root([0; 32]);\n assert(calculate_empty_tree_root(5) == expected_empty_root_32);\n\n let expected_empty_root_64 = calculate_subtree_root([0; 64]);\n assert(calculate_empty_tree_root(6) == expected_empty_root_64);\n\n let expected_empty_root_128 = calculate_subtree_root([0; 128]);\n assert(calculate_empty_tree_root(7) == expected_empty_root_128);\n\n let expected_empty_root_256 = calculate_subtree_root([0; 256]);\n assert(calculate_empty_tree_root(8) == expected_empty_root_256);\n\n let expected_empty_root_512 = calculate_subtree_root([0; 512]);\n assert(calculate_empty_tree_root(9) == expected_empty_root_512);\n\n let expected_empty_root_1024 = calculate_subtree_root([0; 1024]);\n assert(calculate_empty_tree_root(10) == expected_empty_root_1024);\n}\n"},"283":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self, mut result: [Field; K]) -> [Field; K] {\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n // TODO(#4394)\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array([0; K]));\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(&mut self, deserialise: fn([Field; K]) -> T, mut result: [T; C]) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"},"304":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr","source":"pub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes = field.to_be_bytes(31);\n for i in 0..31 {\n assert_eq(inputs[i], return_bytes[i]);\n }\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2 = field.to_be_bytes(31);\n\n for i in 0..31 {\n assert_eq(return_bytes2[i], return_bytes[i]);\n }\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes = max_value.to_be_bytes(32);\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n"},"306":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/mod.nr","source":"// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, let N: u32, let M: u32>(src: [T; N], mut dst: [T; M], offset: u32) -> [T; M] {\n let iterator_len = if N > M { M } else { N };\n for i in 0..iterator_len {\n dst[i] = src[i + offset];\n }\n dst\n}\n"},"318":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n crate::address::{eth_address::EthAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n contract_class_id::ContractClassId, hash::poseidon2_hash_with_separator,\n traits::{Empty, FromField, ToField, Serialize, Deserialize}, utils\n};\n\n// Aztec address\nstruct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [pub_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1\n )\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys_hash() {\n let pub_keys_hash = PublicKeysHash::from_field(1);\n let partial_address = PartialAddress::from_field(2);\n\n let address = AztecAddress::compute(pub_keys_hash, partial_address);\n let expected_computed_address_from_partial_and_pubkey = 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"},"32":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\nstruct Poseidon2 {\n cache: [Field;3],\n state: [Field;4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n if message_size == N {\n Poseidon2::hash_internal(input, N, false)\n } else {\n Poseidon2::hash_internal(input, message_size, true)\n }\n }\n\n fn new(iv: Field) -> Poseidon2 {\n let mut result = Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) -> [Field; RATE] {\n // zero-pad the cache\n for i in 0..RATE {\n if i >= self.cache_size {\n self.cache[i] = 0;\n }\n }\n // add the cache into sponge state\n for i in 0..RATE {\n self.state[i] += self.cache[i];\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n // return `RATE` number of field elements from the sponge state.\n let mut result = [0; RATE];\n for i in 0..RATE {\n result[i] = self.state[i];\n }\n result\n }\n\n fn absorb(&mut self, input: Field) {\n if (!self.squeeze_mode) & (self.cache_size == RATE) {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n let _ = self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else if (!self.squeeze_mode) & (self.cache_size != RATE) {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n } else if self.squeeze_mode {\n // If we're in squeeze mode, switch to absorb mode and add the input into the cache.\n // N.B. I don't think this code path can be reached?!\n self.cache[0] = input;\n self.cache_size = 1;\n self.squeeze_mode = false;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n if self.squeeze_mode & (self.cache_size == 0) {\n // If we're in squeze mode and the cache is empty, there is nothing left to squeeze out of the sponge!\n // Switch to absorb mode.\n self.squeeze_mode = false;\n self.cache_size = 0;\n }\n if !self.squeeze_mode {\n // If we're in absorb mode, apply sponge permutation to compress the cache, populate cache with compressed\n // state and switch to squeeze mode. Note: this code block will execute if the previous `if` condition was\n // matched\n let new_output_elements = self.perform_duplex();\n self.squeeze_mode = true;\n for i in 0..RATE {\n self.cache[i] = new_output_elements[i];\n }\n self.cache_size = RATE;\n }\n // By this point, we should have a non-empty cache. Pop one item off the top of the cache and return it.\n let result = self.cache[0];\n for i in 1..RATE {\n if i < self.cache_size {\n self.cache[i - 1] = self.cache[i];\n }\n }\n self.cache_size -= 1;\n self.cache[self.cache_size] = 0;\n result\n }\n\n fn hash_internal<let N: u32>(input: [Field; N], in_len: u32, is_variable_length: bool) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\nstruct Poseidon2Hasher{\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv : Field = (self._state.len() as Field)*18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field){\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher {\n _state: &[],\n }\n }\n}\n"},"320":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{\n eth_address::EthAddress, salted_initialization_hash::SaltedInitializationHash,\n aztec_address::AztecAddress\n},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator, traits::{ToField, FromField, Serialize, Deserialize}\n};\n\nglobal PARTIAL_ADDRESS_LENGTH = 1;\n\n// Partial address\nstruct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer)\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash\n ) -> Self {\n PartialAddress::from_field(\n poseidon2_hash_with_separator(\n [\n contract_class_id.to_field(),\n salted_initialization_hash.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"321":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::{eth_address::EthAddress, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, hash::poseidon2_hash_with_separator, traits::ToField\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\nstruct SaltedInitializationHash {\n inner: Field\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(\n poseidon2_hash_with_separator(\n [\n salt,\n initialization_hash,\n deployer.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"379":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_k_account_contract/src/main.nr","source":"// Account contract that uses ECDSA signatures for authentication on the same curve as Ethereum.\n// The signing key is stored in an immutable private note and should be different from the signing key.\ncontract EcdsaKAccount {\n use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, NoteGetterOptions, PrivateContext, PrivateImmutable};\n use dep::aztec::{\n encrypted_logs::encrypted_note_emission::encode_and_encrypt_note_with_keys,\n keys::getters::get_current_public_keys\n };\n\n use dep::aztec::protocol_types::abis::call_context::CallContext;\n use dep::std;\n\n use dep::authwit::{\n entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions,\n auth_witness::get_auth_witness\n };\n\n use dep::ecdsa_public_key_note::EcdsaPublicKeyNote;\n\n #[aztec(storage)]\n struct Storage {\n public_key: PrivateImmutable<EcdsaPublicKeyNote>,\n }\n\n // Creates a new account out of an ECDSA public key to use for signature verification\n #[aztec(private)]\n #[aztec(initializer)]\n fn constructor(signing_pub_key_x: [u8; 32], signing_pub_key_y: [u8; 32]) {\n let this = context.this_address();\n let this_keys = get_current_public_keys(&mut context, this);\n // Not emitting outgoing for msg_sender here to not have to register keys for the contract through which we\n // deploy this (typically MultiCallEntrypoint). I think it's ok here as I feel the outgoing here is not that\n // important.\n\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this_keys.npk_m.hash());\n storage.public_key.initialize(&mut pub_key_note).emit(encode_and_encrypt_note_with_keys(&mut context, this_keys.ovpk_m, this_keys.ivpk_m, this));\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update default_entrypoint.ts\n #[aztec(private)]\n fn entrypoint(app_payload: AppPayload, fee_payload: FeePayload) {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.entrypoint(app_payload, fee_payload);\n }\n\n #[aztec(private)]\n #[aztec(noinitcheck)]\n #[aztec(view)]\n fn verify_private_authwit(inner_hash: Field) -> Field {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.verify_private_authwit(inner_hash)\n }\n\n #[contract_library_method]\n fn is_valid_impl(context: &mut PrivateContext, outer_hash: Field) -> bool {\n // Load public key from storage\n let storage = Storage::init(context);\n let public_key = storage.public_key.get_note();\n\n // Load auth witness\n let witness: [Field; 64] = get_auth_witness(outer_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify payload signature using Ethereum's signing scheme\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\n let outer_hash_bytes: [u8; 32] = outer_hash.to_be_bytes(32).as_array();\n let hashed_message: [u8; 32] = std::hash::sha256(outer_hash_bytes);\n let verification = std::ecdsa_secp256k1::verify_signature(public_key.x, public_key.y, signature, hashed_message);\n assert(verification == true);\n\n true\n }\n}\n"},"380":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_public_key_note/src/lib.nr","source":"use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, NoteInterface, NoteGetterOptions, PrivateContext};\n\nuse dep::aztec::{\n note::utils::compute_note_hash_for_nullify, keys::getters::get_nsk_app,\n protocol_types::{constants::GENERATOR_INDEX__NOTE_NULLIFIER, hash::poseidon2_hash_with_separator}\n};\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: Field = 5;\n// ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 32(storage_slot as bytes) + 32(note_type_id as bytes)\nglobal ECDSA_PUBLIC_KEY_NOTE_BYTES_LEN: Field = 5 * 32 + 64;\n\n// Stores an ECDSA public key composed of two 32-byte elements\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\n#[aztec(note)]\nstruct EcdsaPublicKeyNote {\n x: [u8; 32],\n y: [u8; 32],\n // We store the npk_m_hash only to get the secret key to compute the nullifier\n npk_m_hash: Field,\n}\n\nimpl NoteInterface<ECDSA_PUBLIC_KEY_NOTE_LEN, ECDSA_PUBLIC_KEY_NOTE_BYTES_LEN> for EcdsaPublicKeyNote {\n // Cannot use the automatic serialization since x and y don't fit. Serialize the note as 5 fields where:\n // [0] = x[0..31] (upper bound excluded)\n // [1] = x[31]\n // [2] = y[0..31]\n // [3] = y[31]\n // [4] = npk_m_hash\n fn serialize_content(self) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n\n for i in 1..32 {\n let byte_x: Field = self.x[31 - i] as Field;\n x = x + (byte_x * mul);\n let byte_y: Field = self.y[31 - i] as Field;\n y = y + (byte_y * mul);\n mul *= 256;\n }\n\n let last_x = self.x[31] as Field;\n let last_y = self.y[31] as Field;\n \n [x, last_x, y, last_y, self.npk_m_hash]\n }\n\n // Cannot use the automatic deserialization for the aforementioned reasons\n fn deserialize_content(serialized_note: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> EcdsaPublicKeyNote {\n let mut x: [u8; 32] = [0; 32];\n let mut y: [u8; 32] = [0; 32];\n\n let part_x = serialized_note[0].to_be_bytes(32);\n for i in 0..31 {\n x[i] = part_x[i + 1];\n }\n x[31] = serialized_note[1].to_be_bytes(32)[31];\n\n let part_y = serialized_note[2].to_be_bytes(32);\n for i in 0..31 {\n y[i] = part_y[i + 1];\n }\n y[31] = serialized_note[3].to_be_bytes(32)[31];\n\n EcdsaPublicKeyNote { x, y, npk_m_hash: serialized_note[4], header: NoteHeader::empty() }\n }\n\n fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullify: Field) -> Field {\n let secret = context.request_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator([\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n )\n }\n\n fn compute_nullifier_without_context(self) -> Field {\n let note_hash_for_nullify = compute_note_hash_for_nullify(self);\n let secret = get_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator([\n note_hash_for_nullify,\n secret,\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n )\n }\n}\n\nimpl EcdsaPublicKeyNote {\n pub fn new(x: [u8; 32], y: [u8; 32], npk_m_hash: Field) -> Self {\n EcdsaPublicKeyNote { x, y, npk_m_hash, header: NoteHeader::empty() }\n }\n}\n"},"5":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\nstruct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::mem::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Get an element from the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Get an element from the vector at the given index.\n /// Responds with undefined data for `index` where `self.len < index < self.max_len()`.\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Write an element to the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Write an element to the vector at the given index.\n /// Does not check whether the passed `index` is a valid index within the vector.\n ///\n /// Silently writes past the end of the vector for `index` where `self.len < index < self.max_len()`\n /// Panics if the given index points beyond the maximum length of the vector (`self.max_len()`).\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n pub fn len(self) -> u32 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n // This is a intermediate method, while we don't have an\n // .extend method\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n self.len = new_len;\n }\n\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::mem::zeroed();\n elem\n }\n\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n ret\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen> where T: Eq {\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n \n (self.len == other.len) & (self.storage == other.storage)\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.storage()[2], 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n assert_eq(bounded_vec.storage()[2], 3);\n }\n\n #[test(should_fail_with=\"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n}\n"},"53":{"path":"std/option.nr","source":"use crate::hash::{Hash, Hasher};\nuse crate::cmp::{Ordering, Ord, Eq};\nuse crate::default::Default;\n\nstruct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::mem::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some { self._value } else { default }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n fn expect<let N: u32, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some { self } else { other }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<U, Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some { self } else { default() }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some { Option::none() } else { self }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T> where T: Eq {\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T> where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T> where T: Ord {\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else {\n if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n }\n}\n"},"67":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth_witness.nr","source":"#[oracle(getAuthWitness)]\nunconstrained fn get_auth_witness_oracle<let N: u32>(_message_hash: Field) -> [Field; N] {}\n\n/**\n * Oracle wrapper to fetch an `auth_witness` for a given `message_hash` from the PXE.\n * \n * @param message_hash The hash of the message for which the `auth_witness` is to be fetched.\n * @return The `auth_witness` for the given `message_hash` as Field array.\n */\nunconstrained pub fn get_auth_witness<let N: u32>(message_hash: Field) -> [Field; N] {\n get_auth_witness_oracle(message_hash)\n}\n"},"68":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth.nr","source":"use dep::aztec::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::{\n GENERATOR_INDEX__AUTHWIT_INNER, GENERATOR_INDEX__AUTHWIT_OUTER, GENERATOR_INDEX__AUTHWIT_NULLIFIER,\n CANONICAL_AUTH_REGISTRY_ADDRESS\n},\n hash::poseidon2_hash_with_separator\n};\nuse dep::aztec::{prelude::Deserialize, context::{PrivateContext, PublicContext, gas::GasOpts}, hash::hash_args_array};\n\n/**\n * Authenticaion witness helper library\n *\n * Authentication Witness is a scheme for authenticating actions on Aztec, so users can allow third-parties \n * (e.g. protocols or other users) to execute an action on their behalf.\n * \n * This library provides helper functions to manage such witnesses.\n * The authentication witness, is some \"witness\" (data) that authenticates a `message_hash`.\n * The simplest example of an authentication witness, is a signature. The signature is the \"evidence\",\n * that the signer has seen the message, agrees with it, and has allowed it.\n * It does not need to be a signature. It could be any kind of \"proof\" that the message is allowed.\n * Another proof could be knowing some kind of secret, or having some kind of \"token\" that allows the message.\n *\n * The `message_hash` is a hash of the following structure:\n * hash(consumer, chain_id, version, inner_hash)\n * - consumer: the address of the contract that is \"consuming\" the message,\n * - chain_id: the chain id of the chain that the message is being consumed on,\n * - version: the version of the chain that the message is being consumed on,\n * - inner_hash: the hash of the \"inner\" message that is being consumed, this is the \"actual\" message or action.\n *\n * While the `inner_hash` could be anything, such as showing you signed a specific message, it will often be \n * a hash of the \"action\" to approve, along with who made the call. As part of this library, we provide a few \n * helper functions to deal with such messages.\n *\n * For example, we provide helper function that is used for checking that the message is an encoding of the current call.\n * This can be used to let some contract \"allow\" another contract to act on its behalf, as long as it can \n * show that it is acting on behalf of the contract.\n *\n * If we take a case of allowing a contract to transfer tokens on behalf of an account, the `inner_hash` can be \n * derived as:\n * inner_hash = hash(caller, \"transfer\", hash(to, amount))\n * \n * Where the `caller` would be the address of the contract that is trying to transfer the tokens, and `to` and `amount`\n * the arguments for the transfer. \n * \n * Note that we have both a `caller` and a `consumer`, the `consumer` will be the contract that is consuming the message,\n * in the case of the transfer, it would be the `Token` contract itself, while the caller, will be the actor that is \n * allowed to transfer the tokens.\n *\n *\n * The authentication mechanism works differently in public and private contexts. In private, we recall that everything\n * is executed on the user's device, so we can use `oracles` to \"ask\" the user (not contract) for information. In public\n * we cannot do this, since it is executed by the sequencer (someone else). Therefore we can instead use a \"registry\"\n * to store the messages that we have approved.\n * \n * A simple example would be a \"token\" that is being \"pulled\" from one account into another. We will first outline \n * how this would look in private, and then in public later. \n *\n * Say that a user `Alice` wants to deposit some tokens into a DeFi protocol (say a DEX). \n * `Alice` would make a `deposit` transaction, that she is executing using her account contract. \n * The account would call the `DeFi` contract to execute `deposit`, which would try to pull funds from the `Token` \n * contract. Since the `DeFi` contract is trying to pull funds from an account that is not its own, it needs to \n * convince the `Token` contract that it is allowed to do so. \n * \n * This is where the authentication witness comes in The `Token` contract computes a `message_hash` from the \n * `transfer` call, and then asks `Alice Account` contract to verify that the `DeFi` contract is allowed to \n * execute that call.\n * \n * `Alice Account` contract can then ask `Alice` if she wants to allow the `DeFi` contract to pull funds from her \n * account. If she does, she will sign the `message_hash` and return the signature to the `Alice Account` which\n * will validate it and return success to the `Token` contract which will then allow the `DeFi` contract to pull\n * funds from `Alice`.\n * \n * To ensure that the same \"approval\" cannot be used multiple times, we also compute a `nullifier` for the\n * authentication witness, and emit it from the `Token` contract (consumer).\n * \n * Note that we can do this flow as we are in private were we can do oracle calls out from contracts. \n * \n *\n * Person Contract Contract Contract\n * Alice Alice Account Token DeFi\n * | | | |\n * | Defi.deposit(Token, 1000) | |\n * |----------------->| | |\n * | | deposit(Token, 1000) |\n * | |---------------------------------------->|\n * | | | |\n * | | | transfer(Alice, Defi, 1000)\n * | | |<---------------------|\n * | | | |\n * | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | |<-----------------| |\n * | | | |\n * | Please give me AuthWit for DeFi | |\n * | calling transfer(Alice, Defi, 1000) | |\n * |<-----------------| | |\n * | | | |\n * | | | |\n * | AuthWit for transfer(Alice, Defi, 1000) |\n * |----------------->| | |\n * | | AuthWit validity | |\n * | |----------------->| |\n * | | | |\n * | | throw if invalid AuthWit |\n * | | | |\n * | | emit AuthWit nullifier |\n * | | | |\n * | | transfer(Alice, Defi, 1000) |\n * | | | |\n * | | | |\n * | | | success |\n * | | |--------------------->|\n * | | | |\n * | | | |\n * | | | deposit(Token, 1000)\n * | | | |\n * | | | |\n *\n * \n * If we instead were in public, we cannot do the same flow. Instead we would use an authentication registry to store \n * the messages that we have approved. \n * \n * To approve a message, `Alice Account` can make a `set_authorized` call to the registry, to set a `message_hash`\n * as authorized. This is essentially a mapping from `message_hash` to `true` for `Alice Contract`. Every account\n * has its own map in the registry, so `Alice` cannot approve a message for `Bob`.\n *\n * The `Token` contract can then try to \"spend\" the approval by calling `consume` on the registry. If the message\n * was approved, the value is updated to `false`, and we return the success flag. For more information on the\n * registry, see `main.nr` in `auth_registry_contract`.\n *\n * Person Contract Contract Contract Contract\n * Alice Alice Account Registry Token DeFi\n * | | | | |\n * | Registry.set_authorized(..., true) | | |\n * |----------------->| | | |\n * | | set_authorized(..., true) | |\n * | |------------------->| | |\n * | | | | |\n * | | set authorized to true | |\n * | | | | |\n * | | | | |\n * | Defi.deposit(Token, 1000) | | |\n * |----------------->| | | |\n * | | deposit(Token, 1000) | |\n * | |-------------------------------------------------------------->|\n * | | | | |\n * | | | transfer(Alice, Defi, 1000) |\n * | | | |<---------------------|\n * | | | | |\n * | | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | | |<------------------| |\n * | | | | |\n * | | throw if invalid AuthWit | |\n * | | | | |\n * | | | | |\n * | | set authorized to false | |\n * | | | | |\n * | | | | |\n * | | | AuthWit validity | |\n * | | |------------------>| |\n * | | | | |\n * | | | | transfer(Alice, Defi, 1000)\n * | | | |<-------------------->|\n * | | | | |\n * | | | | success |\n * | | | |--------------------->|\n * | | | | |\n * | | | | deposit(Token, 1000)\n * | | | | |\n *\n *\n * --- FAQ ---\n * Q: Why are we using a success flag of `keccak256(\"IS_VALID()\")` instead of just returning a boolean?\n * A: We want to make sure that we don't accidentally return `true` if there is a collision in the function selector.\n * By returning a hash of `IS_VALID()`, it becomes very unlikely that there is both a colission and we return \n * a success flag.\n * \n * Q: Why are we using static calls?\n * A: We are using static calls to ensure that the account contract cannot re-enter. If it was a normal call, it\n * could make a new call and do a re-entry attack. Using a static ensures that it cannot update any state.\n *\n * Q: Would it not be cheaper to use a nullifier instead of updating state in public?\n * A: At a quick glance, a public state update + nullifier is 96 bytes, but two state updates are 128, so it would be \n * cheaper to use a nullifier, if this is the way it would always be done. However, if both the approval and the \n * consumption is done in the same transaction, then we will be able to squash the updates (only final tx state diff is posted to DA), and now it is cheaper.\n * \n * Q: Why is the chain id and the version part of the message hash?\n * A: The chain id and the version is part of the message hash to ensure that the message is only valid on a specific\n * chain to avoid a case where the same message could be used across multiple chains. \n */\n\nglobal IS_VALID_SELECTOR = 0xabf64ad4; // 4 first bytes of keccak256(\"IS_VALID()\")\n\n/** \n * Assert that `on_behalf_of` have authorized the current call with a valid authentication witness\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n * \n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit\npub fn assert_current_call_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash([context.msg_sender().to_field(), context.selector().to_field(), context.args_hash]);\n assert_inner_hash_valid_authwit(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit\n\n/** \n * Assert that a specific `inner_hash` is valid for the `on_behalf_of` address\n * \n * Used as an internal function for `assert_current_call_valid_authwit` and can be used as a standalone function when\n * the `inner_hash` is from a different source, e.g., say a block of text etc.\n * \n * @param on_behalf_of The address that have authorized the current call\n * @param inner_hash The hash of the message to authorize \n */\npub fn assert_inner_hash_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n // We perform a static call here and not a standard one to ensure that the account contract cannot re-enter.\n let result: Field = context.static_call_private_function(\n on_behalf_of,\n FunctionSelector::from_signature(\"verify_private_authwit(Field)\"),\n [inner_hash]\n ).unpack_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n // Compute the nullifier, similar computation to the outer hash, but without the chain_id and version.\n // Those should already be handled in the verification, so we just need something to nullify, that allow same inner_hash for multiple actors.\n let nullifier = compute_authwit_nullifier(on_behalf_of, inner_hash);\n context.push_nullifier(nullifier);\n}\n\n/** \n * Assert that `on_behalf_of` have authorized the current call in the authentication registry\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n * \n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n * \n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit_public\npub fn assert_current_call_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash(\n [(*context).msg_sender().to_field(), (*context).selector().to_field(), (*context).get_args_hash()]\n );\n assert_inner_hash_valid_authwit_public(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit_public\n\n/** \n * Assert that `on_behalf_of` have authorized a speicifc `inner_hash` in the authentication registry\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n * \n * @param on_behalf_of The address that have authorized the `inner_hash`\n */\npub fn assert_inner_hash_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n let result: Field = context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"consume((Field),Field)\"),\n [on_behalf_of.to_field(), inner_hash].as_slice(),\n GasOpts::default()\n ).deserialize_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n}\n\n/**\n * Compute the `message_hash` from a function call to be used by an authentication witness \n * \n * Useful for when you need a non-account contract to approve during execution. For example if you need a contract\n * to make a call to nested contract, e.g., contract A wants to exit token T to L1 using bridge B, so it needs to allow\n * B to transfer T on its behalf.\n * \n * @param caller The address of the contract that is calling the function, in the example above, this would be B\n * @param consumer The address of the contract that is consuming the message, in the example above, this would be T\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param selector The function selector of the function that is being called\n * @param args The arguments of the function that is being called\n */\n// docs:start:compute_authwit_message_hash_from_call\npub fn compute_authwit_message_hash_from_call<let N: u32>(\n caller: AztecAddress,\n consumer: AztecAddress,\n chain_id: Field,\n version: Field,\n selector: FunctionSelector,\n args: [Field; N]\n) -> Field {\n let args_hash = hash_args_array(args);\n let inner_hash = compute_inner_authwit_hash([caller.to_field(), selector.to_field(), args_hash]);\n compute_authwit_message_hash(consumer, chain_id, version, inner_hash)\n}\n// docs:end:compute_authwit_message_hash_from_call\n\n/**\n * Computes the `inner_hash` of the authentication witness\n * \n * This is used internally, but also useful in cases where you want to compute the `inner_hash` for a specific message\n * that is not necessarily a call, but just some \"bytes\" or text.\n * \n * @param args The arguments to hash\n */\npub fn compute_inner_authwit_hash<let N: u32>(args: [Field; N]) -> Field {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__AUTHWIT_INNER)\n}\n\n/** \n * Computs the `authwit_nullifier` for a specific `on_behalf_of` and `inner_hash`\n * \n * Using the `on_behalf_of` and the `inner_hash` to ensure that the nullifier is siloed for a specific `on_behalf_of`.\n * \n * @param on_behalf_of The address that have authorized the `inner_hash`\n * @param inner_hash The hash of the message to authorize\n */\npub fn compute_authwit_nullifier(on_behalf_of: AztecAddress, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [on_behalf_of.to_field(), inner_hash],\n GENERATOR_INDEX__AUTHWIT_NULLIFIER\n )\n}\n\n/**\n * Computes the `message_hash` for the authentication witness\n * \n * @param consumer The address of the contract that is consuming the message\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param inner_hash The hash of the \"inner\" message that is being consumed\n */\npub fn compute_authwit_message_hash(consumer: AztecAddress, chain_id: Field, version: Field, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n consumer.to_field(),\n chain_id,\n version,\n inner_hash\n ],\n GENERATOR_INDEX__AUTHWIT_OUTER\n )\n}\n\n/**\n * Helper function to set the authorization status of a message hash\n * \n * Wraps a public call to the authentication registry to set the authorization status of a `message_hash`\n * \n * @param message_hash The hash of the message to authorize\n * @param authorize True if the message should be authorized, false if it should be revoked\n */\npub fn set_authorized(context: &mut PublicContext, message_hash: Field, authorize: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"set_authorized(Field,bool)\"),\n [message_hash, authorize as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n\n/**\n * Helper function to reject all authwits\n * \n * Wraps a public call to the authentication registry to set the `reject_all` flag\n *\n * @param reject True if all authwits should be rejected, false otherwise \n */\npub fn set_reject_all(context: &mut PublicContext, reject: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"set_reject_all(bool)\"),\n [context.this_address().to_field(), reject as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n"},"69":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/account.nr","source":"use dep::aztec::{\n context::PrivateContext, protocol_types::constants::GENERATOR_INDEX__COMBINED_PAYLOAD,\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::entrypoint::{app::AppPayload, fee::FeePayload};\nuse crate::auth::{IS_VALID_SELECTOR, compute_authwit_message_hash};\n\nstruct AccountActions<Context> {\n context: Context,\n is_valid_impl: fn(&mut PrivateContext, Field) -> bool,\n}\n\nimpl<Context> AccountActions<Context> {\n pub fn init(context: Context, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions { context, is_valid_impl }\n }\n}\n\n/**\n * An implementation of the Account Action struct for the private context.\n *\n * Implements logic to verify authorization and execute payloads.\n */\nimpl AccountActions<&mut PrivateContext> {\n\n /**\n * Verifies that the `app_hash` and `fee_hash` are authorized and then executes them.\n *\n * Executes the `fee_payload` and `app_payload` in sequence.\n * Will execute the `fee_payload` as part of the setup, and then enter the app phase.\n *\n * @param app_payload The payload that contains the calls to be executed in the app phase.\n * @param fee_payload The payload that contains the calls to be executed in the setup phase.\n */\n // docs:start:entrypoint\n pub fn entrypoint(self, app_payload: AppPayload, fee_payload: FeePayload) {\n let valid_fn = self.is_valid_impl;\n\n let combined_payload_hash = poseidon2_hash_with_separator(\n [app_payload.hash(), fee_payload.hash()],\n GENERATOR_INDEX__COMBINED_PAYLOAD\n );\n assert(valid_fn(self.context, combined_payload_hash));\n\n fee_payload.execute_calls(self.context);\n self.context.end_setup();\n app_payload.execute_calls(self.context);\n }\n // docs:end:entrypoint\n\n /**\n * Verifies that the `msg_sender` is authorized to consume `inner_hash` by the account.\n *\n * Computes the `message_hash` using the `msg_sender`, `chain_id`, `version` and `inner_hash`.\n * Then executes the `is_valid_impl` function to verify that the message is authorized.\n *\n * Will revert if the message is not authorized.\n *\n * @param inner_hash The hash of the message that the `msg_sender` is trying to consume.\n */\n // docs:start:verify_private_authwit\n pub fn verify_private_authwit(self, inner_hash: Field) -> Field {\n // The `inner_hash` is \"siloed\" with the `msg_sender` to ensure that only it can\n // consume the message.\n // This ensures that contracts cannot consume messages that are not intended for them.\n let message_hash = compute_authwit_message_hash(\n self.context.msg_sender(),\n self.context.chain_id(),\n self.context.version(),\n inner_hash\n );\n let valid_fn = self.is_valid_impl;\n assert(valid_fn(self.context, message_hash) == true, \"Message not authorized by account\");\n IS_VALID_SELECTOR\n }\n // docs:end:verify_private_authwit\n}\n"},"70":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\n\nuse crate::entrypoint::function_call::{FunctionCall, FUNCTION_CALL_SIZE_IN_BYTES};\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u64 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u64 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u64 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\nstruct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:app-payload-struct\n\nimpl Serialize<APP_PAYLOAD_SIZE> for AppPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; APP_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, APP_PAYLOAD_SIZE> = BoundedVec::new();\n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"},"72":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/fee.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__FEE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\nuse crate::entrypoint::function_call::FunctionCall;\n\n// 2 * 5 (FUNCTION_CALL_SIZE) + 2\nglobal FEE_PAYLOAD_SIZE: Field = 12;\n\n// 2 * 98 (FUNCTION_CALL_SIZE_IN_BYTES) + 32\nglobal FEE_PAYLOAD_SIZE_IN_BYTES: Field = 228;\n\nglobal MAX_FEE_FUNCTION_CALLS = 2;\n\n// docs:start:fee-payload-struct\nstruct FeePayload {\n function_calls: [FunctionCall; MAX_FEE_FUNCTION_CALLS],\n nonce: Field,\n is_fee_payer: bool,\n}\n// docs:end:fee-payload-struct\n\nimpl Serialize<FEE_PAYLOAD_SIZE> for FeePayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; FEE_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, FEE_PAYLOAD_SIZE> = BoundedVec::new();\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n fields.extend_from_array(self.function_calls[i].serialize());\n }\n fields.push(self.nonce);\n fields.push(self.is_fee_payer as Field);\n fields.storage\n }\n}\n\nimpl Hash for FeePayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__FEE_PAYLOAD\n )\n }\n}\n\nimpl FeePayload {\n fn to_be_bytes(self) -> [u8; FEE_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, FEE_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n bytes.push(self.is_fee_payer as u8);\n\n bytes.storage\n }\n\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n if self.is_fee_payer {\n context.set_as_fee_payer();\n }\n }\n}\n"},"78":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/point_to_symmetric_key.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__SYMMETRIC_KEY, scalar::Scalar, point::Point, utils::arr_copy_slice};\nuse crate::utils::point::point_to_bytes;\nuse std::{hash::sha256, embedded_curve_ops::multi_scalar_mul};\n\n// TODO(#5726): This function is called deriveAESSecret in TS. I don't like point_to_symmetric_key name much since\n// point is not the only input of the function. Unify naming with TS once we have a better name.\npub fn point_to_symmetric_key(secret: Scalar, point: Point) -> [u8; 32] {\n let shared_secret: Point = multi_scalar_mul([point], [secret]);\n let shared_secret = point_to_bytes(shared_secret);\n let mut shared_secret_bytes_with_separator = [0 as u8; 33];\n shared_secret_bytes_with_separator = arr_copy_slice(shared_secret, shared_secret_bytes_with_separator, 0);\n shared_secret_bytes_with_separator[32] = GENERATOR_INDEX__SYMMETRIC_KEY;\n sha256(shared_secret_bytes_with_separator)\n}\n\n#[test]\nfn test_point_to_symmetric_key_matches_noir() {\n // Value taken from \"derive shared secret\" test in encrypt_buffer.test.ts\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let key = point_to_symmetric_key(secret, point);\n\n // The following value was generated by `encrypt_buffer.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let key_from_typescript = [\n 251, 232, 177, 34, 2, 174, 35, 92, 165, 118, 168, 3, 153, 140, 46, 210, 203, 154, 184, 158, 236, 33, 95, 77, 93, 120, 72, 88, 190, 209, 64, 159\n ];\n assert_eq(key, key_from_typescript);\n}\n"},"79":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/stored_keys.nr","source":"use crate::keys::public_keys::{PublicKeys, PUBLIC_KEYS_LENGTH};\nuse dep::protocol_types::traits::{Serialize, Deserialize};\n\n// This struct represents how public keys are stored in the key registry. We store not just the keys themselves but also\n// their hash, so that when reading in private we can perform a historical read for the hash and then show that it\n// corresponds to a preimage obtained from an unconstrained hint. We do store the keys keys regardless as they might be\n// needed during public execution, and since we need to broadcast and produce hints in some standardized way.\n// While it might seem odd to create a struct for what is effectively some data and a pure function called on it, state\n// variables rely on serializable structs in order to persist data to storage, so we must use this abstraction.\nstruct StoredKeys {\n public_keys: PublicKeys,\n hash: Field,\n}\n\nimpl StoredKeys {\n // Instances of StoredKeys are expected to only be created by calling this function so that we guarantee that the\n // hash field does indeed correspond to the hash of the keys. Ideally we'd forbid direct access to the struct, but \n // Noir doesn't yet support private members.\n fn new(public_keys: PublicKeys) -> Self {\n Self { public_keys, hash: public_keys.hash().inner }\n }\n}\n\n// Our serialization is the concatenation of the public keys serialization plush the hash, so we need one extra field.\nglobal STORED_KEYS_LENGTH: u32 = PUBLIC_KEYS_LENGTH + 1;\n\nimpl Serialize<STORED_KEYS_LENGTH> for StoredKeys {\n fn serialize(self) -> [Field; STORED_KEYS_LENGTH] {\n // The code below is equivalent to:\n // [ ...self.public_keys.serialize(), self.hash ]\n\n let mut array = [0; STORED_KEYS_LENGTH];\n\n let serialized_keys = self.public_keys.serialize();\n for i in 0..serialized_keys.len() {\n array[i] = serialized_keys[i];\n }\n\n array[PUBLIC_KEYS_LENGTH] = self.hash;\n\n array\n }\n}\n\nimpl Deserialize<STORED_KEYS_LENGTH> for StoredKeys {\n fn deserialize(array: [Field; STORED_KEYS_LENGTH]) -> Self {\n // The code below is equivalent to:\n // Self { public_keys: PublicKeys::deserialize(array[0 : PUBLIC_KEYS_LENGTH]), hash: array[PUBLIC_KEYS_LENGTH] }\n\n let mut serialized_keys = [0; PUBLIC_KEYS_LENGTH];\n for i in 0..serialized_keys.len() {\n serialized_keys[i] = array[i];\n }\n\n let hash = array[PUBLIC_KEYS_LENGTH];\n\n Self { public_keys: PublicKeys::deserialize(serialized_keys), hash }\n }\n}\n"},"80":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/public_keys.nr","source":"use dep::protocol_types::{\n address::PublicKeysHash, constants::GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n hash::poseidon2_hash_with_separator, point::{Point, POINT_LENGTH},\n traits::{Deserialize, Serialize, Empty, is_empty, Hash}\n};\nuse crate::keys::constants::{NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX};\n\nglobal PUBLIC_KEYS_LENGTH: u32 = 12;\n\nstruct PublicKeys {\n npk_m: NpkM,\n ivpk_m: IvpkM,\n ovpk_m: OvpkM,\n tpk_m: TpkM,\n}\n\ntrait ToPoint {\n fn to_point(self) -> Point;\n}\n\nstruct NpkM {\n inner: Point\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nstruct IvpkM {\n inner: Point\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nstruct OvpkM {\n inner: Point\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nstruct TpkM {\n inner: Point\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Empty for PublicKeys {\n fn empty() -> Self {\n PublicKeys {\n npk_m : NpkM { inner: Point::empty() },\n ivpk_m : IvpkM { inner: Point::empty() },\n ovpk_m : OvpkM { inner: Point::empty() },\n tpk_m : TpkM { inner: Point::empty() }\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n ( self.npk_m.inner == other.npk_m.inner ) &\n ( self.ivpk_m.inner == other.ivpk_m.inner ) &\n ( self.ovpk_m.inner == other.ovpk_m.inner ) &\n ( self.tpk_m.inner == other.tpk_m.inner )\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(\n if is_empty(self) {\n 0\n } else {\n poseidon2_hash_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field)\n }\n )\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM { inner: Point { x:serialized[0], y:serialized[1], is_infinite: serialized[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x:serialized[3], y: serialized[4], is_infinite: serialized[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x:serialized[6], y: serialized[7], is_infinite: serialized[8] as bool } },\n tpk_m: TpkM { inner: Point { x:serialized[9], y: serialized[10], is_infinite: serialized[11] as bool } }\n }\n }\n}\n\n#[test]\nfn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash = 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nfn compute_empty_hash() {\n let keys = PublicKeys::empty();\n\n let actual = keys.hash();\n let test_data_empty_hash = 0x0000000000000000000000000000000000000000000000000000000000000000;\n\n assert(actual.to_field() == test_data_empty_hash);\n}\n\n#[test]\nfn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"},"82":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/getters/mod.nr","source":"use dep::protocol_types::{\n header::Header, abis::validation_requests::KeyValidationRequest, address::AztecAddress,\n constants::CANONICAL_KEY_REGISTRY_ADDRESS, point::Point, storage::map::derive_storage_slot_in_map,\n traits::is_empty\n};\nuse crate::{\n context::{PrivateContext, UnconstrainedContext},\n oracle::{keys::get_public_keys_and_partial_address, key_validation_request::get_key_validation_request},\n keys::{\n public_keys::{PublicKeys, PUBLIC_KEYS_LENGTH}, stored_keys::StoredKeys,\n constants::{NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX, TAGGING_INDEX}\n},\n state_vars::{\n shared_mutable::shared_mutable_private_getter::SharedMutablePrivateGetter,\n public_mutable::PublicMutable, map::Map\n}\n};\n\nmod test;\n\n// This is the number of blocks that must pass after a key rotation event until the old keys are fully phased out and\n// become invalid.\nglobal KEY_REGISTRY_UPDATE_BLOCKS = 5;\n\nglobal KEY_REGISTRY_STORAGE_SLOT = 1;\n\n// A helper function since requesting nsk_app is very common\n// TODO(#6543)\npub fn get_nsk_app(npk_m_hash: Field) -> Field {\n get_key_validation_request(npk_m_hash, NULLIFIER_INDEX).sk_app\n}\n\n// Returns all current public keys for a given account, applying proper constraints to the context. We read all\n// keys at once since the constraints for reading them all are actually fewer than if we read them one at a time - any\n// read keys that are not required by the caller can simply be discarded.\npub fn get_current_public_keys(context: &mut PrivateContext, account: AztecAddress) -> PublicKeys {\n // We're going to perform historical reads from public storage, and so need to constrain the caller so that they\n // cannot use very old blocks when constructing proofs, and hence e.g. read very old keys. We are lax and allow\n // _any_ recent block number to be used, regardless of whether there may have been a recent key rotation. This means\n // that multiple sets of keys are valid for a while immediately after rotation, until the old keys become phased\n // out. We *must* be lax to prevent denial of service and transaction fingerprinting attacks by accounts that rotate\n // their keys frequently.\n // Note that we constrain the max block number even if the registry ends up being empty: this ensures that proof of\n // an empty registry is also fresh.\n let current_header = context.get_header();\n context.set_tx_max_block_number(current_header.global_variables.block_number as u32 + KEY_REGISTRY_UPDATE_BLOCKS);\n\n get_historical_public_keys(current_header, account)\n}\n\n// Returns historical public keys for a given account at some block determined by a block header. We read all keys at\n// once since the constraints for reading them all are actually fewer than if we read them one at a time - any read keys\n// that are not required by the caller can simply be discarded.\n// WARNING: if called with a historical header created from a fixed block this function will explicitly ignore key\n// rotation! This means that callers of this may force a user to use old keys, potentially leaking privacy (e.g. if the\n// old keys were leaked). Only call this function with a header from a fixed block if you understand the implications of\n// breaking key rotation very well.\npub fn get_historical_public_keys(historical_header: Header, account: AztecAddress) -> PublicKeys {\n // TODO: improve this so that we always hint the correct set of keys (either registry or canonical) and hash them\n // once instead of having two different hints and twice as many constraints due to the double hashing.\n\n // The key registry is the primary source of information for keys, as that's where accounts store their new keys\n // when they perform rotation. The key registry conveniently stores a hash of each user's keys, so we can read that\n // single field and then prove that we know its preimage (i.e. the current set of keys).\n let key_registry_hash = key_registry_hash_public_historical_read(historical_header, account);\n if key_registry_hash != 0 {\n let hinted_registry_public_keys = key_registry_get_stored_keys_hint(\n account,\n historical_header.global_variables.block_number as u32\n );\n assert_eq(hinted_registry_public_keys.hash().to_field(), key_registry_hash);\n\n hinted_registry_public_keys\n } else {\n // If nothing was written to the registry, we may still be able to produce the correct keys if we happen to know\n // the canonical set (i.e. the ones that are part of the account's preimage).\n let (hinted_canonical_public_keys, partial_address) = get_public_keys_and_partial_address(account);\n assert_eq(\n account, AztecAddress::compute(hinted_canonical_public_keys.hash(), partial_address), \"Invalid public keys hint for address\"\n );\n\n hinted_canonical_public_keys\n }\n}\n\nfn key_registry_hash_public_historical_read(historical_header: Header, account: AztecAddress) -> Field {\n // The keys are stored in a Map that is keyed with the address of each account, so we first derive the corresponding\n // slot for this account.\n let keys_storage_slot = derive_storage_slot_in_map(KEY_REGISTRY_STORAGE_SLOT, account);\n\n // The keys are stored as [ ...serialized_keys, hash ], and since arrays get allocated sequential storage slots\n // (prior to siloing!), we simply add the length to the base slot to get the last element.\n let hash_storage_slot = keys_storage_slot + PUBLIC_KEYS_LENGTH as Field;\n\n historical_header.public_storage_historical_read(hash_storage_slot, CANONICAL_KEY_REGISTRY_ADDRESS)\n}\n\nunconstrained fn key_registry_get_stored_keys_hint(account: AztecAddress, block_number: u32) -> PublicKeys {\n // This is equivalent to the key registry contract having an unconstrained getter that we call from an oracle, but\n // PXE does not yet support that functionality so we do this manually instad. Note that this would be a *historical*\n // call!\n\n // TODO (#7524): call the unconstrained KeyRegistry.get_current_keys() function instead\n\n let context = UnconstrainedContext::at_historical(CANONICAL_KEY_REGISTRY_ADDRESS, block_number);\n let keys_storage = Map::new(\n context,\n KEY_REGISTRY_STORAGE_SLOT,\n |context, slot| { PublicMutable::new(context, slot) }\n );\n\n let stored_keys: StoredKeys = keys_storage.at(account).read();\n stored_keys.public_keys\n}\n"},"96":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/history/public_storage.nr","source":"use dep::protocol_types::{\n constants::GENERATOR_INDEX__PUBLIC_LEAF_INDEX, hash::poseidon2_hash_with_separator,\n address::AztecAddress, header::Header, utils::field::full_field_less_than\n};\nuse dep::protocol_types::merkle_tree::root::root_from_sibling_path;\n\nuse crate::{context::PrivateContext, oracle::get_public_data_witness::get_public_data_witness};\n\ntrait PublicStorageHistoricalRead {\n fn public_storage_historical_read(header: Header, storage_slot: Field, contract_address: AztecAddress) -> Field;\n}\n\nimpl PublicStorageHistoricalRead for Header {\n fn public_storage_historical_read(self, storage_slot: Field, contract_address: AztecAddress) -> Field {\n // 1) Compute the leaf slot by siloing the storage slot with the contract address\n let public_data_tree_index = poseidon2_hash_with_separator(\n [contract_address.to_field(), storage_slot],\n GENERATOR_INDEX__PUBLIC_LEAF_INDEX\n );\n\n // 2) Get the membership witness of the slot\n let witness = get_public_data_witness(\n self.global_variables.block_number as u32,\n public_data_tree_index\n );\n\n // 3) Extract the value from the witness leaf and check that the storage slot is correct\n let preimage = witness.leaf_preimage;\n\n // Here we have two cases. Code based on same checks in `validate_public_data_reads` in `base_rollup_inputs`\n // 1. The value is the same as the one in the witness\n // 2. The value was never initialized and is zero\n let is_less_than_slot = full_field_less_than(preimage.slot, public_data_tree_index);\n let is_next_greater_than = full_field_less_than(public_data_tree_index, preimage.next_slot);\n let is_max = ((preimage.next_index == 0) & (preimage.next_slot == 0));\n let is_in_range = is_less_than_slot & (is_next_greater_than | is_max);\n\n let value = if is_in_range {\n 0\n } else {\n assert_eq(preimage.slot, public_data_tree_index, \"Public data tree index doesn't match witness\");\n preimage.value\n };\n\n // 4) Prove that the leaf exists in the public data tree. Note that `hash` returns not just the hash of the value\n // but also the metadata (slot, next index and next slot).\n assert(\n self.state.partial.public_data_tree.root\n == root_from_sibling_path(preimage.hash(), witness.index, witness.path), \"Proving public value inclusion failed\"\n );\n\n value\n }\n}\n"}}}
|