@aztec/accounts 0.50.1 → 0.51.1

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.
@@ -1 +1 @@
1
- {"transpiled":true,"noir_version":"0.33.0+2d702155f9341cac08a960f271e3ed5450740729","name":"SchnorrAccount","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":"field"},"visibility":"private"},{"name":"signing_pub_key_y","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":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(noinitcheck)"],"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":"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zSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSg6zSg6zSg6zSg6zSj6BUtqpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxnFoBnFoBnFoBnFoBnFuGBJHTSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjmDSjmDSjmDSjmDSjmBcsqZNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFJNmFItmFItmFItmFItmFOuCJXXRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLRjGLTjGLTjGLTjGLTjGJfsKRumlFsmlFsmlFsmlFsmlFsmlFsmlFsmlFsmlFsmlHs5xtFq1tBNnnnraff3nmmbq9Vf6+K825vVbj4jy/+e6O5pdHa0mhvaXSWNPp8W/pRjcqWRnVLo7alUd/S6JbJSLdMRrplMtItk5FumYxsy2RkWyYj2zIZ2ZbJ6PlW/qMa3TIZ2ZbJyLZMRrZlMrItk5FvmYx8y2TkWyYj3zIZPX83xUc1umUy8i2TkW+ZjHzLZORbJqPYMhnFlskotkxGsWUyev4umI9qdMtkFFsmo9gyGcWWySi2TEa5ZTLKLZNRbpmMcstk9PzdS+rz1qjLz78p/fzdS651K8jr54IeMmlE3wpq+3VBUnW9vbh++OvNefed8/birPhex1W/VV+fuvr+1NXPs6vv7y+ey+5UP/U9GU6gfH+5nPp/fr2aiN0KF9c/vP5bv4/ZMPWJ+pVl/eqyfo3d78jbB5deovVz/f7k+vVU/fbWanmn/pj4Hp9S8nP98cnrT3T9qdfc3vrHl9/qr09ef3/y+udz19/L5oFeNg/0snmg4fPAw/v1Zf3Gsn5zWb+1rN9e1u+y+5ZZNl/N0+erMr3dBob82O/f61FYPQarx9k/v1fdqo/W/vnf27O/itAzYr699UjfeWvt7/c/HT/851Xvvbdf8/beLj82q+9+waTX27GPavz7/9PN11E+6ijrdZSPOkr2BdHdC8ZhXxDdq3+u65PXzxpI5mINJHOxBpK5/BWdj4nOuV6z0cOO8jUbPewod93wzLXrhmeuXTc8I7tueEZ2fYM2susbtBHYQCgBqydh9bB/A+TeDd5Iw87zk//A/vTNsV93VH36btovfJT6yf+rsk9ev7NSVmGfolqweuA/NXbcUm3mqp//vQ3rPO31qfioKLfXp+LDjvL5XwY8zk6N2aeu3j919bt+D3Js1+9Bji27Jbdlt+QGvyW/49bG0bfeemV+rz+n7vx9nT/+NjzmzO3V8Vuv6BvvB/eKvu1+cK9oK/LgXn1Rr+jZ6J/utcy+/2Ab/7pX9Fz04F7RM9GDe0XPQw/uFT0LPbbX+Fpz0697/Vpz0697/Vpz0697/Vpz06979UW9LpqbYtHcFIvmplg0N8WiuSkXzU25aG7KRXNTLpqbHrOz9JP0umhuykVzUy6am3LR3MTe+frYXtn7Xh/c66K5ib3n9cG9Lpqbnr4P9iN7XTQ31aK5qRbNTbVobqpFcxN7L+6De100N7H34T6410VzE3sP7oN7XTQ3sfffPrjXRXMTe+/tg3tdNDex990+uNdFc9Msmptm0dz09P2/H9nrorlpFs1Ns2humkVz0+yZm+S69gxOp9k9k9Npds/odJrdMzudZn1Ts3ump9PsnvHpNLtnfjrN7hmgTrObJij2It5HN7tpgmKv4H10s5smKPFNzW6aoGTTBCWbJijZNEHJpglKN01QummC0k0TlG6aoJ6/2Pkjm900QemmCUo3TVDs5d6PbnbTBGWbJijbNEHZpgnKNk1Qz18E/pHNbpqg2EvDH93spgmKvS780c1umqC+2GLxO81umqC+2GrxO81umqC+2HLxO81umqAWrRc/zW6aoBYtGD/NfrEJ6vsjdat/avarrRj/dbNfbIL6dbOf+yGqp4HP/RTV04CjG0i95vbWP778ewPx2RvIz94A+3nt/0ADjW6grvZbhorce0jnLx8ldJplPw3+sc0+fcn2hzYrm5plTw4PbpY9Zfyzzf76R5unL9r+0GbZ08uDm2VPOg9ulj0VPbjZrzVB3Wn2a01Qv262vtYEdafZrzVB3Wn2a01Qd5rdNEE9feX2hza7aYKqTRNUbZqgatMEVZsmqN40QfWmCao3TVC9aYJ6+vLtD2120wTVmyao3jRB9aYJqjdNULNpgppNE9RsmqBm0wT19DXcH9rspglqNk1Qs2mCmk0T1CyaoORaNEHJtWiCkmvRBCXXoglKLt/U7KIJSq5FE5RciyYouRZNUHJtmqBk0wQlmyYo2TRByaYJ6um7uD+02U0TlGyaoGTTBCWbJijZNEHppglKN01QummC0k0T1NN3cX9os5smKN00QemmCUo3TVC6aYKyTROUbZqgbNMEZZsmqKfv4v7QZjdNULZpgrJNE5RtmqBs0wTlmyYo3zRB+aYJyjdNUE/fxf2hzW6aoHzTBOVfbIL61V5f8S82Qf262S82Qf2yWfYubpmavL26xe40q3YG4FvhZ4j4w+t/axi9j/uvaBj9VJO/omH0k03+ioZ9W8PoJ5z8FQ2jn3LyVzSMftLJX9Ew+mknf0XD6Cee/AUN57ZJ6+n7y8+oe3s6Rv3wKJPT8G8FKa0goxXktIKCVtDTP4nLvv/8FvJzQUUrqGkFDaygp+9gvluQ0ApSWkFGK8hpBQWtoIR9dFTRCmpaQQMrCL7rNX64243W/nkGh+9v/QcagD9R8H4D8CcK3m/AP3sDtJ8hmvbJ1LRPpqZ9MjXtk2kuWkEP+aS55FaQ552Y6L5dQI30nbfWlttzbjt+uN2q997br3l7b5cfM0Xfe+/R6+0cR/XeF7L/wM3ZY9Zovs7y72dpr7N82Fn66ywfdpbxOsuHnWW+zvJhZ1mvs3zYWfbrLB92lvM6ywedpT5mfezrLP9+lrBvufWCfcut8C2vMXErP89XYe/8Fftnb4CtEP6BBtiy4B9ogK0F/oEG2ALgH2iA/Vv99xuAbyz9BxqAfxd1vwH4d1H3G4D9vpk+faPn3YJg3xWpwL4rUoF9V6QC+65IBfZdkSrsuyJV2s9MSvuZSWlJrbSkVlpSKy2plZbUSktqpSW10ZLaaElttKQ2WlIbLamNltRGS2qjJbXRktpoSe20pHZaUjstqZ2W1E5LaqcltdOS2mlJ7bSkdlpSBy2pg5bUQUvqoCV10JI6aEkdtKQOWlIHLamDltRJS2raBgulbbBQ2gYLpW2wUNoGC01aUictqZOW1ElL6qIlddGSumhJXbSkLlpSFy2paRsslLbBQmkbLJS2wUKbltRNS+qmJXXTkrppSU3b6KC0jQ5K2+igtI0OStvooLSNDjq0pB5aUg8tqYeW1ENL6qEl9dCSemhJPbCktutLbXJOe3O8rT+8Nuz3Zr/U8zLuNfulnpVxr9kv9ZyMe836pma/1PMx7jX7pZ6Nca/ZL/VcjHvNfqlnYtxr9ks9D+NOs7JpghLYz9EmsJ+jjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaSjeaS/YIltdOejeu0Z+P6BUtqv2BJ7Rcsqf2CJbVfsKT2C5bUftGSWmhJTTOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKQTOKQTOKQTOKQTOKccGSOmhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWlGMWlGMWlGMWlGMS9YUifNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKBbNKBbNKBbNKBbNKNYFS+qiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWmGcWmGcWmGcWmGcW+YEndNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPY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GUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWnGUWnGUWnGUWnGUW/YEntNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKMYNKMYNKMYNKMYNKMYFyypg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YU4/lGsb+/eC77saCfX6xXZr0VcuUP9ctV73ert247bq+O35v1Tc3GpmZzU7O1qdne1OyzP9G//bj39tZRd5pt7bfPkra5/tDq38t/unx9cPnyucvXz12+fe7y/XOXH5+7/Pzc5dfnLr8/d/mf+1O3P/enbn/uT93+3J+6/bk/dZ+urx9c/uf+1O3P/anbn/tT9yFqvK66/Tyq8+vyu9Te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xaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaQZxaQZxaQZxaQZxbxgSZ00o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o1g0o1g0o1g0o1g0o1gXLKmLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSbZhSbZhSbZhSbZhT7giV104xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04zi0Izi0Izi0Izi0IziXLCkHppRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJhR9AtmFE9BrKQ+BbGS+hTESupTECupT0GspD4FsZL6FMRK6lMQK6lPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAsqYVmFIVmFIVmFIVmFOWCJbXQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLSjKLSjKLSjKLSjKJesKRWmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlE0mlE0mlE0mlE0mlE8fxqtIFhSG80oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oOs0oOs0oOs0oOs0o+gVLaqcZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZxaAZxaAZxaAZxaAZxbhgSR00oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0o5g0o5g0o5g0o5g0o5gXLKmTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSLZhSLZhSLZhSLZhTrgiV10Yxi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KCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKBrNKBrNKBrNKBrNKJ4/jVYQLKmNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSdZhSdZhSdZhSdZhT9giW104yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04xi0Ixi0Ixi0Ixi0IxiXLCkDppRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRTJpRTJpRTJpRTJpRzAuW1EkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikUzikUzikUzikUzinXBkrpoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFpRrFpRrFpRrFpRrEvWFI3zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSgOzSgOzSgOzSgOzSjOBUvqoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFgRnFvGBG8RTESupTECupT0GspD4FsZL6FMRK6lMQK6lPQaykPgWxkvoUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BcGSWmhGUWhGUWhGUWhGUS5YUgvNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKMrTjaJe5m9vfdX8WNB7L86s26tz6vby873au5WU3irpuL06fm82NjWbm5qtTc32pmZnUbMky/rOizOvtxdnfS/ert8/TEjy9d9SPmha+LeUb+T/Uk6D873ZFrvzX4ra+VL/Vvj5mfsPr/+tYd/WMHp++SsaRs8wf0XD6DlGZuT7p935Gu6dBr7WbJJ9+7jOmZ8+rr/WbPLrZp+utz+0WdnUrG5qFj0l/fM/T5jdKomffp54upb/0Ga/2O3Or5v9Yrc7v272i93u/LrZL3a78+tmv9jtzi+b7a81Qd1p9mtNUHea/VoT1J1mN01QT99i8aHNbpqgetME1ZsmqN40QfWmCWo2TVCzaYKaTRPUbJqgnr5d5kOb3TRBzaYJajZNULNpgppFE5ReiyYovRZNUHotmqD0WjRB6eWbml00Qem1aILSa9EEpdeiCUqvTROUbJqgZNMEJZsmKNk0QT19G9uHNrtpgpJNE5RsmqBk0wQlmyYo3TRB6aYJSjdNULppgnr6lsQPbXbTBKWbJijdNEHppglKN01QtmmCsk0TlG2aoGzTBPX07aUf2uymCco2TVC2aYKyTROUbZqgfNME5ZsmKN80QfmmCerpW4U/tNlNE5RvmqB80wTlmyYo3zRBxaYJKjZNULFpgopNE9RX2/b962Y3TVBfbdv3r5vdNEF9tW3fv2520wSVmyao3DRB5aYJir13/NHN+qZmN01Q7F3jj2520wT1xXaS32l20wT1xXaS32l20wT1xXaS32l20wS1aSe5btpJrpt2kuumneS6aSe5btpJrpt2kuumneS6aSe5btpJrpt2kuumneS6aSe5btpJrpt2kuumneS6aSe5btpJrpt2kuumneS6aSe5btpJrpt2kuumneS6aSe5btpJbpt2ktumneS2aSe5bdpJfjrZ1OyiCco27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJfdNOct+0k9w37ST3TTvJ/fJNzS6aoHzTTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJM8Nu0kj007yWPTTvLYtJM8Lt/U7KIJKjbtJI9NO8lj007y2LSTPDbtJI9NO8njq+0kL71V0j83+8UmqF83689u1vL21i7662YlJq63t04p+UOzvzUQn72BRDeQes2tgfM/faeB+uwN9GdvYD55A8/fxf1PNVBX++2tReJe5GbfIjdn/nXkPn8X90c2q5uatU3N+qZm2VPGP9vsr6d9ZU8kD26WPb08uFn2pPPgZtlT0WObta81Qd1p9mtNUHea/VoT1J1mv9YEdadZ39TspgnKNk1Q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lWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUjWYUjWYUjWYUjWYUz59GKwiW1EYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzik4zik4zik4zik4zin7BktppRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRjFoRjFoRjFoRjFoRjEuWFIHzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgmzSgmzSgmzSgmzSjmBUvqpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFohnFohnFohnFohnFumBJXTSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSj2DSj2DSj2DSj2DSj2BcsqZtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFIdmFIdmFIdmFIdmFOeCJfXQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLAjGJfMKN4CmIl9SmIldSnIFZSn4JYSX0KYiX1KYiV1KcgVlKfglhJfQqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CYEktNKMoNKMoNKMoNKMoFyyphWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUlWYUlWYUlWYUlWYU9YIltdKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotGMotGMotGMotGM4vnTaAXBktpoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFpRtFpRtFpRtFpRtEvWFI7zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6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M4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4oDM4pzwYziKYiV1KcgVlKfglhJfQpiJfUpiJXUpyBWUp+CWEl9CmIl9SmIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKgiW10Iyi0Iyi0Iyi0IyiXLCkFppRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRVJpRVJpRVJpRVJpR1AuW1EozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikYzikYzikYzikYziudPoxUES2qjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWnGUWnGUWnGUWnGUW/YEntNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKMYNKMYNKMYNKMYNKMYFyypg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUk2YUk2YUk2YUk2YU84IlddKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtGMYtGMYtGMYtGMYl2wpC6aUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUWyaUWyaUWyaUWyaUewLltRNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4r9dKOol/nbW181Pxb03osz6/bqnLq9XK56t5LSWyUdt1fH783qpmZtU7O+qdnY1Gxuahb0if7OizOvtxdnfS/errcPE9Dn/7+lfNC08G8o/+mq9p/6L0W+MZdbsy12578UNRG7FS6uf3j9bw2jZ5e/omH0/PJXNIyeYf6Khp3d8Mj3TzvReqeBrzWbZN8+rnPmX39c99eaTe40W5ua7U3NzqJmBz0l/fM/T5jdKomffp6YL3a78+tmv9jtzq+b/WK3O79u1jc1+8Vud37d7Be73fl1s19rgrrT7NeaoO40+7UmqF82O9eiCWquRRPUXIsmqLkWTVBz+aZmF01Qcy2aoOZaNEHNtWiCmmvTBCWbJijZNEHJpglKNk1QT9+486HNbpqgZNMEJZsmKNk0QcmmCUo3TVC6aYLSTROUbpqgnr4J60Ob3TRB6aYJSjdNULppgtJNE5RtmqBs0wRlmyYo2zRBPX1D3Yc2u2mCsk0TlG2aoGzTBGWbJijfNEH5pgnKN01QvmmCevrmyA9tdtME5ZsmKN80QfmmCco3TVCxaYKKTRNUbJqgYtME9fSNrh/a7KYJKjZNULFpgopNE1RsmqBy0wSVmyao3DRB5aYJ6umblj+02U0TVG6aoHLTBJWbJqjcNEHVpgnqq237/nWzmyaor7bt+9fN+qZmN01QX23b96+b3TRB1aYJqjZNUOy9449udtMExd43/uhmN01Q7D3jj2520wT1xXaS32l20wT1xXaS32l20wS1aSf5bNpJPpt2ks+mneSzaSf5bNpJPpt2ks+mneSzaSf5LNpJLte1aCn5t273zFDfut0zRH3rds8U9a1bX9XtnjnqW7d7Bqlv3e6ZpL51u2eU+tbtqllq0Xryb92umqUWLSj/1u2qWWrRivJv3a6apRYtKf/W7apZatGa8m/drpqlFi0q/9btqllq0aryb92umqUWLSv/1u2qWWrRuvJv3a6apRYtLP/W7apZatHK8m/drpqlFi0t/9btqllq0dryb92umqUWLS7/1u2qWWrR6vJv3a6apRYtL//W7apZatH68m/drpqlFi0w/9btqllq0Qrzb92umqUWLTH/1u2qWWrRGvNv3a6apRYtMv/W7apZatEq82/drpqlFi0z/9btqllq0Trzb92umqUWLTT/1u2qWWrRSvNv3a6apRYtNf/W7apZatFa82/drpqlFi02/9btqllq0Wrzb92umqUWLTf/1u2qWWrRevNv3a6apRYtOP/W7apZatGK82/drpqlFi05/9btqllq0Zrzb92umqUWLTr/1u2qWWrRqvNv3a6apRYtO//W7apZatG682/drpqlFi08/9btqllq0crzb92umqUWLT3/1u2qWWrR2vNv3W6apWTV3nNZtfdcVu09l1V7z+XyVd1umqVk1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFftPddVe8911d5zXbX3XC9f1e2mWUpX7T3XVXvPddXec12191xX7T3XVXvPddXec12191xX7T3XVXvPddXec12191xX7T3XVXvPddXec12191xX7T3XVXvPddXec12191xX7T3XVXvPddXec/1qe89Lb5X0z91+tb3nd7p9+ixleXtrF/11txIT19tbp5T8odvfO9BP34GhO8hzMX3r4PxP3+vAP30H8ek7yE/fQaE7qKv99tYicS95s2/JmzM/J2+v6nY2dfv8fd8f2i17hnh0t+x545/t9s7s7+zZ5NHd+qpu2TPPo7tlz0eP7vZrzVL3uv1as9S9br/WLHWn2/has9S9br/WLHWv21WzVKyapZ6/7/tDu101S8WqWSpWzVKxapaKVbNUrpqlctUslatmqVw1Sz1/3/eHdrtqlspVs1SumqVy1SyVq2apWjVL1apZqlbNUrVqlnr+vu8P7XbVLFWr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w2W24TLbcJltuMzGPae1cM9pLcNltuEy23CZjXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQjXOQjXOQjXOQjXOQfdEyu3EOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOcnAOcnAOcnAOcnAOci5aZg/OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7NQcpFc5CnIlhmn4pgmX0qgmX2qQiW2aciWGafimCZfSqCZfapCJbZpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUF+e0AtriJcZtMc5LdH5+AqwmU2zUF+W+qLqwiX2TQH+W3dEK4iXGbTHOQ3CAmrSHAOUnAOUnAOUnAO8ny9jquIltmCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CKc5CKc5CKc5CKc5B60TJbcQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ7ScA7ScA7ScA7ScA7y/HG4imiZbTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgH6TgH6TgH6TgH6TgH6Rctsx3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIAPnIAPnIAPnIAPnIOOiZXbgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTiHGTiHGTiHGTiHGRetMxOnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnIMsnIMsnIMsnIMsnIOsi5bZhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQjXOQjXOQjXOQjXOQfdEyu3EOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOcnAOcnAOcnAOcnAOci5aZg/OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7O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WTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgH2TgH2TgH2TgH2TgH2RctsxvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIAfnIAfnIAfnIAfnIOeiZfbgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTQHKRdNAd5KoJl9qkIltmnIlhmn4pgmX0qgmX2qQiW2aciWGafimCZfSrCZTbN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3irpuL063rqdTd0+3W9+bLeyqltd1a2t6hb02f7OizOvtxdnfa/errfPFJKu/TfVD5ob/k31F/m/ltPhfO+2xe7816ImYrfCxfUPr/+9Y/QU85d0jJ5k/oKO80JPM39Jx+iJRmbk+6eeaL3XwdeaUrJvn9s5868/t/P6WlPKvW59Vbexqttc1S16Xvrnf7owu1US8XO3X+zG5063X+zG59fdyhe78bnT7Re78bnT7Re78bnT7Re78bnTra/q9mvNUve6/Vqz1L1uV81SsmqWklWzlK6apXTVLKWrZildNUs9faPKx3a7apbSVbOUrpqldNUspatmKVs1S9mqWcpWzVK2apZ6+qajj+121Sxlq2YpWzVL2apZylbNUr5qlvJVs5SvmqV81Sz19A1kH9vtqlnKV81SvmqW8lWzlK+apWLVLBWrZqlYNUvFqlnq6ZsBP7bbVbNUrJqlYtUsFatmqVg1S+WqWSpXzVK5apbKVbPU0zd2fmy3q2apXDVL5apZKlfNUrlqlqpVs1StmqVq1SxVq2app2/S/dhuV81StWqWqlWzVK2apWrVLNWrZqleNUv1qlmqV81ST99w/bHdrpqletUs1atmqa+2UfxOt6tmqa+2UfxOt6tmqa+2UfxOt6tmqadvFP/YblfNUrNqlmLvNn94t6tmKfZO8wd3W+x95g/vdtMsVV9s7/m9bjfNUnX5qm43zVL1xfae3+t20yxVq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nveq/ae96q9571q73mv2nvel6/qdtMs1av2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqveezau/5rNp7Pqv2ns+qvedz+apuN81Ss2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3n8/y955a3t3bRX3crMXG9vXVKyR+6/b2D+vQdNLqD1GtuHZz/6XsdzGfv4Pl7xB/egXz6DhTdQV3tt7cWiXvJm623hmd+St7n7/v+0G59Vbexqlv2DPHobtnzxj/b7Z35MNizyaO7Zc8xD+422TPPo7tlz0eP7vZrzVL3uv1as9S9bn1Vt19rlrrX7deape51u2qWylWzVK6apWrVLFWrZqn/r7072pEkt9ID/EZCkjzkOXwaY3dhGAKEXWNXNuALv7tjZqeqe6yarVYqxfla0TeCGpNR/Jkd/RczMr5g3motlbdaS51/3vfvOttbraXyVmupvNVaKm+1lspbraXqVmuputVaqm61lqpbraXOP+/7d53trdZSdau1VN1qLVW3WkvVrdZS+1ZrqX2rtdS+1Vpq32otdf5537/rbG+1ltq3WkvtW62l9q3WUvtGa6l4PG60lrpme6O11DXbG62lrtneaC11zTZuNdsbraWu2d5oLXXN9kZrqWu2N1pLXbO91Vqq3Wot1W61lmq3Wku1W62lzj/v+3ed7a3WUu1Wa6l2q7VUu9Vaqt1qLdVvtZbqt1pL9Vutpfqt1lLnn/f9u872Vmupfqu1VL/VWqrfai3Vb7WWGrdaS41braXGrdZS41ZrqfPP+/5dZ3urtdS41Vpq3GotNW61lhq3WkvFrdZScau1VNxqLRW3Wkudf9737zrbW62l8Od9v3q2t1pL4c8Rf/Vsb7WWwp9P/urZ3mot9Q/23PPPZnurtdQ/2HPPP5vtrdZS/2DPPf9strdaS93puefXbG+1lrrTc8+v2d5qLXWn555fs73VWupOzz2/ZnurtdSdnnt+zfZWa6k7Pff8mu2t1lJ3eu75NdtbraXu9Nzza7a3Wkvd6bnn12xvtZa603PPr9neai11p+eeX7O91VrqTs89v2Z7q7XUnZ57fs32VmupOz33/JrtrdZSd3ru+TXbW62l7vTc82u2t1pL3em559dsb7WWutNzz6/Z3motdafnnl+zPb6Weoy3/P36dP3JbHfutyBtVxufzLaP1sZ78Bb9V6//ZcbrdjPO2824bjfjfbMZt/PPQv/dZ9xuN+N+uxmP2804bjfju6252vFnpLcdX+aQ4+sZ/5IouUTFJdpaouPP7P480St+J69Zb4OsGp8kytG/fKBrX1683xJ1LtHgEgWXaHKJFpcouUTFJdpaopc8G/i1iZr2W6Sf7+x8vMff+cF7NLhEwSWaXKLFJeLW2Z1bZ/fTnd3bfvtb69e3D1//rX3wk2fme5/O6vXB57vx+O5n0L77GfTvfgbju59BaN1y/DmdnyfirgUN7nfU4H5HDe5a0Eue7bge74lWfHYVter9Oudu9cmP7tXy7dU1v7qImh/97J9usvjl1T+tUL68un/0s3d/vJXc7v2zWwC+5QLtSx4d+ePN/OXN7D/ezNe9mePHm/m6NzN+vJmvezPnjzfzdW/m+vFmvu7NzB9v5uvezPrxZr7uzdw/3syXvZmT+zZ8ct+sTPyq2J7v189Xy/bR3zJ+VewbZhDf/Qzmdz+D9d3PIL/7GdR3PwP8m6rPZ7Dwb6q+YQb4N1XfMIOurRKOP8Xy80TBJeK+SVrcN0mL+yZpcd8kLe6bpDx/h9ond81k4xJxd6gld4faS55o99pE3B1qyd2hlsklKi7R1hIVd+2ruGtfxXV2cZ1dXGcX19nFdXZx6+zi1tnFdfbm1tmbW2dvrrM319nHn9Dz6b+1zV0b2dy1kc119uY6e2vXRvpD6+z+0Dq7P7TO7g+ts/tDW2f3h7bO7g9tnd0f2rWR/tCujfSHts7u3FMyetOujfTGdXbjOrtxnd24zm5cZzeusxvX2Y3r7M6tszu3zu7afSO9a/eN9Jc8JeO1ibRrI71r10Y695SMzj0lo3fu2sjgOntwnT24dfbg1tkveWrEaxNx6+zBrbMHt84e3Dp7cOvs4K6NBHdtJLjODq6zg+vs4Do7uM4Obp0d3Do7uM6e3Dp7cuvsyXX25Dr7JQ71pf/WJndtZHLXRibX2ZPr7MldG1lcZy+usxfX2Yvr7Jc4yNcm4tbZi1tnL+7ayOKujSxunZ3ctZHkro1wDrJzDrJzDrJzDrJzDrJzDrJzDrJzDrIXt84ubp1d3H0jxd038hIH+dpE3LWR4q6NcA6ycw6yF3dthHOQnXOQnXOQnXOQ/SUO8rWJuHX25tbZm1tnb26dvbV19nho10bGQ7s2MjgHOTgHeQ3HJdI6e3AOcnC7hQ9ut/DBOcjRtHX2aNo6e3AOcnAOcrzEQb7031rTro2Mpl0bGY3r7MZ1dtOujQzOQQ7OQQ5ut/DB7RY+uN3CB7db+OB2Cx9duzYyunZtZHRunT24ayODuzbCOcjBOcjBOcjBOcjBOcjBOcjBOcjBOcgR3Do7uHV2aPeNjNDuGxkvcZCvTcRdGwnu2gjnIAfnIEdw10a4/T4Ht9/nmFxnT66zOQc5OAc5OAc5OAc5OAc5OAc5FtfZi+tsbj/Iwe0HObj9IAe3H+Tg9oMc3H6Qg9sPcnD7QQ7OQQ7OQY7kOju5zk6us5Pr7OQ6O7nOTq6zk+tsbj/Iwe0HOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTbX2Zvr7M119uY6m9sPcnD7QQ5uP8jB7Qc5uP0gB7cfZHAOMjgHGQ+ts+OhdXY8tM6Oh9bZ8dA6OzgHGZyDjAfX2dx+kMHtBxmN6+zGdTbnIINzkME5yOAcZHAOMjgHGZ3r7M51NrcfZHD7QQa3H2Rw+0EGtx9kcPtBBrcfZHD7QQbnIINzkDG4zh5cZw+uswfX2YPr7MF19uA6e3Cdze0HGdx+kME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4Bzk5Bzk5Bzk5Bzk5BzkfGidPTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHuTgHuTgHuTgHuTgHuR5aZy/OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQSbnIJNzkMk5yOQcZD60zk7OQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B1mcgyzOQRbnIItzkPXQOrs4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHOTmHOTmHOTmHOTmHOR+aJ29OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5OQe5NQc5H5qDvBJhnX0lwjr7SoR19pUI6+wrEdbZVyKss69EWGdfibDOvhJxna05yCsR19mag7wScZ2tOcgrEdfZmoO8EnGdrTnIKxHX2ZqDvBJxna05yCsR19mag7wScZ2tOcgrEdfZmoO8EnGdrTnIKxHX2ZqDvBJxna05yCsR19mag7wScZ2tOcgrEdfZmoO8EnGdrTnIKxHX2ZqDvBJxna05yCsR19mag7wScZ2tOcgrEdfZmoO8EnGdrTnIKxHX2ZqDvBJxna05yCsR19mag7wScZ2tOcgrEdfZmoO8EnGdrTnIKxHX2ZqDvBJxna05yCsR19mag7wScZ2tOcgrEdfZmoO8EnGdrTnIKxHX2ZqDvBJxna05yCsR19mag7wScZ2tOcgrEdfZmoO8EnGdrTnIKxHX2ZqDvBJxna05yCsR19mag7wScZ2tOcgrkdbZjXOQjXOQjXOQjXOQ7aF1duMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOccZOccZOccZOccZH9ond05B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5B9k5Bzk4Bzk4Bzk4Bzk4B3kNxyXSOntwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDjI4BxmcgwzOQQbnIOOhdXZwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjJOcjJOcjJOcjJOcj50Dp7cg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycQ5ycQ5ycQ5ycQ5yPbTOXpyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyD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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":"7Z3tbttGFkDfxb+LgvdzZvoqi8Ui7XaLAEFSNOkCi6LvvrJrUXLFQCmtXJ+a/NPGyZD38s7waIaaQ/929+8fv//1p3+9ff+fDx/vvvvHb3fvPvzw5tPbD+8PP/12J/bwdx9/fvP+/sePn9788unuu+mbux/f//vw/9+/ufvP23c/3n1nw37/5qKdttEem2qXMbcWi4XWriMfW7u1a61lUovH5oc/e5/ba7Sl9pF2bB5dT5nr4snb3Fj0SeN/fnMnvhflsiixF+WyKLkX5bIobS/KZVH6XpTLooy9KBdF0WkvymVRBFyUpqei9LxSFO1djrmMaXpWUbSwKDbGsSjeAjxSbC/KZVF8L8plUWIvymVRci/KZVEauCgv9unzrBmtjTw2PVzwKe1DzIeTj694cvsLM6z75otzDw2fezVauzYG0vI0Bk4hMpcaT6FzL015dgEJuzFM99J8rjS2l+ZzpXF8aV4KqhZ7aT5XmtxL87nStBuUprfplE5eKU3vNjeWfvXUcpoAhZ0+jlsufnjPVbcRp0sV/ePTuG/oWserutaYJ7bTWSL317r0cTOOaUua/7kyPm23MnmqTNO4qIy8osr45POjuKlfrcx0qozodNZ6idd2OnXzs6x98cw2X6RMfn2yJDl/FKicfRI8rD9c9y56+S5SzbmLbPy5i2zvInoX+d5F9C6KvYsAXeQ+d1G0P3dR7l1E76LXtLp7pV30mhalf9susjxepdjZNyePXfSa1tJfs4tiOj4WzvOnUotdZOLz8wvpZ3fFw2OpeE2LdEzJNY+NTS9Lvq/+y0u+r+bLS76vzstL7nvJq0u+r57LS76vhstLvq9uy0u+r1bLS76vPqtLnvvq88tKnnJ8spXerz6TkTw9knlS8oWk3Y7fgrqfiRSP/bMvVdn9s69r2f2zL4LZ/ePb7R+1uX/U9Un/3FdmwwvbK5XZ8PrzSmU2vEzUPn/1eJjyXqGdjDkTGf0MSsvfmb3cpuXc8Cr0lfbohhe5r7NH2+taQ4/juf3QX1d6dOjUH1sPPd9mPS3W3ETmxA/fiuuT9veVfF2r3ZesZPW61CaZHzNNbk9OfZ9P9TrsUJQja0zyQldtDssnYPkkLJ8Gy6fD8hmsfPoEy0dg+SgsHxifO4zPHcbnDuNzh/G5w/jcYXweMD4PGJ8HjM8DxucB4/OA8XnA+DxgfB4wPg8Yn2WCAfrwnR8tIRiiZYIx+vDdLC0hGKVlgmH68PSOlhAM1DLRSC00UguN1EIjtdBILTRSC43UQiO10EgtNFILjdRKI7XSSK00UiuN1EojtdJIrTRSK43USiO10khtNFIbjdRGI7XRSG00UhuN1EYjtdFIbTRSG43UTiO100jtNFI7jdROI7XTSO00UjuN1E4jtdNIHTRSB43UQSN10EgdNFIHjdRBI3XQSB00UgeN1EkjddJInTRSJ43USSN10kidNFInjdRJI3XSSN1opG40UjcaqWkmotBURKG5iEKTEYVmIwpNRxSajyg0IVFoRqLQlEShOYlCkxKFZiUKTUsUmpcoNDFRaGai0NREobmJQpMThWYnCk1PFJqfKDRBUWiGotAURaE5ikpzFJXmKCrNUVSao6gTjNRKcxSV5igqzVFUmqOoNEdRaY6i0hxFpTmKSnMUleYoKs1RVJqjqDRHUWmOotIcRaU5ikpzFJXmKCrNUVSao6g0R1FpjqLSHEWlOYpKcxSV5igqzVFUmqOoNEdRaY6i0hxFpTmKSnMUleYoKs1RVJqjqDRHUWmOotIcRaU5ikpzFJXmKCrNUVSao6g0R1FpjqLSHEWlOYpKcxSV5igqzVFUmqOoNEdRaY6i0hxFpTmKSnMUleYoKs1RVJqjqDRHUWmOotIcRaU5ikpzFJXmKCrNUVSao6g0R1FpjqLSHEWlOYpKcxSV5igqzVFUmqOoNEdRaY6i0hxFpTmKSnMUleYoKs1RVJqjqDRHUWmOotIcRaU5ikpzFJXmKCrNUVSao6g0R1FpjqLSHEWjOYpGcxSN5igazVG0CUZqozmKRnMUjeYoGs1RNJqjaDRH0WiOotEcRaM5ikZzFI3mKBrNUTSao2g0R9FojqLRHEWjOYpGcxSN5igazVE0mqNoNEfRaI6i0RxFozmKRnMUjeYoGs1RNJqjaDRH0WiOotEcRaM5ikZzFI3mKBrNUTSao2g0R9FojqLRHEWjOYpGcxSN5igazVE0mqNoNEfRaI6i0RxFozmKRnMUjeYoGs1RNJqjaDRH0WiOotEcRaM5ikZzFI3mKBrNUTSao2g0R9FojqLRHEWjOYpGcxSN5igazVE0mqNoNEfRaI6i0RxFozmKRnMUjeYoGs1RNJqjaDRH0WiOotEcRaM5ikZzFI3mKBrNUTSao2g0R9FojqLRHEWjOYpGcxSN5igazVE0mqNoNEfRaI6i0xxFpzmKTnMUneYo+gQjtdMcRac5ik5zFJ3mKDrNUXSao+g0R9FpjqLTHEWnOYpOcxSd5ig6zVF0mqPoNEfRaY6i0xxFpzmKTnMUneYoOs1RdJqj6DRH0WmOotMcRac5ik5zFJ3mKDrNUXSao+g0R9FpjqLTHEWnOYpOcxSd5ig6zVF0mqPoNEfRaY6i0xxFpzmKTnMUneYoOs1RdJqj6DRH0WmOotMcRac5ik5zFJ3mKDrNUXSao+g0R9FpjqLTHEWnOYpOcxSd5ig6zVF0mqPoNEfRaY6i0xxFpzmKTnMUneYoOs1RdJqj6DRH0WmOotMcRac5ik5zFJ3mKDrNUXSao+g0R9FpjqLTHEWnOYpOcxSd5ig6zVF0mqPoNEfRaY6i0xxFpzmKTnMUneYoOs1RdJqj6DRHMWiOYtAcxaA5ikFzFGOCkTpojmLQHMWgOYpBcxSD5igGzVEMmqMYNEcxaI5i0BzFoDmKQXMUg+YoBs1RDJqjGDRHMWiOYtAcxaA5ikFzFIPmKAbNUQyaoxg0RzFojmLQHMWgOYpBcxSD5igGzVEMmqMYNEcxaI5i0BzFoDmKQXMUg+YoBs1RDJqjGDRHMWiOYtAcxaA5ikFzFIPmKAbNUQyaoxg0RzFojmLQHMWgOYpBcxSD5igGzVEMmqMYNEcxaI5i0BzFoDmKQXMUg+YoBs1RDJqjGDRHMWiOYtAcxaA5ikFzFIPmKAbNUQyaoxg0RzFojmLQHMWgOYpBcxSD5igGzVEMmqMYNEcxaI5i0BzFoDmKQXMUg+YoBs1RDJqjGDRHMWiOYtAcxaA5ikFzFIPmKAbNUQyao5g0RzFpjmLSHMWkOYo5wUidNEcxaY5i0hzFpDmKSXMUk+YoJs1RTJqjmDRHMWmOYtIcxaQ5iklzFJPmKCbNUUyao5g0RzFpjmLSHMWkOYpJcxST5igmzVFMmqOYNEcxaY5i0hzFpDmKSXMUk+YoJs1RTJqjmDRHMWmOYtIcxaQ5iklzFJPmKCbNUUyao5g0RzFpjmLSHMWkOYpJcxST5igmzVFMmqOYNEcxaY5i0hzFpDmKSXMUk+YoJs1RTJqjmDRHMWmOYtIcxaQ5iklzFJPmKCbNUUyao5g0RzFpjmLSHMWkOYpJcxST5igmzVFMmqOYNEcxaY5i0hzFpDmKSXMUk+YoJs1RTJqjmDRHMWmOYtIcxaQ5iklzFJPmKCbNUUyao5g0RzFpjmLSHMWkOYpJcxST5igmzVFsNEex0RzFRnMUG81RbBOM1I3mKDaao9hojmKjOYqN5ig2mqPYaI5iozmKrd5RtDYnZCOvnHp0eWw8xikN9YWmcjjbY1tx8fPGDxfqW7nQ2MqF5lYutG3lQvtWLnRs5ELrXdiXulDZyoXqVi50KzOjetf4pS50KzMj3crMSLcyM9KtzIx0KzMj28rMyLYyM7KtzIxsKzOjerf/pS50KzMj28rMyLYyM7KtzIxsKzMj38rMyLcyM/KtzIx8KzOj+ndpvNSFbmVm5FuZGflWZka+lZmRb2VmFFuZGcVWZkaxlZlRbGVmVP/umpe60K3MjGIrM6PYyswotjIziq3MjHIrM6Pcysyo/t1L6uN4oS6XO6Xr373k2uaEvF0m5EsJHc8/XUklc+qPTTPd5tYytT/OHs87e9P57EOenH2hLG3MRewyTq0tFlq7zgPHrV1rLZNaHMfZpN5PAy2WcpFIOzaPrqfr1MWTt7mx6JPGDzXMvYbPrmHba/jsGva9hs+u4dhr+NwaLr/HbK/hX6qhvJoazqkc/tzzSg21z1PLw9Rpel4NFVtDG8dJ6GHKF+RxaHsNn11D32v47Bpy1yl/nxpy1yl/nxpy1yl/tYYv87l8+OH7X96+e/f2p3+9+/DDm09vP7z/eH/odP+f0G+XTfXW52wPlTh1uOhSmc9b6/S09aET76N4SZQoiZIlUVpJlF4SZVREWZZibx5FSqJoSZSSe19L7n0tufe15N7XkntfS+59Lbn3reTet5J730rufSu5963k3reSe99K7n0rufet5N63knvfS+59L7n3veTe9xvc+3b6ntkOT09PrUOWljMixxWKxvS09WNODswpgDklMKcGzKkDcxq8nGIC5iTAnBSYE5DjAeR4ADkeQI4HkOMB5HgAOZ5AjieQ4wnkeAI5nkCOJ5DjCeR4AjmeQI4nkOMNyPEG5HgDcrwBOd6AHG9AjjcgxxuQ4w3I8QbkeAdyvAM53oEc70COdyDHO5DjHcjxDuR4B3K8Azk+gBwfQI4PIMcHkOMDyPEB5PgAcnwAOT6AHB9AjssEBLlMQJLL9JVRfgxzCzq3cbwa65MuhvGaMFETJmvCtJowvSbMuHWYsRRGppowUhPmFhToeQrTFvvmFv7Jl4TxmjBREyZrwrSSMLcQN6yPoy9lQ/piGKkJc4OR5hmzW5bdFsNETZisCdNqwlz9vNHzKdG8YVauWwyfOfC6mPC5A2Xtgbr2QFt7oK89MNYemGsPbGsPXDtybO3I8bUjx9eOHF87cnztyPG1I8fXjhxfO3J87cjxtSPH146cWDtyYu3IibUjJ9aOnFg7cmLtyIm1IyfWjpxYO3Ji7cjJtSMn146cXDtycu3IybUjJ9eOnFw7cnLtyMm1IyfXjpy2duS0tSOnrR05be3IaWtHTls7ctrakdPWjpy2duS0tSOnrx05fe3I6WtHTl87cvoXjJyrWt+8umlny+iY5hhRECMLYrSvHkNv8uh5mM6PAjwWlpt6i4e1rnJs7eq2GKbVhOk1YUZJmFs8rP2SMFITRmvCWE0Yrwlzi0do0se1MFkTptWE6TVhRkkYvQkF8hSm98UwUhNGa8JYTRivCRM1YW5BAbPjdyluvhym1YTpNWFGSZhbvD3oS8LcggKmp7cB+1gMozVhrCaM14SJmjBZE6bdOEzkYpheE2aUhLnFe4Q89Pj9sIcth5GaMFoTxmrC3IICPqZTmPYkzGVrOXtfq7bT5NH++EUuD0kFMakkJtWISXViUgOY1C3eEXT7pISYlBKTMmJSRKIHkehBJHoQiR5EogeR6EkkehKJnuVIiHb8LQTRT6s7HT6nlLyUygd5TsfGefYbH89SahMvJeGlpLyUvvJ05RjGb7FyzfmpQk79Gm1s/s2scfrFrHZ25cFLKXkpNV5KnZfSwKXUJ15KUp5SHn8/sPRcTEl5KRkvJeelFLyUkpdS46VUTm+djl8XH76wXUxp4FIaEy8l4aWkvJSMl5LzUrqJT6nznrNcXnWMrAnTasL0mjC3oOFVO9Ru8YaQLwkjNWG0JozVhPGaMFETJmvCtJowvSZMDQWkhgJSQwGpoYDUUEBqKCA1FJAaCkgNBaSGAlJDAa2hgNZQQGsooDUUqHnDitW8YcVq3rBiNW9YMa2hgNZQwGooYDUUsBoKWA0FrIYCVkMBq6GA1VDAaihgNRTwGgp4DQW8hgJeQwGvoYDXUMBrKOA1FPAaCngNBaKGAlFDgaihQNRQIGooEDUUiBoKRA0FooYCUUOBrKFA1lAgayiQNRTIGgpkDQWyhgJZQ4GsoUDWUKDVUKDVUKDVUKDVUKDVUKDVUKDVUKDVUKDVUKDVUKDXUKDXUKDXUKDXUKDXUKDXUKDXUKDXUKDXUKDXUGDUUGDUUGDUUGDUUGDUUGDUUGDUUGDUUGDUUKBm76DX7B30mr2DXrN30Gv2DvrkNWGiJkzWhGk1YXpNmBoK1Owd9Jq9g16zd9Br9g56zd5Br9k76DV7B71m76DX7B30mr2DXrN30Gv2DnrN3kGv2TvoNXsHvWbvoNfsHfSavYNes3fQa/YOes3eQa/ZO+g1ewe9Zu+g1+wd9Jq9g16zd9BrNvV5zaY+r9nU5zWb+rxmU5877mVY7riXYXn9206vp9R5KdW/Mmz+zfeptpRS/XtOr6ckvJSUl1L5G05zfp9Aqi+m5LyUgpdS8lJqvJQ6LyXcCx89cS989MS98NET98JHT+Ol5LyUgpdS8lJqvJQ6LyUevXmv63Xe63qd97pebzx6Nx69G4/ejUfvxqN349G7keh9+EnvWw7/dvnrVT89CJLTUiIfruZw0PKXpdcOkjUH6ZqD7K8ddPjBHsqR8e3yxgZpx9cW6nQ6Vnw6HHz48b9vfnn75vt3P348HHL/r7++/+HT2w/vH3/89L+f//iXQ+P/Aw=="},{"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":3,"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":"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f/V5x8qD+rxj5UF13rF2xcy5LMe8MlXnHcxfqfMO5q/UeQfzV+q8EmzesfyVzM95pZZ/x9oH8oV5x/JX+rxj+St93rH8lTpvGctf6fOO5a/0ecfyV/q8Y/krfV4JNm8wf1WC+auxdmp9Yd5g/mqs/VT1ecfaIvWFeYP5q7E2Mn1h3mD+aqztRl+YN5i/GmtT0BfmDeavxtq684V5Y/mr9N496I5/ZP2Jf2T7iX+k/MQ/sv/AP/LezbyOf2T+iX/kb7eQ63RsrbOuIsp/snM+/6Oa8/JpI55dKkcv23n0si2L9tnTfpz2/PgiaEfPxxP6s5TfzuNAk0HTQiOgaaFZQNNCs4KmhWYDTQtNAU0LzQ6aBpo0gaaFZgZNCw1uuIkGN9xEI6BpocENN9HghptocMNNNLjhJhrccAtNxg030eCGm2hww000uOEmGgFNCw1uuIkGN9xEgxtuosENN9HghltoBDfcRIMbbqLBDTfR4IabaAQ0LTS44SYa3HATDW64iQY33ESDG26hWXDDTTS44SYa3HATDW64iUZA00KDG26iwQ030eCGm2hww000uOEWmhU33ESDG26iwQ030eCGm2gENC00uOEmGtxwEw1uuIkGN9xEgxtuodlww000uOEmGtxwEw1uuIlGQNNCgxtuosENN9HghptocMNNNLjhFpqCG26iwQ030eCGm2hww000ApoWGtxwEw1uuIkGN9xEgxtuosENt9DsuOEmGtxwEw1uuIkGN9xEI6BpocENN9HghptocMNNNLjhJhrccANNnnDDTTS44SYa3HATDW64iUZA00KDG26iwQ030eCGm2hww000uOEWmhk33ESDG26iwQ030eCGm2gENC00uOEmGtxwEw1uuIkGN9xEgxtuoeFddG00uOEmGtxwEw1uuIlGQNNCgxtuosENN9HghptocMNNNLjhFhreRddGgxtuosENN9HghptoBDQtNLjhJhrccBMNbriJBjfcRIMbbqHhXXRtNLjhJhrccBMNbriJRkDTQoMbbqLBDTfR4IabaHDDTTS44RYa3kXXRoMbbqLBDTfR4IabaAQ0LTS44SYa3HATDW64iQY33ESDG26h4V10bTS44SYa3HATDW64iUZA00KDG26iwQ030eCGm2hww000uOEWGt5F10aDG26iwQ030eCGm2gkKpok8nFwnrJyHjLJMaNM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"},{"name":"lookup_validity","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"consumer","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"inner_hash","type":{"kind":"field"},"visibility":"private"}],"return_type":{"abi_type":{"kind":"boolean"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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"}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"00000000000000000000000000000000000000000000000000000000aad5fd6b"},{"kind":"string","value":"PublicKeyNote"}],"kind":"tuple"}],"storage":[{"fields":[{"name":"signing_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":"field"}},{"name":"signing_pub_key_y","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrAccount::constructor_parameters"}}],"kind":"struct","path":"SchnorrAccount::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":"SchnorrAccount::entrypoint_parameters"}}],"kind":"struct","path":"SchnorrAccount::entrypoint_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrAccount::verify_private_authwit_abi"}]}},"file_map":{"101":{"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"},"107":{"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"},"115":{"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"},"116":{"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"},"117":{"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"},"118":{"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"},"119":{"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"},"123":{"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"},"125":{"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"},"126":{"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"},"127":{"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"},"135":{"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"},"136":{"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"},"137":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_nullifier_membership_witness.nr","source":"use dep::protocol_types::{\n abis::nullifier_leaf_preimage::{NullifierLeafPreimage, NULLIFIER_LEAF_PREIMAGE_LENGTH},\n constants::NULLIFIER_TREE_HEIGHT, utils::arr_copy_slice\n};\n\n// INDEX_LENGTH + NULLIFIER_LEAF_PREIMAGE_LENGTH + NULLIFIER_TREE_HEIGHT\nglobal NULLIFIER_MEMBERSHIP_WITNESS: Field = 24;\n\nstruct NullifierMembershipWitness {\n index: Field,\n leaf_preimage: NullifierLeafPreimage,\n path: [Field; NULLIFIER_TREE_HEIGHT],\n}\n\nimpl NullifierMembershipWitness {\n pub fn deserialize(fields: [Field; NULLIFIER_MEMBERSHIP_WITNESS]) -> Self {\n let leaf_preimage_fields = arr_copy_slice(fields, [0; NULLIFIER_LEAF_PREIMAGE_LENGTH], 1);\n Self {\n index: fields[0],\n leaf_preimage: NullifierLeafPreimage::deserialize(leaf_preimage_fields),\n path: arr_copy_slice(\n fields,\n [0; NULLIFIER_TREE_HEIGHT],\n 1 + NULLIFIER_LEAF_PREIMAGE_LENGTH\n )\n }\n }\n}\n\n#[oracle(getLowNullifierMembershipWitness)]\nunconstrained fn get_low_nullifier_membership_witness_oracle(\n _block_number: u32,\n _nullifier: Field\n) -> [Field; NULLIFIER_MEMBERSHIP_WITNESS] {}\n\n// Nullifier here refers to the nullifier we are looking to get non-inclusion proof for (by proving that a lower\n// nullifier's next_value is bigger than the nullifier)\nunconstrained pub fn get_low_nullifier_membership_witness(block_number: u32, nullifier: Field) -> NullifierMembershipWitness {\n let fields = get_low_nullifier_membership_witness_oracle(block_number, nullifier);\n NullifierMembershipWitness::deserialize(fields)\n}\n\n#[oracle(getNullifierMembershipWitness)]\nunconstrained fn get_nullifier_membership_witness_oracle(\n _block_number: u32,\n _nullifier: Field\n) -> [Field; NULLIFIER_MEMBERSHIP_WITNESS] {}\n\n// Nullifier here refers to the nullifier we are looking to get non-inclusion proof for (by proving that a lower\n// nullifier's next_value is bigger than the nullifier)\nunconstrained pub fn get_nullifier_membership_witness(block_number: u32, nullifier: Field) -> NullifierMembershipWitness {\n let fields = get_nullifier_membership_witness_oracle(block_number, nullifier);\n NullifierMembershipWitness::deserialize(fields)\n}\n"},"138":{"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"},"140":{"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"},"141":{"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"},"142":{"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"},"145":{"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"},"146":{"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"},"148":{"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"},"149":{"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"},"151":{"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"},"152":{"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"},"153":{"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"},"155":{"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"},"158":{"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"},"160":{"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"},"176":{"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"},"178":{"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"},"195":{"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"},"210":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier_leaf_preimage.nr","source":"global NULLIFIER_LEAF_PREIMAGE_LENGTH: u32 = 3;\n\nuse crate::{\n abis::{read_request::ScopedReadRequest, side_effect::Readable}, hash::compute_siloed_nullifier,\n merkle_tree::leaf_preimage::{LeafPreimage, IndexedTreeLeafPreimage}, traits::{Empty, Hash}\n};\n\nstruct NullifierLeafPreimage {\n nullifier : Field,\n next_nullifier :Field,\n next_index : u32,\n}\n\nimpl Empty for NullifierLeafPreimage {\n fn empty() -> Self {\n Self {\n nullifier : 0,\n next_nullifier : 0,\n next_index : 0,\n }\n }\n}\n\nimpl Hash for NullifierLeafPreimage {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0\n } else {\n crate::hash::poseidon2_hash(self.serialize())\n }\n }\n}\n\nimpl LeafPreimage for NullifierLeafPreimage {\n fn get_key(self) -> Field {\n self.nullifier\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl IndexedTreeLeafPreimage for NullifierLeafPreimage {\n fn get_key(self) -> Field {\n self.nullifier\n }\n\n fn get_next_key(self) -> Field {\n self.next_nullifier\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl Readable for NullifierLeafPreimage {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n let siloed_value = compute_siloed_nullifier(read_request.contract_address, read_request.value());\n assert_eq(self.nullifier, siloed_value, \"Value of the nullifier leaf does not match read request\");\n }\n}\n\nimpl NullifierLeafPreimage {\n pub fn is_empty(self) -> bool {\n (self.nullifier == 0) & (self.next_nullifier == 0) & (self.next_index == 0)\n }\n\n pub fn serialize(self) -> [Field; NULLIFIER_LEAF_PREIMAGE_LENGTH] {\n [self.nullifier, self.next_nullifier, self.next_index as Field]\n }\n\n pub fn deserialize(fields: [Field; NULLIFIER_LEAF_PREIMAGE_LENGTH]) -> Self {\n Self { nullifier: fields[0], next_nullifier: fields[1], next_index: fields[2] as u32 }\n }\n}\n\nimpl Eq for NullifierLeafPreimage {\n fn eq(self, other: Self) -> bool {\n (self.nullifier == other.nullifier) &\n (self.next_nullifier == other.next_nullifier) &\n (self.next_index == other.next_index)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = NullifierLeafPreimage::empty();\n let serialized = item.serialize();\n let deserialized = NullifierLeafPreimage::deserialize(serialized);\n assert(item.eq(deserialized));\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"},"245":{"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"},"251":{"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"},"252":{"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"},"255":{"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"},"257":{"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"},"263":{"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"},"264":{"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) = 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#[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 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"},"276":{"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"},"280":{"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"},"292":{"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"},"294":{"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"},"393":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_account_contract/src/main.nr","source":"mod public_key_note;\n\n// Account contract that uses Schnorr signatures for authentication.\n// The signing key is stored in an immutable private note and should be different from the encryption/nullifying key.\ncontract SchnorrAccount {\n use dep::std;\n\n use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, PrivateContext, PrivateImmutable};\n use dep::aztec::encrypted_logs::encrypted_note_emission::encode_and_encrypt_note_with_keys;\n use dep::authwit::{\n entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions,\n auth_witness::get_auth_witness, auth::{compute_authwit_nullifier, compute_authwit_message_hash}\n };\n use dep::aztec::{hash::compute_siloed_nullifier, keys::getters::get_current_public_keys};\n use dep::aztec::oracle::get_nullifier_membership_witness::get_low_nullifier_membership_witness;\n\n use crate::public_key_note::{PublicKeyNote, PUBLIC_KEY_NOTE_LEN};\n\n #[aztec(storage)]\n struct Storage {\n // docs:start:storage\n signing_public_key: PrivateImmutable<PublicKeyNote>,\n // docs:end:storage\n }\n\n // Constructs the contract\n #[aztec(private)]\n #[aztec(initializer)]\n fn constructor(signing_pub_key_x: Field, signing_pub_key_y: Field) {\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 // docs:start:initialize\n let mut pub_key_note = PublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this_keys.npk_m.hash());\n storage.signing_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 // docs:end:initialize\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update default_entrypoint.ts file\n #[aztec(private)]\n #[aztec(noinitcheck)]\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 // docs:start:entrypoint\n // Load public key from storage\n let storage = Storage::init(context);\n // docs:start:get_note\n let public_key = storage.signing_public_key.get_note();\n // docs:end:get_note\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 signature of the payload bytes\n let verification = std::schnorr::verify_signature_slice(\n public_key.x,\n public_key.y,\n signature,\n outer_hash.to_be_bytes(32)\n );\n assert(verification == true);\n // docs:end:entrypoint\n true\n }\n\n /**\n * @notice Helper function to check validity of private authwitnesses\n * @param consumer The address of the consumer of the message\n * @param message_hash The message hash of the message to check the validity\n * @return True if the message_hash can be consumed, false otherwise\n */\n unconstrained fn lookup_validity(consumer: AztecAddress, inner_hash: Field) -> pub bool {\n let public_key = storage.signing_public_key.view_note();\n\n let message_hash = compute_authwit_message_hash(consumer, context.chain_id(), context.version(), inner_hash);\n\n let witness: [Field; 64] = get_auth_witness(message_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n let valid_in_private = std::schnorr::verify_signature_slice(\n public_key.x,\n public_key.y,\n signature,\n message_hash.to_be_bytes(32)\n );\n\n // Compute the nullifier and check if it is spent\n // This will BLINDLY TRUST the oracle, but the oracle is us, and\n // it is not as part of execution of the contract, so we are good.\n let nullifier = compute_authwit_nullifier(context.this_address(), inner_hash);\n let siloed_nullifier = compute_siloed_nullifier(consumer, nullifier);\n let lower_wit = get_low_nullifier_membership_witness(context.block_number(), siloed_nullifier);\n let is_spent = lower_wit.leaf_preimage.nullifier == siloed_nullifier;\n\n !is_spent & valid_in_private\n }\n}\n"},"394":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_account_contract/src/public_key_note.nr","source":"use dep::aztec::prelude::{AztecAddress, NoteHeader, NoteInterface, PrivateContext};\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 PUBLIC_KEY_NOTE_LEN: Field = 3;\n// PUBLIC_KEY_NOTE_LEN * 32 + 32(storage_slot as bytes) + 32(note_type_id as bytes)\nglobal PUBLIC_KEY_NOTE_BYTES_LEN: Field = 3 * 32 + 64;\n\n// Stores a public key composed of two fields\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 PublicKeyNote {\n x: Field,\n y: Field,\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<PUBLIC_KEY_NOTE_LEN, PUBLIC_KEY_NOTE_BYTES_LEN> for PublicKeyNote {\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 PublicKeyNote {\n pub fn new(x: Field, y: Field, npk_m_hash: Field) -> Self {\n PublicKeyNote { 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"},"50":{"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"},"64":{"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"},"65":{"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"},"66":{"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"},"67":{"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"},"69":{"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"},"75":{"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"},"76":{"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"},"77":{"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"},"79":{"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"},"93":{"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"}}}
1
+ {"transpiled":true,"noir_version":"0.33.0+47457412d9534885d98ff5ca22e9ec4f4b72f9c4","name":"SchnorrAccount","functions":[{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(noinitcheck)"],"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"},{"name":"cancellable","type":{"kind":"boolean"},"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":"H4sIAAAAAAAA/+y9B3hV1bo1HElC770oIL2TmYSE3pugIKD0mkCQLiC9KUhXegepCgoKUgQEBQEFAelVelF6ExCk/2t97pyzT07u+c+9jLFZ48nazzM/drbnrm+97xzjHeOdc5WX/P7+fFDZz++Lqn9/f8ka/p5/41kje4zfov/1/h4Qy2/xY/m/TRrLb8lj+S1lLL+ljuW3DNYoH+O3bLH877LH8tursfyWI5bf8sTyW75YfisQSw4KxvJb4Vj+b4vG8r8LiuW34Fj+b0Nj+d8Vi+W38Fj+b0vE8r8rGctvZWL5vy0Xy/+ufCy/VYzl/7ZyLP+7KrH8Vi2W36p7/vX+RP9d3vNvSFBYaGib8OA2JsS0CgouEVG8WFBosYiw4qa4KVa8WOvg4iEhbYqHFg8vEVEiPKiECQ1pY6KKlQiJCvr7syfeP48V9Fyf4Ejmee79P5+nMTF/ieZTgNe52nl46vme1++f3/N5fd/r+d9E/9/ts/7eb40D1jgY75+/R3/8Y+Qg6Pk+Jj/wWPvi4ebmEAxDQUHM/BUAHms/MH+HRfJXEHisA8D8HQHmL7bacMirNhz2+n7E6/vBGLXhqPX3r9Y4Zo3jPqgNhYDHOgqcmxMi2C4MPNavwPydFMlfEeCxjgHzd4pcG0541YCTXt9PeX0/HqM2nLb+PmONs9Y454PaUBR4rNPAuTkvgu0g4LHOAPP3m0j+DPBYZ4H5+51cG8571YDfvL7/7vX9XIzacMH6+6I1Llnjsg9qQzDwWBeAc3NFBNshwGNdBObvqkj+QoHHugTM3zVybbjiVQOuen2/5vX9cozacN36+4Y1blrjlg9qQzHgsa4D5+YPEWyHAY91A5i/22Rs/+GF4dte3296fb8VA9t3rL/vWuNPa9yL98919v+0Tmev80Z/L+73P6/T3bf+/ssaD6zx0Ae8KQE81n3gvD8S4U1J4LH+AubvsUj+SgGP9QCYvyfkuvPIqzY89vr+xOv7wxi14an197N4f0/CS/782lAaeKynwLmJ56+B7TLAYz0D5s9fJH9lgcfy88flL8CfWxtsfEfXAH+v7wFe31/y/9faEGj9Hd8aCayR0Ae1oRzwWIHAuUkkgu3ywGPFB+YvsUj+KgCPlQCYvyTk2pDIqwYk9vqexOt7whi1Ian1dzJrJLdGCh/UhorAYyUFzk1KEWxXAh4rGTB/qUTyVxl4rOTA/KUm14aUXjUgldf31F7fU8SoDWmsv9NaI5010vugNlQBHisNcG4yiGC7KvBYaYH5y0jGdgYvDGf0+p7O63v6GNjOZP2d2RpZrPGy/3+3Tmdf2xj9vbrf/7xO94p1vKzWyGaN7P/h2K94nV9Wr+/ZvL5nj3Her1p/57BGTmvk+g/HftXrGDm8vuf0+p4rxrFzW3/nsUZea+T7D8fO7XWMPF7f83p9zxfj2PmtvwtYo6A1Cv2HY+f3OkYBr+8Fvb4XinHswtbfRaxR1BpB/+HYhb2OUcTre1Gv70Exjm2sv4OtEWKN0P8SJ3e8vmfy/59xUsz6b2HWCLdGcR/UV4PjoSkGrA8lyPWhhNcchHl9D/f6XjzGvJe0/i5ljdLWKPMf5r2k1zFKeX0v7fW9TIxjl7X+LmfHbI0K/+HYZb2OUc7re3mv7xViHLui9Xcla1S2RpX/cOyKXseo5PW9stf3KjGOXdX6u5o1qlvjtf9w7Kpex6jm9b261/fXYhy7hvV3TWu8bo03YuFCPM+/5T3/Bj3fx+Txw+G3FpBX3tfN28fNHiMP6OvRa8POPTiYeZ5v/p/P04TF/CU2zNb21jG/2K+bfzMGZutYf9e1Rj1rvOWD+o28br4OsH6/7a/hj5HXzdcF5q++SP6Q183XA+avAdk/vO1VG+p7fW/g9f2tGLWhofV3I2s0tkYTH9QG5HXzDYFz01QE28jr5hsB89dMJH/I6+YbA/PXnFwbmnrVgGZe35t7fW8Soza0sP5uaY1W1ojwQW1AXjffAjg3kSLYRl433xKYv9Yi+UNeN98KmL825NoQ6VUDWnt9b+P1PSJGbYiy/m5rjXes0c4HtQF53XwUcG7ai2Abed18W2D+OojkD3nd/DvA/HUk14b2XjWgg9f3jl7f28WoDZ2svztbo4s13vVBbUBeN98JODddRbCNvG6+MzB/3UTyFw48Vhdg/rqTa0NXrxrQzet7d6/v78aoDe9Zf/ewRk9r9PJBbSgOPNZ7wLnpLYJt5L0VPYD56yOSP+S9FT2B+etLrg29vWpAH6/vfb2+94pRG/pZf/e3xgBrDPRBbUDet9EPODeDyHMzyGsO+nt9H+D1fWCMuXnf+vsDawy2xpBY5ga9j/YhLAemDfM8h/7fz7N10H8xVx96zYl9L8s/9uq9vg+NMVfDrL+HW2OENUb6gEdlgccaBuTRKBGNQN6HMByYv9Ei+SsPPNYIYP4+ItfxUV61YbTX94+8vo+MURs+tv4eY42x1hjng9pQAXisj4FzM14E2xWBxxoDzN8EkfxVAh5rLDB/E8m1YbxXDZjg9X2i1/dxMWrDJOvvydaYYo2pPqgNlYHHmgScm2ki2EbehzAZmL/pIvlD3ocwBZi/GeTaMM2rBkz3+j7D6/vUGLVhpvX3LGt8Yo3ZPqgN1YDHmgmcmznkuZnjNQezvL5/4vV9doy5mWv9Pc8a862xwAe9+ae43jyKeZ6f/d/PMyTov5irT73m5H2v73O9vn8WY64WWn8vssbn1vjCM1eBMeKP7VMeku8gk8DrmIs9pF3i+fdLz79fef5d6vl3meffr/09Jxn9r/1D9hgnGs8PO4kvAYP/iiRMMYEb9Hwfs8wfm7+Efv8s0C95Jj4aoEu8vn/p+W5vCC63vq/w/xucCfxiByc67uXg4hr9WelPPGH74OjjrgICgBX3Kv9/Jhh03CBfgm0FCWzf+BNP+BsC2FY7HGx23KsJYIvtXJ83/lWec0Ufdw0OrP/v1i37dTleKf3nsUNNcHCICQ23Ti3IOsfWkcWD2xRvVaxYqxLFgluHto4KDgouFhbVJsg6t9YlQktYP4eayFZBQVFBrSKiTLGnMY/XqnikFXWYtdlh/T9RxVoXt8IOLdE6tHhUSFBoaOugMBMaFFGieJvW4Sa8VYmIYiHBraLCQoIiTbGQoPAS5il4zu3Y48UW93PmFH2e9vHWWhP0rTXWeVQ4YYxzj/6g+baO5JLAOQ/2zsV6D5i/i2lR7f/wJMZv3/n/u8Kg+9d1gKLaJurvz3pggf6ONLnxwPlDxvy917FM8ZDg4PAQ+39XvHWQCW0dGVw8OLh1RGhQZFCryOA2JUJNiajQ4NCQyNaREdYxW5mooKhWkSWiiv99Xr50KN+THMoGf+IJbyA4lI0Odyh23BtFHMp3nnNFH/cHMFiji7V93HgkvNptzBpCLjb5czEQ9Hyf/+eoGXFvdnjcLHe+BYz9ZJ7YN3mtzWz2+r7FE4M91nr9/q3X92iT86P170/W2OrjtZyvSeK1zZ94wtsI4vWzw8XLjvtnknj9T+B63jxsx4ErJLaV/e1eRFrq9f3H/7Cyv8P6e6c1frHGLn/+k2FqAXG1G7y8EC3euz0bBIGe+H1ReBYSCo/3JsQe6/h7rbHPGvutccAaB61xyBqHrXHEGket8as1jlnjuDVOWOOkNU5Z47Q1zljjrDXOWeO8NX6zxu/WuGCNi9a4ZI3L1rhijavWuGaN69a4YY2b1rhljT+scdsad6xx1xp/WuOeNe5b4y9rPLDGQ2s8ssZjuwu28WqNZ/5/g/Yla8Szhr81AqwRaI341khgjYTWSGSNxNZIYo2k1khmjeTR21W+WovYo7AWYYKCvHORwsP8lNHPnYpmg/0f7sX4zf4fJYxxUui1iD2wtYggY8fwvMf6x7NsAzTWIpAxp/qXY1n/21bBoWFtigWFtSlurYKWCI8qFh4U2SoqqnV4UGhkRFBERGhYUIgJiYoIDw6KCC5h/X9bok2xyP/3imWfrkWkCsBXVfuTOoB4wvbB0cdNE+BsO2fHncbLe4COS1mLSOk5V/Rx04LBGl2s7eMm8vOtAu4VVMB0Hvylj6mA6WJRwPQ+UMC9QAVMBywA6UUUEBlzBlEFzEBSwIwBxBPOSFDATA5XQDvuTCIKmN5zrujjZiYpYOYXoID7BBUwiwd/L8dUwCyxKODLPlDAfUAFzAIsAC+LKCAy5ldEFfAVkgJmDSCecFaCAmZzuALacWcTUcCXPeeKPm52kgJmfwEKuF9QAV/14C9HTAV8NRYFzOEDBdwPVMBXgQUgh4gCImPOKaqAOUkKmCuAeMK5CAqY2+EKaMedW0QBc3jOFX3cPCQFzPMCFPCAoALm9eAvX0wFzBuLAubzgQIeACpgXmAByCeigMiY84sqYH6SAhYIIJ5wAYICFnS4AtpxFxRRwHyec0UftxBJAQu9AAU8KKiAhT34KxJTAQvHooBFfKCAB4EKWBhYAIqIKCAy5qKiCliUpIBBAcQTDiIooHG4AtpxGxEFLOI5V/Rxg0kKGPwCFPCQoAKGePAXGlMBQ2JRwFAfKOAhoAKGAAtAqIgCImMuJqqAxUgKGBZAPOEwggKGO1wB7bjDRRQw1HOu6OMWJylg8ReggIcFFbCEB38lYypgiVgUsKQPFPAwUAFLAAtASREFRMZcSlQBS5EUsHQA8YRLExSwjMMV0I67jIgClvScK/q4ZUkKWPYFKOARQQUs58Ff+ZgKWC4WBSzvAwU8AlTAcsACUF5EAZExVxBVwAokBawYQDzhigQFrORwBbTjriSigOU954o+bmWSAlZ+AQp4VFABq3jwVzWmAlaJRQGr+kABjwIVsAqwAFQVUUBkzNVEFbAaSQGrBxBPuDpBAV9zuALacb8mooBVPeeKPm4NkgLWeAEK+KugAtb04O/1mApYMxYFfN0HCvgrUAFrAgvA6yIKiIz5DVEFfIOkgLUCiCdci6CAtR2ugHbctUUU8HXPuaKP+yZJAd98AQp4TFAB63jwVzemAtaJRQHr+kABjwEVsA6wANQVUUBkzPVEFbAeSQHfCiCe8FsEBXzb4Qpox/22iALW9Zwr+rj1SQpY/wUo4HFBBWzgwV/DmArYIBYFbOgDBTwOVMAGwALQUEQBkTE3ElXARiQFbBxAPOHGBAVs4nAFtONuIqKADT3nij5uU5ICNn0BCnhCUAGbefDXPKYCNotFAZv7QAFPABWwGbAANBdRQGTMLUQVsAVJAVsGEE+4JUEBWzlcAe24W4koYHPPuaKPG0FSwIgXoIAnBRUw0oO/1jEVMDIWBWztAwU8CVTASGABaC2igMiY24gqYBuSAkYFEE84iqCAbR2ugHbcbUUUsLXnXNHHfYekgO+8AAU8JaiA7Tz4ax9TAdvFooDtfaCAp4AK2A5YANqLKCAy5g6iCtiBpIAdA4gn3JGggJ0croB23J1EFLC951zRx+1MUsDOL0ABTwsqYBcP/t6NqYBdYlHAd32ggKeBCtgFWADeFVFAZMxdRRWwK0kBuwUQT7gbQQG7O1wB7bi7iyjgu55zRR/3PZICvvcCFPCMoAL28OCvZ0wF7BGLAvb0gQKeASpgD2AB6CmigMiYe4kqYC+SAvYOIJ5wb4IC9nG4Atpx9xFRwJ6ec0Ufty9JAfu+AAU8K6iA/Tz46x9TAfvFooD9faCAZ4EK2A9YAPqLKCAy5gGiCjiApIADA4gnPJCggIMcroB23INEFLC/51zRx32fpIDvvwAFPCeogB948Dc4pgJ+EIsCDvaBAp4DKuAHwAIwWEQBkTEPEVXAISQF/DCAeMIfEhRwqMMV0I57qIgCDvacK/q4w0gKOOwFKOB5QQUc7sHfiJgKODwWBRzhAwU8D1TA4cACMEJEAZExjxRVwJEkBRwVQDzhUQQFHO1wBbTjHi2igCM854o+7kckBfzoBSjgb4IK+LEHf2NiKuDHsSjgGB8o4G9ABfwYWADGiCggMuaxogo4lqSA4wKIJzyOoIDjHa6AdtzjRRRwjOdc0cedQFLACS9AAX8XVMCJHvxNiqmAE2NRwEk+UMDfgQo4EVgAJokoIDLmyaIKOJmkgFMCiCc8haCAUx2ugHbcU0UUcJLnXNHHnUZSwGkvQAEvCCrgdA/+ZsRUwOmxKOAMHyjgBaACTgcWgBkiCoiMeaaoAs4kKeCsAOIJzyIo4CcOV0A77k9EFHCG51zRx51NUsDZL0ABLwoq4BwP/ubGVMA5sSjgXB8o4EWgAs4BFoC5IgqIjHmeqALOIyng/ADiCc8nKOAChyugHfcCEQWc6zlX9HE/JSngpy9AAS8JKuBnHvwtjKmAn8WigAt9oICXgAr4GbAALBRRQGTMi0QVcBFJAT8PIJ7w5wQF/MLhCmjH/YWIAi70nCv6uItJCrj4BSjgZUEFXOLB35cxFXBJLAr4pQ8U8DJQAZcAC8CXIgqIjPkrUQX8iqSASwOIJ7yUoIDLHK6AdtzLRBTwS8+5oo/7NUkBv34BCnhFUAGXe/C3IqYCLo9FAVf4QAGvABVwObAArBBRQGTMK0UVcCVJAVcFEE94FUEBv3G4AtpxfyOigCs854o+7mqSAq5+AQp4VVAB13jwtzamAq6JRQHX+kABrwIVcA2wAKwVUUBkzN+KKuC3JAVcF0A84XUEBVzvcAW0414vooBrPeeKPu53JAX87gUo4DVBBfzeg78NMRXw+1gUcIMPFPAaUAG/BxaADSIKiIx5o6gCbiQp4A8BxBP+gaCAmxyugHbcm0QUcIPnXNHH3UxSwM0vQAGvCyrgFg/+foypgFtiUcAffaCA14EKuAVYAH4UUUBkzD+JKuBPJAXcGkA84a0EBdzmcAW0494mooA/es4VfdyfSQr48wtQwBuCCrjdg78dMRVweywKuMMHCngDqIDbgQVgh4gCImPeKaqAO0kK+EsA8YR/ISjgLocroB33LhEF3OE5V/Rxd5MUcPcLUMCbggq4x4O/vTEVcE8sCrjXBwp4E6iAe4AFYK+IAiJj3ieqgPtICrg/gHjC+wkKeMDhCmjHfUBEAfd6zhV93IMkBTz4AhTwlqACHvLg73BMBTwUiwIe9oEC3gIq4CFgATgsooDImI+IKuARkgIeDSCe8FGCAv7qcAW04/5VRAEPe84VfdxjJAU89gIU8A9BBTzuwd+JmAp4PBYFPOEDBfwDqIDHgQXghIgCImM+KaqAJ0kKeCqAeMKnCAp42uEKaMd9WkQBT3jOFX3cMyQFPPMCFPC2oAKe9eDvXEwFPBuLAp7zgQLeBirgWWABOCeigMiYz4sq4HmSAv4WQDzh3wgK+LvDFdCO+3cRBTznOVf0cS+QFPDCC1DAO4IKeNGDv0sxFfBiLAp4yQcKeAeogBeBBeCSiAIiY74sqoCXSQp4JYB4wlcICnjV4Qpox31VRAEvec4VfdxrJAW89gIU8K6gAl734O9GTAW8HosC3vCBAt4FKuB1YAG4IaKAyJhviirgTZIC3gognvAtggL+4XAFtOP+Q0QBb3jOFX3c2yQFvP0CFPBPQQW848Hf3ZgKeCcWBbzrAwX8E6iAd4AF4K6IAiJj/lNUAf8kKeC9AOIJ3yMo4H2HK6Ad930RBbzrOVf0cf8iKeBfL0AB7wkq4AMP/h7GVMAHsSjgQx8o4D2gAj4AFoCHIgqIjPmRqAI+Iing4wDiCT8mKOAThyugHfcTEQV86DlX9HGfkhTw6QtQwPuCCvgsGn+Bfv+qds9iUUD7f8RWwPtABXyGLACBGgqIjPmlQE0FfCmQo4DxAoknbB8cfVz/QGcroB23f+A/Eww6LkUB/Tznij5uQCBHAe3j+loB/xJUwEAP/uLHVED7P8RUwPg+UMC/gAoYCCwA8UUUEBlzAlEFTEBSwISBxBNOSFDARA5XQDvuRCIKGN9zrujjJiYpYOIXoIAPBBUwiQd/SWMqYJJYFDCpDxTwAVABkwALQFIRBUTGnExUAZORFDB5IPGEkxMUMIXDFdCOO4WIAib1nCv6uClJCpjyBSjgQ0EFTOXBX+qYCpgqFgVM7QMFfAhUwFTAApBaRAGRMacRVcA0JAVMG0g84bQEBUzncAW0404nooCpPeeKPm56kgKmfwEK+EhQATN48JcxpgJmiEUBM/pAAR8BFTADsABkFFFAZMyZRBUwE0kBMwcSTzgzQQGzOFwB7biziChgRs+5oo/7MkkBX34BCvhYUAFf8eAva0wFfCUWBczqAwV8DFTAV4AFIKuIAiJjziaqgNlICpg9kHjC2QkK+KrDFdCO+1URBczqOVf0cXOQFDDHC1DAJ4IKmNODv1wxFTBnLAqYywcK+ASogDmBBSCXiAIiY84tqoC5SQqYJ5B4wnkICpjX4Qpox51XRAFzec4Vfdx8JAXM9wIU8KmgAub34K9ATAXMH4sCFvCBAj4FKmB+YAEoIKKAyJgLiipgQZICFgoknnAhggIWdrgC2nEXFlHAAp5zRR+3CEkBi7wABXwmqIBFPfgLiqmARWNRwCAfKOAzoAIWBRaAIBEFRMZsRBXQkBQwOJB4wsEEBQxxuALacYeIKGCQ51zRxw0lKWDoC1BAvwA9BSzmwV9YTAUsFosChvlAAf0CcApYDFgAwkQUEBlzuKgChpMUsHgg8YSLExSwhMMV0I67hIgChnnOFX3ckiQFLPkCFPAlQQUs5cFf6ZgKWCoWBSztAwV8CaiApYAFoLSIAiJjLiOqgGVIClg2kHjCZQkKWM7hCmjHXU5EAUt7zhV93PIkBSz/AhQwnqACVvDgr2JMBawQiwJW9IECxgMqYAVgAagoooDImCuJKmAlkgJWDiSecGWCAlZxuALacVcRUcCKnnNFH7cqSQGrvgAF9BdUwGoe/FWPqYDVYlHA6j5QQH+gAlYDFoDqIgqIjPk1UQV8jaSANQKJJ1yDoIA1Ha6Adtw1RRSwuudc0cd9naSAr78ABQwQVMA3PPirFVMB34hFAWv5QAEDgAr4BrAA1BJRQGTMtUUVsDZJAd8MJJ7wmwQFrONwBbTjriOigLU854o+bl2SAtZ9AQoYKKiA9Tz4eyumAtaLRQHf8oECBgIVsB6wALwlooDImN8WVcC3SQpYP5B4wvUJCtjA4Qpox91ARAHf8pwr+rgNSQrY8AUoYHxBBWzkwV/jmArYKBYFbOwDBYwPVMBGwALQWEQBkTE3EVXAJiQFbBpIPOGmBAVs5nAFtONuJqKAjT3nij5uc5ICNn8BCphAUAFbePDXMqYCtohFAVv6QAETABWwBbAAtBRRQGTMrUQVsBVJASMCiSccQVDASIcroB13pIgCtvScK/q4rUkK2PoFKGBCQQVs48FfVEwFbBOLAkb5QAETAhWwDbAARIkoIDLmtqIK2JakgO8EEk/4HYICtnO4AtpxtxNRwCjPuaKP256kgO1fgAImElTADh78dYypgB1iUcCOPlDAREAF7AAsAB1FFBAZcydRBexEUsDOgcQT7kxQwC4OV0A77i4iCtjRc67o475LUsB3X4ACJhZUwK4e/HWLqYBdY1HAbj5QwMRABewKLADdRBQQGXN3UQXsTlLA9wKJJ/weQQF7OFwB7bh7iChgN8+5oo/bk6SAPV+AAiYRVMBeHvz1jqmAvWJRwN4+UMAkQAXsBSwAvUUUEBlzH1EF7ENSwL6BxBPuS1DAfg5XQDvufiIK2Ntzrujj9icpYP8XoIBJBRVwgAd/A2Mq4IBYFHCgDxQwKVABBwALwEARBUTGPEhUAQeRFPD9QOIJv09QwA8croB23B+IKOBAz7mijzuYpICDX4ACJhNUwCEe/H0YUwGHxKKAH/pAAZMBFXAIsAB8KKKAyJiHiirgUJICDgsknvAwggIOd7gC2nEPF1HADz3nij7uCJICjngBCphcUAFHevA3KqYCjoxFAUf5QAGTAxVwJLAAjBJRQGTMo0UVcDRJAT8KJJ7wRwQF/NjhCmjH/bGIAo7ynCv6uGNICjjGo4AxlQ89hwuB7wTM7jnOWOvcx1ljvDUmWGOiNSZZY7I1plhjqjWmWWO6NWZYY6Y1ZlnjE2vMtsYca8y1xjxrzLfGAmt8ao3PrLHQGous8bk1vrDGYmssscaX1vjKGks9Suidy7Ee4fP+bVwsv42P5bcJsfw2MZbfJsXy2+RYfpsSy29TY/ltWiy/TY/ltxmx/DYzlt9mxfLbJ7H8NjuW3+bE8tvcWH6bF8tv82P5bUEsv30ay2+fxfLbwlh+WxTLb5/H8tsXsfy2OJbflsTy25ex/PZVLL8tjcVkBXj+Le/5N+j5Pv/C2eetX2MDcYZtHFCvGubnGLaYc/E8MdtzMR6Sv7/ndcLzHyvYkz8zETgXjZw8F6H/OE8z6fliDvKK2Ux+nmMF/0v+zBTgXDR25lwExThPM/X/GHNY1L/FbKb9345VPJb8menAuWjitLkoHut5mhn/+5jD/4eYzcz/7bHC/8f8mVnAuWjqnLkI/g/naT7538Qc/h9jNrP/+2NF/v/kz8wBzkUzJ8xF+P/veZq5/13MQf9FzGbef3OsoP8qf2Y+cC6av9i5KPZfnqdZ8P8Xc+h/HbP59D8eKzTqf5E/8xlwLlq8qLkI/1+dp1n4P8dc/H8Zs1n0PxyrRNT/On/mc+BctPT9XAT9H87TfBFbzEH/p5jN4n8/lvk/5s8sAc5FK1/ORev/83maL/815pDniNl85XWs4Kjnyp9ZCpyLCB/NRdDzfQxwfcAA+1vj3Z8971xEiswFsA8yQB9vmgHnorXIXAD9ngH6FdMSOBdtROYCqGsGWJdNJHAuokhzgb4wAchfA8SfQebP3n+I3qRfbCXwqef7Eq/vKQP+uWeR3uv7y17fc3h9z+f1vYjX91Cv7yW9vpf3+l7V6/vrXt/ren1v6PW9udf31l7f23t9f9fre0+v7/29vg/2+j7C6/sYr++TvL7P8Po+1+v7Qq/vX3p9X+H1fa3X9w1e33/0+r7D6/ter++Hvb6f8Pp+zuv7Ja/vN7y+3/X6/tDru5/XnlR8r+9Jvb6n9vqe0et7Vq/vuby+F/D6HuT1Pczre2mv7xW9vlf3+l7L6/tbXt8be31v6fU9yut7R6/v3by+9/b6PtDr+4de36MvfMru9/fHe58u5j6e9z6f9z6g9z6h9z6i9z6j9z6k9z6l9z6m9z6n9z6o9z6p9z6q9z6r9z6s9z6t9z6u9z6v9z6w9z6x9z6y9z6z9z609z619z629z639z649z659z669z579D78skC/f/m85Pm3vOffoOf7mGXAfsg+VV9d+FTWD6sF0Z+vA4knbB8cfdzlwAlkxb3cC8Sg41KvLNwNvGhgRSDuvGKbn+c9v3Ke+UHnsBzwHFcGYnGDxrg9xysD8XOzKhBb5KIvvLGPm93v70vG7d/i+/37x8kFm3meZUTOs7TIee7253L3eTlmH8dezEDXvwDgscqT5toPG3NQTAzBwYQUgkDPxLvF75/n6RY/7Hm6xS/uFL94Xsf8xtPwrLZNIaPjKxfLpCE6AdSxlgO7Hm/n+k3gP5emoj9o8H4D7KjXkLu/oOf7mOjuz18ES897rLUOnw8bL2sJneS3pE7y28B/XSpG5oLVVa8L5AgKuh4jcb/e4bi352Q9Ya6/I+H+OyLuWTXge4evotnz/z0h7g0kDGwgYoDFh5754yYGevno0ovnPc+NwDoNnGvTKz+HQxuJHLIXMxh19AeBOvoDIe5NpDq66T9g4HnPOXohAn2JFGuB43nj3exwbNoLYgxObhHg5BZC3D+SOPkjsS5/Q/K3Pwlg4CdC3FtJGNhK1mZGb79NAAPbCHH/TMLAz0QM2FrAwMB2AQxsJ8S9g4SBHbGsuaP7np1xrO/ZSebVcgK+fiHh65f/Al9Bz/cxSHz9AlyX3UXK6S4ivuyLGRj+bbfD6/ZLpLj3xNH1hL0k7O8lYt+e/82EXOxzOAZKk7C/3+Fxryb1qgfi6HrFQRLnDxI5z+rbD5FycYis/Yye7bCA9jPiPhJH1yuOkrB/lIj9lSTt/1VA+xnYPxZH12mOk7B/3OuuHl/dhlnJDxtL9OdEIPGETwTij3sSuCjAivtk4D8TDDou9TbMXcCcniJfAPe851fZMz/oHFYGnuNphxdse45PEwr2GVLBPhPo+9swkQWbeZ4VRc6zgsh57iJz93k5VsXP+XciVSHNtR82Zv5tmEghsItfQr9/fXkLw8mvBJqfqL8/jEk00V+883HWc+7nAj3JiVaQsx618/7tHLkFXh8Iu9XhH29gOAt0eucCsROMrnQ2ec6SnDh4vttEzzc6B+cd7iTtOTpPiPs3kpP8jbz8fZiQi98Fln+OEOK+EMhxEejzvCgwP78S5ueSQNzHCHFfBsZtu+4i1jjjOZ7NdRv39r/2Er2NLTvPlz3fYxvH/8N/c4c73PHfj/9JI4Ke70PzSVcCcbXI31OLYn5Qx2flFpkD1jleRZ8jY7mTsSTcl3wfLaLJvEqIu5/I4+S9gfm8MV/DgdwAcWOQc0Eukib6eHGxSF5zepGMVvF4hOOWB5HwOjCJ3isn9nGzkyZeIa83XKdlbggUkZtOLyL28RhOa6CA07pJiHuQiNO6CSxGt4BOC4gbM8h1WhJF8lYcdVrBSEfwB8lp/aHntKB5ve06LXNboIjcYRcRhOO4Q3Acg0Ucxx0gKe86dG1nsOs4JIrF3TjqOEKQyvgnyXH8qec4oHm95zoOc0+giNx3ehGp6MdZ2/lQYG3nPiHuoSJO6z6wGP0FdFpA3JihrtOSKJJ/xVGnFYp0BA9ITuuBntOC5vWh67TMQ4Ei8khhbecRYcv4ERDsj3XATlNMBbA/jqOKWQxZ2Z+QFPOJnmJC8/rUVUzzVKCIPHO6Yto9bxU/Z7/hoQowXvspEcgJYTiYZ4Q1kxEOf3ORHbc9N+i4R4qsFT0DisNLOIwbIG7MSHetSEK0XopPFq2g5/uwHFoY0qHFAybR2/nax81OmniFvPrHlykiNIL6x3f+OQY4vYhU8OPsyn0ksCsXQHBaH4s4LW9gPm/MgUCnBcSN+dh1WhJFMjCOOq1wpCOIT3Ja8fWcFjSvCVynZRIIFJGE7CKCcBz2ScYjBv6855hIB+w0xVQAe6I4qpjFkZU9MUkxE+spJjSvSVzFNEkEikhSBcVMSlDMpEDFTOYqpgTYk8VRxSyBrOzJSYqZXE8xoXlN4SqmSSFQRFIqKGZKgmKmBCpmKlcxJcCeKo4qZitkZU9NUszUeooJzWsaVzFNGoEiklZBMdMSFDMtUDHTuYopAfZ0cVQxI5CVPT1JMdPrKSY0rxlcxTQZBIpIRgXFzEhQzIxAxczkKqYE2DPFUcWMRFb2zCTFzKynmNC8ZnEV02QRKCIvKyjmywTFfBmomK+4iikB9lfiqGK2Rlb2rCTFzKqnmNC8ZnMV02QTKCLZnV5E7BfNM+5KGidwV1J2wl1J40XuSsoOdDSvAu9KAuLGjHfvSpIokq86vUiy3queIz4WQAwnlINQJHOSXGFOjyu0n+1hF8z4fv/+Qeeokh+n4DMeCqxwnhVEznNXoMZ5+sXnnKcf9jyD4nkdM5eHuLnt2oNOyElr4ir7/Xt797xFrTLwWCeBT1/2LpC5vNrm6A96rSwX0FnmcbhA2nNuz5W/CJae91h5HT4fNl7yEgxLPpJhyedlWBJ6cZGRG9vArg385/Gf97hRf38i/WL5POexTfQX73zk94hCgfie5EQnMb9nwr1/K0BcH1zr6QZAAhLsAZnJDyycBeJjJxhNKJuk+ePDAPOPD2G+W60ldX8F4zs6bmPPUUFCMS1EKqaFiJy35383AQOFHY4BO+49hLiLCMS9jxB3UYG49xPiDhKI+wAhbgOM217RKmqNfJ7j2bXD5pH9717r3C9aw8aXnWv7/9+D1t+HPL+/iBH9UdGlYPCealG/f/+gjs/KbXB8559jiNO3C+wlYUYXOsnhe6p2zCGEuCeL7KmGABu4UOBKCxA3ZnJ+mSJJ21NVKJKhTi+S0Soej3Dc8iASFiN1qsWInapCXsNcp2XCBIpIuNOLiH08htOaJuC0wglxTxdxWuHAYlQc6LSAuDHTXaclUSSLx1GnFYx0BCVITquEntOC5rWk67RMSYEiUsrpd9bZoCxFcByzRBxHKSApSzt0bWeW6zgkikXpOOo4QpDKWIbkOMroOQ5oXsu6jsOUFSgi5ZxeRCr6cdZ2Zgus7ZQjxD1HxGmVAxaj8kCnBcSNmeM6LYkiWT6OOq1QpCOoQHJaFfScFjSvFV2nZSoKFJFKCms7lQhbxpWAYK+sA3aaYiqAvXIcVcxiyMpehaSYVfQUE5rXqq5imqoCRaSa04uIH+k+0/kCaxPVCHEvEFmbqAYsRtWBaxNA3JgF7tqERJGsHkedVhjSEbxGclqv6TktaF5ruE7L1BAoIjWdXkQq+HGc1kIBp1WTEPciEadVE1iMXgc6LSBuzCLXaUkUydfjqNMKRzqCN0hO6w09pwXNay3XaZlaAkWkttOLSG7SmtZiAadVmxD3EhGnVRtYjN4EOi0gbswS12lJFMk346jTKo50BHVITquOntOC5rWu67RMXYEiUs/pRcR+dDjDaS0VcFr1CHEvE3Fa9YDF6C2g0wLixixznZZEkXwrjjqtEkhH8DbJab2t57Sgea3vOi1TX6CINHB6EclFWtNaIeC0GhDiXinitBoAi1FDoNMC4sasdJ2WRJFs6PQiyXq/QaP4WAAxnFAjQpFsTHKFjYmu8BTpNbBNCAS1P/HA54l8SVJTh+PenpOmBNw3I+G+GRH3rBdGNQfjHh23Pf/NCXG3IGGgBREDLD6szh83MbCG1CSgX7LXElingXNtkPnz5lBLD4dUV0QuBjr/HFuR/A6cpBFA8KsCKkKge4xUAVRr3IkGqwKqtQCg2iDPUXWitvs7/xyjnL5utJe0ZtBWoHdqS/DN75B6p3fIu4lRhFy0E8BAO0Lc7UkYaE/EAIsP6wT6ZwYG1ov0zx2ALQRwrs16Uv/cwYtDfv8Dl543px1xOQ1VNWcdBVx0J1ZbBr4sxzQF7oR3dsFpOguAs4vTO4fTnjcVo6vnBoc7BtstdyHEvVHEMbwLdAzAuTYbBZzmuwTcdCV1G129zjX6Axa2MKSwdXOvNzXdBIStu4jrCkeC8z0XnOY9AXD2EAFnMSQ4e+KCDlEFZ08BcPZyektwkLSZ0FtgIbk3wdr1IVm7PuTNhF6EXPQVwEBfQtz9SBjoR95MYPBhs0CLx8DAFpGlgf7ApQHgXJstpM2E/rFsJji5RR7gGj0zQMDoDXS60TtEMnqDBER+EKHAv08S+ffJRm8gIRcfCGDgA0Lcg0kYGEw2egw+bBUwegwMbBMxekOARg8412YbyegN4Ru9Vkij96G73Gw+FDB6Q0WWmyOQ4BzmgtMMEwDncBFwRiLBOcIFpxkhAM6RIuCEyvood/3GjBIA52inr9/YvftoQv/ykUDv/hEh7o9JvfvHYn3HGPfiYjNGoECNjYt9xzgXnGacADjHa4DTBCHBOcHtO8wEAXBOFAEn9J6hSS44zSQBcE4WkfUoJDinuE2xmSIAzqkKTfFUQnM4TaApnkaIezqpKZ5Ob4qx1m6GW6DMDIECNVOhQM0kEHWWQIGaRYj7E1KB+oRfoEKRBWq2a+/NbIECNUek94TenDbXBaeZKwDOeSLghF5QP98Fp5kvAM4FIuCEyvqnbt9hPhUA52cKfcdnBP+9UKDvWEiIexGp71gk1nd87m7Ims8FCtQXcbHvWOyC0ywWAOcSEXBCr7P60u07zJcC4PxKBJzQ66yWuuA0SwXAuUwEnCWQ4PzabYrN1wLgXK7QFC8nNIcrBJriFYS4V5Ka4pX8phhq7Va5BcqsEihQ3ygUqG8IRF0tUKBWE+JeQypQa/gFqg2yQK117b1ZK1CgvhWx99CLgde54DTrBMC5XgOcwdALQb9zwWm+EwDn9yKVEyrrG9y+w2wQAOdGhb5jI8F//yDQd/xAiHsTqe/YJNZ3bHY3ZM1mgQK1JS72HT+64DQ/CoDzJ5G+A3qd1Va37zBbBcC5TQSc0OusfnbBaX4WAOd2EXCGIMG5w22KzQ4BcO5UaIp3EprDXwSa4l8Ice8iNcW76E0x1trtdguU2S1QoPYoFKg9BKLuFShQewlx7yMVqH3xeW/zWBvo57ee8Faf/Q7HgP0mo/0EDBwQwP4BQtwHSdg/SMS+Xf8aEXJxSAADhwhxHyZh4DARAyw+7BB4mxEDAztF3mZ0BIdVA5xrs5P0NqMjHg7Zfxfx+/cPes7QeL0Y6PxzPIqs+6oTFSHQmf3qTlSQaS0wUcfcibJW4f2df47Hnb7WYfd7xwl+54SA1z9BiPskyeufJHr9oxYG8hJycUoAA6cIcZ8mYeA0ud9j8GG3QL/HwMAekX7vDLDfA8612UPq986I93sdBdzpWdblEWiSnsOdaDFVQJ0TANR5BRd9nqAi+x2unpdIzvGAiHr+BlRP4FybAwKu6zcCbn4nOe/fvc41+oM+9wu4cw9TFaMLAmJ0UcXdXMKdaLgqoC4JAOqyCqCu4E60uCqgrggA6qqCXb5KkP9rAguO1whxXyfZHvu4Cf3+9YM+9xu4cy+hWlRuCBSVmwpF5SaBXLcEisotQtx/kIrKH7HcVoA+99u4c2+lWlRuCxSVOwpF5Q6BXHcFispdQtx/korKnz4oKvdw5x6hWlTuCRSV+wpF5T6BXH8JFJW/CHE/IBWVBz4oKg9x5x6pWlQeChSVRwpF5RGBXI8FispjQtxPSEXliQ+KylPcubdWLSpPBYrKM4Wi8oxALr8Ezi8q9jmi434pAaeo2MfNTgLpcdI1HvEEMBCPgAF/Egb8iRhg8eGwwHUqDAwcEbm+KQCHVQOca3OEdHVwQAK+OQvE5bSNqjkLTOD8c4yfgMNROKAS4E40ShVQCQQAlZAFqHjQEzXQ9zwkAgatCs5EAuBMrAHOIOhj1JPggg5RBWcSAXAmRZ8jY50kKaFPSCbQIycjxJ2c1CMnj8XfO7lApcDlIVS1QKUQKFApRdQT+p6HVC44TSoBcKYW6TugDwNO4/YdJo0AONOKgBP6nod0LjhNOgFwpo+LTXEGXNCyd3llEABnRoWmOCOhOcwk0BRnIsSdmdQU28eNeZeXk61dFnfVzmQRKFAvKxSolwlEfUWgQL1CiDsrqUBlpa/aYe19NrdAmWwCBSq7QoHKTiDqqwIF6lVC3DlIBSoHv0CFIQtUTrdAmZwCBSqXQoHKRSBqboEClZsQdx5SgcrDL1DhyAKV1y1QJq9AgcqnUKDyEYiaX6BA5SfEXYBUoArwC1RxZIEq6BYoU1CgQBVSKFCFCEQtLFCgChPiLkIqUEX4BSoSWaCKulvMpqhAgQoSuf6hNRKcxgWnMQLgDBYBJ/T6hxAXnCZEAJyhIuCEynoxt+8wxQTAGabQd4QR/He4QN8RToi7OKnvKC7Wd5RwbwowJQQKVMm42HeUcsFpSgmAs7QGOIODkeAs4/YdpowAOMuKgDMECc5yLjhNOQFwlo+LTXEF944VU0EAnBUVmuKKhOawkkBTXIkQd2VSU1yZfscK1tpVcVftTBWBAlVVoUBVJRC1mkCBqkaIuzqpQFWnr9ph7f1rboEyrwkUqBoKBaoGgag1BQpUTULcr5MK1Ov8AgW95/cNt0CZNwQKVC2FAlWLQNTaAgWqNiHuN0kF6k1+gYLe81vHLVCmjkCBqqtQoOoSiFpPoEDVI8T9FqlAvcUvUNB7ft92C5R5W6BA1VcoUPUJRG0gUKAaEOJuSCpQDfkFqhWyQDVyt5hNI4EC1Vjk+ocIJDibuOA0TQTA2VQEnNDrH5q54DTNBMDZXAScUFlv4fYdpoUAOFsq9B0tCf67lUDf0YoQdwSp74gQ6zsi3ZsCTKRAgWodF/uONi44TRsBcEZpgDME+m7Htm7fYdoKgPMdEXAaJDjbueA07QTA2T4uNsUd3DtWTAcBcHZUaIo7EprDTgJNcSdC3J1JTXFn+h0rWGvXxV21M10ECtS7CgXqXQJRuwoUqK6EuLuRClQ3+qod1t53dwuU6S5QoN5TKFDvEYjaQ6BA9SDE3ZNUoHryCxT0nt9eboEyvQQKVG+FAtWbQNQ+AgWqDyHuvqQC1ZdfoKD3/PZzC5TpJ1Cg+isUqP4Eog4QKFADCHEPJBWogfwCBb3nd5BboMwggQL1vkKBep9A1A8ECtQHhLgHkwrUYH6Bgr4Eaoi7xWyGCBSoD0WufyiBBOdQF5xmqAA4h4mAE3r9w3AXnGa4ADhHiIATKusj3b7DjBQA5yiFvmMUwX+PFug7RhPi/ojUd3wk1nd87N4UYD4WKFBj4mLfMdYFpxkrAM5xIuCEvttxvNt3mPEC4JwgAs4oJDgnuuA0EwXAOSkuNsWT3TtWzGQBcE5RaIqnEJrDqQJN8VRC3NNITfE0/h0rUGs33V21M9MFCtQMhQI1g0DUmQIFaiYh7lmkAjWLv2oHtfefuAXKfCJQoGYrFKjZBKLOEShQcwhxzyUVqLn0AhUKved3nlugzDyBAjVfoUDNJxB1gUCBWkCI+1NSgfqUX6Cg9/x+5hYo85lAgVqoUKAWEoi6SKBALSLE/TmpQH3OL1DQe36/cAuU+UKgQC1WKFCLCURdIlCglhDi/pJUoL7kFyjoS6C+creYzVcCBWqpxhZzaDgSnMtccJplAuD8WgSc0OsflrvgNMsFwLlCBJxQWV/p9h1mpQA4Vyn0HasI/vsbgb7jG0Lcq0l9x2qxvmONe1OAWSNQoNbGxb7jWxec5lsBcK4TASf03Y7r3b7DrBcA53ci4GyNBOf3LjjN9wLg3BAXm+KN7h0rZqMAOH9QaIp/IDSHmwSa4k2EuDeTmuLN9DtWsNZui7tqZ7YIFKgfFQrUjwSi/iRQoH4ixL2VVKC28lftoPZ+m1ugzDaBAvWzQoH6mUDU7QIFajsh7h2kArWDX6Cg9/zudAuU2SlQoH5RKFC/EIi6S6BA7SLEvZtUoHbzCxT0nt89boEyewQK1F6FArWXQNR9AgVqHyHu/aQCtZ9eoIpB7/k94BYoc0CgQB1UKFAHCUQ9JFCgDhHiPkwqUIf5BQr6Eqgj7hazOSJQoI5qbDEXK4YE568uOM2vAuA8JgJO6PUPx11wmuMC4DwhAk6orJ90+w5zUgCcpxT6jlME/31aoO84TYj7DKnvOCPWd5x1bwowZwUK1Lm42Hecd8FpzguA8zcRcELf7fi723eY3wXAeUEEnBFIcF50wWkuCoDzUlxsii+7d6yYywLgvKLQFF8hNIdXBZriq4S4r5Ga4mv0O1aw1u66u2pnrgsUqBsKBeoGgag3BQrUTULct0gF6hZ/1Q5q7/9wC5T5Q6BA3VYoULcJRL0jUKDuEOK+SypQd/kFCnrP759ugTJ/ChSoewoF6h6BqPcFCtR9Qtx/kQrUX/wCBb3n94FboMwDgQL1UKFAPSQQ9ZFAgXpEiPsxqUA95hco6D2/T9wCZZ4IFKinCgXqKYGozwQK1DNC3PZKNipu7wJlHze7379+sAUqDPoSqJeAeVAtUMgcsM4xHuEcGeAMQYLT3wWn8RcAZ4AIOKHXPwS64DSBAuCMLwJOqKwnwAUt23ckEABnQvQ5MvoO+yTR/jsROHBG35GIEHdiUt+RWKzvSILLg+xNAUkEClTSuNh3JHPBaZIJgDO5CDih73ZM4fYdJoUAOFOKgLMEEpypXHCaVALgTB0Xm+I0uKBl71hJIwDOtApNcVpCc5hOoClOR4g7Pakpto/LvWMFa+0yuKt2JoNAgcqoUKAyEoiaSaBAZSLEnZlUoDLzV+2g9j6LW6BMFoEC9bJCgXqZQNRXBArUK4S4s5IKVFZ+gYLe85vNLVAmm0CByq5QoLITiPqqQIF6lRB3DlKBysEvUNB7fnO6BcrkFChQuRQKVC4CUXMLFKjchLjzkApUHn6Bgt7zm9ctUCavQIHKp1Cg8hGIml+gQOUnxF2AVKAK0AtUOPQlUAXdLWZTUKBAFdLYYg43SHAWdsFpCguAs4gIOKHXPxR1wWmKCoAzSAScUFk3bt9hjAA4gxX6jmCC/w4R6DtCCHGHkvqOULG+o5h7U4ApJlCgwuJi3xHugtOEC4CzuAg4oe92LOH2HaaEADhLioAzHAnOUi44TSkBcJaOi01xGfeOFVNGAJxlFZrisoTmsJxAU1yOEHd5UlNcnn7HCtbaVXBX7UwFgQJVUaFAVSQQtZJAgapEiLsyqUBV5q/aQe19FbdAmSoCBaqqQoGqSiBqNYECVY0Qd3VSgarOL1DQe35fcwuUeU2gQNVQKFA1CEStKVCgahLifp1UoF7nFyjoPb9vuAXKvCFQoGopFKhaBKLWFihQtQlxv0kqUG/yCxT0nt86boEydQQKVF2FAlWXQNR6AgWqHiHut0gF6i1+gYK+BOptd4vZvC1QoOqLbDFHIcHZwAWnaSAAzoYa4CwOvf6hkQtO00gAnI1FKidU1pu4fYdpIgDOpgp9R1OC/24m0Hc0I8TdnNR3NBfrO1q4NwWYFgIFqmVc7DtaueA0rQTAGSHSd0Df7Rjp9h0mUgCcrUXAWQwJzjYuOE0bAXBGxcWmuK17x4ppKwDOdxSa4ncIzWE7gaa4HSHu9qSmuD39jhWstevgrtqZDgIFqqNCgepIIGongQLViRB3Z1KB6kxftcPa+y5ugTJdBArUuwoF6l0CUbsKFKiuhLi7kQpUN36Bgt7z290tUKa7QIF6T6FAvUcgag+BAtWDEHdPUoHqyS9Q0Ht+e7kFyvQSKFC9FQpUbwJR+wgUqD6EuPuSClRffoGC3vPbzy1Qpp9AgeqvUKD6E4g6QKBADSDEPZBUoAbyCxT0JVCD3C1mM0igQL0vcv1DayQ4P3DBaT4QAOdgEXBCr38Y4oLTDBEA54ci4ITK+lC37zBDBcA5TKHvGEbw38MF+o7hhLhHkPqOEWJ9x0j3pgAzUqBAjYqLfcdoF5xmtAA4P9IAZwnoux0/dvsO87EAOMeIgDMECc6xLjjNWAFwjouLTfF4944VM14AnBMUmuIJhOZwokBTPJEQ9yRSUzyJfscK1tpNdlftzGSBAjVFoUBNIRB1qkCBmkqIexqpQE2jr9ph7f10t0CZ6QIFaoZCgZpBIOpMgQI1kxD3LFKBmsUvUNB7fj9xC5T5RKBAzVYoULMJRJ0jUKDmEOKeSypQc/kFCnrP7zy3QJl5AgVqvkKBmk8g6gKBArWAEPenpAL1Kb9AQe/5/cwtUOYzgQK1UKFALSQQdZFAgVpEiPtzUoH6nF+goC+B+sLdYjZfCBSoxSLXP0QgwbnEBadZIgDOL0XACb3+4SsXnOYrAXAuFQEnVNaXuX2HWSYAzq8V+o6vCf57uUDfsZwQ9wpS37FCrO9Y6d4UYFYKFKhVcbHv+MYFp/lGAJyrNcDZCvpuxzVu32HWCIBzrQg4DRKc37rgNN8KgHNdXGyK17t3rJj1AuD8TqEp/o7QHH4v0BR/T4h7A6kp3kC/YwVr7Ta6q3Zmo0CB+kGhQP1AIOomgQK1iRD3ZlKB2kxftcPa+y1ugTJbBArUjwoF6kcCUX8SKFA/EeLeSipQW/kFCnrP7za3QJltAgXqZ4UC9TOBqNsFCtR2Qtw7SAVqB79AQe/53ekWKLNToED9olCgfiEQdZdAgdpFiHs3qUDt5hco6D2/e9wCZfYIFKi9CgVqL4Go+wQK1D5C3PtJBWo/v0BBXwJ1wN1iNgcECtRBkesfSiDBecgFpzkkAM7DIuCEXv9wxAWnOSIAzqMi4ITK+q9u32F+FQDnMYW+4xjBfx8X6DuOE+I+Qeo7Toj1HSfdmwLMSYECdSou9h2nXXCa0wLgPCMCTui7Hc+6fYc5KwDOcyLgjEKC87wLTnNeAJy/xcWm+Hf3jhXzuwA4Lyg0xRcIzeFFgab4IiHuS6Sm+BL/jhWotbvsrtqZywIF6opCgbpCIOpVgQJ1lRD3NVKBusZftYPa++tugTLXBQrUDYUCdYNA1JsCBeomIe5bpAJ1i16gIqD3/P7hFijzh0CBuq1QoG4TiHpHoEDdIcR9l1Sg7vILFPSe3z/dAmX+FChQ9xQK1D0CUe8LFKj7hLj/IhWov/gFCnrP7wO3QJkHAgXqoUKBekgg6iOBAvWIEPdjUoF6zC9Q0JdAPXG3mM0TgQL1VGOLOSIcCc5nLjjNMwFw+iXSACf0+oeXErngfCmR888xngg4obLujwtatu/wFwBnAPocGX2HfZJo/x0IDpzRdwQS4o4PjNu777CPm93vXz9OLlAJcHmQvSkggUCBSiiintC+I5ELTpNIAJyJRcAJfbdjErfvMEkEwJlUBJytkeBM5oLTJBMAZ/K42BSnwAUte8dKCgFwplRoilMSmsNUAk1xKkLcqUlNsX1c7h0rWGuXxl21M2kEClRahQKVlkDUdAIFKh0h7vSkApWev2oHtfcZ3AJlMggUqIwKBSojgaiZBApUJkLcmUkFKjO/QEHv+c3iFiiTRaBAvaxQoF4mEPUVgQL1CiHurKQClZVfoKD3/GZzC5TJJlCgsisUqOwEor4qUKBeJcSdg1SgctALVCT0nt+cboEyOQUKVC6FApWLQNTcAgUqNyHuPKQClYdfoKAvgcrrbjGbvAIFKp/GFnNkMSQ487vgNPkFwFlABJzQ6x8KuuA0BQXAWUgEnFBZL+z2HaawADiLKPQdRQj+u6hA31GUEHcQqe8IEus7jHtTgDECBSo4LvYdIS44TYgAOENFwAl9t2Mxt+8wxQTAGSYCzggkOMNdcJpwAXAWj4tNcQn3jhVTQgCcJRWa4pKE5rCUQFNcihB3aVJTXJp+xwrW2pVxV+1MGYECVVahQJUlELWcQIEqR4i7PKlAleev2kHtfQW3QJkKAgWqokKBqkggaiWBAlWJEHdlUoGqzC9Q0Ht+q7gFylQRKFBVFQpUVQJRqwkUqGqEuKuTClR1foGC3vP7mlugzGsCBaqGQoGqQSBqTYECVZMQ9+ukAvU6v0BB7/l9wy1Q5g2BAlVLoUDVIhC1tkCBqk2I+01SgXqTXqBaQ18CVcfdYjZ1BApUXY0t5tYhSHDWc8Fp6gmA8y0RcEKvf3jbBad5WwCc9UXACZX1Bm7fYRoIgLOhQt/RkOC/Gwn0HY0IcTcm9R2NxfqOJu5NAaaJQIFqGhf7jmYuOE0zAXA2FwEn9N2OLdy+w7QQAGdLEXCWQIKzlQtO00oAnBFxsSmOdO9YMZEC4Gyt0BS3JjSHbQSa4jaEuKNITXEU/Y4VrLVr667ambYCBeodhQL1DoGo7QQKVDtC3O1JBao9f9UOau87uAXKdBAoUB0VClRHAlE7CRSoToS4O5MKVGd+gYLe89vFLVCmi0CBelehQL1LIGpXgQLVlRB3N1KB6sYvUNB7fru7Bcp0FyhQ7ykUqPcIRO0hUKB6EOLuSSpQPfkFCnrPby+3QJleAgWqt0KB6k0gah+BAtWHEHdfUoHq61WgGBjIER+fi34CGOhHwEB/Egb6EzGw0sLA+kB8LgY4HAN5LQwMIGBgoAD2BxLiHkTC/iAi9ll14Fj+uImB4/nxxszPgwXkeb6Pw6oBzrVB5s+bQ+/H0uSgc/oBMKergTldQ8rpB8S6tMvS45METR5MqtGD/wt8BT3fxyDx5Z2H583pEFJOh5B9f2GC7z/lcN2zPV8rQtynRXTvQyCHgHNtTjscN//vvVAE3JwT4EskIe7zInwZCuQLcK7NeQHctCHg5oIIboY5tM6q5G84MH/rgPlbT+olhhO93l5SLzGC5HtH+KCXQOJrBLCXGEnK6Ugivuxa34lQ60c5fB3V5lRRQtyXBNYO3yXEfVlEm0YDawdwrs1lkjaN9lonZvRVQQQsXRPwx90JcV8X4dBHQA4B59pcF1iHMATc3BLgSw9C3H+I8OVjIF+Ac21U8jcGmL/NwPxtIWn2GKLfP0jqJ8eSep+xPugnkfgaC+wnx5FyOs4H+8njgTndCuTsNhJnxxM5e4jE2QkkfE3wAWeR+JoA5OxEUk4nkteAhhL82SSBawiHE+KeLBD3SELcUwSunfyIEPdUEuenkjk/lpCLaQLYH0+Ie7pA3BMJcc8QiHsyIe6ZArVuGiHuWaRaN4t8nfgsQi4+IeXiE3Ldn0PIxWyBOjCPEPccgbgXEOKeK1D/FhLinkfi/Dwy578g5GK+APaXEOJeIBD3V4S4PxWIexkh7s8Eat0KQtwLSbVuIdnrrSbkYhEpF4vIdf9bQi4+F6gD6wlxfyEQ9/eEuBcL1L8fCHEvIXF+CZnzWwi5+FIA+z8R4v5KIO5thLiXCsS9nRD3MoFa9wsh7q9Jte5rstfbS8jFclIulvvguosVwH3xHflxx9qZn5PTFUR82ddc7CfgayUJXyt9cN0FEl8rgdddrCLldBX5Pv6jBHzddfj1wL9bceclxP2nyPWs3wA5BJxr86fDcWPz5VcCbv5yeNwXSHx5IMKX1UC+AOfaPBDgyzECbh6L4GZNIkfWRqOSv7XA/O0G5m8PqZdYS/R6R0nXcH9L8r3f+qCXQOLrW2AvsY6U03XkXuIsodavF7iP/xKBV08dru322tdvhPl+JqJN3wFrB3CuzTOSNn1Hvo//IgFL8Qo4m0OXSX2VfwENDn0P5BBwro2/w3Fj8+UyATcbBPaerhHi3kjyW/Zxo19QzMjFLUIufiDl4gfyPtxdQi42kXKxiZyLvwi52EzKxWZyLh4TcrGFlIstPtif/RGouYeBvvUIybf+SMTXcdKayk8kfP3kgzUVJL5+Aq6pbCXldCt5TSV+Ajy+tjnc59lxJyTE/bNA3IkJcW8X8PXJCHHvIHF+B5nzKQm52CmA/dSEuH8RiDstIe5dAnGnJ8S9W6DWZSLEvYdU6/aQ1zBeIeRiLykXe8m96quEXOwj5WIfORe5CbnYT8rFfnIu8hNycYCUiwPkXBQm5OIgKRcHyT4xiJCLQwK+IZgQ92GBuEMJcR8R8EvhhLiPkjh/lMz5koRc/CqA/dKEuI8JxF2WEPdxgbjLE+I+IVDrKhHiPkmqdSfJvWE1Qi5OkXJxiux7axJycZqUi9PkXNQm5OIMKRdnyLmoR8jFWVIuzpJz0YCQi3OkXJwj+8TGhFycF/ANTQlx/yYQd3NC3L8L+KVWhLgvkDh/gcz51oRcXBTAfhQh7ksCcb9DiPuyQNztCXFfEah1nQhxXyXVuqvk3rArIRfXSLm4Rva9PQi5uE7KxXVyLvoQcnGDlIsb5FwMIOTiJikXN8m5+ICQi1ukXNwi+8QPCbn4Q8A3DCPEfVsg7hGEuO8I+KXRhLjvkjh/l8z5MYRc/CmA/XGEuO8JxD2BEPd9gbgnEeL+S6DWTSXE/YBU6x6Qe8OZhFw8JOXiIdn3ziHk4hEpF4/IuVhAyMVjUi4ek3OxiJCLJ6RcPCHnYgkhF09JuXhK9olLCbl4JuAbvibE7ZfY+XGvIMT9ksPjtjn/DSHueIk5nLePm92Px/m1hFz4C2B/HSHuAIG4vyPEHSgQ9wZC3PEFat0mQtwJSLXOPi6zN/yJkIuEpFwkTMz1vdsJuUhEykUici52EXKRmJSLxORc7CPkIgkpF0nIuThEyEVSUi6Skn3iUUIukgn4hmOEuJMLxH2CEHcKAb90mhB3ShLnU5I5f46Qi1QC2P+NEHdqgbgvEOJOIxD3JULcaQVq3VVC3OlItS4duTe8SchFelIu0pN97x1CLjKQcpGBnIv7hFxkJOUiIzkXjwi5yETKRSZyLp4RcpGZlIvMZJ8YLyE+F1kEfEMAIe6XBeKOT4j7FQG/lIgQd1YS57OSOZ+UkItsAthPTog7u0DcKQlxvyoQd2pC3DkEal06Qtw5SbUuJ7k3zETIRS5SLnKRfe8rhFzkJuUiNzkXrxJykYeUizzkXOQm5CIvKRd5ybnIT8hFPlIu8pF9YiFCLvIL+IYihLgLCMQdRIi7oIBfCiHEXYjE+UJkzocRclFYAPvFCXEXEYi7JCHuogJxlybEHSRQ68oR4jakWmfIvWElQi6CSbkIJvveaoRchJByEULORU1CLkJJuQgl56I2IRfFSLkoRs5FPUIuwki5CCP7xPqEXIQL+IaGhLiLC8TdmBB3CQG/1IwQd0kS50uSOd+SkItSAtiPIMRdWiDu1oS4ywjEHUWIu6xArWtHiLscqdaVI/eGnQi5KE/KRXmy7+1KyEUFUi4qkHPRg5CLiqRcVCTnog8hF5VIuahEzsUAQi4qk3JRmewT3yfkooqAbxhMiLuqQNwfEuKuJuCXhhPirk7ifHUy50cRcvGaAPY/IsRdQyDuMYS4awrEPY4Q9+sCtW4iIe43SLXuDXJvOJWQi1qkXNQi+96ZhFzUJuWiNjkXcwi5eJOUizfJuVhAyEUdUi7qkHOxiJCLuqRc1CX7xMWEXNQT8A1fEuJ+SyDupYS43xbwS8sJcdcncb4+mfOrCLloIID91YS4GwrEvZYQdyOBuNcR4m4sUOu+J8TdhFTrmpB7w02EXDQl5aIp2ff+RMhFM1IumrGf2UrIRXNSLpqzn9lKyEULUi5asJ/ZSshFS1IuWpJ94kFCLloJ+IbDhLgjBOI+Sog7UsAvHSfE3ZrE+dZkzp8i5KKNAPbPEOKOEoj7HCHutgJx/0aI+x2BWneREHc7Uq1rR+4NrxJy0Z6Ui/Zk33uTkIsOpFx0YD+zlZCLjqRcdGQ/s5WQi06kXHRiP7OVkIvOpFx0JvvEp4RcdBHwDX6J8HG/KxB3PELcXQX8UiAh7m4kzncjcz4hIRfdBbCfmBD3ewJxJyXE3UMg7uSEuHsK1LpUhLh7kWpdL3JvmI6Qi96kXPQm+95MhFz0IeWiD/uZrYRc9CXloi/7ma2EXPQj5aIf+5mthFz0J+WiP9kn5iPkYoCAbyhAiHugQNyFCHEPEvBLRQlxv0/i/PtkzgcTcvGBAPZDCXEPFog7jBD3EIG4ixPi/lCg1pUixD2UVOuGknvDcoRcDCPlYhjZ91Yi5GI4KRfD2c9sJeRiBCkXI9jPbCXkYiQpFyPZz2wl5GIUKRejyD6xLiEXowV8w1uEuD8SiLs+Ie6PBfxSI0LcY0icH0PmfFNCLsYKYL85Ie5xAnG3JMQ9XiDuCELcEwRqXRtC3BNJtW4iuTdsR8jFJFIuJpF9bydCLiaTcjGZ/cxWQi6mkHIxhf3MVkIuppJyMZX9zFZCLqaRcjHNKxfRH3/wuU/Hnbs5lh93rOP5OTmdTsTXScuTDCDgawYJXzP+C3wFPd/HIPHlnYfnzelMUk5nenIa6BnxvLCW0S/2D+Y8ioVwjhtWjHPc8FCt44aVIB23Dem44ZzjBgeR5i2Cc9wQ1vm21spvmCHlgVR3aHkIIx23mNZxaTxWwy+rrrN0M9j2Ei/FODbay76EO1ZQzHOEn2w18Mkyzm8IoTGYRTKxs/5Dk/TcLzbw5CIeOMf2MVHn+Akpr5/4oOECYsJ8Amy4ZpNyOpvY0NtYXUXg7RxSLuaQebuKwNtVQN7OJeV1rg94C8SEmQvk7TxSTueReWsvxKA5MJ+Ui/lk3tq5QPN2JhBjC0h5XeAD3gIxYRYAc/opKaefei1wxvf790YkNgwHPd/HIL3DP07SDiCBjwLI74edjOjPZ4mJJ/xZYvxxFwIRzop7YeJ/Jhh03H9ZEkFX4tnAnC4CVrPY5ud5z6+AZ37QOSwAPMfPHX4JkT3HnxPc0RckxfnCS3Hs3+L7/fvHyQWbeZ75RM4zr8h5ziZz93k5VtA6RoAfvv4FAI9VkDTXftiY+cvSSCGwi19Cr4n3I5IA0TpE/f1hTKCJ/uKdi8Ue07YksSch0eqx2KN03r8t8UFf+Onzu7JgD+vNYqDDWwKeXHSFs0mzmOTAwURp8ynJSX1JclJfki9++z0Qn4v4BZztpu2LSr8h7BEkKMBRUfQFpF8BO0bgXJsEDseNzZcLBL4kFuDLagJfkojwZSmQL8C5NkkEcLOGgJvkIrhZ5tA6m1wAN+sJuPna4at8tr5cJuhLSoH5/p4w36lE6sRyYJ0AzrVJJYCbDQTcrBC4oXgbIe6VAnH/TIh7lUDc2wlxfyMQ905C3KsF4v6FEPcagbh3EeJeKxD3bkLc3wrEfYgQ9zqBuA8T4l4vEPcRQtzfCcT9KyHu7wXiPkaIe4NA3McJcW8UiPsEIe4fBOI+T4h7k0DcvxHi3iwQ9++EuLcIxH2REPePAnFfIsT9k0DclwlxbxWI+woh7m0Ccf9BiPtngbhvE+LeLhD3HULcOwTi/pMQ906BuO8R4v5FIO77hLh3CcT9FyHu3QJxPyPEvUcgbj/Cta17BeJ+iRD3PoG4/Qlx7xeIO4AQ9wGBuAMJcR8UiDs+Ie5DAnEnI8R9WCDu5IS4jwjEnYIQ91GBuFMR4v5VIO7UhLiPCcSdhhD3cYG40xLiPiEQdxZC3CcF4n6ZEPcpgbhfIcR9WiDubIS4zwjEnZ0Q91mBuF8lxH1OIO4chLjPC8SdnxD3bwJxFyDE/btA3AUJcV8QiLswIe6LAnEXIcR9SSDuooS4LwvEHUSI+4pA3OGEuK8KxF2cEPc1gbhLEOK+LhB3KULcNwTiLk2I+6ZA3GUIcd8SiLssIe4/BOKuQoj7tkDcVQlx3xGIuxoh7rsCcb9GiPtPgbhrEOK+JxB3TULc9wXifp0Q918CcdcjxP1AIO63CHE/FIj7bULcjwTibkCI+7FA3A0JcT8RiLsRIe6nAnE3JsT9TCDuVoS4/ZI4P+4IQtwvCcQdSYg7nkDcbQhx+wvEHUWIO0Ag7raEuAMF4n6HEHd8gbi7EOJOIBD3u4S4EwrE3ZUQdyKBuLsT4k4sEPd7hLiTCMTdgxB3UoG4exLiTiYQ9wBC3MkF4h5IiDuFQNyDCHGnFIj7A0LcqQTiHkyIO7VA3EMIcacRiPtDQtxpBeIeTYg7nUDcHxHiTi8Q98eEuDMIxD2WEHdGgbjHEeLOJBD3eELcmQXinkCIOwswbvvtynbwZzzHs9+ZaL8Hzn6n17pEfn72u6S+s/61391jvy9mo/X9B2tsssZma2yxxlZr2O9Usd8vYr9rY4f1t/3uCfs9DPY7Cezn8++xfttrjX3W2G+NA9Y4aA37Gfb289ztZ5sftf62n/VtP/fafga0/Tzkk9Zvp6xx2hpnrHHWGufs//+t/2Y/P9d+luwF62/72ar2c0btZ27az5+8av12zRrXrXHDGjetccsa9jMa7ecV2s/uu2v9bT/Lzn6um/2MM/t5Xw+s3x5a45E1HlvjiTWeWsN+Jpb9fCj7WUnxrGE/O8h+jo79TBn7+SoJrJHQGomskdgaSayR1Br2M0js53HYz6ZIaQ37WQ32cwvse/jt+9nTWSO9NTJYI6M1Mlkjsx23Nez7n+17gbNaw7431r5P1L5n0r5/MKc1clkjtzXyWCOvNfJZw77Hzr7fzL73qpA17HuR7Pty7HtU7Ps1jDWCrRFijVBrFLNGmJ0va9jX99vXupe0hn3tt30dtH1NsH19bDl7T9YaFaxR0RqVrFHZGvY1pPb1lPa1hdWtYV9rZ193Zl+DZV+P9IY1almjtjXetEYda9S182wN+/oV+1qO+tawr22w9/ntPW97/7eJNZpao5k1mlujhTVaWsPeI7X3C+29s9bW3/Zekr2vYu8x2Ovt7azf2lujgzU6WqOTNTrb82P9N3t91l6r7GbPkfWvvY5lr+nY6xu9rN96W6OPNfpao581+lvDXgOw+2G7N3zf+tvuley+wfbQtp8cav02zBrDrTHCGiOtMcqeV+u/2f7D1uIx9txa/9p12q5ZNn8nWr9NssZka0yxxlRrTEvs948PuBbR3gf8MrAW+XtqUcwP6vik3JqXkzj/HF9BnyP6BPP7cQCatgDXJCBeKm5PDrzpK4AHpf0JIALzeWPOigO5AeLGIOeCXCRN9PHiYpHM6vAi+Q8VjwcO3D5meRAJswGTaOfP35NH+7jZORMvkdfsrtMy2QWKyKtOd1r28RhOK6OA03qV4LQyiTitV4FOKwfQaQFxYzK5TkuiSOaIo04rGOkIcpKcVk49pwXNay7XaZlcAkUkN7uIIBxHboLjeFnEceQGOo48Dl3bedl1HBLFIk8cdRwhSGXMS3IcefUcBzSv+VzHYfIJFJH8Tl/byefHWdvJKrC2k5/gtLKJOK38QKdVAOi0gLgx2VynJVEkC8RRpxWKdAQFSU6roJ7Tgua1kOu0TCGBIlJYYW3HPsl4xMCf9xyL6ICdppgKYC8SRxWzGLKyFyUpZlE9xYTmNchVTBMkUESM0xXT7nkL+v1NLGTgAcBjFQTGG0y+PQnhYAxhzSQHea0o6Pk+/++ivGBC3DlF1ooM0GGGANeKgLgxOd21IgnRComjzjcM6dBCSc43VM/5QvNazHW+pphAEQlz+q5cXj/OrlwegV25MILTyivitMKATisc6LSAuDF5XaclUSTD46jTCkc6guIkp1Vcz2lB81rCdVqmhEARKamwK1eSsCtXEqjkpdxdOQmwl4qjilkcWdlLkxSztJ5iQvNaxlVMU0agiJRVUMyyBMUsC1TMcq5iSoC9XBxVzBLIyl6epJjl9RQTmtcKrmKaCgJFpKKCYlYkKGZFoGJWchVTAuyV4qhitkJW9sokxaysp5jQvFZxFdNUESgiVRUUsypBMasCFbOaq5gSYK8WRxUzAlnZq5MUs7qeYkLz+pqrmOY1gSJSQ0ExaxAUswZQMWu6iikB9ppxVDEjkZX9dZJivq6nmNC8vuEqpnlDoIjUUlDMWgTFrAVUzNquYkqAvXYcVczWyMr+Jkkx39RTTGhe67iKaeoIFJG6Tr8raXZizl1JBQpgA2c4hbqEu5IKityVVBfoaOoB70oC4sYg50LVaSkUyXpOL5IKb4Z6i+S03vI4rUC/v4tQfL9//8CfsOvHKaKMB+0qnGdekfOcnVjjPIOTcM7TD3ueQfG8jvl2kr//rW+bHnRCFloTZ4ntvxXI53aRwGMtxIHLeBfIt71a0egPWijeBrq1BkC35udHeHKwdQx7rvxFsPS8x2ro8Pmw8dKQ0Ck1IhmWRl6GJaEXF70/6BzNA9SWqL8/kbGc7vMe20R/8c5FY48gNEniSUh0Aht7Jtv7tyaxFDn0I/zmPT+pgj3gMo2BBbNJEuzkoolkkzN6MoHzwXjsXit7jhnFpCmpmDTlrTObk1aFKhwfn4siDn/0YlMr5g8T4eMuSlp6QxuRZkDBB861Kepw3Nh8KULgS7AAX4YS+BIiwpfmQL4A59qECOBmGAE3YSK4aeHQOhsmgJtRBNy0TOJ8fQki6Etxgfn+iDDfJUTqRCtgnQDOtSkh4McMgS+lBfjyMYEvZUT4EgHkC3CuTRkB3Ewi4CbS4bpqxz2ZEHdrgbinEOJuIxD3NELcUQJxTyfE3VYg7hmEuN8RiHsmIe52AnHPJsTdXiDuOYS4OwjEPZcQd0eBuOcT4u4kEPcCQtydBeL+lBB3F4G4PyPE/a5A3J8T4u4qEPcXhLi7CcS9mBB3d4G4vyTE/Z5A3F8R4u4hEPdSQtw9BeJeRoi7FzBu+w4K+yrNfJ7j2deC2Pvb9l7lSOvc7T2y0da/9p6Evc46zvo+0Rr2Gp+93mWv/Uy1/rbXQux1AbtHtvvFWdZvn1jD7qHsfsL21vOsv22vafsu24PYerzQ+m2RNWyNsuu1XbuWWH/bXLZxbc+xHe/X1m/LE/n946NyHVhv8H2xxu/fP6jjk3JrkDlgnWMfp9/yZd+CxABoeYffF2vH3IcQdwWR+2L7AC8c7gvcKAPixiDnglwkaffFKhTJvg4vkv9Q8XjgwBsCSdiPdGV4P96V4RJ57e86LdNfoIgMcLrTso/HcFqVBZzWAELcVUSc1gBgMRoIdFpA3JgqrtOSKJID46jTCkY6gkEkpzVIz2lB8/q+67TM+wJF5AN2EUE4jg8IjqO6iOP4AEjKwQ5d26nuOg6JYjE4jjqOEKQyDiE5jiF6jgOa1w9dx2E+FCgiQ52+tmNvczPWdmoIrO0MJcRdU8RpDQUWo2FApwXEjanpOi2JIjksjjqtUKQjGE5yWsP1nBY0ryNcp2VGCBSRkQprOyMJW8YjgWAfpQN2mmIqgH1UHFXMYsjKPpqkmKP1FBOa149cxTQfCRSRj52+NmE/xJ2xNlFLYG3iY0LctUXWJj4GFqMxwLUJIG5MbXdtQqJIjomjTisM6QjGkpzWWD2nBc3rONdpmXECRWS8052W/fohhtOqK+C0xhPirifitMYDi9EEoNMC4sbUc52WRJGcEEedVjjSEUwkOa2Jek4LmtdJrtMykwSKyGSnO636pDWt+gJOazIh7gYiTmsysBhNATotIG5MA9dpSRTJKXHUaRVHOoKpJKc1Vc9pQfM6zXVaZppAEZnudKc1m/QAq8YCTms6Ie4mIk5rOrAYzQA6LSBuTBPXaUkUyRlx1GmVQDqCmSSnNVPPaUHzOst1WmaWQBH5xOlO623SmlZzAaf1CSHuFiJO6xNgMZoNdFpA3JgWrtOSKJKznV4kFZ4YOIfktObwnJZZZOX188T4IjyXAHr7Ew98ngsT4441Lwm2GKHn2p6TeQTBnU/C/Xwi7huQTNeCJFzTFfR8H2PP/wJC3J+SMPApEQMsPkQ4/D2tLAxEirzf9zNgnQbOtUHmz5tDn3k4pLrKcDHQ+ee4EFn3VScqIr7zz3GRO1FBprXARH3uTlSQ2e7v/HP8wulrB/Z7pxg97mIBr7+Y4POWkLz+EqLXt3u9Lwi5+FIAA18S4v6KhIGviBhg8SFKoN9jYKCtSL+3FNjvAefatCX1e0vF+72OAu50mdNNj214WhJI397hxc4W+mWEuDuIFLuvgcUOONemg4BIfk3AzXKSUVruda7RH/Tm6Dzg5ugKXB5CVYVtRRLnn+NKpwvbaFI331lA2FYSClQXEWFbBRQ24FybLgLCtoqAm29IwvYNX9jCkMK22r0O2KwWELY1pCuS0OAMR4JzrQtOs1YAnN+KgLMYEpzrcEGHqIJznQA41zu9JRhHagm+E9jc+Y5g7b4nWbvvyRt86wm52CCAgQ2EuDeSMLCRvMHH4EM3gRaPgYHuIksDPwCXBoBzbbqTNvh+8OJQ9MfJLfIm1+iZTQJGb7PTjd5EktHbIiDyWwgF/keSyP9INnqbCbn4SQADPxHi3krCwFay0WPwoaeA0WNgoJeI0dsGNHrAuTa9SEZvG9/otUIavZ/d5Wbzs4DR2y6y3ByBBOcOF5xmhwA4d4qAMxIJzl9ccJpfBMC5SwScUFnf7a7fmN0C4Nzj9PWbqaT1m70CvfteQt+2j9S77yOv3+wh5GK/AAb2E+I+QMLAAfL6DYMPfQXWbxgY6CeyfnMQuH4DnGvTj7R+c1Bs/eaQe5OGOSRg9A4r3H0YRSh0AwVu0jhMiHuQSIE/AizwwLk2gwSMwRECbo6SzOFR/k0a0LXfX11hM78KCNsxBWFrSyDqYAFhO0aIe4iIsB0HChtwrs0QAWE7TsDNCZKwnaALmwlCCttJd9/InBQQtlMa+0YG+syH0y44zWkBcJ4R2dSMQoLzrLupac4KgPOc01uCWaRNzfMCG1rnCdbuN5K1+428qXmOkIvfBTDwOyHuCyQMXCBvajL4MEygxWNgYLjI0sBF4NIAcK7NcNKm5kX6pia2Rb7kGj1zScDoXXa60fuEZPSuCIj8FUKBv0oS+atko3eZkItrAhi4Roj7OgkD18lGj8GHUQJGj4GB0SJG7wbQ6AHn2owmGb0bfKMXijR6N93lZnNTwOjdEtkLgT7s7g8XnOYPAXDeFgEn9AE9d1xwmjsC4LwrAk6orP/prt+YPwXAec/p6zfzSOs39wV69/uEvu0vUu/+F3n95h4hFw8EMPCAEPdDEgYektdvGHwYI7B+w8DAWJH1m0fA9RvgXJuxpPWbR2LrN4/dmzTMYwGj90ThJo1OhEI3QeAmjSeEuCeKFPinwAIPnGszUcAYPCXg5hnJHD7j36QBXfv1S+oKGzAHtHN8KamAsHUmEHWKgLDZk4OOe6qIsMXDAdMA59pMFRC2eATc+CflCJt/UrqwQZ8XEwDMg6qwBQgIW2BSTp1DgxP6zIf4LjhNfAFwJhABZwkkOBPigpbd1EwoAM5ETm8JFpI2NRMndb61S0ywdklI1s4+bnYSSO32KBEhF0kFMJCUEHcyEgaSETHA4sMMgRaPgYGZIksDyYFLA8C5NjNJm5rJk9I3NaEtcgrX6JkUAkYvpdON3iKS0UslIPKpCAU+NUnkU5ONXkpCLtIIYCANIe60JAykJRs9Bh9mCxg9BgbmiBi9dECjB5xrM4dk9NLxjV4bpNFL7y43m/QCRi+DyHIz9GF3GV1wmowC4MykAc5g6AN6MrvgNJkFwJlFpHJCZf1ld/3GvCwAzlecvn6zhLR+k1Wgd89K6NuykXr3bOT1m1cIucgugIHshLhfJWHgVfL6DYMP8wXWbxgYWCCyfpMDuH4DnGuzgLR+k0Ns/Sane5OGySlg9HIp3KTxHuEmjYUCN2nkIhT4RSIFPjewwAPn2iwSMAa5CbjJQzKHefg3aUDXfvO6wmbyCghbPgVh60EQtsUCwpaPUKCWiAhbfqCwAefaLBEQtvwE3BQgCVsBurAFQ58XU9DdNzIFBYStkMimJvSZD4VdcJrCAuAsIgLOECQ4i7qbmqaoADiDnN4SfE3a1DQCG1qGYO2CSdYumLypGUTIRYgABkIIcYeSMBBK3tRk8GGpQIvHwMAykaWBYsClAeBcm2WkTc1i9E1NbIsc5ho9EyZg9MKdbvSWk4xecQGRL04o8CVIIl+CbPTCCbkoKYCBkoS4S5EwUIps9Bh8WCFg9BgYWCli9EoDjR5wrs1KktErzeRQYo6WlhGoo2UIHCpLqqNlyRiw9TQe+LgNgc1DOQE8lSPgqTwJT+XJuszg1moBXWZgYI2ILlcA6jJwrs0aki5X8HDI/vtf99uguKI1+hcDnX+OFZF1X3WiIuI7/xwruRMVZFoLTFRld6KCzHZ/559jFYVrcKsQ/E5VAa9flRB3NZLXr0b0+usS/d07onNRXQAD1QkYeI2EgdfI/R6DD+sE+j0GBtaL9Hs1gP0ecK7NelK/V0O83+so4E5rKpiemgTSb3B4sfs6MUfoN4oUu9eBxQ4412ajgEi+TuDLGySj9IbnXFWL/DmBIl/L6UX+O1JXs9nhZLXFrRaBrFtEinxtYJEHzrXZIlDkaxNw8yapyL8pXuQvCBT5Ou46c5C5JDBRdd2JCjJXBCaqnkJvXI8gA28JLAa/RYj7bZL82cdNSALpRpJ1ri+AgfoEDDQgYaABEQMsPmwVsMEMDGwTaZ8aAtsn4FybbaQNgYYeDqmanhsCpqeRgulpRCB9YwHBa0yIuwlJ8JoQd8B/IJmepgIYaErAQDMSBpqRr4Jg8GGHgOlhYGCniOlpDjQ9wLk2O0mmp7n4VRC3BUxPCwXT04JA+pYCgteSEHcrkuC1IgreJpLpiRDAQAQBA5EkDESSTQ+DD7sFTA8DA3tETE9roOkBzrXZQzI9rcVNzz0B09NGwfS0IZA+SkDwoghxtyUJXlui4G0mmZ53BDDwDgED7UgYaEc2PQw+7BcwPQwMHBAxPe2Bpgc41+YAyfS0Fzc9DwVMTwcF09OBQPqOAoLXkRB3J5LgdSIK3haS6eksgIHOBAx0IWGgC9n0MPhwWMD0MDBwRMT0vAs0PcC5NkdIpuddcdPzVMD0dFUwPV0JpO8mIHjdCHF3Jwled6LgbSWZnvcEMPAeAQM9SBjoQTY9DD4cEzA9DAwcFzE9PYGmBzjX5jjJ9PQUNz2BCZx/jr3c2+yCTAKBieqdlFOk/OJBT9QEIV/O0wcYtCo4+yR1/jn21QBnUBskOPvhgg5RBWc/AXD2V+jr+xN87QCBnm4AIe6BpJ5uILGn20Hq6wcJYGAQAQPvkzDwPrmvZ/DhlEBfz8DAaZG+/gNgXw+ca3Oa1Nd/4MWh6I+Tjd5g3PyEqhq9wQJGb4iC0RtCKHTnHF7gV5Oe0npepMB/CCzwwLk25wWMwYcEvgwlmcOhXuca/QELWxRS2Ia5wmaGCQjbcAVhG04g6gWHF6g1JGG7KCJsI4DCBpxrc1FA2EYQ+DKSJGwj6cJmQpHCNsrdNzKjBIRttMimZjEkOD9ywWk+EgDnx3FxU3MMLujiquAcIwDOsQotwViCxRknsKE1jhD3eJK1G5+U98TdPaRNzQkCGJhAwMBEEgYmJuU+dZnBhysCLR4DA1dFlgYmAZcGgHNtrpI2NSd5cSj64+QWebJ79ZqZLGD0pigYvSmEQjdVQOSnEuKeRhL5acQrl/aSjN50AQxMJ2BgBgkDM8hXrzH4cEPA6DEwcFPE6M0EGj3gXJubJKM3k371Gna5eZZr9MwsAaP3iYLR+4RQ6GYLiPxsQtxzSCI/hyjy+0hGb64ABuYSMDCPhIF5ZKPH4MNtAaPHwMAdEaM3H2j0gHNt7pCM3ny+0QtDGr0FrtEzCwSM3qcKRu9TQqH7TEDkPyPEvZAk8guJIr+fZPQWCWBgEQEDn5Mw8DnZ6DH4cE/A6DEwcF/E6H0BNHrAuTb3SUbvC77RC0cavcWu0TOLBYzeEgWjt4RQ6L4UEPkvCXF/RRL5r4gif4Bk9JYKYGApAQPLSBhYRjZ6DD48FDB6DAw8EjF6XwONHnCuzSOS0fuab/SKI43ectfomeUCRm+FgtFbQSh0KwVEfiUh7lUkkV9FFPmDJKP3jQAGviFgYDUJA6vJRo/Bh6cCRo+BgWciRm8N0OgB59o8Ixm9NXyjF4k0emvdW8LNWgGj921SDt/R4GyNBOc6F5xmnQA414uAE/q8gu9ccJrvBMD5vQg4obK+wV2/MRsEwLlRYf1mI6F/+UGgd/+BEPcmUu++idi7HyWt32wWwMBmAga2kDCwhbx+w+BDvIJxEwP+BfHi5OeHX7/5Ebh+A5xrg8yfN4d+FFu/+Qk3P7IPUv5JwOhtVTB6WwmFLr7DC/z3pAcpJxAp8NuABR441yaBgDHYRuDLzyRz+LPXuUZ/nLz2u90VNrNdQNh2KAjbDgJREzu8QG0gCVsSEWHbCRQ24FybJALCtpPAl19IwvYLXdiCg5HCtsvdNzK7BIRtt8a+UXAIEpx7XHCaPQLg3BsXNzX34YKWfUPAPgFw7ldoCfYTLM4BgQ2tA4S4D5KsnX1c1tPhT5I2NQ8JYOAQAQOHSRg4nJT7hgAGH5ILtHgMDKQQWRo4AlwaAM61SUHa1DySlP2GAGyLfNS9es0cFTB6vyoYvV8Jhe6YgMgfI8R9nCTyx4lXLp0iGb0TAhg4QcDASRIGTpKvXmPwIbWA0WNgII2I0TsFNHrAuTZpSEbvFP3qNexy82nX6JnTAkbvjILRO0ModGcFRP4sIe5zJJE/RxT50ySjd14AA+cJGPiNhIHfyEaPwYf0AkaPgYEMIkbvd6DRA861yUAyer/zjR70nZ8XXKNnLggYvYsKRu8iodBdEhD5S4S4L5NE/jJR5M+QjN4VAQxcIWDgKgkDV8lGj8GHzAJGj4GBLCJG7xrQ6AHn2mQhGb1rfKMHfefnddfomesCRu+GgtG7QSh0NwVE/iYh7lskkb9FFPmzJKP3hwAG/iBg4DYJA7fJRo/Bh6wCRo+BgWwiRu8O0OgB59pkIxm9O3yjB33n513X6Jm7AkbvTwWj9yeh0N0TEPl7hLjvk0T+PlHkz5GM3l8CGPiLgIEHJAw8IBs9Bh9yCBg9BgZyihi9h0CjB5xrk5Nk9B7yjV4rpNF75N4Sbh4JGL3HSTl8R4MzAgnOJy44zRMBcD4VASf0eQXPXHCaZwLg9EumAU6orL+EC1p2/ealZM4/x3joc2Ss39gnie5f/MGBM/o2f0LcAcC4vfsO+7jZSSC9QFq/CRTAQCABA/FJGIifjLt+w+BDHoH1GwYG8oqs3yTAYdUA59rkJa3fJEimtX6TEDc/sg9STihg9BIpGL1EhEJXwOEF/kfSg5QLihT4xMACD5xrU1DAGCQm8CUJyRwm8TrX6I+T136TusJmkgoIWzIFYUtGIGoRhxeon0jCVlRE2JIDhQ0416aogLAlJ/AlBUnYUtCFLSQIKWwpgXlQFbaUAsKWSmPfKMQgwZnaBadJLQDONHFxUzMtLmjZNwSkFQBnOoWWIB3B4qQX2NBKT4g7A8na2cdlPR3+KmlTM6MABjISMJCJhIFMybhvCGDwIVigxWNgIERkaSAzcGkAONcmhLSpmTkZ+w0B2BY5i3v1mskiYPReVjB6LxMK3SsCIv8KIe6sJJHPSrxy6RrJ6GUTwEA2AgaykzCQnXz1GoMPYQJGj4GBcBGj9yrQ6AHn2oSTjN6r9KvXsMvNOVyjZ3IIGL2cCkYvJ6HQ5RIQ+VyEuHOTRD43UeSvk4xeHgEM5GFcok7CQF6y0WPwoaSA0WNgoJSI0csHNHrAuTalSEYvH9/oQd/5md81eia/gNEroGD0ChAKXUEBkS9IiLsQSeQLEUX+BsnoFRbAQGHGlcwkDBQhGz0GH8oKGD0GBsqJGL2iQKMHnGtTjmT0ivKNHvSdn0Gu0TNBAkbPKBg9w7g2R0DkgxnX5pBEPoQo8jdJRi9UAAOhBAwUI2GgGNnoMfhQUcDoMTBQScTohQGNHnCuTSWS0QvjGz3oOz/DXaNnwgWMXnEFo1ecUOhKCIh8CcZWFUnkSxJF/hbJ6JUSwEApAgZKkzBQmmz0GHyoKmD0GBioJmL0ygCNHnCuTTWS0SvDN3rFkUavrHtLuCkrYPTKJePwHQ3OEkhwlnfBacoLgLOCCDihzyuo6ILTVBQAZyURcEJlvbK7fmMqC4CzisL6TRVG3ybQu1dl9G2k3r0asXe/S1q/qS6AgeoEDLxGwsBr5PUbBh9qCKzfMDBQU2T9pgZw/QY416Ymaf2mhtj6TU3c/Mg+SLmmgNF7XcHovU4odLUcXuB3kh6kXFukwL8BLPDAuTa1BYzBGwy+kMxhLa9zjf44ee23titspraAsL2pIGxvEoha1+EF6heSsNUTEbY6QGEDzrWpJyBsdRh8IQlbXb6wtUEKWz1338jUExC2t0T2jaKQ4HzbBad5WwCc9ePipmYDXNCybwhoIADOhgotQUOCxWkksKHViBB3Y5K1s4/Lejr8A9KmZhMBDDQhYKApCQNNk3HfEMDgQ32BFo+BgQYiSwPNgEsDwLk2DUibms2S0d8QAG2Rm7tXr5nmAkavhYLRa0EodC0FRL4lIe5WJJFvRbxy6SHJ6EUIYCCCgIFIEgYiyVevMfjQWMDoMTDQRMTotQYaPeBcmyYko9eaf/UadLm5jWv0TBsBoxelYPSiCIWurYDItyXE/Q5J5N8hivwjktFrJ4CBdgQMtCdhoD3Z6DH40FzA6DEw0ELE6HUAGj3gXJsWJKPXgW70QqHv/OzoGj3TUcDodVIwep0Iha6zgMh3JsTdhSTyXYgi/5hk9N4VwMC7BAx0JWGgK9noMfgQIWD0GBiIFDF63YBGDzjXJpJk9LrxjR70nZ/dXaNnugsYvfcUjN57hELXQ0DkexDi7kkS+Z5EkX9CMnq9BDDQi4CB3iQM9CYbPQYfogSMHgMDbUWMXh+g0QPOtWlLMnp9+EYP+s7Pvq7RM30FjF4/BaPXj1Do+guIfH9C3ANIIj+AKPJPSUZvoAAGBhIwMIiEgUFko8fgQ3sBo8fAQAcRo/c+0OgB59p0IBm99/lGLwxp9D5wbwk3HwgYvcHJOHxHgzMcCc4hLjjNEAFwfigCTujzCoa64DRDBcA5TAScUFkf7q7fmOEC4ByhsH4zgtC/jBTo3UcS4h5F6t1HEXv3eKRnDY4WwMBoAgY+ImHgI/L6DYMPnQXWbxgY6CKyfvMxcP0GONemC2n95mOx9ZsxuPmRfZDyGAGjN1bB6I0lFLpuDi/w+0nmprtIgR8HLPDAuTbdBYzBOAJfxpPM4Xivc43+OHntd4IrbGaCgLBNVBC2iYxLbh1eoA6QhK2XiLBNAgobcK5NLwFhm0Tgy2SSsE3mC1skUtimuPtGZoqAsE0V2TdqjQTnNBecZpoAOKfHxU3NGbigZd8QMEMAnDMVWoKZBIszS2BDaxYh7k9I1s4+Luvp8AlI7dFsAQzMJmBgDgkDc5Jx3xDA4ENfgRaPgYF+IksDc4FLA8C5Nv1Im5pzk7HfEIBtkee5V6+ZeQJGb76C0ZtPKHQLBER+ASHuT0ki/ynxyqWEJKP3mQAGPiNgYCEJAwvJV68x+DBQwOgxMDBIxOgtAho94FybQSSjt4h/9Rp0uflz1+iZzwWM3hcKRu8LQqFbLCDyiwlxLyGJ/BKiyCciGb0vBTDwJQEDX5Ew8BXZ6DH4MFjA6DEwMETE6C0FGj3gXJshJKO3lG/0oO/8XOYaPbNMwOh9rWD0viYUuuUCIr+cEPcKksivIIp8YpLRWymAgZUEDKwiYWAV2egx+DBMwOgxMDBcxOh9AzR6wLk2w0lG7xu+0YO+83O1a/TMagGjt0bB6K0hFLq1AiK/lhD3tySR/5Yo8klIRm+dAAbWETCwnoSB9WSjx+DDKAGjx8DAaBGj9x3Q6AHn2owmGb3v6EavGPSdn9+7Rs98L2D0NigYvQ2EQrdRQOQ3EuL+gSTyPxBFPinJ6G0SwMAmAgY2kzCwmWz0GHwYI2D0GBgYK2L0tgCNHnCuzViS0dvCN3qhSKP3o3tLuPlRwOj9lIzDdzQ4iyHBudUFp9kqAM5tIuCEPq/gZxec5mcBcG4XASdU1ne46zdmhwA4dyqs3+wk9C+/CPTuvxDi3kXq3XcRe/eUpPWb3QIY2E3AwB4SBvaQ128YfJggsH7DwMBEkfWbvcD1G+Bcm4mk9Zu9Yus3+3DzI/sg5X0CRm+/gtHbTyh0Uxxe4H8lmZupIgX+ALDAA+faTBUwBgcIfDlIMocHvc41+uPktd9DrrCZQwLCdlhB2A4TiDrD4QXqGEnYZooI2xGgsAHn2swUELYjBL4cJQnbUb6wtUIK26/uvpH5VUDYjonsG0UgwXncBac5LgDOE3FxU/MkLmjZNwScFADnKYWW4BTB4pwW2NA6TYj7DMna2cdlPR0+Hak9OiuAgbMEDJwjYeBcMu4bAhh8mC3Q4jEwMEdkaeA8cGkAONdmDmlT83wy9hsCsC3yb+7Va+Y3AaP3u4LR+51Q6C4IiPwFQtwXSSJ/kXjlUnqS0bskgIFLBAxcJmHgMvnqNQYf5gsYPQYGFogYvStAoweca7OAZPSu8K9egy43X3WNnrkqYPSuKRi9a4RCd11A5K8T4r5BEvkbRJHPQDJ6NwUwcJOAgVskDNwiGz0GHxYKGD0GBhaJGL0/gEYPONdmEcno/cE3etB3ft52jZ65LWD07igYvTuEQndXQOTvEuL+kyTyfxJFPiPJ6N0TwMA9AgbukzBwn2z0GHxYLGD0GBhYImL0/gIaPeBcmyUko/cX3+hB3/n5wDV65oGA0XuoYPQeEgrdIwGRf0SI+zFJ5B8TRT4Tyeg9EcDAEwIGnpIw8JRs9Bh8WCpg9BgYWCZi9J4BjR5wrs0yktF7xjd60Hd++iV3jR4wB7RzfCm5gNGzTxJd6OIld36Bj0eI2z85p0DZx81OAmlmktELEMBAAAEDgSQMBCbnGj0GH1YIGD0GBlaKGL34OKwa4FyblSSjFz852+iFBSONXgJgLVE1egkEjF7C5By+o8EZggRnIhecJpEAOBOLgBP6vIIkLjhNEgFwJhUBJ1TWk7nrNyaZADiTK6zfJCf0LykEevcUhLhTknr3lMTePStp/SaVAAZSETCQmoSB1OT1GwYfVgus3zAwsEZk/SYNcP0GONdmDWn9Jo3Y+k1a3PzIPkg5rYDRS6dg9NIRCt06hxf4MyRzs16kwKcHFnjgXJv1AsYgPYEvGUjmMIPXuUZ/nLz2m9EVNpNRQNgyKQhbJgJRNzi8QJ0lCdtGEWHLDBQ24FybjQLClpnAlywkYcvCF7biSGF72d03Mi8LCNsrIvtGJZDgzOqC02QVAGe2uLipmR0XtOwbArILgPNVhZbgVYLFySGwoZWDEHdOkrWzj8t6OnxOUnuUSwADuQgYyE3CQO7k3DcEMPiwWaDFY2Bgi8jSQB7g0gBwrs0W0qZmnuTsNwRgW+S87tVrJq+A0cunYPTyEQpdfgGRz0+IuwBJ5AsQr1zKRTJ6BQUwUJCAgUIkDBQiX73G4MNWAaPHwMA2EaNXGGj0gHNttpGMXmH+1WvQ5eYirtEzRQSMXlEFo1eUUOiCBEQ+iBC3IYm8IYp8bpLRCxbAQDABAyEkDISQjR6DDzsEjB4DAztFjF4o0OgB59rsJBm9UL7Rg77zs5hr9EwxAaMXpmD0wgiFLlxA5MMJcRcniXxxosjnIRm9EgIYKEHAQEkSBkqSjR6DD7sFjB4DA3tEjF4poNEDzrXZQzJ6pfhGD/rOz9Ku0TOlBYxeGQWjV4ZQ6MoKiHxZQtzlSCJfjijyeUlGr7wABsoTMFCBhIEKZKPH4MN+AaPHwMABEaNXEWj0gHNtDpCMXkW+0YO+87OSa/RMJQGjV1nB6FUmFLoqAiJfhRB3VZLIVyWKfD6S0asmgIFqBAxUJ2GgOtnoMfhwWMDoMTBwRMTovQY0esC5NkdIRu81utELD0IavRruLeGmhoDRq5mcw3c0OA0SnK+74DSvC4DzDRFwQp9XUMsFp6klAM7aIuCEyvqb7vqNeVMAnHUU1m/qEPqXugK9e11C3PVIvXs9Yu9eiLR+85YABt4iYOBtEgbeJq/fMPhwTGD9hoGB4yLrN/WB6zfAuTbHSes39cXWbxrg5kf2QcoNBIxeQwWj15BQ6E45vMBfJJmb0yIFvhGwwAPn2pwWMAaNCHxpTDKHjb3ONfrj5LXfJq6wmSYCwtZUQdiaEoh6zuEF6hJJ2M6LCFszoLAB59qcFxC2ZgS+NCcJW3O+sIUhha2Fu29kWggIW0uRfaNwJDhbueA0rQTAGREXNzUjcUHLviEgUgCcrRVagtYEi9NGYEOrDSHuKJK1s4/Lejq8IbVHbQUw0JaAgXdIGHgnOfcNAQw+XBBo8RgYuCiyNNAOuDQAnGtzkbSp2S45+w0B2Ba5vXv1mmkvYPQ6KBi9DoRC11FA5DsS4u5EEvlOxCuXgklGr7MABjoTMNCFhIEu5KvXGHy4ImD0GBi4KmL03gUaPeBcm6sko/cu/+o16HJzV9foma4CRq+bgtHrRih03QVEvjsh7vdIIv8eUeRDSEavhwAGehAw0JOEgZ5ko8fgww0Bo8fAwE0Ro9cLaPSAc21ukoxeL77Rg77zs7dr9ExvAaPXR8Ho9SEUur4CIt+XEHc/ksj3I4p8KMno9RfAQH8CBgaQMDCAbPQYfLgtYPQYGLgjYvQGAo0ecK7NHZLRG8g3etB3fg5yjZ4ZJGD03lcweu8TCt0HAiL/ASHuwSSRH0wU+WIkozdEAANDCBj4kISBD8lGj8GHewJGj4GB+yJGbyjQ6AHn2twnGb2hfKMHfefnMNfomWECRm+4gtEbTih0IwREfgQh7pEkkR9JFPkwktEbJYCBUQQMjCZhYDTZ6DH48FDA6DEw8EjE6H0ENHrAuTaPSEbvI77Ra4M0eh+7t4SbjwWM3pjkHL6jwRmFBOdYF5xmrAA4x2mAszj0eQXjXXCa8QLgnCBSOaGyPtFdvzETBcA5SWH9ZhKhf5ks0LtPJsQ9hdS7TyH27iVJ6zdTBTAwlYCBaSQMTCOv3zD48FRg/YaBgWci6zfTges3wLk2z0jrN9PF1m9m4OZH9kHKMwSM3kwFozeTUOjiFXJ2gb9BMjf+hTQK/CxggQfOtfF3OG7sIj6LwJdPSObwE69zjf44ee13titsZraAsM1RELY5BKLGd3iBukkStgQiwjYXKGzAuTYJBIRtLoEv80jCNo8ubMVDkcI23903MvMFhG2ByKZmMSQ4P3XBaT4VAOdncXFTcyEuaNk3BCwUAOcihZZgEcHifC6wofU5Ie4vSNbOPi7r6fDlSO3RYgEMLCZgYAkJA0uSc98QwOBDYoEWj4GBJCJLA18ClwaAc22Q+fPm0JfJ2W8IwLbIX7lXr5mvBIzeUgWjt5RQ6JYJiPwyQtxfk0T+a+KVS+VJRm+5AAaWEzCwgoSBFeSr1xh8SC5g9BgYSCFi9FYCjR5wrk0KktFbSb96DbvcvMo1emaVgNH7RsHofUModKsFRH41Ie41JJFfQxT5CiSjt1YAA2sJGPiWhIFvyUaPwYfUAkaPgYE0IkZvHdDoAefapCEZvXV8owd95+d61+iZ9QJG7zsFo/cdodB9LyDy3xPi3kAS+Q1Eka9IMnobBTCwkYCBH0gY+IFs9Bh8SC9g9BgYyCBi9DYBjR5wrk0GktHbxDd60Hd+bnaNntksYPS2KBi9LYRC96OAyP9IiPsnksj/RBT5SiSjt1UAA1sJGNhGwsA2stFj8CGzgNFjYCCLiNH7GWj0gHNtspCM3s98owd95+d21+iZ7QJGb4eC0dtBKHQ7BUR+JyHuX0gi/wtR5CuTjN4uAQzsImBgNwkDu8lGj8GHrAJGj4GBbCJGbw/Q6AHn2mQjGb09fKMXiTR6e91bws1eAaO3LzmH72hwtkaCc78LTrNfAJwHRMAJfV7BQRec5qAAOA+JgBMq64fd9RtzWACcRxTWb44Q+pejAr37UULcv5J691+JvXt10vrNMQEMHCNg4DgJA8fJ6zcMPuQQWL9hYCCnyPrNCeD6DXCuTU7S+s0JsfWbk7j5kX2Q8kkBo3dKweidIhS6PA4v8H+SzE1ekQJ/GljggXNt8goYg9MEvpwhmcMzXuca/XHy2u9ZV9jMWQFhO6cgbOcIRC3g8AJ1jyRsBUWE7TxQ2IBzbQoKCNt5Al9+Iwnbb3RhKxGMFLbf3X0j87uAsF3Q2DcqEYIE50UXnOaiADgvxcVNzcu4oGXfEHBZAJxXFFqCKwSLc1VgQ+sqIe5rJGtnH5f1dPg3SO3RdQEMXCdg4AYJAzeSc98QwOBDEYEWj4GBoiJLAzeBSwPAuTZFSZuaN5Oz3xCAbZFvuVevmVsCRu8PBaP3B6HQ3RYQ+duEuO+QRP4O8cqlWiSjd1cAA3cJGPiThIE/yVevMfgQLGD0GBgIETF694BGDzjXJoRk9O7Rr17DLjffd42euS9g9P5SMHp/EQrdAwGRf0CI+yFJ5B8SRb42yeg9EsDAIwIGHpMw8Jhs9Bh8CBMwegwMhIsYvSdAowecaxNOMnpP+EYP+s7Pp67RM08FjN4zBaP3jFDo/FI4v8Db54iO+6UUnAJlHzc7CaRvkoxePAEMxCNgwJ+EAf8UXKPH4ENJAaPHwEApEaMXgMOqAc61KUUyegEp6EYP+s7PwBSu0QtM4fxzjJ9CwOjFJxS6BAIin4AQd0KSyCckinwdktFLJICBRAQMJCZhIDHZ6DH4UFbA6DEwUE7E6CUBGj3gXJtyJKOXhG/0oO/8TOoaPZNUwOglUzB6yQiFLrmAyCcnxJ2CJPIpiCJfl2T0UgpgICUBA6lIGEhFNnoMPlQUMHoMDFQSMXqpgUYPONemEsnopeYbvVZIo5cGWEtUjV4aAaOXNgWH72hwRiDBmc4Fp0knAM70IuCEPq8ggwtOk0EAnBlFwAmV9Uzu+o3JJADOzArrN5kJ/UsWgd49CyHul0m9+8vE3r0+af3mFQEMvELAQFYSBrKS128YfKgqsH7DwEA1kfWbbMD1G+Bcm2qk9ZtsYus32XHzI/sg5ewCRu9VBaP3KqHQ1XB4gX9MMjc1RQp8DmCBB861qSlgDHIQ+JKTZA5zep1r9MfJa7+5XGEzuQSELbeCsOUmELWWwwvUE5Kw1RYRtjxAYQPOtaktIGx5CHzJSxK2vHRhaxWEFLZ87r6RyScgbPk19o1aGSQ4C7jgNAUEwFkwLm5qFsIFLfuGgEIC4Cys0BIUJlicIgIbWkUIcRclWTv7uKynwzchtUdBAhgIImDAkDBgUnDfEMDgQ12BFo+BgXoiSwPBwKUB4FybeqRNzeAU7DcEYFvkEPfqNRMiYPRCFYxeKKHQFRMQ+WKEuMNIIh9GvHKpKcnohQtgIJyAgeIkDBQnX73G4EN9AaPHwEADEaNXAmj0gHNtGpCMXgn61WvY5eaSrtEzJQWMXikFo1eKUOhKC4h8aULcZUgiX4Yo8s1IRq+sAAbKMp4lRcJAObLRY/ChsYDRY2CgiYjRKw80esC5Nk1IRq883+hB3/lZwTV6poKA0auoYPQqMp6nIyDylQhxVyaJfGWiyDcnGb0qAhiowrgHk4SBqmSjx+BDcwGjx8BACxGjVw1o9IBzbVqQjF41vtGDvvOzumv0THUBo/eagtF7jXE/qoDI1yDEXZMk8jWJIt+CZPReF8DA6wQMvEHCwBtko8fgQ4SA0WNgIFLE6NUCGj3gXJtIktGrxTd60Hd+1naNnqktYPTeVDB6bxIKXR0Bka/DuPicJPJ1iSLfkmT06glgoB4BA2+RMPAW2egx+BAlYPQYGGgrYvTeBho94FybtiSj9zbf6BVHGr367i3hpr6A0WuQgsN3NDhLIMHZ0AWnaSgAzkYi4IQ+r6CxC07TWACcTUTACZX1pu76jWkqAM5mCus3zRhXYgj07s0ZV2KQevcWxN69NWn9pqUABloSMNCKhIFW5PUbBh/aC6zfMDDQQWT9JgK4fgOca9OBtH4TIbZ+E4mbH9kHKUcKGL3WCkavNaHQdXZ4gfdPwjE3XUQKfBtggQfOtekiYAzaMDa0SOYwyutcoz9OXvtt6wqbaSsgbO8oCNs7BKJ2c3iBCiAJW3cRYWsHFDbgXJvuAsLWjtHpk4StPV/Y2iCFrYO7b2Q6CAhbR5F9oygkODu54DSdBMDZOS5uanbBBS37hoAuAuB8V6EleJdgcboKbGh1ZbRCJGtnH5f1dPh2pE3N7gIY6E7AwHskDLyXgvuGAAYfegq0eAwM9BJZGugBXBoAzrXpRdrU7JGC/oYAaIvc0716zfQUMHq9FIxeL0Kh6y0g8r0JcfchiXwf4pVL7UlGr68ABvoSMNCPhIF+5KvXGHzoK2D0KBgQMXr9gUYPONemH8no9edfvQZdbh7gGj0zQMDoDVQwegMJhW6QgMgPIsT9Pknk3yeKfAeS0ftAAAMfEDAwmISBwWSjx+DDQAGjx8DAIBGjNwRo9IBzbQaRjN4QutGLgL7z80PX6JkPBYzeUAWjN5RQ6IYJiPwwQtzDSSI/nCjyHUlGb4QABkYQMDCShIGRZKPH4MNgAaPHwMAQEaM3Cmj0gHNthpCM3ii+0YO+83O0a/TMaAGj95GC0fuIUOg+FhD5jwlxjyGJ/BiiyHciGb2xAhgYS8DAOBIGxpGNHoMPwwSMHgMDw0WM3nig0QPOtRlOMnrj+UYP+s7PCa7RMxMEjN5EBaM3kVDoJgmI/CRC3JNJIj+ZKPKdSUZvigAGphAwMJWEgalko8fgwygBo8fAwGgRozcNaPSAc21Gk4zeNL7RC0MavenuLeFmuoDRm5GCw3c0OMOR4JzpgtPMFADnLBFwQp9X8IkLTvOJADhni4ATKutz3PUbM0cAnHMV1m/mEvqXeQK9+zxC3PNJvft8Yu/ejbR+s0AAAwsIGPiUhIFPyes3DD6MEVi/YWBgrMj6zWfA9RvgXJuxpPWbz8TWbxbi5kf2QcoLBYzeIgWjt4hQ6CY4vMAnJj1IeaJIgf8cWOCBc20mChiDzwl8+YJkDr/wOtfoj5PXfhe7wmYWCwjbEgVhW0Ig6hSHF6gkJGGbKiJsXwKFDTjXZqqAsH1J4MtXJGH7ii9skUhhW+ruG5mlAsK2TGTfqDUSnF+74DRfC4BzeVzc1FyBC1r2DQErBMC5UqElWEmwOKsENrRWEeL+hmTt7OOyng7fi7SpuVoAA6sJGFhDwsCaFNw3BDD4MEOgxWNgYKbI0sBa4NIAcK7NTNKm5toU7DcEYFvkb92r18y3AkZvnYLRW0codOsFRH49Ie7vSCL/HfHKpd4ko/e9AAa+J2BgAwkDG8hXrzH4MFvA6DEwMEfE6G0EGj3gXJs5JKO3kX/1GnS5+QfX6JkfBIzeJgWjt4lQ6DYLiPxmQtxbSCK/hSjyfUhG70cBDPxIwMBPJAz8RDZ6DD7MFzB6DAwsEDF6W4FGDzjXZgHJ6G3lGz3oOz+3uUbPbBMwej8rGL2fCYVuu4DIbyfEvYMk8juIIt+XZPR2CmBgJwEDv5Aw8AvZ6DH4sFDA6DEwsEjE6O0CGj3gXJtFJKO3i2/0oO/83O0aPbNbwOjtUTB6ewiFbq+AyO8lxL2PJPL7iCLfj2T09gtgYD8BAwdIGDhANnoMPiwWMHoMDCwRMXoHgUYPONdmCcnoHaQbvUjoOz8PuUbPHBIweocVjN5hQqE7IiDyRwhxHyWJ/FGiyPcnGb1fBTDwKwEDx0gYOEY2egw+LBUwegwMLBMxeseBRg8412YZyegd5xu9UKTRO+HeEm5OCBi9kyk4fEeDsxgSnKdccJpTAuA8LQJO6PMKzrjgNGcEwHlWBJxQWT/nrt+YcwLgPK+wfnOe0L/8JtC7/0aI+3dS7/47sXd/n7R+c0EAAxcIGLhIwsBF8voNgw8rBNZvGBhYKbJ+cwm4fgOca7OStH5zSWz95jJufmQfpHxZwOhdUTB6VwiFbrXDC3wq0oOU14gU+KvAAg+ca7NGwBhcJfDlGskcXvM61+iPk9d+r7vCZq4LCNsNBWG7QSDqOocXqNQkYVsvImw3gcIGnGuzXkDYbhL4coskbLf4wtYKKWx/uPtG5g8BYbstsm8UgQTnHRec5o4AOO/GxU3NP3FBy74h4E8BcN5TaAnuESzOfYENrfuEuP8iWTv7uKynww8lbWo+EMDAAwIGHpIw8DAF9w0BDD5sEGjxGBjYKLI08Ai4NACca7ORtKn5KAX7DQHYFvmxe/WaeSxg9J4oGL0nhEL3VEDknxLifkYS+WfEK5eGkYyeX0rnY8A+R3TcL6XkYMA+bnYSBlh82Cxg9BgY2CJi9OLhsGqAc222kIxePC8ORX+cvNzsn9I1ev4pnX+OASkFjF4AodAFCoh8ICHu+CSRj08U+eEko5dAAAMJCBhISMJAQrLRY/Bhq4DRY2Bgm4jRSwQ0esC5NttIRi8R3+hB3/mZ2DV6JrGA0UuiYPSSEApdUgGRT0qIOxlJ5JMRRX4EyeglF8BAcgIGUpAwkIJs9Bh82CFg9BgY2Cli9FICjR5wrs1OktFLyTd60Hd+pnKNnkklYPRSKxi91IRCl0ZA5NMQ4k5LEvm0RJEfSTJ66QQwkI6AgfQkDKQnGz0GH3YLGD0GBvaIGL0MQKMHnGuzh2T0MvCNHvSdnxldo2cyChi9TApGLxOh0GUWEPnMhLizkEQ+C1HkR5GM3ssCGHiZgIFXSBh4hWz0GHzYL2D0GBg4IGL0sgKNHnCuzQGS0ctKN3qtg5FGLxuwlqgavWwCRi97Sg7f0eAMQYLzVRec5lUBcOYQASf0eQU5XXCanALgzCUCTqis53bXb0xuAXDmUVi/yUPoX/IK9O55CXHnI/Xu+Yi9+xjS+k1+AQzkJ2CgAAkDBcjrNww+HBZYv2Fg4IjI+k1B4PoNcK7NEdL6TUGx9ZtCuPmRfZByIQGjV1jB6BUmFLpjDi/wGUkPUj4uUuCLAAs8cK7NcQFjUITAl6Ikc1jU61yjP05e+w1yhc0ECQibURA2QyDqKYcXqEwkYTstImzBQGEDzrU5LSBswQS+hJCELYQvbMWRwhbq7huZUAFhKyayb1QCCc4wF5wmTACc4XFxU7M4LmjZNwQUFwBnCYWWoATB4pQU2NAqSYi7FMna2cdlPR1+ImlTs7QABkoTMFCGhIEyKblvCGDw4ZxAi8fAwHmRpYGywKUB4Fyb86RNzbIp2W8IwLbI5dyr10w5AaNXXsHolScUugoCIl+BEHdFkshXJF65NIlk9CoJYKASAQOVSRioTL56jcGHCwJGj4GBiyJGrwrQ6AHn2lwkGb0qXhyK/jh5ubmqa/RMVQGjV03B6FUjFLrqAiJfnRD3aySRf40o8pNJRq+GAAZqEDBQk4SBmmSjx+DDFQGjx8DAVRGj9zrQ6AHn2lwlGb3X+UYP+s7PN1yjZ94QMHq1FIxeLUKhqy0g8rUJcb9JEvk3iSI/hWT06ghgoA4BA3VJGKhLNnoMPtwQMHoMDNwUMXr1gEYPONfmJsno1eMbPeg7P99yjZ55S8Dova1g9N4mFLr6AiJfnxB3A5LINyCK/FSS0WsogIGGBAw0ImGgEdnoMfhwW8DoMTBwR8ToNQYaPeBcmzsko9eYb/Sg7/xs4ho900TA6DVVMHpNCYWumYDINyPE3Zwk8s2JIj+NZPRaCGCgBQEDLUkYaEk2egw+3BMwegwM3Bcxeq2ARg841+Y+yei1InLoU6uO2noaD3zc/3cdPWi+IwRqcgSBj5GkmhxJxhNDl1sLYKA1AQNtSBhoQ9ZlBh8eCugyAwOPRHQ5CqjLwLk2j0i6HBXLAgw6p22BOY0ogDtWZAFOTtsS69JsS5sWJsbz8x1SjX7nv8BX0PN9DBJf3nl43py2I+W0HRFftudtRvA+Tx2ue7bfW0iI+5mI7rUHcgg41+aZw3Fj86U5ATfxCjufL4sIcfsX1uBLByBfgHNt/B2OG5svLQi4iS/Al88JcScQ4UtHIF+Ac21U8tcJmL8oYA/VltRDdSJ63JGJOD1UZ5Lf7+yDHgqJr87AHqoLKaddiPiysdWSUOsTO1zj7LXDrwlxJxGp0e8COQSca4PMnzeH3vVaJ0ZjaTSpRicX4NAqAodSiHCoK5BDwLk2KUgc6krkkN1rtSJgKbVAr7WGEHcaEQ51A3IIONcmjcDaRAQBN+kF+PItIe4MInzpDuQLcK6NSv7eA+avG3BtojtpbeI9Yu84juR7e5D66B4+WJtA4qsHcG2iJymnPX1wTUYvYE57Ajnbi8TZXkTOTiRxtjcJX719wFkkvnoDOduHlNM+5GsyIgn+LLOAL91OiDuLiK/qC+QQcK5NFoE+rjUBN1kF+LKTEHc2Eb70A/IFONcmmwBf2hBwk0OAL7sIcecU4Ut/IF+Ac21U8jcAmL++wB6qH6mHGsB86A2phxpI8vsDfdBDIfE1ENhDDSLldBD5mowoQq3PI7CffIQQd16RGv0+kEPAuTZ5SfvJ7xP3k20OtSVgqYAAh44T4i4owqEPgBwCzrUpSOLQB+RrMt4hYKmIQK91ihB3UREODQZyCDjXpqjA2kQ7Am6CBfhyhhB3iAhfhgD5Apxro5K/D4H5GwZcmxhOWpv4kNg7ziKtTQwl9dFDfbA2gcTXUODaxDBSTof54JqM4cCcjgJydjSJs8OJnP2ExNkRJHyN8AFnkfgaAeTsSFJOR5KvyWhP8GdhAr70FiHucBFfNQrIIeBcm3CBPq4DATclBfhymxB3KRG+jAbyBTjXppQAXzoScFNWgC93CXGXE+HLR0C+AOfaqOTvY2D+xgB7qLGkHupjosedR+qhxpD8/hgf9FBQfAF7qLGknI4lX5PRiVDrKwrsJz8lxF1JpEaPA3IIONemEmk/eRz5mozOBCxVFeBQvKT4uKuJcGg8kEPAuTbVSBwaT74mowuBQzUEeq1AAodqinBoApBDwLk2NQXWJt4l8KWWAF8SEPhSW4QvE4F8Ac61UcnfJGD+ZgDXJmaS1iYmMXtH0trEZFIfPdkHaxNIfE0Grk1MIeV0ig+uyZgKzOlsIGfnkDg7lcjZRSTOTiPha5oPOIvE1zQgZ6eTcjqdfE1GV4IvrSvgSzMQfGk9EV81A8gh4FybegJ9XDcCX+oL8CUTgS8NRPgyE8gX4FybBgJ86U7gS2MBvmQh8KWJCF9mAfkCnGujkr9PgPmbD+yhFpB6qE+IHncJqYeaTfL7s33QQyHxNRvYQ80h5XQO+ZqM9wga11xgPzk3QeNaiNTouUAOAefatCDtJ88lX5PRg8ChCAEO5SdwKFKEQ/OAHALOtYkkcWge+ZqMngQORQn0WoUIHGorwqH5QA4B59q0FVib6EXgS3sBvhQh8KWDCF8WAPkCnGujkr9PgflbClybWEZam/iU2Dt+TVqb+IzUR3/mg7UJJL4+A65NLCTldKEPrslYBMzpCiBnV5I4u4jI2eUkzn5OwtfnPuAsEl+fAzn7BSmnX/iAs4uBOV0N5OwaEmcXM+/LTMzh7BISvpb4gLNIfC0BcvZLUk6/JF9HVZHQU3V2eC/5lRV3Q0IP3UWkF/oKyCHgXJsuAmsvlQh86ebwuJeS+NJdhC9LgXwBzrXpLsCXygS+9HR43MtIfOklwpdlQL4A59qo5O9rYP7WAXuo9aQe6muix11HWvdYTvL7y33QQyHxtRzYQ60g5XQF+Tqqrwn46itwDcjrBG3vJ1KjVwI5BJxr0490DchK4jUg37HeCSfAodoEDg0S4dAqIIeAc20GkTi0inwdVR0ClgY7nEPLSb3WEBEOfQPkEHCuzRCBtYm6BL4Mc3jcK0h8GS7Cl9VAvgDn2qjkbw0wf1uBaxPbSGsTdrwJPcdFc3EjyfeuJfXRa71y8T/hK+j5PgaJr7XAtYlvSTn99r/I6fOe+zpgTncAObuTxNl1xPWeH0icXU/C13ofrCci8bUeyNnvSDn9zgfXUX0PzOluIGf3kDj7PZGzm0ic3UDC1wYfcBaJrw1Azm4k5XSjDzj7AzCn+4GcPUDi7A9Ezm4mcXYTCV+bfMBZJL42ATm7mZTTzT7g7BZgTg8DOXuExNktRM5uIXH2RxK+fvQBZ5H4+hHI2Z9IOf3JB5zdCszpMSBnj5M4u5XI2a0kzm4j4WubDziLxNc2IGd/JuX0Z/I9Br0I+yyjHL7PspK0zzJaZJ9gO5BDwLk2owX2JXsT+DLG4XGvIvFlrAhfdgD5ApxrM1aAL30JfJng8Li/IfFloghfdgL5Apxro5K/X4D5OwXsoU6TeqhfiB53B6mH2kXy+7t80EMh8bUL2EPtJuV0N/keg9UEfE0RuD76Q4K2TxWp0XuAHALOtZlKuj56D/H6aJtDawgcmiHAoREEDs0U4dBeIIeAc21mkji0l3yPwWgClmY7nENrSb3WHBEO7QNyCDjXZo7A2sTHBL7Md3jc35L4skCEL/uBfAHOtVHJ3wFg/q4A1yauktYmDhDvMdhDWps4SOqjD6bk32OAxNdB4NrEIVJOD/ngHoPDwJzeAHL2Jomzh4nrPXtJnD1CwtcRH6wnIvF1BMjZo6ScHvXBdVS/AnN6G8jZOyTO/krk7D4SZ4+R8HXMB5xF4usYkLPHSTk97gPOngDm9B6Qs/dJnD1B5Ox+EmdPkvB10gecReLrJJCzp0g5PeUDzp4G5vQhkLOPSJw9TeTsARJnz5DwdcYHnEXi6wyQs2dJOT3rA86eA+b0KZCzz0icPUfk7EESZ8+T8HXeB5xF4us8kLO/kXL6G/keg28J+ywLHb7Pso60z7JIZJ/gdyCHgHNtFgnsS64n8GWxw+NeT+LLEhG+XADyBTjXZokAX74n8GWpw+P+jsSXZSJ8uQjkC3CujUr+LgHzF68g7lj+uGP9i8e9RPS4R0k91GWS37/sgx4Kia/LwB7qCimnV8j3GHxPwNcKgeujtxG0faVIjb4K5BBwrs1K0vXRV8n3GGwgcGi1AId2Eji0RoRD14AcAs61WUPi0DXyPQa7CVha53AObST1WutFOHQdyCHgXJv1AmsTewl82eDwuH8g8WWjCF9uAPkCnGujkr+bwPwlB65NpCCtTdwk3mNwkrQ2cYvUR99Kyb/HAImvW8C1iT9IOf3DB/cY3AbmNDWQs2lInL1NXO85ReLsHRK+7vhgPRGJrztAzt4l5fSuD66j+hOY0/RAzmYgcfZPImdPkzh7j4Svez7gLBJf94CcvU/K6X0fcPYvYE4zAzmbhcTZv4icPUPi7AMSvh74gLNIfD0AcvYhKacPfcDZR8CcZgVyNhuJs4+InD1L4uxjEr4e+4CzSHw9BnL2CSmnT3zA2afAnOYAcjYnibNPiZw9R+LsMxK+nvmAs0h8PQNy1i8VJ6f2cbOT8GXvszwm7LNsdvg+yybSPssWkX2Cl3BYNcC5NlsE9iWfEviy1eFxbybxZZsIX+IB+QKca7NNgC9+yfC42eHwuLeQ+LJThC/+QL4A59qo5C8AmL88wB4qL6mHCiB63AukHiqQ5PcDU/F7KCS+vPPwvDmNT8ppfCK+bGz9SMDXboHroxMTtH2PSI1OAOQQcK7NHtL10Xa8zHsMfiJwaL8Ah5ITOHRAhEMJgRwCzrU5QOJQQiKH7F4rFQFLhx3Ooa2kXuuICIcSATkEnGtzRGBtIg2BL8ccHvc2El+Oi/AlMZAvwLk2KvlLAsxfMHBtIoS0NmHHy7rH4CppbSIpqY9Omop/jwESX0mBaxPJSDlNlop/j0FyYE7DgJwNJ3E2OXG95xqJsylI+Erhg/VEJL5SADmbkpTTlP9FTp/33FMBc1oSyNlSJM6mInL2OomzqUn4Su0DziLxlRrI2TSknKbxAWfTAnNaFsjZciTOpiVy9gaJs+lI+ErnA84i8ZUOyNn0pJym9wFnMwBzWhHI2UokzmYgcvYmibMZSfjK6APOIvGVEcjZTKScZvIBZzMDc1oVyNlqJM5mJnL2FomzWUj4yuIDziLxlQXI2ZdJOX2ZfI9BOcI+yymH77P8TNpnOS2yT/AKkEPAuTanBfYlKxD4cs7hcW8n8eW8CF+yAvkCnGtzXoAvlQh8ueDwuHeQ+HJRhC/ZgHwBzrVRyV92YP5qAHuomqQeKjvR494l9VCvkvz+qz7ooZD4ehXYQ+Ug5TQH+R6DnQR8XRG4PvoNgrZfFanROYEcAs61uUq6Pjon+R6DXwgcuiHAoToEDt0U4VAuIIeAc21ukjiUi3yPwVsELN12OId2kXqtOyIcyg3kEHCuzR2BtYn6BL7cc3jcu0l8uS/ClzxAvgDn2qjkLy8wf/WBaxMNSGsTeYn3GDwgrU3kI/XR+XxwjwESX/mAaxP5STnN74N7DAoAc9oYyNkmJM4WIK73PCRxtiAJXwV9sJ6IxFdBIGcLkXJayAfXURUG5rQ5kLMtSJwtTOTsIxJni5DwVcQHnEXiqwiQs0VJOS3qA84GAXMaAeRsJImzQUTOPiZx1pDwZXzAWSS+DJCzwaScBvuAsyHAnEYBOduWxNkQImefkDgbSsJXqA84i8RXKJCzxUg5LeYDzoYBc9oeyNkOJM6GETn7lMTZcBK+wn3AWSS+woGcLU7KaXHyPQaDCfssDx2+z7KHtM/ySGSfoASQQ8C5No8E9iU/JPDlqcPj3kviyzMRvpQE8gU41+aZAF+GEfgSr4iz495H4ot/EQ2+lALyBTjXRiV/pYH56wzsobqQeqjSRI8bLzGnhypD8vtlfNBDIfFVBthDlSXltCz5HoP9BHzFd7jG2ddHjyNoewKRGl0OyCHgXBtk/rw5VI58j8EBAocSC3BoEoFDSUQ4VB7IIeBcmyQkDpUn32MwlYCl5A7n0EFSr5VChEMVgBwCzrVJ4XDc2HyZTuBLaofHfYjElzQifKmIfH4rkC8q+asEzF9f4NpEP9LaRCXiPQYJSGsTlUl9dGUf3GOAxFdl4NpEFVJOq/jgHoOqwJwOBHJ2EImzVYnrPQlJnK1Gwlc1H6wnIvFVDcjZ6qScVvfBdVSvAXM6GMjZISTOvkbkbCISZ2uQ8FXDB5xF4qsGkLM1STmt6QPOvg7M6TAgZ4eTOPs6kbOJSZx9g4SvN3zAWSS+3gBythYpp7V8wNnawJyOAnJ2NImztYmcTULi7JskfL3pA84i8fUmkLN1SDmt4wPO1gXmdAyQs2NJnK1L5GxSEmfrkfBVzwecReKrHpCzb5Fy+hb5HoOfCPss6R2+z3KYtM+SQWSf4G0gh4BzbTII7EtuI/Als8PjPkLiSxYRvtQH8gU41yaLAF+2E/iS1eFxHyXxJZsIXxoA+QKca6OSv4bA/E0A9lATST1UQ6LHTUnqoRqR/H4jH/RQSHw1AvZQjUk5bUy+x+BXAr5yCFwffYCg7TlFanQTIIeAc21ykq6PbkK+x+AYgUN5BDh0hMChvCIcagrkEHCuTV4Sh5qS7zE4RsBSAYdz6Dip1yoowqFmQA4B59oUFFibOEHgSxGHx32CxJeiInxpjnx+K5AvKvlrAczfbODaxBzS2kQL4j0G6UhrEy1JfXRLH9xjgMRXS+DaRCtSTlv54B6DCGBO5wM5u4DE2Qjiek96EmcjSfiK9MF6IhJfkUDOtibltLUPrqNqA8zpQiBnF5E424bI2QwkzkaR8BXlA84i8RUF5GxbUk7b+oCz7wBzuhjI2SUkzr5D5GxGEmfbkfDVzgecReKrHZCz7Uk5be8DznYA5nQpkLPLSJztQORsJhJnO5Lw1dEHnEXiqyOQs51IOe3kA852BuZ0BZCzK0mc7UzkbGYSZ7uQ8NXFB5xF4qsLkLPvknL6Lvkeg4TJ8fgKdvg+y0nSPkuIyD5BVyCHgHNtQgT2JRMT+BLm8LhPkfgSLsKXbkC+AOfahAvwJSmBLyUdHvdpEl9KifClO5AvwLk2Kvl7D5i/1cAeag2ph3qP6HGzknqoHiS/38MHPRQSXz2APVRPUk57ku8xOEPAV1mB66PTE7S9nEiN7gXkEHCuTTnS9dG9yPcYnCVwqKIAhzITOFRJhEO9gRwCzrWpROJQb/I9Bq8QsFTV4Rw6R+q1qolwqA+QQ8C5NtUE1iayEfhSw+FxnyfxpaYIX/oin98K5ItK/voB87cZuDaxhbQ20Y94j0FO0tpEf1If3d8H9xgg8dUfuDYxgJTTAT64x2AgMKdbgZzdRuLsQOJ6Ty4SZweR8DXIB+uJSHwNAnL2fVJO3/fBdVQfAHO6A8jZnSTOfkDkbG4SZweT8DXYB5xF4mswkLNDSDkd4gPOfgjM6W4gZ/eQOPshkbN5SJwdSsLXUB9wFomvoUDODiPldJgPODscmNP9QM4eIHF2OJGzeUmcHUHC1wgfcBaJrxFAzo4k5XSkDzg7CpjTw0DOHiFxdhSRs/lInB1NwtdoH3AWia/RQM5+RMrpR+R7DGoS9llqOXyf5TfSPkttkX2Cj4EcAs61qS2wL/kGgS91HR737yS+1BPhyxggX4BzbeoJ8KU2gS/1HR73BRJfGojwZSyQL8C5Nir5GwfM3zFgD3Wc1EONI3rcQqQeajzJ74/3QQ+FxNd4YA81gZTTCeR7DC4S8NVY4ProRgRtbyJSoycCOQSca9OEdH30RPI9BpcIHGouwKFmBA61EOHQJCCHgHNtWpA4NIl8j0FLApYiHM6hy6ReK1KEQ5OBHALOtYkUWJuIIPAlyuFxXyHxpa0IX6Ygn98K5ItK/qYC83cBuDZxkbQ2MZV4j4EhrU1MI/XR03xwjwESX9OAaxPTSTmd7oN7DGYAc3oFyNmrJM7OIK73BJM4O5OEr5k+WE9E4msmkLOzSDmd5YPrqD4B5vQGkLM3SZz9hMjZEBJnZ5PwNdsHnEXiazaQs3NIOZ3jA87OBeb0NpCzd0icnUvkbCiJs/NI+JrnA84i8TUPyNn5pJzO9wFnFwBzeg/I2fskzi4gcrYYibOfkvD1qQ84i8TXp0DOfkbK6Wc+4OxCYE4fAjn7iMTZhUTOhpE4u4iEr0U+4CwSX4uAnP2clNPPyfcYjCHss7R3+D7LVdI+SweRfYIvgBwCzrXpILAvOY7Al84Oj/saiS9dRPiyGMgX4FybLgJ8mUDgSzeHx32dxJfuInxZAuQLcK6NSv6+BObvKbCHekbqob4ketySpB7qK5Lf/8oHPRQSX18Be6ilpJwuJd9jcIOAr54C10fPImh7L5EavQzIIeBcm16k66OXke8xuEngUF8BDs0lcKifCIe+BnIIONemH4lDX5PvMVhAwNJAh3PoFqnXGiTCoeVADgHn2gwSWJv4jMCXwQ6P+w8SX4aI8GUF8vmtQL6o5G8lMH+JC+GOlaQQR7NXEu8xKEdam1hF6qNX+eAeAyS+VgHXJr4h5fQbH9xjsBqY0+RAzqYgcXY1cb2nPImza0j4WuOD9UQkvtYAObuWlNO1PriO6ltgTlMDOZuGxNlviZytQOLsOhK+1vmAs0h8rQNydj0pp+t9wNnvgDlND+RsBhJnvyNytiKJs9+T8PW9DziLxNf3QM5uIOV0gw84uxGY08xAzmYhcXYjkbOVSJz9gYSvH3zAWSS+fgBydhMpp5t8wNnNwJxmBXI2G4mzm4mcrUzi7BYSvrb4gLNIfG0BcvZHUk5/JN9jsI+wzzLM4fsst0n7LMNF9gl+AnIIONdmuMC+5AECX0Y5PO47JL6MFuHLViBfgHNtRgvw5RCBL2McHvddEl/GivBlG5AvwLk2Kvn7GZi/HMAeKieph/qZ6HGrk3qo7SS/v90HPRQSX9uBPdQOUk53kO8x+JOArwkC10efJmj7RJEavRPIIeBcm4mk66N3ku8xuEfg0BQBDp0ncGiqCId+AXIIONdmKolDv5DvMbhAwNIMh3PoPqnXminCoV1ADgHn2swUWJu4RODLbIfH/ReJL3NE+LIb+fxWIF9U8rcHmL8iwLWJoqS1iT3EewzeIK1N7CX10Xt9cI8BEl97gWsT+0g53eeDewz2A3MaDORsCImz+4nrPbVInD1AwtcBH6wnIvF1AMjZg6ScHvTBdVSHgDkNA3I2nMTZQ0TO1iZx9jAJX4d9wFkkvg4DOXuElNMjPuDsUWBOSwI5W4rE2aNEzr5J4uyvJHz96gPOIvH1K5Czx0g5PeYDzh4H5rQskLPlSJw9TuRsHRJnT5DwdcIHnEXi6wSQsydJOT3pA86eAua0IpCzlUicPUXkbF0SZ0+T8HXaB5xF4us0kLNnSDk9Q77HIG0KPL7mO3yf5QFpn2WByD7BWSCHgHNtFgjsS6Yn8GWhw+N+SOLLIhG+nAPyBTjXZpEAXzIS+LLY4XE/IvFliQhfzgP5Apxro5K/34D5qwrsoaqReqjfiB63PqmH+p3k93/3QQ+FxNfvwB7qAimnF8j3GDwm4GupwPXROQjavkykRl8Ecgg412YZ6froi+R7DJ4QOLRCgEN5CBxaKcKhS0AOAefarCRx6BL5HoP8BCytdjiHnpJ6rTUiHLoM5BBwrs0agbWJggS+rHN43M9IfFkvwpcryOe3Avmikr+rwPzVBa5N1COtTVwl3mPQhLQ2cY3UR1/zwT0GSHxdA65NXCfl9LoP7jG4AcxpfSBnG5A4e4O43tOUxNmbJHzd9MF6IhJfN4GcvUXK6S0fXEf1BzCnjYGcbULi7B9EzjYjcfY2CV+3fcBZJL5uAzl7h5TTOz7g7F1gTpsDOduCxNm7RM42J3H2TxK+/vQBZ5H4+hPI2XuknN7zAWfvA3MaAeRsJImz94mcbUHi7F8kfP3lA84i8fUXkLMPSDl94APOPgTmNArI2bYkzj4kcrYlibOPSPh65APOIvH1CMjZx6ScPibfY9CAsM+yweH7LH5JOPssG0X2CZ4AOQSca7NRYF+yEYEvmx0e90skvmwR4ctTIF+Ac222CPClCYEvWx0edzwSX7aJ8OUZkC/AuTYq+fNLjYu5PbCH6kDqoex4s3uOi+Zia1IP9VJqTi5eSs3voZD48s7D8+Y0Himn8Yj4srHlT6j1OwSuj25D0PadIjXaH8gh4FybnaTro+14mfcYBBA4tFuAQ+0IHNojwqEAIIeAc232kDgUQOSQ3Wt1JGBpv8M5FEjqtQ6IcCgQyCHgXJsDAmsTnQl8OezwuOOT+HJEhC/xgXwBzrVRyV8CYP56AtcmepHWJux4WfcYtCOtTSQk9dEJU/PvMUDiKyFwbSIRKaeJUvPvMUgMzGlfIGf7kTibmLje057E2SQkfCXxwXoiEl9JgJxNSspp0v8ip8977smAOR0I5OwgEmeTETnbgcTZ5CR8JfcBZ5H4Sg7kbApSTlP4gLMpgTkdDOTsEBJnUxI525HE2VQkfKXyAWeR+EoF5GxqUk5T+4CzaYA5HQbk7HASZ9MQOduJxNm0JHyl9QFnkfhKC+RsOlJO0/mAs+mBOR0F5OxoEmfTEznbmcTZDCR8ZfABZ5H4ygDkbEZSTjMS8WXvs8wg7LMcc/g+SwLSPstxkX2CTEAOAefaHBfYl5xF4Msph8edkMSX0yJ8yQzkC3CuzWkBvswm8OWcw+NOROLLeRG+ZAHyBTjXRiV/LwPzNwbYQ40l9VAvEz1uN1IP9QrJ77/igx4Kia9XgD1UVlJOs5LvMUhMqPUXBK6P/pyg7RdFanQ2IIeAc20ukq6Pzka+xyAJgUNXBDj0JYFDV0U4lB3IIeBcm6skDmUn32OwjIClGw7nUFJSr3VThEOvAjkEnGtzU2BtYjmBL7cdHncyEl/uiPAlB5AvwLk2KvnLCczfDODaxEzS2kRO4j0GvUhrE7lIfXQuH9xjgMRXLuDaRG5STnP74B6DPMCczgZydg6Js3mI6z29SZzNS8JXXh+sJyLxlRfI2XyknObzwXVU+YE5nQ/k7AISZ/MTOduHxNkCJHwV8AFnkfgqAORsQVJOC/qAs4WAOV0I5OwiEmcLETnbl8TZwiR8FfYBZ5H4KgzkbBFSTov4gLNFgTldDOTsEhJnixI524/E2SASvoJ8wFkkvoKAnDWknBofcDYYmNOlQM4uI3E2mMjZ/iTOhpDwFeIDziLxFQLkbCgpp6HkewxOEvZZ7jl8nyU5aZ/lvsg+QTEgh4Bzbe4L7EueJvDlocPjTkHiyyMRvoQB+QKca/NIgC9nCXx56vC4U5L48kyEL+FAvgDn2qjkrzgwfyuAPdRKUg9VnOhx3yf1UCVIfr+ED3ooJL5KAHuokqScliTfY5CKUOvjFXW2xtnXR18laLt/UY0aXQrIIeBcG2T+vDlUinyPQWoCh+ILcOgmgUMJRDhUGsgh4FybBCQOlSbfY3CbgKXEDudQGlKvlUSEQ2WAHALOtUnicNzYfLlL4Etyh8edlsSXFCJ8KYt8fiuQLyr5KwfM3wbg2sRG0tpEOeI9BkNJaxPlSX10eR/cY4DEV3ng2kQFUk4r+OAeg4rAnG4GcnYLibMVies9w0icrUTCVyUfrCci8VUJyNnKpJxW9sF1VFWAOd0K5Ow2EmerEDk7nMTZqiR8VfUBZ5H4qgrkbDVSTqv5gLPVgTndAeTsThJnqxM5O4LE2ddI+HrNB5xF4us1IGdrkHJawwecrQnM6W4gZ/eQOFuTyNmRJM6+TsLX6z7gLBJfrwM5+wYpp2/4gLO1gDndD+TsARJnaxE5O4rE2dokfNX2AWeR+KoN5OybpJy+Sb7HIHtKPL5SO3yfJR1pnyWNyD5BHSCHgHNt0gjsS+Yg8CW9w+NOT+JLBhG+1AXyBTjXJoMAX3IR+JLZ4XFnIPEliwhf6gH5Apxro5K/t4D5OwzsoY6Qeqi3iB53DKmHepvk99/2QQ+FxNfbwB6qPimn9cn3GGQk1PqsAtdHFyFoezaRGt0AyCHgXJtspOujG5DvMchE4FAOAQ4FEziUU4RDDYEcAs61yUniUEPyPQbFCFjK43AOZSb1WnlFONQIyCHgXJu8AmsT4QS+FHB43FlIfCkowpfGyOe3Avmikr8mwPydA65NnCetTTQh3mMwkbQ20ZTURzf1wT0GSHw1Ba5NNCPltJkP7jFoDszpBSBnL5I425y43jOJxNkWJHy18MF6IhJfLYCcbUnKaUsfXEfVCpjTK0DOXiVxthWRs5NJnI0g4SvCB5xF4isCyNlIUk4jfcDZ1sCc3gBy9iaJs62JnJ1C4mwbEr7a+ICzSHy1AXI2ipTTKB9wti0wp7eBnL1D4mxbImenkjj7Dglf7/iAs0h8vQPkbDtSTtv5gLPtkc/IBnL2Pomz7YmcnUbibAcSvjr4gLNIfHUAcrYjKacdfcDZTsCcPgRy9hGJs52InP2UxNnOJHx19gFnkfjqDORsF1JOu3hyGmiNBF4Y8/6gcVfEDxtL9Ofd1MQTfjc1/rhdgQBhxd019T8TDDruv2wsxgOfc7uUuJx2AxaD2ObnuV+e55kfdA6LAs+xe2osbtAYt+e4e2r83LxHKtjveRVs+7f4fv/+cXLBZp5nYZHzLCRynt61NOg5P7Gd33O/mNI6RoAfvv4FAI8VRJprP2zMQTExBAcTUgjs4pfQa+L9iCRAOO+ovz+MCTTRX7xz0cNj2nqm9iQkWj16eJTO+7eePmirujy/0w32sN70ALrmnuDJRVc4mzQ9SA4cTJQ2XUhOqhfJSfUi3871FWFppYjArShfES6HLipyWWtvYMcInGtT1OG4sfmylMCXYAG+LCXwJUSEL32AfAHOtQkR4MsyAl/CBPiyjMCXcBG+9AXyBTjXJlyAL8sJfCkpwJdvCHwpJcKXfkC+AOfalBLgywoCX8oK8GU1gS/lRPjSH8gX4FybcgJ8WUngS0UBvmwn8KWSCF8GAPkCnGtTSYAvqxiv6xDgyw4CX6qJ8GUgkC/AuTbVBPjyDYEvNQT4spPAl5oifBkE5Atwrk1NAb6sJfCllgBf9hH4UluEL+8D+QKca1NbgC/fEvhSV4Av+wl8qSfClw+AfAHOtaknwJd1BL7UF+DL7wS+NBDhy2AgX4BzbRoI8GU9gS+NBfhygcCXJiJ8GQLkC3CuTRMBvnxH4EtzAb5cJPClhQhfPgTyBTjXpoUAXzYyHs0kwJfrBL5EivBlKPLxU0C+RArw5QcCX6IE+HKDwJe2InwZBuQLcK5NWwG+bCLwpb0AX15KRXisiwhfhgP5Apxr00GAL5sZjxYR4Es8Al+6iPBlBPLxKUC+dBHgyxYCX7oJ8MWfwJfuInwZCeQLcK5NdwG+bCXwpacAXxIR+NJLhC+jgHwBzrXpJcCXbQS+9BXgS2ICX/qJ8GU0kC/AuTb9BPjyM4EvAwX48gqBL4NE+PIRkC/AuTaDBPiyncCXwQJ8yUrgyxARvnwM5Atwrs0QAb7sIPBlmABfshH4MlyEL2OAfAHOtRkuwJddBL6MEuBLbgJfRovwZSyQL8C5NqMF+LKbwJcxAnzJQ+DLWBG+jAPyBTjXZqwAX/YQ+DJBgC8lCHyZKMKX8UC+AOfaTBTgy14CX6YI8KUkgS9TRfgyAcgX4FybqQJ82UfgywwBvpQi8GWmCF8mAvkCnGszU4AvBwl8mS3AlwoEvswR4cskIF+Ac23mCPDlEIEv8wX4UpHAlwUifJkM5Atwrs0CAb4cJvBloQBf3ibwZZEIX6YA+QKca7NIgC9HCHxZLMCX+gS+LBHhy1QgX4BzbZYI8OUogS9LBfjSgMCXZSJ8mQbkC3CuzTIBvhwn8GWFAF+aEfiyUoQv04F8Ac61WSnAlxMEvqwW4EtzAl/WiPBlBpAvwLk2awT4cpLAl3UCfOlK4Mt6Eb7MBPIFONdmvQBfThH4skGAL90IfNkowpdZQL4A59psFODLaQJfNgvwpTuBL1tE+PIJkC/AuTZbBPhyjsCXrQJ86UPgyzYRvswG8gU412abAF/OE/iyQ4AvfQl82SnClzlAvgDn2uwU4MtvBL7sFuDLxwS+7BHhy1wgX4BzbfYI8OV3Al/2C/BlDIEvB0T4Mg/IF+BcmwMCfLlA4MthAb6MJfDliAhf5gP5Apxrc0SAL5cJfDkmwJfJBL4cF+HLAiBfgHNtjgvw5QqBL6cE+DKFwJfTInz5FMgX4Fyb0wJ8uUrgyzkBvnxB4Mt5Eb58BuQLcK7NeQG+XCPw5YIAXxYT+HJRhC8LgXwBzrW5KMCX6wS+XBHgyxICX66K8GURkC/AuTZXBfhyi8CXGwJ8WU7gy00RvnwO5Atwrs1NAb78QeDLbQG+rCDw5Y4IX74A8gU41+aOAF9uE/hyT4AvPxH4cl+EL4uBfAHOtbkvwJc7BL48FODLVgJfHonwZQmQL8C5No8E+HKXwJenAnzZRuDLMxG+fAnkC3CuzTMBvtwn8CVekPP5sovAF/8gDb58BeQLcK6Nv8NxY/PlLwJf4gvwZTeBLwlE+LIUyBfgXJsEAnx5QOBLYgG+nCXwJYkIX5YB+QKca5NEgC8PCXxJLsCXcwS+pBDhy9dAvgDn2qQQ4MsjAl9SC/DlPIEvaUT4shzIF+BcmzQCfHlK4Et6Ab5cJvAlgwhfVgD5Apxrk0GAL88IfMkswJcrBL5kEeHLSiBfgHNtsgjwxS8JHjdZBfjyhMCXbCJ8WQXkC3CuTTYBvrxE4EsOAb48JfAlpwhfvgHyBTjXJqcAX+IR+JJHgC/PCHzJK8KX1UC+AOfa5BXgSyCBLwUE+BKYGh93QRG+rAHyBTjXpqAAX+IT+FJEgC/xCXwpKsKXtUC+AOfaFBXgSwICX4IF+JKJwJcQEb58C+QLcK5NiABfEhL4EibAl8wEvoSL8GUdkC/AuTbhAnxJROBLSQG+ZCHwpZQIX9YD+QKca1NKgC9JCXwpK8CXVwl8KSfCl++AfAHOtSknwJdkBL5UFOBLDgJfKonw5XsgX4BzbSoJ8CU5gS9VBfhSjMCXaiJ82QDkC3CuTTUBvqQg8KWGAF/CCHypKcKXjUC+AOfa1BTgS0oCX2oJ8CWcwJfaInz5AcgX4Fyb2gJ8SUPgS10BvpQh8KWeCF82AfkCnGtTT4AvaQl8qS/Al7IEvjQQ4ctmIF+Ac20aCPAlHYEvjQX4UofAlyYifNkC5Atwrk0TAb6kJ/CluQBf6hL40kKELz8C+QKca9NCgC8ZCHyJEOBLPQJfIkX48hOQL8C5NpECfMlM4EuUAF8aEfjSVoQvW4F8Ac61aSvAlywEvrQX4EtjAl86iPBlG5AvwLk2yPwFWMcItsYZz/F6WzH3sUZfa6xI6ee30hqrrNHP+ru/Nb61vn9njY3W2GyNn6zxszUGWP9toDUGWWO39fcea+y1xvvW3x9Y45D1/ag1jlvjlDXOWuM3awy2/tsQa3xojSvW31etcc0aQ62/h1njD+v7XWvct8ZDazyxhl8qP7/h1n8bYY2R1ohv/Z3AGgmtMcr6e7Q1klnfU1ojjTXSWyOTNV62xkfWf/vYGmOskcP6O6c1clljrPX3OGvkt74XskZRawRbo5g1iltjvPXfJlhjojXKWn+Xs0Z5a0yy/p5sjSrW9+rWqGmNWtaoY423rDHF+m9TrTHNGo2tv5tYo6k1plt/z7BGK+t7a2u0tUZ7a3SyxrvWmGn9t1nW+MQaPa2/e1mjtzVmW3/PscYA6/v71hhijWHWGGnHZo251n+z3+ttv6t4gvX3RPscrWG/i9V+v+R06/ssa8yxxnxrfGaNz+1/rf9mvx/MfufRUuvvZdb42v5v1t/2eyq+sb6vtcZ6a2ywxiZr/GgN+5n89nPG7Wcn77D+3mmNX6xhPxvWft7lPuv7QWscscYxa5y0xhn7+NZ/s59XZj+D6YL190VrXLKG/YwZ+7kZ163vt6xxxxr3rPHAGo+tYT8jwL7v2b6XM541/K0RYA37XjX7/ptE1khqjRTWSG2NdNbIaOPWGvb10/Y1oVmtkc0a2a1hX/NmX8eT2xr5rFHQGkWsYawRag37mgV7H9beWyppjVLWKG0Ne+3cXg+sYI3K1qhmjRrWeMMab1rDXvuw+znbo9a3RgNrNLSGrcF2XWlmjZbWiLRGlDXaWaNj6n/WMnAtb9PFOnZ3Qi3/GVcjg/w9tSjmB3V8Um4NMgesc9yOPkf0CRbx4wC0M9lkPe/52TFvJ8TdhWSyAojAfN6Yd+BAboC4Mci5IBdJE328uFgkdzi8SP5DxeOBA+8OJOFOYBLt/Pl78mgfNztn4iXy+ovrtMwvAkVkl9Odln08htPqJuC0dhHi7i7itHYBi9FuoNMC4sZ0d52WRJHcHUedVjDSEewhOa09ek4Lmte9rtMyewWKyD52EUE4jn0Ex9FTxHHsA5Jyv0PXdnq6jkOiWOyPo44jBKmMB0iO44Ce44Dm9aDrOMxBgSJyyOlrO4X9OGs7vQXWdg4R4u4j4rQOAYvRYaDTAuLG9HGdlkSRPBxHnVYo0hEcITmtI3pOC5rXo67TMkcFisivCms7vxK2jH8Fgv2YDthpiqkA9mNxVDGLISv7cZJiHtdTTGheT7iKaU4IFJGTTldMu+cN8vv323SCnu9jAoDHCgLGewo8IQwHc5KwZtLf4be12XGfIsQ9QGSt6CRQHE4D14qAuDED3LUiCdE6HUedbxjSoZ0hOd8zes4XmtezrvM1ZwWKyDmn78oV8uPsyr0vsCt3jhD3ByJO6xywGJ0HOi0gbswHrtOSKJLn46jTCkc6gt9ITus3PacFzevvrtMyvwsUkQsKu3IXCLtyF4Bgv+juykmA/WIcVcziyMp+iaSYl/QUE5rXy65imssCReSKgmJeISjmFSDYr7qKKQH2q3FUMUsgK/s1kmJe01NMaF6vu4pprgsUkRsKinmDoJg3gGC/6SqmBNhvxlHFbIWs7LdIinlLTzGhef3DVUzzh0ARua2gmLcJinkbCPY7rmJKgP1OHFXMCGRlv0tSzLt6ignN65+uYpo/BYrIPQXFvEdQzHtAsN93FVMC7PfjqGJGIiv7XyTF/EtPMaF5feAqpnkgUEQeKijmQ4JiPgSC/ZGrmBJgfxRHFbM1srI/JinmYz3FhOb1iauY5olAEXnq8CJi2qXk3JX0ocBdSU8JcQ8VuSvpKbAYPcOB3ABxY5Bzoeq0FIrkM6cXSYU3Q/ml4Tgt+7jZrX8C/f4uQvH9/v2DzncRP04RZTxoV+E8C4mcp21GFM7zVGrOefphzzMonncO0vz9bzzr35fQCelqJaSo378XyOctakWBx+oKdCneBfKlNP9sRaM/aKF4KQ0uD/5psK4FjSV7zu258hfB0nM/Ec3h82HjxT5HdKcUSDIsgV6GJaEXF70/6Bx9CRCuqL8/kbGc7vMe20R/8c5FfI8gJEjjSUh0AuN7Jtv7twSxFDn0I/y8k/h/BFewB1wmPrBgJkiDnVz4IxXT/HMygfPBeOxeK3uOGcUkIamYJExDW2c2CxP7+TVLgs/FCIc/enGeFXP7lPi4R5KW3tBGJBFQ8IFzbUY6HDc2X5oT+PKRAF86EPjysQhfEgP5Apxr87EAX1oQ+DJOgC8dCXwZL8KXJEC+AOfajBfgSysCXyYJ8KUbgS+TRfiSFMgX4FybyQJ8iSDwZZoAX7oT+DJdhC/JgHwBzrWZLsCXSAJfZgnwpS+BL5+I8CU5kC/AuTafCPClNYEvcwX40o/Al3kifEkB5Atwrs08Ab60IfDlUwG+9Cfw5TMRvqQE8gU41+YzAb68Q+DL5wJ8GUzgyxcifEkF5Atwrs0XAnxpR+DLlwJ8GULgy1cifEkN5Atwrs1XAnxpT+DL1wJ8GUXgy3IRvqQB8gU412a5AF86EPiySoAvowl8+UaEL2mBfAHOtflGgC8dCXxZK8CXjwh8+VaEL+mAfAHOtflWgC9dCHz5ToAvEwh8+V6EL+mBfAHOtflegC/vEvjygwBfJhL4skmELxmAfAHOtdkkwJeuBL78KMCXGQS+/CTCl4xAvgDn2vwkwJduBL78LMCXmQS+bBfhSyYgX4BzbbYL8KU7gS+/CPBlFoEvu0T4khnIF+Bcm10CfOlJ4MteAb7MJ/BlnwhfsgD5Apxrs0+AL70IfDkowJcFBL4cEuHLy0C+AOfaIPNnP7ksxBr5PMez78G27yu175XrYs39u9boag37XiD7/oae1vc+1rCv3bavR7WvsRtk/f2+NT6whn0NkX1dxDDr+0hr2Hu+9j6WvTY/1vp7nDXGW8Nee7TXU6ZY36dbw+4Vbf9ra/oc6++51phnDbtm2fOw0Pr+Rcp/zrXK8xdeAT5/wd8zVzE/qOOTcmuQOWCdY1b0OTIe/ccA6FGyCCEe4pKVEPevJBFCP482K/CBPdmAggbEjUHOBblI0p5Hq1Akszm8SP5DxeOBAw8AkjA76YlM2XlPZJLI66uu0zKvChSRHE53WvbxGE7rhIDTykGI+6SI08oBLEY5gU4LiBtz0nVaEkUyZxx1WsFIR5CL5LRy6TktaF5zu07L5BYoInnYRQThOPIQHMcZEceRB0jKvA5d2znjOg6JYpE3jjqOEKQy5iM5jnx6jgOa1/yu4zD5BYpIAaev7dgvpmKs7ZwTWNspQIj7vIjTKgAsRgWBTguIG3PedVoSRbJgHHVaoUhHUIjktArpOS1oXgu7TssUFigiRRTWdooQtoyLAMFeVAfsNMVUAHvROKqYxZCVPYikmEF6ignNq3EV0xiBIhLs9LUJ++XJjLWJCwJrE8GEuC+KrE0EA4tRCHBtAogbc9Fdm5AokiFx1GmFIR1BKMlpheo5LWhei7lOyxQTKCJhTndahfw4TuuKgNMKI8R9VcRphQGLUTjQaQFxY666TkuiSIbHUacVjnQExUlOq7ie04LmtYTrtEwJgSJS0ulOK14ajtO6IeC0ShLivinitEoCi1EpoNMC4sbcdJ2WRJEsFUedVnGkIyhNclql9ZwWNK9lXKdlyggUkbJOd1rtSA+wui3gtMoS4r4j4rTKAotROaDTAuLG3HGdlkSRLBdHnVYJpCMoT3Ja5fWcFjSvFVynZSoIFJGKTndaL5HWtO4JOK2KhLjvizitisBiVAnotIC4MfddpyVRJCs5vUgqPDGwMslpVeY5LdMttZ9f99T4IlyFAHr7Ew98nl1T445VNQ22GKHn2p6TqgTBrUbCfTUi7v1Jpqt6Gq7pCnq+j7Hnvzoh7tdIGHiNiAEWHx4GxU0MPCIZb/R7OGoA6zRwrg0yf94cquHhkOoqw8VA559jTWTdV52oiPjOP8fX3YkKMq0FJuoNd6KCzHZ/559jLaevHdjvnWL0uLUFvH5tgs97k+T13yR6fbvXq0XIRR0BDNQhxF2XhIG6RAyw+PBUoN9jYOCZSL9XD9jvAefaPCP1e/XE+72OAu70LaebnndJpieecXaxs4X+LUKx8zcaxe5tYLEDzrXxdzhubJF8m4Cb+iSjVN/rXKM/6M3RqsDN0Qa4PISqCluDNM4/x4ZOF7auJGGLLyBsDQkFKoGIsDUCChtwrk0CAWFrRMBNY5KwNeYLWxhS2Jq41wGbJgLC1pR0RRIanOFIcDZzwWmaCYCzuQg4iyHB2QIXdIgqOFsIgLOl01uCnqSWoJXA5k4rgrWLIFm7CPIGX0tCLiIFMBBJiLs1CQOtyRt8DD4kFmjxGBhIIrI00Aa4NACca4PMnzeH2nhxKPrj5BY5yjV6JkrA6LV1utHrQzJ67wiI/DuEAt+OJPLtyEavLSEX7QUw0J4QdwcSBjqQjR6DD8kFjB4DAylEjF5HoNEDzrVJQTJ6HflGrxXS6HVyl5tNJwGj11lkuTkCCc4uLjhNFwFwvisCzkgkOLu64DRdBcDZTQScUFnv7q7fmO4C4HzP6es3g0jrNz0EevcehL6tJ6l370lev3mPkIteAhjoRYi7NwkDvcnrNww+pBZYv2FgII3I+k0f4PoNcK5NGtL6TR+x9Zu+7k0apq+A0evndKP3PsnopRe4SaMfocBnECnw/YEFHjjXJoOAMehPwM0AkjkckIZ+kwZ07XegK2xmoICwDXK6sH1AErbMAsI2iFCgsogI2/tAYQPOtckiIGzvE3DzAUnYPqALmwlCCttgd9/IDBYQtiEa+0YG+syHD11wmg8FwDlUZFMzCgnOYe6mphkmAM7hTm8JhpFaghECG1ojCNZuJMnajSRvag4n5GKUAAZGEeIeTcLAaPKmJoMPWQVaPAYGsoksDXwEXBoAzrXJRtrU/Ii+qYltkT92jZ75WMDojXG60RtJMnpjBUR+LKHAjyOJ/Diy0RtDyMV4AQyMJ8Q9gYSBCWSjx+BDDgGjx8BAThGjNxFo9IBzbXKSjN5EvtELRRq9Se5ys5kkYPQmi+yFQB92N8UFp5kiAM6pIuCEPqBnmgtOM00AnNNFwAmV9Rnu+o2ZIQDOmU5fvxlLWr+ZJdC7zyL0bZ+QevdPyOs3Mwm5mC2AgdmEuOeQMDCHvH7D4EMegfUbBgbyiqzfzAWu3wDn2uQlrd/MFVu/mefepGHmCRi9+U43euNIRq+AwE0a8wkFvqBIgV8ALPDAuTYFBYzBAgJuPiWZw0/T0G/SgK79fuYKm/lMQNgWOl3YxpOErYiAsC0kFKiiIsK2CChswLk2RQWEbREBN5+ThO1zvrBBnxfzhbtvZL4QELbFIvtG0Gc+LHHBaZYIgPNLEXCWQILzK3dT03wlAM6lTm8JppBagmUCG1rLCNbua5K1+5q8qbmUkIvlAhhYToh7BQkDK8ibmgw+BAu0eAwMhIgsDawELg0A59qEkDY1V/I3NaEt8irX6JlVAkbvG6cbvekko7daQORXEwr8GpLIryEbvW8IuVgrgIG1hLi/JWHgW7LRY/AhTMDoMTAQLmL01gGNHnCuTTjJ6K3jG702SKO33l1uNusFjN53IsvN0Ifdfe+C03wvAM4NGuAMhj6gZ6MLTrNRAJw/iFROqKxvctdvzCYBcG52+vrNHNL6zRaB3n0LoW/7kdS7/0hev9lMyMVPAhj4iRD3VhIGtpLXbxh8KCmwfsPAQCmR9ZttwPUb4FybUqT1m21i6zc/uzdpmJ8FjN52pxu9uSSjV1bgJo3thAJfTqTA7wAWeOBcm3ICxmAHATc7SeZwZxr6TRrQtd9fXGEzvwgI2y6nC9s8krBVFBC2XYQCVUlE2HYDhQ0416aSgLDtJuBmD0nY9tCFLRj6vJi97r6R2SsgbPtENjWhz3zY74LT7BcA5wERcIYgwXnQ3dQ0BwXAecjpLcFCUktwWGBD6zDB2h0hWbsj5E3NQ4RcHBXAwFFC3L+SMPAreVOTwYeqAi0eAwPVRJYGjgGXBoBzbaqRNjWP0Tc1sS3ycdfomeMCRu+E043eFySjd1JA5E8SCvwpksifIhu9E4RcnBbAwGlC3GdIGDhDNnoMPtQQMHoMDNQUMXpngUYPONemJsnonSVy6EuSlp4TqKPnCBw6T6qj58kYsPU0Hvi4AcDm4TcBPP1GwNPvJDz9TtZlBrdqCegyAwO1RXT5AlCXgXNtapN0+YKHQ/bfwX7//kHPGRqvFwMFzhFZ91UnKiK+88/xkjtRQaa1wERddicqyGz3d/45XnH6OqzdN14h+J2rAl7/KiHuaySvf43o9Vd4ekd0Lq4LYOA6Ie4bJAzcIPd7DD7UFej3GBioJ9Lv3QT2e8C5NvVI/d5N8X6vo4A7veV007OSJHj1HV7sbLN3ixB3A5Fi9wew2AHn2jQQEMk/CLi5TTJKtz3nqlrkzwkU+TtOL/KrSEW+sUCRv0OIu4lIkb8LLPLAuTZNBIr8XQJu/iQV+T/Fi/wFgSJ/z11ntnZFBCbqvjtR1mK7wET9pbAh8BdBBh4ILAY/IMT9kCR/9nETkkD6Lck6PxLAwCNC3I9JGHhMxEBVEh+aC9hgBgZaiLRPT4DtE3CuTQvShsATD4dUTc8NAdPzVMH0PCWQ/pmA4D0jxO2XlkNW+7jZSSD9jmR6XkrrfAzY54iOOx4JA/GIGGDxIULA9DAwEClievxxWDXAuTaRJNPjn1b7KojbAqYnIK2A6QkgkD5QQPACCXHHJwlefKLgbSSZngQCGEhAwEBCEgYSkk0Pgw9RAqaHgYG2IqYnEdD0AOfatCWZnkTipueegOlJrGB6EhNIn0RA8JIQ4k5KErykRMHbTDI9yQQwkIyAgeQkDCQnmx4GH9oLmB4GBjqImJ4UQNMDnGvTgWR6UoibnocCpielgulJSSB9KgHBS0WIOzVJ8FITBe8nkulJI4CBNAQMpCVhIC3Z9DD40FnA9DAw0EXE9KQDmh7gXJsuJNOTTtz0PBUwPekVTE96AukzCAheBkLcGUmCl5EoeD+TTE8mAQxkImAgMwkDmcmmh8GHbgKmh4GB7iKmJwvQ9ADn2nQnmZ4s4qYnMIHzz/FlZN1XnagEAhP1SlpOkfKLBz1RE1QV+HztrMCgVcGZNa3zzzGbBjiD2iDBmR0XdIgqOLMLgPNVhb7+VYKvzSHQ0+UgxJ2T1NPlJPZ0u0l9fS4BDOQiYCA3CQO5yX09gw89Bfp6BgZ6ifT1eYB9PXCuTS9SX5/Hi0PRHycbvby4+QlVNXp5BYxePqcbvT0kke8r8AC/fIQC30+kwOcHFnjgXJt+AsYgPwE3BUjmsIDXuUZ/wMIWhRS2gq6wmYICwlbI6cK2lyRsAwWErRChQA0SEbbCQGEDzrUZJCBshQm4KUIStiJ0YTOhSGEr6u4bmaICwhYksqlZDAlO44LTGAFwBsfFTc0QXNDFVcEZIgDOUIVNzVCCxSkmsKFVjBB3GMna2cdlPXH3EKktDBfAQDgBA8VJGCielvvUZQYfBgu0eAwMDBFZGigBXBoAzrUZQtrULOHFoeiPk1vkku7Va6akgNErpWD0ShEKXWkBkS9NiLsMSeTLEK9cOkoyemUFMFCWgIFyJAyUI1+9xuDDMAGjx8DAcBGjVx5o9IBzbYaTjF55+tVr2OXmCq7RMxUEjF5FBaNXkVDoKgmIfCVC3JVJIl+ZKPLHSUavigAGqhAwUJWEgapko8fgwygBo8fAwGgRo1cNaPSAc21Gk4xeNb7RC0Mavequ0TPVBYzeawpG7zVCoashIPI1CHHXJIl8TaLInyIZvdcFMPA6AQNvkDDwBtnoMfgwRsDoMTAwVsTo1QIaPeBcm7Eko1eLb/TCkUavtmv0TG0Bo/emgtF7k1Do6giIfB1C3HVJIl+XKPJnSUavngAG6hEw8BYJA2+RjR6DDxMEjB4DAxNFjN7bQKMHnGszkWT03uYbveJIo1ffNXqmvoDRa6Bg9BoQCl1DAZFvSIi7EUnkGxFF/jeS0WssgIHGBAw0IWGgCdnoMfgwRcDoMTAwVcToNQUaPeBcm6kko9eUb/QikUavmXtLuGkmYPSap+XwHQ3O1khw/n/svQvUVePb9p2iEEVpo+2sKER1td9QiKIohBCljaIoiqIoiqIoiqIoiqIoiqIohCgKIYqiKApRFEV9c31Pve/9vs/zjfEf33381pjHaK4x5nAvjbHGvM7z+F3ncZ3X3HRIxRk6GIjzahNxSp9X0DEVZ+hoIM5OJuKUlvXOaf8mdDYQZxeH/k0XYP1yjcHa/Rpg3F2htXtXcO2+GerfdDPQQDdAA9dCGrgW7t8QPIw36N8QGphg0r+5Tti/EeY6TID6N9eZ9W+66/Jj+yDl7gZGr0fSjd4WqMhPNHiQcg9ggp9kMsFfL5zghbkOkwyMwfWAbm6AzOENOc51/yfJvd+eaWELPQ0KW6+kF7afocI22aCw9QImqCkmhe1GYWET5jpMMShsNwK6uQkqbDfhha1mTWVh653uG4XeBoWtj8e+Uc1aSnHenIoz3GwgzlsOxE3NvrpB274hoK+BOPs5bGr2AyzOrQYbWrcC474NsnaZ36WeDv87tCzsb6CB/oAGBkAaGHAM+4YAgoepBks8QgPTTFoDtwtbA8Jch2nQpubtx9BvCNAuke9Ir14LdxgYvYEORm8gMNENMijyg4Bx3wkV+TvBK5f+gIzeXQYauAvQwGBIA4Phq9cIHqYbGD1CAzNMjN4QodET5jrMgIzeEPzqNW27+e7U6IW7DYzePQ5G7x5gohtqUOSHAuMeBhX5YWCR3wkZvXsNNHAvoIH7IA3cBxs9goeZBkaP0MAsE6M3XGj0hLkOsyCjN5w3etJ3fo5IjV4YYWD07ncwevcDE90DBkX+AWDcI6EiPxIs8rsgozfKQAOjAA08CGngQdjoETzMNjB6hAbmmBi9h4RGT5jrMAcyeg/xRk/6zs/RqdELow2M3hgHozcGmOgeNijyDwPjfgQq8o+ARf5fyOiNNdDAWOKhoZAGxsFGj+BhroHRIzQwz8ToPSo0esJch3mQ0XuUN3rSd34+lhq98JiB0RvvYPTGE09YMijyE4BxPw4V+cfBIp/naMboPWGggScADUyENDARNnoED/MNjB6hgQUmRm+S0OgJcx0WQEZvEm/0OiqN3pPpLeHhSQOj99QxDO9qcXZSinNyKs4w2UCcU0zEKX1ewdOpOMPTBuJ8xkSc0rI+Ne3fhKkG4pzm0L+ZBqxfnjVYuz8LjPs5aO3+HLh2zw/1b6YbaGA6cX8dpIEZcP+G4GGhQf+G0MAik/7N88L+jTDXYRHUv3nerH/zgi4/tg9SfsHA6M1MutErABX5tw0epDwTmOAXm0zws4QTvDDXYbGBMZgF6OZFyBy+mONc93+S3Pt9KS1s4SWDwjY76YXtUKiwvWdQ2GYDE9QSk8I2R1jYhLkOSwwK2xxANy9Dhe1lvLDVqqEsbK+k+0bhFYPCNtdj36hWUIpzXirOMM9AnK8eiJuar+kGbfuGgNcMxDnfYVNzPnFRpsGG1gJg3K9D1i7zu9TT4Y+EloVvGGjgDWIjD9LAwmPYNwQQPCw1WOIRGlhm0hpYJGwNCHMdlkGbmouOod8QoF0iv5levRbeNDB6bzkYvbeAie5tgyL/NrGpCRX5xeCVS0dBRu8dAw28A2jgXUgD78JXrxE8LDcweoQGVpgYvfeERk+Y67ACMnrv4VevadvNS1KjF5YYGL33HYze+8BE94FBkf+A6GBARX4pWOSLQkZvmYEGlgEa+BDSwIew0SN4+NTA6BEaWGli9D4SGj1hrsNKyOh9xBs96Ts/l6dGLyw3MHorHIzeCmCi+9igyH8MjPsTqMh/Ahb54pDR+9RAA58SRR7SwErY6BE8fGFg9AgNrDIxep8JjZ4w12EVZPQ+442e9J2fn6dGL3xuYPS+cDB6XxATnUGRXwWM+0uoyH8JFvljIaP3lYEGvgI0sBrSwGrY6BE8rDYweoQG1pgYvTVCoyfMdVgDGb01vNGTvvPz69Toha8NjN43DkbvG2CiW2tQ5NcC414HFfl1YJEvAxm9bw008C2gge8gDXwHGz2Ch7UGRo/QwDoTo7deaPSEuQ7rIKO3njd69ZVGb0N6S3jYYGD0vj+G4V0tzgZKcf6QijP8YCDOjSbilD6vYFMqzrDJQJw/mohTWtZ/Svs34ScDcW526N9sBtYvWwzW7luAcf8Mrd1/BtfuFaH+zS8GGvgF0MCvkAZ+hfs3BA/rDfo3hAY2mPRvtgr7N8Jchw1Q/2arWf/mN11+bB+k/JuB0fs96UavElTkNxo8SPl3YILfZDLBbxNO8MJch00GxmAboJvtkDncnuNc93+S3Pv9Iy1s4Q+DwvZn0gvbcVBh22xQ2P4kOjcmhW2HsLAJcx22GBS2HYBudkKFbSdf2K5RFra/0n2j8JdBYfvbZN+oq1Kcu1Jxhl0G4tx9IG5q/qMbtO0bAv4xEOe/Dpua/wIWZ4/BhtYeYNx7IWuX+V3q6fAnQsvCPMWSr4HMOarHfVAxRgOZ3yXfEEDw8KvBEo/QwFaT1kBenVaDMNdhK7SpmbcY/oYA6RI5ny4/tlev5SuW/HM8uJiB0TsYmOgOMSjyhwDjzg8V+czvRpBIT4aMXgEDDRQANHAopIFDQQ1QPGwzMHqEBrabGL3DhEZPmOuwHTJ6h+VgaP8nye3mw1OjFw43MHoFHYxeQWCiO8KgyB8BjPtIqMgfCRb56pDRK2SggUKABgpDGigMGz2Chx0GRo/QwE4To3eU0OgJcx12QkbvKNzo1Za+8/Po1OiFow2MXhEHo1cEmOiKGhT5osC4j4GK/DFgka8JGb1iBhooBmigOKSB4rDRI3jYZWD0CA3sNjF6JYRGT5jrsBsyeiV4oyd952fJ1OiFkgZG71gHo3csMNGVMijypYBxl4aKfGmwyNeBjF4ZAw2UATRQFtJAWdjoETzsMTB6hAb2mhi9ckKjJ8x12AsZvXK80ZO+87N8avRCeQOjFzkYvQiY6CoYFPkKwLgrQkW+Iljk60NGr5KBBioBGjgO0sBxsNEjeMhb88DUQL6a+uKUJ4/e6B0vNHrCXAdl/HIydDxv9OoqjV5l4VziavQqGxi9KsUY3tXirKcU5wmpOMMJBuI80USc0ucVnJSKM5xkIM6qJuKUlvWT0/5NONlAnKc49G9OAdYv1QzW7tWAcVeH1u7VwbV7Y6h/U8NAAzUADQRIAwHu3xA85Dfo3xAaKGDSv6kp7N8Icx0KQP2bmmb9m1q6/Ng+SLmWgdGrnXSj1wQq8ocnfILPGNzawARf0GSCryOc4IW5DgUNjEEdQDd1IXNYN8e57v8kufdbLy1soZ5BYauf9MJ2OnXjuEFhq0/cOG5S2BoIC5sw16GwQWFrAOimIVTYGvKFrbOysDVK941CI4PCdqrJvlEXpThPS8UZTjMQZ+MDcVOziW7Qtm8IaGIgztMdNjVPByzOGQYbWmcA4z4TsnaZ36WeDn82tCxsaqCBpoAGzoI0cFYx9g0BBA9FDJZ4hAaKmrQGzha2BoS5DkWhTc2zi9FvCNAukZulV6+FZgZGr7mD0WsOTHTnGBT5c4BxnwsV+XPBK5fOgYxeCwMNtAA00BLSQEv46jWCh+IGRo/QQAkTo3ee0OgJcx1KQEbvPP7qNWm7+fzU6IXzDYxeKwej1wqY6FobFPnWwLgvgIr8BWCRbwkZvQsNNHAhoIGLIA1cBBs9godSBkaP0EBpE6PXRmj0hLkOpSGj14Y3etJ3fl6cGr1wsYHRu8TB6F0CTHSXGhT5S4Fxt4WKfFuwyLeCjN5lBhq4DNDA5ZAGLoeNHsFDOQOjR2igvInRu0Jo9IS5DuUho3cFb/Sk7/xslxq90M7A6F3pYPSuBCa6qwyK/FXAuNtDRb49WOQvhIxeBwMNdAA0cDWkgatho0fwUNHA6BEaqGRi9DoKjZ4w16ESZPQ64kavjvSdn51Soxc6GRi9zg5GrzMw0XUxKPJdgHFfAxX5a8AifzFk9LoaaKAroIFukAa6wUaP4KGygdEjNFDFxOhdKzR6wlyHKpDRu5Y3erWVRu+69JbwcJ2B0etejOFdLc46SnH2SMUZehiI83oTcUqfV3BDKs5wg4E4e5qIU1rWe6X9m9DLQJw3OvRvbgTWLzcZrN1vAsbdG1q79wbX7ldA/Zs+BhroA2jgZkgDN8P9G4KHkwz6N4QGqpr0b24R9m+EuQ5Vof7NLWb9m766/Ng+SLmvgdHrl3Sj1w4q8tUMHqTcD5jgq5tM8LcKJ3hhrkN1A2NwK6Cb2yBzeFuOc93/SXLvt39a2EJ/g8I2IOmF7UqosNU0KGwDgAmqlklhu11Y2IS5DrUMCtvtgG7ugArbHXxh66gsbAPTfaMw0KCwDTLZN+qkFOedqTjDnQbivOtA3NQcrBu07RsCBhuIc4jDpuYQwOLcbbChdTcw7nsga5f5Xerp8B2hZeFQAw0MBTQwDNLAsGLsGwIIHuoaLPEIDdQzaQ3cK2wNCHMd6kGbmvcWo98QoF0i35devRbuMzB6wx2M3nBgohthUORHAOO+Hyry94NXLnWBjN4DBhp4ANDASEgDI+Gr1wgeGhoYPUIDjUyM3iih0RPmOjSCjN4o/uo1abv5wdTohQcNjN5DDkbvIWCiG21Q5EcD4x4DFfkxYJHvBhm9hw008DCggUcgDTwCGz2Ch8YGRo/QQBMTozdWaPSEuQ5NIKM3ljd60nd+jkuNXhhnYPQedTB6jwIT3WMGRf4xYNzjoSI/Hizy3SGjN8FAAxMADTwOaeBx2OgRPJxpYPQIDTQ1MXpPCI2eMNehKWT0nuCNnvSdnxNToxcmGhi9SQ5GbxIw0T1pUOSfBMb9FFTknwKL/A2Q0ZtsoIHJgAamQBqYAhs9godmBkaP0EBzE6P3tNDoCXMdmkNG72ne6Enf+flMavTCMwZGb6qD0ZsKTHTTDIr8NGDcz0JF/lmwyN8IGb3nDDTwHKCB6ZAGpsNGj+ChhYHRIzTQ0sTozRAaPWGuQ0vI6M3AjV7dmkqj93x6S3h43sDovVCM4V0tzlpKcc5MxRlmGohzlok4pc8reDEVZ3jRQJwvmYhTWtZnp/2bMNtAnHMc+jdzgPXLywZr95eBcb8Crd1fAdfufaH+zVwDDcwFNDAP0sA8uH9D8NDKoH9DaKC1Sf/mVWH/Rpjr0Brq37xq1r95TZcf2wcpv2Zg9OYn3ej1g4r8RQYPUp4PTPBtTCb4BcIJXpjr0MbAGCwAdPM6ZA5fz3Gu+z9J7v2+kRa28IZBYVuY9MJ2K1TYLjUobAuBCaqtSWFbJCxswlyHtgaFbRGgmzehwvYmX9jqKwvbW+m+UXjLoLC9bbJv1EApzsWpOMNiA3G+cyBuar6rG7TtGwLeNRDnew6bmu8BFmeJwYbWEmDc70PWLvO71NPh74CWhR8YaOADQANLIQ0sLca+IYDg4QqDJR6hgXYmrYFlwtaAMNehHbSpuawY/YYA7RL5w/TqtfChgdH7yMHofQRMdMsNivxyYNwroCK/Arxy6U7I6H1soIGPAQ18AmngE/jqNYKH9gZGj9BABxOj96nQ6AlzHTpARu9T/uo1abt5ZWr0wkoDo/eZg9H7DJjoPjco8p8D4/4CKvJfgEV+CGT0VhloYBWggS8hDXwJGz2Ch04GRo/QQGcTo/eV0OgJcx06Q0bvK97oSd/5uTo1emG1gdFb42D01gAT3dcGRf5rYNzfQEX+G7DID4WM3loDDawFNLAO0sA62OgRPHQ1MHqEBrqZGL1vhUZPmOvQDTJ63/JGT/rOz+9Soxe+MzB66x2M3npgottgUOQ3AOP+Hiry34NF/j7I6P1goIEfAA1shDSwETZ6BA/dDYweoYEeJkZvk9DoCXMdekBGbxNv9KTv/PwxNXrhRwOj95OD0fsJmOg2GxT5zcC4t0BFfgtY5O+HjN7PBhr4GdDAL5AGfoGNHsFDTwOjR2igl4nR+1Vo9IS5Dr0go/crbvTq1VAava3pLeFhq4HR+60Yw7tanEEpzt9TcYbfDcS5zUSc0ucVbE/FGbYbiPMPE3FKy/qfaf8m/Gkgzh0O/ZsdwPplp8HafScw7r+gtftf4Np9NNS/+dtAA38DGtgFaWAX3L8heOht0L8hNNDHpH+zW9i/EeY69IH6N7vN+jf/6PJj+yDlfwyM3r9JN3pjoCLf1+BByv8CE3w/kwl+j3CCF+Y69DMwBnsA3eyFzOHeHOe6/5Pk3m+e4mlhE8YAO8eDiie8sD0MFbb+BoUtkxz1uAeYFLa8OmEGYa7DAIPClhfQTb7iTGHLVxwvbHWVhe1gYRxcC9vBBoXtkOLMPKcWZz2lOPOn4gz5DcRZwESc0l7XobpB274h4FADcR6W9CVBxhofBlicw4sn39odDoy7IGTtMr9LPR3+MWhZeISBBo4ANHAkpIEji7NvCCB4GGiwxCM0MMikNVBI2BoQ5joMgjY1CxWn3xCgXSIX1uXH9uq1wgZG7ygHo3cUMNEdbVDkjwbGXQQq8pnfjSCRPg4ZvaIGGigKaOAYSAPHgBqgeBhsYPQIDQwxMXrFhEZPmOswBDJ6xXIwtP+T5HZz8dToheIGRq+Eg9ErAUx0JQ2KfElg3MdCRf5YsMhPgoxeKQMNlAI0UBrSQGnY6BE8DDUweoQGhpkYvTJCoyfMdRgGGb0yvNGTvvOzbGr0QlkDo1fOweiVAya68gZFvjww7ggq8hFY5CdDRq+CgQYqABqoCGmgImz0CB6GGxg9QgMjTIxeJaHRE+Y6jICMXiXe6Enf+XlcavTCcQZG73gHo3c8MNFVNijylYFxV4GKfBWwyD8DGb0TDDRwAqCBEyENnAgbPYKHkQZGj9DAKBOjd5LQ6AlzHUZBRu8k3uhJ3/lZNTV6oaqB0TvZweidDEx0pxgU+VOAcVeDinw1sMg/Cxm96gYaqA5ooAakgRqw0SN4GG1g9AgNjDExekFo9IS5DmMgoxd4o3eN0ujVTG8JDzUNjF6t4gzvanF2VYqzdirOUNtAnHU8xFlf+ryCuqk4Q10DcdYzmTmlZb1+2r8J9Q3E2cChf9MAWL80NFi7NwTG3QhauzcC1+4zof7NqQYaOBXQwGmQBk6D+zcED2MN+jeEBsaZ9G8aC/s3wlyHcVD/prFZ/6aJLj+2D1JuYmD0Tk+60ZsFFfnxBg9SPh2Y4CeYTPBnCCd4Ya7DBANjcAagmzMhc3hmjnPd/0ly77dpWthCU4PCdlbSC9uLUGGbaFDYzgImqEkmhe1sYWET5jpMMihsZwO6aQYVtmZ4YatfW1nYmqf7RqG5QWE7x2RTs45SnOem4gznGoizxYG4qdlSN2jbNwS0NBDneQ6bmucBFud8gw2t84Fxt4KsXeZ3qafDvwItC1sbaKA1oIELIA1cUJx9QwDBw2SDJR6hgSkmrYELha0BYa7DFGhT88Li9BsCtEvki9Kr18JFBkavjYPRawNMdBcbFPmLgXFfAhX5S8Arl16FjN6lBhq4FNBAW0gDbeGr1wgephoYPUID00yM3mVCoyfMdZgGGb3L8KvXtO3my1OjFy43MHpXOBi9K4CJrp1BkW8HjPtKqMhfCRb5BZDRu8pAA1cBGmgPaaA9bPQIHqYbGD1CAzNMjF4HodET5jrMgIxeB97oSd/5eXVq9MLVBkavo4PR6whMdJ0MinwnYNydoSLfGSzyCyGj18VAA10ADVwDaeAa2OgRPMw0MHqEBmaZGL2uQqMnzHWYBRm9rrzRk77zs1tq9EI3A6N3rYPRuxaY6K4zKPLXAePuDhX57mCRfwsyej0MNNAD0MD1kAauh40ewcNsA6NHaGCOidG7QWj0hLkOcyCjdwNv9KTv/OyZGr3Q08Do9XIwer2Aie5GgyJ/IzDum6AifxNY5N+BjF5vAw30BjTQB9JAH9joETzMNTB6hAbmmRi9m4VGT5jrMA8yejfzRq+z0ujdkt4SHm4xMHp9izO8q8XZRSnOfqk4Qz8Dcd5qIk7p8wpuS8UZbjMQZ38TcUrL+oC0fxMGGIjzdof+ze3A+uUOg7X7HcC4B0Jr94Hg2n0p1L8ZZKCBQYAG7oQ0cCfcvyF4mG/QvyE0sMCkf3OXsH8jzHVYAPVv7jLr3wzW5cf2QcqDDYzekKQbvWVQkV9o8CDlIcAEv8hkgr9bOMELcx0WGRiDuwHd3AOZw3tynOv+T5J7v0PTwhaGGhS2YUkvbB9Che1tg8I2DJigFpsUtnuFhU2Y67DYoLDdC+jmPqiw3YcXtgY1lYVteLpvFIYbFLYRHvtGDWopxXl/Ks5wv4E4HzgQNzVH6gZt+4aAkQbiHOWwqTkKsDgPGmxoPQiM+yHI2mV+l3o6/CfQsnC0gQZGAxoYA2lgTHH2DQEED+8ZLPEIDSwxaQ08LGwNCHMdlkCbmg8Xp98QoF0iP5JevRYeMTB6Yx2M3lhgohtnUOTHAeN+FCryj4JXLn0GGb3HDDTwGKCB8ZAGxsNXrxE8LDUweoQGlpkYvQlCoyfMdVgGGb0J+NVr2nbz46nRC48bGL0nHIzeE8BEN9GgyE8Exj0JKvKTwCK/CjJ6Txpo4ElAA09BGngKNnoED8sNjB6hgRUmRm+y0OgJcx1WQEZvMm/0pO/8nJIavTDFwOg97WD0ngYmumcMivwzwLinQkV+KljkV0NGb5qBBqYBGngW0sCzsNEjePjUwOgRGlhpYvSeExo9Ya7DSsjoPccbPek7P6enRi9MNzB6MxyM3gxgonveoMg/D4z7BajIvwAW+W8gozfTQAMzAQ3MgjQwCzZ6BA9fGBg9QgOrTIzei0KjJ8x1WAUZvRd5oyd95+dLqdELLxkYvdkORm82MNHNMSjyc4BxvwwV+ZfBIv8tZPReMdDAK4AG5kIamAsbPYKH1QZGj9DAGhOjN09o9IS5DmsgozePN3odlUbv1fSW8PCqgdF7rTjDu1qcnZTinJ+KM8w3EOcCE3FKn1fweirO8LqBON8wEae0rC9M+zdhoYE4Fzn0bxYB65c3DdbubwLjfgtau78Frt03Us9YNNDA28QzFiENLIb7NwQPaw36N4QG1pn0b94R9m+EuQ7roP7NO2b9m3d1+bF9kPK7BkbvvaQbvU1QkV9v8CDl94AJfoPJBL9EOMELcx02GBiDJYBu3ofM4fs5znX/J8m93w/SwhY+MChsS5Ne2H6ECttGg8K2FJigNpkUtmXCwibMddhkUNiWAbr5ECpsH+KFrWMNZWH7KN03Ch8ZFLblHvtGHYNSnCtScYYVBuL8+EDc1PxEN2jbNwR8YiDOTx02NT8lbrM22NBaCYz7M8jaZX6Xejr8L9Cy8HMDDXxO3HEHaeCL4uwbAggeNhss8QgNbDFpDawStgaEuQ5boE3NVcXpNwRol8hfplevhS8NjN5XDkbvK+KuI4Miv5q46wgq8mvAK5d+g4ze1wYa+BrQwDeQBr6Br14jePjVwOgRGthqYvTWCo2eMNdhK2T01uJXr2nbzetSoxfWGRi9bx2M3rfARPedQZH/Dhj3eqjIrweL/HbI6G0w0MAGQAPfQxr4HjZ6BA/bDIweoYHtJkbvB6HRE+Y6bIeM3g+80ZO+83NjavTCRgOjt8nB6G0CJrofDYr8j8C4f4KK/E9gkd8BGb3NBhrYTGzbQRrYAhs9gocdBkaP0MBOE6P3s9DoCXMddkJG72fe6Enf+flLavTCLwZG71cHo/crsXVhUOS3AuP+DSryv4FF/m/I6P1uoIHfiS4WpIFtsNEjeNhlYPQIDew2MXrbhUZPmOuwGzJ623mjJ33n5x+p0Qt/GBi9Px2M3p/ESt6gyO8gVvJQkd8JFvl/IKP3l4EG/gI08Dekgb9ho0fwsMfA6BEa2Gti9HYJjZ4w12EvZPR28UavvtLo7U5vCQ+7DYzeP8UZ3tXibKAU57+pOMO/BuLcYyJO6fMK9qbiDHsNxJmnhIc4pWX9IN2gbfs3B5VI/jnmVZ8j0b/JnKR6/ZJPPHBi3ZYPGPfBwnHnXHdkfjeiRFqE6d8cYqCBQwAN5Ic0kL8E278heMhb68DUQL5a+uKUJ4++f1OghHAe0Y05KOOXk6ECJbz6N4fq8mP7IOVDDYzeYUk3evmgIp8/4RN8xuAeBkzwBUwm+MOFE7ww16GAgTE4HNBNQcgcFsxxrvs/Se79HpEWtnCEQWE7MumF7WCosB1uUNiOJCYok8JWSFjYhLkOBQ0KWyFAN4WhwlaYL2zXKAvbUcI4uBa2owwK29Em+0ZdleIskoozFDEQZ9EDcVPzGN2gbd8QcIyBOIs5bGoWAyxOcYMNreLAuEtA1i7zu9TT4Q+DloUlDTRQEtDAsZAGji3BviGA4KGQwRKP0EBhk9ZAKWFrQJjrUBja1CxVAn9DgHSJXDq9ei2UNjB6ZRyMXhlgoitrUOTLAuMuBxX5cuCVS0dARq+8gQbKAxqIIA1E8NVrBA9FDIweoYGiJkavgtDoCXMdikJGrwJ/9Zq03VwxNXqhooHRq+Rg9CoBE91xBkX+OGDcx0NF/niwyBeGjF5lAw1UBjRQBdJAFdjoETwUNzB6hAZKmBi9E4RGT5jrUAIyeifgRq+T9J2fJ6ZGL5xoYPROcjB6JwETXVWDIl8VGPfJUJE/GSzyRSCjd4qBBk4BNFAN0kA12OgRPJQyMHqEBkqbGL3qQqMnzHUoDRm96rzRk77zs0Zq9EINA6MXHIxeACa6mgZFviYw7lpQka8FFvlikNGrbaCB2oAG6kAaqAMbPYKHcgZGj9BAeROjV1do9IS5DuUho1eXN3rSd37WS41eqGdg9Oo7GL36wETXwKDINwDG3RAq8g3BIl8SMnqNDDTQCNDAqZAGToWNHsFDRQOjR2igkonRO01o9IS5DpUgo3cab/TqKo1e4/SW8NDYwOg1KcHwrhZnPaU4T0/FGU43EOcZJuKUPq/gzFSc4UwDcTY1Eae0rJ+V9m/CWQbiPNuhf3M2sH5pZrB2bwaMuzm0dm8Ort3LQf2bcww0cA6ggXMhDZwL928IHiob9G8IDVQx6d+0EPZvhLkOVaD+TQuz/k1LXX5sH6Tc0sDonZd0o1ceKvInGTxI+TzilgOTCf584QQvzHWoamAMzgd00woyh61ynOv+T5J7v63TwhZaGxS2C5Je2CKosFUzKGwXABNUdZPCdqGwsAlzHaobFLYLAd1cBBW2i/jC1llZ2Nqk+0ahjUFhu9hk36iLUpyXpOIMlxiI89IDcVOzrW7Qtm8IaGsgzsscNjUvAyzO5QYbWpcD474CsnaZ36WeDn88tCxsZ6CBdoAGroQ0cGUJ9g0BBA81DZZ4hAZqmbQGrhK2BoS5DrWgTc2rStBvCNAukdunV6+F9gZGr4OD0esATHRXGxT5q4Fxd4SKfEfwyqUTIKPXyUADnQANdIY00Bm+eo3goa6B0SM0UM/E6HURGj1hrkM9yOh14a9ek7abr0mNXrjGwOh1dTB6XYGJrptBke8GjPtaqMhfCxb5qpDRu85AA9cBGugOaaA7bPQIHhoaGD1CA41MjF4PodET5jo0goxeD97oSd/5eX1q9ML1BkbvBgejdwMw0fU0KPI9gXH3gop8L7DIV4OM3o0GGrgR0MBNkAZugo0ewUNjA6NHaKCJidHrLTR6wlyHJpDR680bPek7P/ukRi/0MTB6NzsYvZuBie4WgyJ/CzDuvlCR7wsW+QAZvX4GGugHaOBWSAO3wkaP4OFMA6NHaKCpidG7TWj0hLkOTSGjdxtu9DpL3/nZPzV6ob+B0RvgYPQGABPd7QZF/nZg3HdARf4OsMjXhozeQAMNDAQ0MAjSwCDY6BE8NDMweoQGmpsYvTuFRk+Y69AcMnp38kavttLo3ZXeEh7uMjB6g0swvKvFWUcpziGpOMMQA3HebSJO6fMK7knFGe4xEOdQE3FKy/qwtH8ThhmI816H/s29wPrlPoO1+33AuIdDa/fh4Nq9IdS/GWGggRGABu6HNHA/3L8heGhh0L8hNNDSpH/zgLB/I8x1aAn1bx4w69+M1OXH9kHKIw2M3qikG71GUJFvZfAg5VHABN/aZIJ/UDjBC3MdWhsYgwcB3TwEmcOHcpzr/k+Se7+j08IWRhsUtjFJL2ynQoXtIoPCNgaYoNqYFLaHhYVNmOvQxqCwPQzo5hGosD3CF7aOysI2Nt03CmMNCts4k32jTkpxPpqKMzxqIM7HDsRNzfG6Qdu+IWC8gTgnOGxqTgAszuMGG1qPA+N+ArJ2md+lng5/BrQsnGiggYmABiZBGphUgn1DAMHDpQZLPEIDbU1aA08KWwPCXIe20KbmkyXoNwRol8hPpVevhacMjN5kB6M3GZjophgU+SnAuJ+GivzT4JVLZ0FG7xkDDTwDaGAqpIGp8NVrBA9XGBg9QgPtTIzeNKHRE+Y6tIOM3jT+6jVpu/nZ1OiFZw2M3nMORu85YKKbblDkpwPjngEV+RlgkW8OGb3nDTTwPKCBFyANvAAbPYKH9gZGj9BABxOjN1No9IS5Dh0gozeTN3rSd37OSo1emGVg9F50MHovAhPdSwZF/iVg3LOhIj8bLPItIKM3x0ADcwANvAxp4GXY6BE8dDIweoQGOpsYvVeERk+Y69AZMnqv8EZP+s7PuanRC3MNjN48B6M3D5joXjUo8q8C434NKvKvgUX+fMjozTfQwHxAAwsgDSyAjR7BQ1cDo0dooJuJ0XtdaPSEuQ7dIKP3Om/0pO/8fCM1euENA6O30MHoLQQmukUGRX4RMO43oSL/JljkL4CM3lsGGngL0MDbkAbeho0ewUN3A6NHaKCHidFbLDR6wlyHHpDRW4wbvS41lUbvnfSW8PCOgdF7twTDu1qctZTifC8VZ3jPQJxLTMQpfV7B+6k4w/sG4vzARJzSsr407d+EpQbiXObQv1kGrF8+NFi7fwiM+yNo7f4RuHa/FOrfLDfQwHJAAysgDayA+zcEDz0N+jeEBnqZ9G8+FvZvhLkOvaD+zcdm/ZtPdPmxfZDyJwZG79OkG722UJHvbfAg5U+BCb6PyQS/UjjBC3Md+hgYg5WAbj6DzOFnOc51/yfJvd/P08IWPjcobF8kvbBdBhW2vgaF7QtggupnUthWCQubMNehn0FhWwXo5kuosH3JF7b6ysL2VbpvFL4yKGyrTfaNGijFuSYVZ1hjIM6vD8RNzW90g7Z9Q8A3BuJc67CpuRawOOsMNrTWAeP+FrJ2md+lng5/FbQs/M5AA98BGlgPaWB9CfYNAQQP/Q2WeIQGBpi0BjYIWwPCXIcB0KbmhhL0GwK0S+Tv06vXwvcGRu8HB6P3AzDRbTQo8huBcW+Civwm8MqlqyGj96OBBn4ENPATpIGf4KvXCB4GGhg9QgODTIzeZqHRE+Y6DIKM3mb+6jVpu3lLavTCFgOj97OD0fsZmOh+MSjyvwDj/hUq8r+CRb4zZPS2GmhgK6CB3yAN/AYbPYKHwQZGj9DAEBOj97vQ6AlzHYZARu933uhJ3/m5LTV6YZuB0dvuYPS2AxPdHwZF/g9g3H9CRf5PsMh3hYzeDgMN7AA0sBPSwE7Y6BE8DDUweoQGhpkYvb+ERk+Y6zAMMnp/8UZP+s7Pv1OjF/42MHq7HIzeLmCi221Q5HcD4/4HKvL/gEX+Osjo/WuggX8BDeyBNLAHNnoED8MNjB6hgREmRm+v0OgJcx1GQEZvL2/0pO/8zFMyNXrCGGDneFBJA6OXOUn1RJe3ZPIn+LzAuPOVZCaozO9GkEivh4zewQYaOBjQwCGQBg4pyRo9goeRBkaP0MAoE6OXX6fVIMx1GAUZvfwgQ73ieTRTT/OKfzfzm6p8FzCYkwsAPB4KzcmHwnoi6vJhBho4DNDA4ZAGDofrMsHDaIO6TGhgjEldLiisy8JchzFQXS5Y8r83YNQxPUIY0101dL+1uwYT0yPAeem6o/LkuamIns8joTn6yP9AXzVy9wlKfeWMQ25jWgiKaSFQXxnPexjgfcYmvO5l/F5LYNzjTOpeYSFDwlyHcQnXTYaXwwHdjDfg5Txg3BNMeDlKyIsw12GCAS8FAd1MNODlfGDck0x4OVrIizDXwSV+RYTx2yNcQ+2F1lBFyP4etIYqCvn9ollYQyn1VVS4hjoGiukxoL5uhPQ12aB3eAlQ46aYzNHFhAwJcx2mQL3DYjn6xGot3QQxNNWAocsBhqaZMFRcyJAw12EaxFBxkKHMWusIQEvTDdZaVwLjnmHCUAkhQ8JchxkGvYkjAd3MNOClPTDuWSa8lBTyIsx1cInfscL4HR50v1UwMDX7WHDt2BfyvaWgdXSpLPQmlPoqJexNlIZiWjoL12SUEca0kJDZwhCzZUBmb4OYLQvpq2wWmFXqq6yQ2XJQTMvB12QUAvzZbANf2hMY9xwTX1VeyJAw12GOwTquMKCbuQa83AiMe54JL5GQF2GuwzwDXo4CdDPfgJfewLgXmPBSQciLMNfBJX4VhfErIlxDFYXWUBVBjzsIWkNVgvx+pSysoZT6qiRcQx0HxfQ4UF93QvpaaLCffDtQ4xaZzNHHCxkS5joo45eToePB/eS7IIbeNmDoToChxSYMVRYyJMx1WAwxVBm+JuNoQEvvGay1hgDjXmLCUBUhQ8JchyUGvYkigG6WGvByDzDuZSa8nCDkRZjr4BK/E4XxKyfsTZSHehMngmvHoZDvPQlaR5+Uhd6EUl8nCXsTVaGYVs3CNRknC2NaUchsJYjZk0Fm74OYPQXS1ylZYFapr1OEzFaDYloNviajKODPlhv40keAca8w8VXVhQwJcx1WGKzjjgF086kBL+OAca804aWGkBdhrsNKA16KAbr5woCXx4BxrzLhJQh5EeY6uMSvpjB+lYVrqCrQGqom6HFHQWuoWpDfr5WFNZRSX7WEa6jaUExrg/p6ENLXaoP95ClAjVtjMkfXETIkzHVQxi8nQ3XA/eSHIIbWGjA0DWBonQlDdYUMCXMd1kEM1YWvySgOaGm9wVprOjDuDSYM1RMyJMx12GDQmygB6GajAS/PA+PeZMJLfSEvwlwHl/g1EMavprA3UQvqTTQA145jId/bEFpHN8xCb0Kpr4bC3kQjKKaNsnBNxqnCmNYVMlsPYvZUkNnHIGZPg/R1WhaYVerrNCGzjaGYNoavySgJ+LPNBr70dWDcW0x8VRMhQ8Jchy0G67hjAd38asDLQmDcW014OV3IizDXYasBL6UA3Wwz4OVNYNzbTXg5Q8iLMNfBJX5nKtelwjVUI2gNdSbocSdBa6imkN9vmoU1lFJfTYVrqLOgmJ4F6utJSF87DPaTlwI1bqfJHH22kCFhroMyfjkZOhvcT34KYmiXAUPLAYZ2mzDUTPmeayFDuyGGmsHXZJQGtLTHYK31CTDuvSYMNVe+51DI0F6D3kQZQDd5ayefl5XAuPPV9uDlHCEvwlwHl/idK4xfM2FvojnUmzgXXDtOhXxvC2gd3SILvQmlvloIexMtoZi2zMI1GecpYypktiXE7Hkgs89BzJ4P6ev8LDCr1Nf5QmZbQTFtlQVmWwtj2krIbGuI2dYgs89DzF4A6euCLDCr1NcFQmYvhGJ6IXwd1SZgTZU/4WvJW+NxHwyMu4DJWugiIUPCXIcCCddNhpcfAd0cnvBx3wbxUtCElzbK954KeSlowMtPgG4KJXzc/SFeCpvwcrHynaNCXlzid4kwfhcJ11BtoDXUJaDHnQ2toS6F/P6lWVhDKfV1qXAN1RaKaVtQX3MgfRVJeI3LXAPyO1DjiprM0Zcp3wknrHHK+OVk6DLwGpCXIYaKGzD0B8BQCROGLhcyJMx1KAExdDl8HdUOQEulEs7QAGitVdqEoSuEDAlzHUob9CZ2Aropl/Bx3w7xUt6El3bK9+UIeXGJ35XC+LUX9iY6QL2JzHgP3fe7ahZfg3zvVdA6+qocsfj/0leN3H2CUl9XCXsT7aGYtv8PYprbc+8gjGknIbOdIWY7gP2e1yFmr4b0dXUW+olKfV0tZLYjFNOOWbiOqpMwpl2FzHaDmO0EMrsIYrYzpK/OWWBWqa/OQma7QDHtkgVmrxHGtLuQ2R4Qs9eAzL4NMdsV0lfXLDCr1FdXIbPdoJh2ywKz1wpj2lPIbC+I2WtBZt+FmL0O0td1WWBWqa/rhMx2h2LaPQvM9hDGtLeQ2T4Qsz1AZt+HmL0e0tf1WWBWqa/rhczeAMX0BvgegzLH6PVVMeH7LHdA+yyVTPYJegoZEuY6VDLYlywL8FI54eMeCPFSxYSXXkJehLkOVQx4KQ/wclLCxz0I4qWqCS83CnkR5jq4xO8mYfz6CtdQ/aA11E2gx10OraF6Q36/dxbWUEp99RauofpAMe0D6msFpK9qBtdHnwjU9uomc/TNQoaEuQ7Voeujbwavj/4YYqimAUOnAAzVMmHoFiFDwlyHWhBDt8D3GNQAtFQ34QzdCa216pkw1FfIkDDXoZ5Bb6ImwEvDhI/7LoiXRia89FO+B0XIi0v8bhXGb7CwNzEE6k3cCt5j8Dnke2+D1tG3ZeEeA6W+bhP2JvpDMe2fhXsMBghjOlTI7DCI2QFgv+dLiNnbIX3dnoV+olJftwuZvQOK6R1ZuI5qoDCmw4XMjoCYHQgyuwZidhCkr0FZYFapr0FCZu+EYnpnFpi9SxjTkUJmR0HM3gUyuxZidjCkr8FZYFapr8FCZodAMR2SBWbvFsZ0tJDZMRCzd4PMfgcxew+kr3uywKxSX/cImR0KxXRoFpgdJozpWCGz4yBmh4HMfg8xey+kr3uzwKxSX/cKmb0Piul98D0G7YF9lsYJ32cZDO2zNDHZJxguZEiY69DEYF/yaoCXMxM+7iEQL01NeBkh5EWY69DUgJdOAC/NEj7uuyFempvwcr+QF2Gug0v8HhDGb7xwDTUBWkM9AHrczdAaaiTk90dmYQ2l1NdI4RpqFBTTUaC+tlDv9DW4Pvp6oLa3NJmjHxQyJMx1aAldH/0geH30zxBDrQwYuhFgqLUJQw8JGRLmOrSGGHoIvsegD6ClixLO0D3QWquNCUOjhQwJcx3aGPQmbgF4uTTh4x4K8dLWhJcxQl6EuQ4u8XtYGL+pwt7ENKg38TB4j8HvkO99BFpHP5KFewyU+npE2JsYC8V0bBbuMRgnjOl0IbMzIGbHgf2ePyBmH4X09WgW+olKfT0qZPYxKKaPZeE6qvHCmM4UMjsLYnY8yOxOiNkJkL4mZIFZpb4mCJl9HIrp41lg9glhTGcLmZ0DMfsEyOwuiNmJkL4mZoFZpb4mCpmdBMV0UhaYfVIY07lCZudBzD4JMvsvxOxTkL6eygKzSn09JWR2MhTTyVlgdoowpvOFzC6AmJ0CMpvnaIbZpyF9PZ0FZpX6elrI7DNQTJ+B7zF4CthnuSLh+yzDoH2Wdib7BFOFDAlzHdoZ7EtOAXhpn/Bx3wvx0sGEl2lCXoS5Dh0MeHkG4KVTwsd9H8RLZxNenhXyIsx1cInfc8L4LRSuoRZBa6jnQI+bH1pDTYf8/vQsrKGU+pouXEPNgGI6A9RXAUhfXQ2uj54F1PZuJnP080KGhLkO3aDro58Hr48+FGKouwFDcwCGepgw9IKQIWGuQw+IoRfgewzmAlrqmXCGhkNrrV4mDM0UMiTMdehl0Jt4FeCld8LHPQLipY8JL7OEvAhzHVzi96IwfkuFvYllUG/iRfAegyMh3/sStI5+KQv3GCj19ZKwNzEbiunsLNxjMEcY0+VCZldAzM4B+z1HQcy+DOnr5Sz0E5X6elnI7CtQTF/JwnVUc4Ux/VTI7EqI2bkgs0UhZudB+pqXBWaV+ponZPZVKKavZoHZ14Qx/ULI7CqI2ddAZotDzM6H9DU/C8wq9TVfyOwCKKYLssDs68KYrhYyuwZi9nWQ2WMhZt+A9PVGFphV6usNIbMLoZguzAKzi4QxXStkdh3E7CKQ2TIQs29C+nozC8wq9fWmkNm3oJi+Bd9j8D2wz9I34fss90P7LP1M9gneFjIkzHXoZ7AvuRHgpX/Cx/0AxMsAE14WC3kR5joMMODlR4CXgQkf90iIl0EmvLwj5EWY6+ASv3eF8VsvXENtgNZQ74IetyK0hnoP8vvvZWENpdTXe8I11BIopktAfVWC9DXY4ProbUBtH2IyR78vZEiY6zAEuj76ffD66OMghoYaMLQDYGiYCUMfCBkS5joMgxj6AL7H4G9AS8MTztAoaK01woShpUKGhLkOIwx6E7sBXkYmfNwPQryMMuFlmZAXYa6DS/w+FMbvV2FvYivUm/gQvMfgRMj3fgStoz/Kwj0GSn19JOxNLIdiujwL9xisEMZ0m5DZ7RCzK8B+z8kQsx9D+vo4C/1Epb4+FjL7CRTTT7JwHdWnwpjuEDK7E2L2U5DZ6hCzKyF9rcwCs0p9rRQy+xkU08+ywOznwpjuEjK7G2L2c5DZmhCzX0D6+iILzCr19YWQ2VVQTFdlgdkvhTHdI2R2L8TslyCzdSBmv4L09VUWmFXq6yshs6uhmK7OArNrhDHNW1P3W/lqMjFdAzJbH2L2a0hfX2eBWaW+vhYy+w0U02/gewyqFNPra3TC91kegvZZxpjsE6wVMiTMdRhjsC95IsDL2ISPezTEyzgTXtYJeRHmOowz4KUqwMv4hI97DMTLBBNevhXyIsx1cInfd8L45ReuoQpAa6jvQI/bGFpDrYf8/vosrKGU+lovXENtgGK6AdRXE0hfEw2uj64D1PZJJnP090KGhLkOk6Dro78Hr48+HWJosgFDDQCGppgw9IOQIWGuwxSIoR/gewxOBbQ0NeEMPQyttaaZMLRRyJAw12GaQW+iMcDL9ISP+xGIlxkmvGwS8iLMdXCJ34/C+BUR9iaKQr2JH8F7DM6GfO9P0Dr6pyzcY6DU10/C3sRmKKabs3CPwRZhTIsLmS0BMbsF7PecAzH7M6Svn7PQT1Tq62chs79AMf0lC9dR/SqMaSkhs6UhZn8FmW0JMbsV0tfWLDCr1NdWIbO/QTH9LQvM/i6MaTkhs+UhZn8HmW0FMbsN0te2LDCr1Nc2IbPboZhuzwKzfwhjWlHIbCWI2T9AZi+EmP0T0tefWWBWqa8/hczugGK6IwvM7hTGtLKQ2SoQsztBZi+GmP0L0tdfWWBWqa+/hMz+DcX0b/geg+7APsvMhO+zjIX2WWaZ7BPsEjIkzHWYZbAveT3Ay+yEj3scxMscE152C3kR5jrMMeClJ8DL3ISP+1GIl3kmvPwj5EWY6+ASv3+F8TtJuIaqCq2h/gU97hXQGmoP5Pf3ZGENpdTXHuEaai8U072gvtpR7/Q1uD76VqC2LzCZo/Mcq4ulMNdhAXR9dGa81PXRV0IMLTRg6HaAoUUmDB0kZEiY67AIYuggkKHMWmsQoKW3E87QY9Baa7EJQ3mFDAlzHRYb9CbuAnh5L+HjHg/xssSEl3xCXoS5Di7xO1gYv7rC3kQ9qDeRGS91j0FHyPceciwTi0OO5e8xUOorZxxyG9P8UEzzH8vfY1BAGNOGQmYbQcxmxhvlYZjtAjF7KKSvQ4/l+4lKfR0qZPYwKKaH/Qcxze25Hy6MaWMhs00gZg8Hme0GMVsQ0lfBLDCr1FdBIbNHQDE9IgvMHimM6ZlCZptCzB4JMtsdYrYQpK9CWWBWqa9CQmYLQzEtnAVmjxLGtJmQ2eYQs0eBzN4AMXs0pK+js8CsUl9HC5ktAsW0SBaYLSqMaQshsy0hZouCzN4IMXsMpK9jssCsUl/HCJktBsW0GKivzD7LC8A+y9KE77NMgPZZlpnsExQXMiTMdVhmsC85C+BlecLH/TjEywoTXkoIeRHmOqww4OUlgJdPEz7uJyBeVprwUlLIizDXwSV+xwrj10q4hmoNraGOBT1uX2gNVQry+6WysIZS6quUcA1VGoppaVBf/ah3+hpcH70AqO2rTOboMkKGhLkOq6Dro8uA10ffCjG02oChRQBDa0wYKitkSJjrsAZiqCx8j8HbgJbWJpyhidBaa50JQ+WEDAlzHdYZ9CbeAXhZn/BxT4J42WDCS3khL8JcB5f4RcL4XSHsTbSDehMReI/BHZDvrQCtoytk4R4Dpb4qCHsTFaGYVszCPQaVhDFtL2S2A8RsJbDfcyfE7HGQvo7LQj9Rqa/jhMweD8X0+CxcR1VZGNNOQmY7Q8xWBpkdAjFbBdJXlSwwq9RXFSGzJ0AxPSELzJ4ojGlXIbPdIGZPBJkdCjF7EqSvk7LArFJfJwmZrQrFtGoWmD1ZGNPuQmZ7QMyeDDJ7H8TsKZC+TskCs0p9nSJkthoU02pZYLa6MKY9hcz2gpitDjJ7P8RsDUhfNbLArFJfNYTMBiimAb7H4Ddgn2VjwvdZnoT2WTaZ7BPUFDIkzHXYZLAvuQ3gZXPCx/0UxMsWE15qCXkR5jpsMeDlD4CXXxM+7skQL1tNeKkt5EWY6+ASvzrC+PUWrqH6QGuoOqDHHQ2toepCfr9uFtZQSn3VFa6h6kExrQfqawz1Tl+D66P3ALV9u8kcXV/IkDDXYTt0fXR98ProhyGGdhgwlLe4ftw7TRhqIGRImOuwE2KoAXyPwSGAlnYlnKEp0FprtwlDDYUMCXMddhv0JgoAvOxJ+LifhnjZa8JLIyEvwlwHl/idKozfQGFvYhDUmzgVvMfgMcj3ngato0/Lwj0GSn2dJuxNNIZi2jgL9xg0EcZ0sJDZIRCzTcB+z+MQs6dD+jo9C/1Epb5OFzJ7BhTTM7JwHdWZwpgOFTI7DGL2TJDZSRCzTSF9Nc0Cs0p9NRUyexYU07OywOzZwpgOFzI7AmL2bJDZyRCzzSB9NcsCs0p9NRMy2xyKafMsMHuOMKYjhcyOgpg9B2T2GYjZcyF9nZsFZpX6OlfIbAsopi2ywGxLYUxHC5kdAzHbEmT2WYjZ8yB9nZcFZpX6Ok/I7PlQTM+H7zGoBeyz5K2T7H2WZ6B9lnzicf9/MZTb82wlZEiY65Av4brJ8FIH4CV/wsc9FeKlgAkvrYW8CHMdChjwUg/g5fCEj3saxEtBE14uEPIizHVwid+FwviNFa6hxkFrqAtBjzsTWkNdBPn9i7KwhlLq6yLhGqoNFNM2oL5mUe/0TXiNy1wffQZQ2wubzNEXCxkS5joo45eToYvB66NfhBgqYsDQ2QBDRU0YukTIkDDXoSjE0CXwPQbnAFoqnnCGnoXWWiVMGLpUyJAw16GEQW+iBcBLqYSP+zmIl9ImvLQV8iLMdXCJ32XC+E0W9iamQL2Jy8B7DF6BfO/l0Dr68izcY6DU1+XC3sQVUEyvyMI9Bu2EMZ0qZHYaxGw7sN/zKsTslZC+rsxCP1GpryuFzF4FxfSqLFxH1V4Y0+lCZmdAzLYHmV0AMdsB0leHLDCr1FcHIbNXQzG9OgvMdhTGdKaQ2VkQsx1BZhdCzHaC9NUpC8wq9dVJyGxnKKads8BsF2FMZwuZnQMx2wVk9i2I2WsgfV2TBWaV+rpGyGxXKKZds8BsN2FM5wqZnQcx2w1k9h2I2WshfV2bBWaV+rpWyOx1UEyvg+8x6Avss5RL+D7LdGifpbzJPkF3IUPCXIfyBvuStwK8VEz4uGdAvFQy4aWHkBdhrkMlA176A7xUTvi4n4d4qWLCy/VCXoS5Di7xu0EYv/nCNdQCaA11A+hxl0JrqJ6Q3++ZhTWUUl89hWuoXlBMe4H6Wka909fg+ui7gdpe1WSOvlHIkDDXoSp0ffSN4PXRH0IMVTNg6F6AoeomDN0kZEiY61AdYugm+B6DEYCWaiacoRegtVYtE4Z6CxkS5jrUMuhNPADwUjfh454J8VLPhJc+Ql6EuQ4u8btZGL/3hL2JJVBv4mbwHoNPIN97C7SOviUL9xgo9XWLsDfRF4pp3yzcY9BPGNOlQmaXQcz2A/s9n0HM3grp69Ys9BOV+rpVyOxtUExvy8J1VP2FMV0uZHYFxGx/kNlVELMDIH0NyAKzSn0NEDJ7OxTT27PA7B3CmH4qZHYlxOwdILOrIWYHQvoamAVmlfoaKGR2EBTTQVlg9k5hTL8QMrsKYvZOkNlvIGbvgvR1VxaYVerrLiGzg6GYDs4Cs0OEMV0tZHYNxOwQkNlvIWbvhvR1dxaYVerrbiGz90AxvQe+x+A1YJ+lYcL3WWZB+yyNTPYJhgoZEuY6NDLYl1wA8NI44eN+EeKliQkvw4S8CHMdmhjw8gbAy5kJH/dLEC9NTXi5V8iLMNfBJX73CeO3VriGWgetoe4DPe5GaA01HPL7w7OwhlLqa7hwDTUCiukIUF+bqHf6GlwfvQSo7c1N5uj7hQwJcx2aQ9dH3w9eH/0jxFALA4aWAQy1NGHoASFDwlyHlhBDD8D3GCwHtNQq4QzNhtZarU0YGilkSJjr0NqgN/ExwMtFCR/3HIiXNia8jBLyIsx1cInfg8L4bRb2JrZAvYkHwXsMfoF870PQOvqhLNxjoNTXQ8LexGgopqOzcI/BGGFMfxUyuxVidgzY7/kNYvZhSF8PZ6GfqNTXw0JmH4Fi+kgWrqMaK4zpNiGz2yFmx4LMboeYHQfpa1wWmFXqa5yQ2UehmD6aBWYfE8Z0h5DZnRCzj4HM7oCYHQ/pa3wWmFXqa7yQ2QlQTCdkgdnHhTHdJWR2N8Ts4yCzf0PMPgHp64ksMKvU1xNCZidCMZ2YBWYnCWO6R8jsXojZSSCz/0DMPgnp68ksMKvU15NCZp+CYvoUfI/BP8A+y6UJ32d5GdpnaWuyTzBZyJAw16Gtwb7kHoCXKxI+7lcgXtqZ8DJFyIsw16GdAS95Suh10z7h454L8dLBhJenhbwIcx1c4veMMH55a+l+K5/ut/4Pj/sM6HHzFmHWUFMhvz81C2sopb6mCtdQ06CYTgP1lQ/SVyeD66MPB2p7Z5M5+lkhQ8Jch87Q9dHPgtdHHwwx1NWAoUIAQ91MGHpOyJAw16EbxNBz8D0GRwNa6p5whuZBa60eJgxNFzIkzHXoYdCbKArw0jPh434V4qWXCS8zhLwIcx1c4ve8MH6FhL2JwlBv4nnwHoPDIN/7ArSOfiEL9xgo9fWCsDcxE4rpzCzcYzBLGNMiQmaLQszOAvs9R0DMvgjp68Us9BOV+npRyOxLUExfysJ1VLOFMS0uZLYExOxskNnCELNzIH3NyQKzSn3NETL7MhTTl7PA7CvCmJYSMlsaYvYVkNkiELNzIX3NzQKzSn3NFTI7D4rpvCww+6owpuWEzJaHmH0VZLYYxOxrkL5eywKzSn29JmR2PhTT+VlgdoEwphWFzFaCmF0AMlsSYvZ1SF+vZ4FZpb5eFzL7BhTTN+B7DJoA+yy9E77P8hq0z9LHZJ9goZAhYa5DH4N9yTMAXvomfNzzIV76mfCySMiLMNehnwEvTQFe+id83AsgXgaY8PKmkBdhroNL/N4Sxq+ycA1VBVpDvQV63HLQGuptyO+/nYU1lFJfbwvXUIuhmC4G9VUe0tdAg+ujzwdq+yCTOfodIUPCXIdB0PXR74DXR0cQQ4MNGLoQYGiICUPvChkS5joMgRh6F77H4GJAS0MTztDr0FprmAlD7wkZEuY6DDPoTVwK8DI84eN+A+JlhAkvS4S8CHMdXOL3vjB+NYW9iVpQb+J98B6D4yHf+wG0jv4gC/cYKPX1gbA3sRSK6dIs3GOwTBjTukJm60HMLgP7PSdAzH4I6evDLPQTlfr6UMjsR1BMP8rCdVTLhTFtKGS2EcTscpDZqhCzKyB9rcgCs0p9rRAy+zEU04+zwOwnwpg2FjLbBGL2E5DZahCzn0L6+jQLzCr19amQ2ZVQTFdmgdnPhDE9U8hsU4jZz0BmA8Ts55C+Ps8Cs0p9fS5k9gsopl9kgdlVwpg2EzLbHGJ2FchsbYjZLyF9fZkFZpX6+lLI7FdQTL+C7zEYDOyzjEz4PstCaJ9llMk+wWohQ8Jch1EG+5J3A7yMTvi4F0G8jDHhZY2QF2GuwxgDXoYCvIxN+LjfhHgZZ8LL10JehLkOLvH7Rhi/FsI1VEtoDfUN6HEbQmuotZDfX5uFNZRSX2uFa6h1UEzXgfpqBOlrvMH10Q8CtX2CyRz9rZAhYa7DBOj66G/B66NPhRiaaMDQwwBDk0wY+k7IkDDXYRLE0HfwPQbjAC1NTjhDb0FrrSkmDK0XMiTMdZhi0Jt4DOBlasLH/TbEyzQTXjYIeRHmOrjE73th/C4V9ibaQr2J78F7DM6AfO8P0Dr6hyzcY6DU1w/C3sRGKKYbs3CPwSZhTK8QMtsOYnYT2O85C2L2R0hfP2ahn6jU149CZn+CYvpTFq6j2iyMaXshsx0gZjeDzDaHmN0C6WtLFphV6muLkNmfoZj+nAVmfxHGtJOQ2c4Qs7+AzLaAmP0V0tevWWBWqa9fhcxuhWK6NQvM/iaMaVchs90gZn8DmT0fYvZ3SF+/Z4FZpb5+FzK7DYrptiwwu10Y0+5CZntAzG4Hmb0AYvYPSF9/ZIFZpb7+EDL7JxTTP+F7DN4F9lmmJ3yfZTG0zzLDZJ9gh5AhYa7DDIN9ySUALzMTPu53IF5mmfCyU8iLMNdhlgEvHwC8zE74uN+FeJljwstfQl6EuQ4u8ftbGL+ewjVUL2gN9TfocS+F1lC7IL+/KwtrKKW+dgnXULuhmO4G9dWWeqevwfXRK4HaPs9kjv5HyJAw12EedH30P+D10ZdBDM03YGgVwNACE4b+FTIkzHVYADH0L3yPwWpASwsTztB70FprkQlDe4QMCXMdFhn0Jr4GeHk74eNeAvGy2ISXvUJehLkOLvHLU0o35v7C3sQAqDeRGS91j8FVkO89qBQTi4NK8fcYKPWVMw65jWleKKZ5S/H3GOQTxnSgkNlBELOZ8UZ5GGavhpg9GNLXwaX4fqJSXwcLmT0Eiukh/0FMc3vu+YUxHSxkdgjEbH6Q2c4QswUgfRXIArNKfRUQMnsoFNNDs8DsYcKYDhUyOwxi9jCQ2a4Qs4dD+jo8C8wq9XW4kNmCUEwLZoHZI4QxHS5kdgTE7BEgs9dBzB4J6evILDCr1NeRQmYLQTEtlAVmCwtjOlLI7CiI2cIgs9dDzB4F6euoLDCr1NdRQmaPhmJ6dBaYLSKM6Wghs2MgZouAzPaCmC0K6atoFphV6quokNljoJgesy+mh8RHgRway/lR665WHu1Y9n+KlQJPOPPj6t8tLhQINe7ipf53gEW/+39sLOYVn3OhkrqYlhBOBv9TfnJ7frX35Ucdw9rCcyxZSqsbtcYzOS5ZSp+bY6EJ+9gcE3bm/+XP898/SZ6wyfOsaXKeweQ8c86lNXL5+Z/OL7eM1Yl/4+A8+vnvYOFv1YFynUc75hr/t4bkYlIWgszkd2iOxOcBIVA4767/9SESGPb/kTMWpfaZttKl9gVkf/Uota/S5fx/pbOwrDom90635j7qQymhay4tTq56hstAUwpy4GJQrjkGclJlICdVBmytZNoqtwKtlfcMbkW5qKR+3EtMLmstK1wxCnMdliRcNxlebgN4WWrASxuAl2UmvJQT8iLMdVhmwEt/gJflBrxcDPCywoSX8kJehLkOKwx4GQDw8qkBL1cAvKw04SUS8iLMdVhpwMvtAC9fGPDSDuBllQkvFYS8CHMdVhnwcgfAy2oDXnoCvKwx4aWikBdhrsMaA14GEq/sNuClF8DLOhNeKgl5EeY6rDPgZRDAy3oDXm4EeNlgwstxQl6EuQ4bDHi5E+BlowEvfQFeNpnwcryQF2GuwyYDXu4CeNlswEs/gJctJrxUFvIizHXYYsDLYOLVZQa8DAd42WrCSxUhL8Jch60GvAwBeNlmwMsIgJftJrycIORFmOuw3YCXuwFedhjwcj/Ay04TXk4U8iLMddhpwMs9xOsZDHgZDfCy24SXk4S8CHMddhvwMhTgZY8BL2MAXvaa8FJVyIsw12GvAS/DAF7y1k0+L1MBXvLV9eDlZCEvwlyHfAnXTYaXewFe8hvwMg3gpYAJL6cIeRHmOhQw4OU+4jGVBrw8C/BS0ISXaspHcQp5KWjAy3CAl0IGvMwEeClswkt1IS/CXIfCBryMAHgpYsDLLICXoia81BDyIsx1KGrAy/0AL8UNeHkb4KWECS9ByIsw16GEAS8PALyUMuBlMcBLaRNeagp5EeY6lDbgZSTASzkDXt4BeClvwkstIS/CXIfyBryMAnipaMDLUoCXSia81BbyIsx1qGTAy4MAL5UNeFkG8FLFhJc6Ql6EuQ5VDHh5CODlJANe1gK8VDXhpa6QF2GuQ1UDXkYDvFQz4GUdwEt1E17qCXkR5jpUN+BlDMBLTQNevgV4qWXCS30hL8Jch1oGvDwM8FLXgJeNAC/1THhpIORFmOtQz4CXRwBeGhrwsgngpZEJLw2FvAhzHRoZ8DIW4KWxAS+7AF6amPDSSMiLMNehiQEv4wBezjTgZTfAS1MTXk4V8iLMdWhqwMujAC/NDHj5B+CluQkvpwl5EeY6NDfg5TGAlxYGvOQ9Vj/ulia8NBbyIsx1aGnAy3iAl1YGvOQDeGltwksTIS/CXIfWBrxMAHi5yICX4gAvbUx4OV3IizDXoY0BL48DvFxqwEsJgJe2JrycIeRFmOvQ1oCXJwBerjDgpSTASzsTXs4U8iLMdWhnwMtEgJf2BryUA3jpYMJLUyEvwlyHDga8TAJ46WTAS3mAl84mvJwl5EWY69DZgJcnAV66GvBSE+ClmwkvZwt5EeY6dDPg5SmAl+4GvNQCeOlhwkszIS/CXIceBrxMBnjpacBLbYCXXia8NBfyIsx16GXAyxSAl94GvDQEeOljwss5Ql6EuQ59DHh5GuClrwEvjQBe+pnwcq6QF2GuQz8DXp4BeOlvwEsrgJcBJry0EPIizHUYYMDLVICXgQa8tAZ4GWTCS0shL8Jch0EGvEwDeBlswMsFAC9DTHg5T8iLMNdhiAEvzwK8DDXg5VKAl2EmvJwv5EWY6zDMgJfnAF6GG/DSFuBlhAkvrYS8CHMdRhjwMh3gZaQBL90BXkaZ8NJayIsw12GUAS8zAF5GG/DSA+BljAkvFwh5EeY6jDHg5XmAl7EGvFwP8DLOhJcLhbwIcx3GGfDyAsDLeANeegO8TDDh5SIhL8JchwkGvMwEeJlowEsfgJdJJry0EfIizHWYZMDLLICXyQa8DAV4mWLCy8VCXoS5DlMMeHkR4GWqAS/DAF6mmfByiZAXYa7DNANeXgJ4mW7Ay70ALzNMeLlUyIsw12GGAS+zAV5mGvAyEuBllgkvbYW8CHMdZhnwMgfgZbYBL6MAXuaY8HKZkBdhrsMcA15eBniZa8DLZICXeSa8XC7kRZjrMM+Al1cAXuYb8DIF4GWBCS9XCHkR5josMOBlLsDLQgNengZ4WWTCSzshL8Jch0UGvMwDeHnbgJfpAC+LTXi5UsiLMNdhsQEvrwK8vGfAywyAlyUmvFwl5EWY67DEgJfXAF6WGvCyEOBlmQkv7YW8CHMdlhnwMh/gZbkBL4sAXlaY8NJByIsw12GFAS8LAF4+NeDlTYCXlSa8XC3kRZjrsNKAl9cBXr4w4OU9gJdVJrx0FPIizHVYZcDLGwAvqw14WQLwssaEl05CXoS5DmsMeFkI8LLWgJfVAC/rTHjpLORFmOuwzoCXRQAv6w14WQPwssGEly5CXoS5DhsMeHkT4GWjAS9fA7xsMuHlGiEvwlyHTQa8vAXwstmAl/UAL1tMeOkq5EWY67DFgJe3AV5+NeBlA8DLVhNeugl5EeY6bDXgZTHAyzYDXnYAvGw34eVaIS/CXIftBry8A/Cyw4CXnQAvO014uU7IizDXYacBL+8CvOwy4OUvgJfdJrx0F/IizHXYbcDLewAvewx42QPwsteElx5CXoS5DnsNeFkC8JK3XvJ52Qvwkq+eBy/XC3kR5joo43dw/Bu14+Pbfb9XNh5zufgoHx9tS+bJc1l8XB4fUfy9Qny0j//uGB9d4qNbfHSPjxvio2L8b5Xi47j46BN/vzk+bomP4+PvleOjf/z3HfFxZ3wMiY+h8XFffFSJ/+2E+DgxPkbF3x+Mj4fi46T4e9X4GBv//Vh8PB4fk+Jjcnw8Ex8nx/92SnxUi48Z8ffn4+OF+Kgef68RH7Pjv1+Jj1fjY0F8LIyPt+IjxP9WMz5qxceS+Pv78fFBfNSOv9eJj+Xx35/Ex2fxsSo+VsfHN/FRN/63evFRPz42xN+/j48f4qNB/L1hfGyO//4lPn6Lj+3xsSM+/o6PRvG/nRofp8XH3vh7ngxP8dE4/t4kPvLHfx8WH0fER+H4KBIfxeLj9PjfzoiPM+OjdPy9THyUjY+m8fez4qNi/Pfx8XFCfFSNj2rxEeLj7PjfMu/1zryruF78vX58NIiPzLtYM++XbBz/fUZ8nBUfzeOjRXycn/lv/G+Z94Nl3nnUJv5+cXxckvm3+HvmPRVXxH9fFR9Xx0fn+OgaH9fFR+aZ/JnnjGeendwr/n5jfNwUH5lnw2aed9k3/vu2+Lg9PgbFx+D4uCfz+/G/ZZ5XlnkG04j4+/3x8UB8ZJ4xk3luxuj470fi49H4mBAfE+PjqfjIPCMgc99z5l7OafH3Z+PjufjI3KuWuf9mZvz3S/HxcnzMi4/58fFGfGTuNchcP525JnRx/P2d+Hg3PjLXvGWu41ka//1RfHwcHyvj44v4+Coz1vjfMvuwmb2ldfH3b+Pju8z44++ZfuDG+O+f4uPn+NgaH9vi48/4yPQ+Muu5jEfdHX//Jz7+jY9MDc7MK3nj45D4ODQ+CsZHofg4utT/nsvEc/k1x8S/XbKUfi6/QTdH1si3by76vz+q34diG5QxoM6xp/oc1SdYKw8j0Pywycrt+WXG3BMYdwHIZB0MCjO3Y+4lNGxC3QRlLuBJMuz/vQNxkuyV8Enyf1XxvOKBlxRCeKMwiJn45dsXx8zvRkziLeJ6U+q0wk0Gk0jvpDutzO8RTutwA6fVGxh3QROn1Vs4GfUROi2hbkLB1GlZTJJ9DlCnVVPpCG6GnNbNfk5LGtdbUqcVbjGYRPrSk4jCcfQFHEchE8fRVwhlv4T2dgqljsNisuh3gDqOWsrKeCvkOG71cxzSuN6WOo5wm8Ek0j/pvZ2aeZjezlEGvZ3+wLiPNnFa/YWT0QCh0xLqJhydOi2LSXLAAeq0aisdwe2Q07rdz2lJ43pH6rTCHQaTyECH3s5AYMt4oFDsg3zEjlVMB7EPOkArZh3lzH4nVDHv9KuY0rjelVbMcJfBJDI46RUzs+atk+e/36ZTI3efcLDwt+oIxztEnBDCwQwGeibHJPy2tsy4hwDjLmbSKxosLA53C3tFQt2EYmmvyKJo3X2AOt+6Sod2D+R87/FzvtK4Dk2dbxhqMIkMS/quXGaKJ3blShrsyg0Dxn2sidMaJpyM7hU6LaFuwrGp07KYJO89QJ1WPaUjuA9yWvf5OS1pXIenTisMN5hERjjsyo0AduVGCMV+f7orZyH2+w/QillfObM/AFXMB/wqpjSuI9OKGUYaTCKjHCrmKKBijhKK/cG0YlqI/cEDtGI2UM7sD0EV8yG/iimN6+i0YobRBpPIGIeKOQaomGOEYn84rZgWYn/4AK2YHZUz+yNQxXzEr2JK4zo2rZhhrMEkMs6hYo4DKuY4odgfTSumhdgfPUArZiflzP4YVDEf86uY0riOTytmGG8wiUxwqJgTgIo5QSj2x9OKaSH2xw/QitlZObM/AVXMJ/wqpjSuE9OKGSYaTCKTHCrmJKBiThKK/cm0YlqI/ckDtGJ2Uc7sT0EV8ym/iimN6+S0YobJBpPIlKTflVSoJHNXUhmDu5KmAOMua3JX0hThZPS08K4koW5C2fSuJItJ8umkT5IOb4Z6BnJaz+xzWofk+a9JKH+e//5Rx7tWHmYSJR6063CeweQ8M2bE4TyHlGLOM4/2PGvkzfGbU0v913+nZUyPOiDFS/1Xdfy/J8jcTmq1hb9VXOhSck6QU3MsRfd/1IViqrBQPCuMQ548ergyOc/kKp+JlnL7W88lPB8ZvTwHrJSmQ4Zleg7DcmgOFnN+1DG6UFC4uv7Xp/P/cLq5/e2w/4+csZixryA8X2pfQPYHcMa+ZOf8f8//D5Oc+hF+OYP4/1NcNfeJK8wQAvp8KW1y1SBl4NyfTGE+iMfudczkmJhMXoAmkxe4PnO4qUiePIcV1cciSvijF5vFYy5cUj/uClDrTW1EZgoLvjDXoULCdZPh5XCAl+MMeDkK4OV4E15mCXkR5jocb8BLQYCXEwx4ORrg5UQTXl4U8iLMdTjRgJcjAF5ONuClBMDLKSa8vCTkRZjrcIoBL0cCvNQw4KUkwEsw4WW2kBdhrkMw4KUQwEttA17KA7zUMeFljpAXYa5DHQNeCgO81DfgJQJ4aWDCy8tCXoS5Dg0MeDkK4OVUA14qALycZsLLK0JehLkOpxnwcjTAy+kGvFQBeDnDhJe5Ql6EuQ5nGPBSBODlLANeTgB4OduEl3lCXoS5Dmcb8FIU4OUcA16qA7yca8LLq0JehLkO5xrwcgzAy3kGvNQAeDnfhJfXhLwIcx3ON+ClGMDLBQa8BICXC014mS/kRZjrcKEBL8UBXi424KUewMslJrwsEPIizHW4xICXEgAvlxnwUh/g5XITXl4X8iLMdbjcgJeSAC9XGvDSBODlKhNe3hDyIsx1uMqAl2MBXq424OV0gJeOJrwsFPIizHXoaMBLKYCXLga8nAHwco0JL4uEvAhzHa4x4KU0wMu1Brw0B3i5zoSXN4W8CHMdrjPgpQzAy/UGvJwD8HKDCS9vCXkR5joo45d5clmd+Dhh3+9l7sHO3FeauVfumDj3xeKjeHxk7gXK3N9QOv67XHxkrt3OXI+aucbuuPj78fFROT4y1xBlrouoGv9dLT4ye76ZfaxMb752/L1OfNSNj0zvMdNPaRT/3Tg+MmvFjP/N1PSz4u9nx0ez+MjMWZk8tIz/blXyf+fa5fkLb4ufR1snz3//qH4fim1QxoA6x8VJf9Ri5tF/hEBvTPjzaDNjXgyM+yaT59EuFj6w5x1hQRPqJihzAU+S2PNoHSbJdxI+Sf6vKp5XPPDnhBC+Cz2R6V3uiUwWcX0vdVrhPYNJZEnSnVbm9windbOB01oCjPsWE6e1RDgZvS90WkLdhFtSp2UxSb5/gDqtmkpH8AHktD7wc1rSuC5NnVZYajCJLKMnEYXjWAY4jltNHMcyIZQfJrS3c2vqOCwmiw8PUMdRS1kZP4Icx0d+jkMa1+Wp4wjLDSaRFUnv7WReTEX0dvob9HZWAOMeYOK0Vggno4+FTkuomzAgdVoWk+THB6jTqq10BJ9ATusTP6cljeunqdMKnxpMIisdejsrgS3jlUKxf+YjdqxiOoj9swO0YtZRzuyfQxXzc7+KKY3rF2nFDF8YTCKrkt6byLw8mehNDDToTawCxj3IpDexSjgZfSnsTQh1EwalvQmLSfLLA9Rp1VU6gq8gp/WVn9OSxnV16rTCaoNJZE3SnVZmiiec1mADp7UGGPcQE6e1RjgZfS10WkLdhCGp07KYJL8+QJ1WPaUj+AZyWt/4OS1pXNemTiusNZhE1iXdaU2DelpDDZzWOmDcw0yc1jrhZPSt0GkJdROGpU7LYpL89gB1WvWVjuA7yGl95+e0pHFdnzqtsN5gEtmQdKdVCHqA1XADp7UBGPcIE6e1QTgZfS90WkLdhBGp07KYJL8/QJ1WA6Uj+AFyWj/4OS1pXDemTitsNJhENiXdaU2FelojDZzWJmDco0yc1ibhZPSj0GkJdRNGpU7LYpL8MemTpMMTA3+CnNZPnNMKJeLfLglMwpsB0Wc+ecXnWVyY/y2ltJOROteZnGwBcv0zpPufQd0/C5muX0qxpqtG7j4hk/9fgHH/CmngV1ADFA+jE/4eDkoDY0zew7FVOE8Lcx2U8cvJ0NZ9DLl2GTYdkvxz/E0577smqlP+5J/j72miaoQuBonaliaqRvggX/LPcXvSeweZ904Ra9w/DLz+H8C4/4S8/p+g18+s9bYDsdhhoIEdwLh3QhrYCWqA4mGswXqP0MA4k/XeX8L1njDXYRy03vvLfL13vYE7/TvppqcYZHrGJ3yyyxT6v4FxTzCZ7HYJJzthrsMEgyK5C9DNbsgo7c5xrvs/6s3RLcLNsX90cajtWtj+KZX8c/w36YWtOFTYJhoUtn+BcU8yKWx7hIVNmOswyaCw7QF0sxcqbHv5wlZXWdjylNbFwbWwKWNAneNBpZl5Ti3Oekpx5k3FGfIaiDOfiTjrKMV5sG7QtVzFebCBOA9Rn6P6BEtDS4L8pZNv7TLnqB53gdKMtcv8bgSJNLM8OgSIxaEGGjgUGPdhkAYOAzVA8TDZYIlHaGCKSWvgcJ1WgzDXYQq0wXd4Dob2f5K8RC6YGr1Q0MDoHZF0o1cOMnpHGhT5I4EJvhBU5AvBRu8IIBaFDTRQGBj3UZAGjoKNHsHDVAOjR2hgmonRO1po9IS5DtMgo3c0b/Q6Ko1ekbTdHIoYGL2iJu3mTkpxHpOKMxxjIM5iJuLsrBRn8VScobiBOEuYiFNa1kum/ZtQ0kCcxya9f3Mc1L8pZbB2LwWs20pDa/fScP/mWCAWZQw0UAYYd1lIA2Xh/g3Bw3SD/g2hgRkm/Ztywv6NMNdhBtS/KWfWvymvy4/tTRrlDYxelHSjdzxk9GYa3KQRARP8LJMJvoJwghfmOswyMAYVAN1UhMxhxdL4TRrS3m+ltLCFSgaF7bikF7bKUGGbbVDYjgMmqDkmhe14YWET5jrMMShsxwO6qQwVtsp4YQs1lIWtSrpvFKoYFLYTPPaNgvSZDyem4gwnGojzJJNNza5KcVZNNzVDVQNxnpz0JUFVaElwisGG1imAtasGWbtq8KbmyUAsqhtooDow7hqQBmrAm5oED3MNlniEBuaZtAaCsDUgzHWYB21qBnxTU7tErpkavVDTwOjVSrrRqwYZvdoGRb42MMHXgYp8Hdjo1QJiUddAA3WBcdeDNFAPNnoED/MNjB6hgQUmRq++0OgJcx0WQEavPm/0aiuNXoO03RwaGBi9hiZ7IdKH3TVKxRkaGYjzVBNxSh/Qc1oqznCagTgbm4hTWtabpP2b0MRAnKcnvX9TG+rfnGGwdj8DWLedCa3dz4T7N6cDsWhqoIGmwLjPgjRwFty/IXhYaNC/ITSwyKR/c7awfyPMdVgE9W/ONuvfNEtv0gjNDIxe86QbvTqQ0Xvb4CaN5sAEv9hkgj9HOMELcx0WGxiDcwDdnAuZw3P5mzSkvd8WaWELLQwKW8ukF7a6UGF7z6CwtQQmqCUmhe08YWET5josMShs5wG6OR8qbOfzhU36vJhW6b5RaGVQ2Fqb7BtJn/lwQSrOcIGBOC80EWcDpTgvSjc1w0UG4myT9CVBI2hJcLHBhtbFgLW7BLJ2l8Cbmm2AWFxqoIFLgXG3hTTQFt7UJHhYarDEIzSwzKQ1cJmwNSDMdVgGbWpexm9qSpfIl6dGL1xuYPSuSLrRawwZvXYGRb4dMMFfCRX5K2GjdwUQi6sMNHAVMO72kAbaw0aP4GG5gdEjNLDCxOh1EBo9Ya7DCsjodeCN3jVKo3d12m4OVxsYvY4m7Wbpw+46peIMnQzE2dlDnDWlD+jpkoozdDEQ5zUmM6e0rHdN+zehq4E4uyW9f3MW1L+51mDtfi2wbrsOWrtfB/dvugGx6G6gge7AuHtAGugB928IHj416N8QGlhp0r+5Xti/EeY6rIT6N9eb9W9uSG/SCDcYGL2eSTd6Z0NG7wuDmzR6AhP8KpMJvpdwghfmOqwyMAa9AN3cCJnDG/mbNKS935vSwhZuMihsvZNe2JpBhW21QWHrDUxQa0wKWx9hYRPmOqwxKGx9AN3cDBW2m/HCVlP6vJhb0n2jcItBYetrsqkpfeZDv1ScoZ+BOG81EWctpThvSzc1w20G4uyf9CVBS2hJMMBgQ2sAYO1uh6zd7fCmZn8gFncYaOAOYNwDIQ0MhDc1CR7WGizxCA2sM2kNDBK2BoS5DuugTc1B+Kamdol8Z2r0wp0GRu+upBu9VpDRG2xQ5AcDE/wQqMgPgY3eXUAs7jbQwN3AuO+BNHAPbPQIHtYbGD1CAxtMjN5QodET5jpsgIzeUJChC6FaOsxgHh0GMHQvNI/eC2sgU0/zin/3OeHi4T4DPd0H6Gk4pKfhcF0m2NpoUJcJDWwyqcsjhHVZmOuwCarLI/YxlPleO89//6hzptbrpkOSf473K+d910R1yp/8c3wgTVSN0MUgUSPTRNUIH+RL/jmOSnofNrNuHAX4nQcNvP6DwLgfgrz+Q6DXb7tv7aiOxWgDDYwGNDAG0sAYeL1H8LDZYL1HaGCLyXrvYeF6T5jrsAVa7z1svt673sCdPpJ003MZVPB+TfhklzF7jwCT3VaTyW6scLIT5jpsNSiSYwHdjIOM0rh95+o6ya83mOQfTfokfzk0yW8zmOQfBWDdbjLJPyac5IW5DtsNJvnHAN2Mhyb58eaT/EaDSX5C2meuEX40SNTjaaLi/oNBop5w2BB4AigDEw2awROBcU+Cyl/mdw+FRNoess5PGmjgSUADT0EaeArUAMXDDgMbTGhgp8nyabJw+STMddgJbQhM3seQq+n51cD0THEwPVMA6J82KHhPA+N+Bip4z4A74B0h0zPVQANTAQ1MgzQwDb4KguBhl4HpITSw28T0PCs0PcJch92Q6XnW/CqIbQam5zkH0/McAP10g4I3HRj3DKjgzQALXhfI9DxvoIHnAQ28AGngBdj0EDzsMTA9hAb2mpiemULTI8x12AuZnpnmpmeHgemZ5WB6ZgHQv2hQ8F4Exv0SVPBeAgteN8j0zDbQwGxAA3MgDcyBTQ/BQ976B6YG8tXXF6c8efSm52Wh6RHmOijjl5Ohl81Nzy4D0/OKg+l5BYB+rkHBmwuMex5U8OaBBa87ZHpeNdDAq4AGXoM08Bpsegge8huYHkIDBUxMz3yh6RHmOhSATM98c9Ozx8D0LHAwPQsA6F83KHivA+N+Ayp4b4AF7wbI9Cw00MBCQAOLIA0sgk0PwcPhBqaH0EBBE9PzptD0CHMdCkKm501z03NIgeSf41vpbXaxazdI1NulmUkqT17piYYaypfzLBYO2lWci0sn/xzf8RBnjWuU4nxXN+haruJ810Cc7zms698DfO0SgzXdEmDc70NruvfBNV0faF3/gYEGPgA0sBTSwFJ4XU/wUMhgXU9ooLDJun6ZcF0vzHUoDK3rl+VgaP8nyUbvQ11+arsavQ8NjN5HSTd6N0NFvkjCJ/iMwf0ImOCLmkzwy4UTvDDXoaiBMVgO6GYFZA5X5DjX/R9xYeuqLGwfp4UtfGxQ2D5JemG7BSpsxQ0K2yfABFXCpLB9KixswlyHEgaF7VNANyuhwrYSL2yhtrKwfZbuG4XPDArb5yabmnWU4vwiFWf4wkCcqw7ETc0vdYOu7yrOLw3E+ZXDpuZXgMVZbbChtRoY9xrI2q0pzT1xtz+0LPzaQANfAxr4BtLAN6XZpy4TPJQyWOIRGiht0hpYK2wNCHMdSkObmmtzMLT/k+Ql8rr06rWwzsDofetg9L4FJrrvDIr8d8C410NFfj145dIdkNHbYKCBDYAGvoc08D189RrBQzkDo0dooLyJ0ftBaPSEuQ7lIaP3A371mrbdvDE1emGjgdHb5GD0NgET3Y8GRf5HYNw/QUX+J7DI3wkZvc0GGtgMaGALpIEtsNEjeKhoYPQIDVQyMXo/C42eMNehEmT0fuaNXl2l0fslNXrhFwOj96uD0fsVmOi2GhT5rcC4f4OK/G9gkR8CGb3fDTTwO6CBbZAGtsFGj+ChsoHRIzRQxcTobRcaPWGuQxXI6G3njV49pdH7IzV64Q8Do/eng9H7E5jodhgU+R3AuHdCRX4nWOSHQkbvLwMN/AVo4G9IA3/DRo/g4SQDo0dooKqJ0dslNHrCXIeqkNHbxRu9+kqjtzs1emG3gdH7x8Ho/QNMdP8aFPl/gXHvgYr8HrDI3wcZvb0GGtgLaCBPGUYDmd+NIA1QPFQzMHqEBqqbGL2DdFoNwlyH6pDRO6gMbvQ6K41eXuFc4mr0lDGgzjFfGYZ3tTi7KMV5cCrOcLCBOA8xEaf0eQX5U3GG/AbiLGAiTmlZP1Q3aNv+zaEG4jxMfY5E/yZzkur1y+HigRPrtsOBcReE1u4FwbX7KKh/c4SBBo4ANHAkpIEj4f4NwUNNg/4NoYFaJv2bQsL+jTDXoRbUvylk1r8prMuP7YOUCxsYvaOSbvQehIp8XYMHKR8FTPD1TCb4o4UTvDDXoZ6BMTga0E0RyBwWyXGu+z9J7v0WTQtbKGpQ2I5JemF7CCpsDQ0K2zHABNXIpLAVExY2Ya5DI4PCVgzQTXGosBXHC1vNmsrCViLdNwolDApbSY99o5q1lOI8NhVnONZAnKUOxE3N0rpB274hoLSBOMs4bGqWASxOWYMNrbLAuMtB1i7zu9TT4cdCy8LyBhooD2gggjQQlWHfEEDw0NhgiUdooIlJa6CCsDUgzHVoAm1qVihDvyFAu0SumF69FioaGL1KDkavEjDRHWdQ5I8Dxn08VOSPB69cegwyepUNNFAZ0EAVSANV4KvXCB7ONDB6hAaamhi9E4RGT5jr0BQyeifgV69p280npkYvnGhg9E5yMHonARNdVYMiXxUY98lQkT8ZLPKPQ0bvFAMNnAJooBqkgWqw0SN4aGZg9AgNNDcxetWFRk+Y69AcMnrVeaMnfednjdTohRoGRi84GL1A3IdmUORrEvehQUW+FljkJ0FGr7aBBmoDGqgDaaAObPQIHloYGD1CAy1NjF5dodET5jq0hIxeXd7oSd/5WS81eqGegdGr72D06gMTXQODIt8AGHdDqMg3BIv8ZMjoNTLQQCNAA6dCGjgVNnoED60MjB6hgdYmRu80odET5jq0hozeabzRk77zs3Fq9EJjA6PXxMHoNQEmutMNivzpwLjPgIr8GWCRfwYyemcaaOBM4vosSANNYaNH8HCRgdEjNNDGxOidJTR6wlyHNpDRO4s3eh2VRu/s9JbwcLaB0WtWhuFdLc5OSnE2T8UZmhuI8xwTcUqfV3BuKs5wroE4W5iIU1rWW6b9m9DSQJznOfRvzgPWL+cbrN3PJzYmoLV7K3DtPgPq37Q20EBrQAMXQBq4AO7fEDxcatC/ITTQ1qR/c6GwfyPMdWgL9W8uNOvfXKTLj+2DlC8yMHptkm70noeK/BUGD1JuA0zw7Uwm+IuFE7ww16GdgTG4GNDNJZA5vCTHue7/JLn3e2la2MKlBoWtbdIL2wtQYWtvUNjaAhNUB5PCdpmwsAlzHToYFLbLAN1cDhW2y/HCVquGsrBdke4bhSsMCls7j32jWkEpzitTcYYrDcR51YG4qdleN2jbNwS0NxBnB4dNzQ6AxbnaYEPramDcHSFrl/ld6unws6FlYScDDXQCNNAZ0kDnMuwbAggeOhks8RANmLQGughbA8Jch87QpmaXMvQbArRL5GvSq9fCNQZGr6uD0esKTHTdDIp8N2Dc10JF/lrwyqVXIKN3nYEGrgM00B3SQHf46jWCh64GRo/QQDcTo9dDaPSEuQ7dIKPXA796Tdtuvj41euF6A6N3g4PRuwGY6HoaFPmewLh7QUW+F1jkX4WM3o0GGrgR0MBNkAZugo0ewUN3A6NHaKCHidHrLTR6wlyHHpDR680bPek7P/ukRi/0MTB6NzsYvZuBie4WgyJ/CzDuvlCR7wsW+QWQ0etnoIF+gAZuhTRwK2z0CB56Ghg9QgO9TIzebUKjJ8x16AUZvdt4oyd952f/1OiF/gZGb4CD0RsATHS3GxT524Fx3wEV+TvAIr8QMnoDDTQwENDAIEgDg2CjR/DQ28DoERroY2L07hQaPWGuQx/I6N3JGz3pOz/vSo1euMvA6A12MHqDgYluiEGRHwKM+26oyN8NFvm3IKN3j4EG7gE0MBTSwFDY6BE89DUweoQG+pkYvWFCoyfMdegHGb1hvNGrrzR696a3hId7DYzefWUY3tXibKAU5/BUnGG4gThHmIhT+ryC+1NxhvsNxPmAiTilZX1k2r8JIw3EOcqhfzMKWL88aLB2fxAY90PQ2v0hcO2+BOrfjDbQwGhAA2MgDYyB+zcED/0N+jeEBgaY9G8eFvZvhLkOA6D+zcNm/ZtHdPmxfZDyIwZGb2zSjd771NU4Bg9SHktcjWMywY8TTvDCXIdBBsZgHKCbRyFz+GiOc93/SXLv97G0sIXHDArb+KQXtg+gwjbYoLCNJ668MSlsE4SFTZjrMMSgsE0AdPM4VNge5wvbNcrC9kS6bxSeMChsE032jboqxTkpFWeYZCDOJw/ETc2ndIO2fUPAUwbinOywqTkZsDhTDDa0pgDjfhqydpnfpZ4OvxxaFj5joIFnAA1MhTQwtQz7hgCCh6EGSzxCA8NMWgPThK0BYa7DMGhTc1oZ/A0B0iXys+nVa+FZA6P3nIPRew6Y6KYbFPnpwLhnQEV+Bnjl0ieQ0XveQAPPAxp4AdLAC/DVawQPww2MHqGBESZGb6bQ6AlzHUZARm8mf/WatN08KzV6YZaB0XvRwei9CEx0LxkU+ZeAcc+GivxssMh/Bhm9OQYamANo4GVIAy/DRo/gYaSB0SM0MMrE6L0iNHrCXIdRkNF7BTd6taXv/JybGr0w18DozXMwevOAie5VgyL/KjDu16Ai/xpY5FdBRm++gQbmAxpYAGlgAWz0CB5GGxg9QgNjTIze60KjJ8x1GAMZvdd5oyd95+cbqdELbxgYvYUORm8hMNEtMijyi4BxvwkV+TfBIr8aMnpvGWjgLUADb0MaeBs2egQPYw2MHqGBcSZGb7HQ6AlzHcZBRm8xb/Sk7/x8JzV64R0Do/eug9F7F5jo3jMo8u8B414CFfklYJH/BjJ67xto4H1AAx9AGvgANnoED+MNjB6hgQkmRm+p0OgJcx0mQEZvKW/06iqN3rL0lvCwzMDofViG4V0tznpKcX6UijN8ZCDO5SbilD6vYEUqzrDCQJwfm4hTWtY/Sfs34RMDcX7q0L/5FFi/rDRYu68Exv0ZtHb/DFy7b4D6N58baOBzQANfQBr4Au7fEDxMNOjfEBqYZNK/WSXs3whzHSZB/ZtVZv2bL3X5sX2Q8pcGRu+rpBu976EiP9ngQcpfEU+LM5ngVwsneGGuwxQDY7Aa0M0ayByuyXGu+z9J7v1+nRa28LVBYfsm6YXtB6iwTTUobN8AE9Q0k8K2VljYhLkO0wwK21pAN+ugwraOL2ydlYXt23TfKHxrUNi+M9k36qIU5/pUnGG9gTg3HIibmt/rBm37hoDvDcT5g8Om5g+AxdlosKG1ERj3JsjaZX6Xejr8ZmhZ+KOBBn4ENPATpIGfyrBvCCB4mG6wxCM0MMOkNbBZ2BoQ5jrMgDY1N5eh3xCgXSJvSa9eC1sMjN7PDkbvZ2Ci+8WgyP8CjPtXqMj/Cl659Atk9LYaaGAroIHfIA38Bl+9RvAw08DoERqYZWL0fhcaPWGuwyzI6P3OX70mbTdvS41e2GZg9LY7GL3twET3h0GR/wMY959Qkf8TLPK/QUZvh4EGdgAa2AlpYCds9AgeZhsYPUIDc0yM3l9CoyfMdZgDGb2/eKMnfefn36nRC38bGL1dDkZvFzDR7TYo8ruBcf8DFfl/wCK/HTJ6/xpo4F9AA3sgDeyBjR7Bw1wDo0doYJ6J0dsrNHrCXId5kNHbyxs96Ts/85RNjZ4wBtg5HlTWwOhlTlI90eUtm/wJPi8w7nxlmQkq87sRJNIdkNE72EADBwMaOATSwCFlWaNH8DDfwOgRGlhgYvTy67QahLkOCyCjl78sbfTqSN/5WSA1eqGAgdE71MHoHQpMdIcZFPnDgHEfDhX5w8Ei/zdk9AoaaKAgoIEjIA0cARs9goeFBkaP0MAiE6N3pNDoCXMdFkFG70je6NVWGr1CwrnE1egVMjB6hcsyvKvFWUcpzqNScYajDMR5tIk4pc8rKJKKMxQxEGdRE3FKy/oxaf8mHGMgzmIO/ZtiwPqluMHavTgw7hLQ2r0EuHbfC/VvShpooCSggWMhDRwL928IHt426N8QGlhs0r8pJezfCHMdFkP9m1Jm/ZvSuvzYPki5tIHRK5N0o5fnWKbIv2fwIOUywAS/xGSCLyuc4IW5DksMjEFZQDflIHNYLse57v8kufdbPi1sobxBYYuSXtgOggrbUoPCFgET1DKTwlZBWNiEuQ7LDApbBUA3FaHCVpEvbB2Vha1Sum8UKhkUtuNM9o06KcV5fCrOcLyBOCsfiJuaVXSDtn1DQBUDcZ7gsKl5AmBxTjTY0DoRGPdJkLXL/C71dPj80LKwqoEGqgIaOBnSwMll2TcEEDwsN1jiERpYYdIaOEXYGhDmOqyANjVPKUu/IUC7RK6WXr0WqhkYveoORq86MNHVMCjyNYBxB6jIB/DKpcMgo1fTQAM1AQ3UgjRQC756jeDhUwOjR2hgpYnRqy00esJch5WQ0avNX70mbTfXSY1eqGNg9Oo6GL26wERXz6DI1wPGXR8q8vXBIn8EZPQaGGigAaCBhpAGGsJGj+DhCwOjR2hglYnRayQ0esJch1WQ0WvEGz3pOz9PTY1eEMYAO8fTyhoYvcxJqie6xmWTP8E3BsbdpCwzQWV+N4JEWhgyeqcbaOB0QANnQBo4oyxr9AgeVhsYPUIDa0yM3pk6rQZhrsMayOidWRY3etJ3fjYtmxq9pgZG7ywHo3cWMNGdbVDkzwbG3Qwq8s3AIl8EMnrNDTTQHNDAOZAGzoGNHsHDWgOjR2hgnYnRO1do9IS5Dusgo3cub/Sk7/xskRq90MLA6LV0MHotgYnuPIMifx4w7vOhIn8+WOSLQUavlYEGWgEaaA1poDVs9Age1hsYPUIDG0yM3gVCoyfMddgAGb0LcKNXt6bS6F0onEtcjd6FBkbvorIM72px1lKKs00qztDGQJwXm4hT+ryCS1JxhksMxHmpiTilZb1t2r8JbQ3EeZlD/+YyYP1yucHa/XJg3FdAa/crwLV7aah/085AA+0ADVwJaeBKuH9D8LDRoH9DaGCTSf/mKmH/RpjrsAnq31xl1r9pr8uP7YOU2xsYvQ5JN3ploCK/2eBByh2ACX6LyQR/tXCCF+Y6bDEwBlcDuukImcOOOc51/yfJvd9OaWELnQwKW+ekF7ayUGH71aCwdQYmqK0mha2LsLAJcx22GhS2LoBuroEK2zV8YauvLGxd032j0NWgsHUz2TdqoBTntak4w7UG4rzuQNzU7K4btO0bArobiLOHw6ZmD8DiXG+woXU9MO4bIGuX+V3q6fAVoWVhTwMN9AQ00AvSQK+y7BsCCB62GSzxCA1sN2kN3ChsDQhzHbZDm5o3lqXfEKBdIt+UXr0WbjIwer0djF5vYKLrY1Dk+wDjvhkq8jeDVy4dDxm9Www0cAuggb6QBvrCV68RPOwwMHqEBnaaGL1+QqMnzHXYCRm9fvzVa9J2862p0Qu3Ghi92xyM3m3ARNffoMj3B8Y9ACryA8AifwJk9G430MDtgAbugDRwB2z0CB52GRg9QgO7TYzeQKHRE+Y67IaM3kDe6Enf+TkoNXphkIHRu9PB6N0JTHR3GRT5u4BxD4aK/GCwyFeFjN4QAw0MATRwN6SBu2GjR/Cwx8DoERrYa2L07hEaPWGuw17I6N3DGz3pOz+HpkYvDDUwesMcjN4wYKK716DI3wuM+z6oyN8HFvlqkNEbbqCB4YAGRkAaGAEbPYKHvA0OTA3ka6AvTnny6I3e/UKjJ8x1UMYvJ0P380ZP+s7PB1KjFx4wMHojHYzeSGCiG2VQ5EcB434QKvIPgkU+QEbvIQMNPARoYDSkgdGw0SN4yG9g9AgNFDAxemOERk+Y61AAMnpjcKNXr4bS6D2c3hIeHjYweo+UZXhXizMoxTk2FWcYayDOcSbilD6v4NFUnOFRA3E+ZiJOaVkfn/ZvwngDcU5w6N9MANYvjxus3R8Hxv0EtHZ/Aly714P6NxMNNDAR0MAkSAOT4P4NwcPhBv0bQgMFTfo3Twr7N8Jch4JQ/+ZJs/7NU7r82D5I+SkDozc56UavPlTkCyV8gs8Y3MnABF/YZIKfIpzghbkOhQ2MwRRAN09D5vDpHOe6/5Pk3u8zaWELzxgUtqlJL2wNoMJWxKCwTQUmqKImhW2asLAJcx2KGhS2aYBunoUK27N8YaurLGzPpftG4TmDwjbdZN+onlKcM1JxhhkG4nz+QNzUfEE3aNs3BLxgIM6ZDpuaMwGLM8tgQ2sWMO4XIWuX+V3q6fCNoWXhSwYaeAnQwGxIA7PLsm8IIHgobrDEIzRQwqQ1MEfYGhDmOpSANjXnlKXfEKBdIr+cXr0WXjYweq84GL1XgIlurkGRnwuMex5U5OeBVy6dARm9Vw008CqggdcgDbwGX71G8FDKwOgRGihtYvTmC42eMNehNGT05vNXr0nbzQtSoxcWGBi91x2M3uvARPeGQZF/Axj3QqjILwSL/FmQ0VtkoIFFgAbehDTwJmz0CB7KGRg9QgPlTYzeW0KjJ8x1KA8Zvbd4oyd95+fbqdELbxsYvcUORm8xMNG9Y1Dk3wHG/S5U5N8Fi3xzyOi9Z6CB9wANLIE0sAQ2egQPFQ2MHqGBSiZG732h0RPmOlSCjN77vNGTvvPzg9TohQ8MjN5SB6O3FJjolhkU+WXAuD+EivyHYJFvARm9jww08BGggeWQBpbDRo/gobKB0SM0UMXE6K0QGj1hrkMVyOit4I2e9J2fH6dGL3xsYPQ+cTB6nwAT3acGRf5TYNwroSK/Eizy50NG7zMDDXwGaOBzSAOfw0aP4OEkA6NHaKCqidH7Qmj0hLkOVSGj9wVv9K5RGr1V6S3hYZWB0fuyLMO7WpxdleL8KhVn+MpAnKs9xFlf+ryCNak4wxoDcX5tMnNKy/o3af8mfGMgzrUO/Zu1wPplncHafR0w7m+htfu34Nq9DdS/+c5AA98BGlgPaWA93L8heKhm0L8hNFDdpH+zQdi/EeY6VIf6NxvM+jff6/Jj+yDl7w2M3g9JN3oXQ0W+psGDlH8AJvhaJhP8RuEEL8x1qGVgDDYCutkEmcNNOc51/yfJvd8f08IWfjQobD8lvbBdAhW2ugaF7SdggqpnUtg2CwubMNehnkFh2wzoZgtU2Lbgha1+bWVh+zndNwo/GxS2X0w2NesoxflrKs7wq4E4tx6Im5q/6QZt+4aA3wzE+bvDpubvgMXZZrChtQ0Y93bI2mV+l3o6/BXQsvAPAw38AWjgT0gDf5Zl3xBA8NDQYIlHaKCRSWtgh7A1IMx1aARtau4oS78hQLtE3plevRZ2Ghi9vxyM3l/ARPe3QZH/Gxj3LqjI7wKvXLoKMnq7DTSwG9DAP5AG/oGvXiN4aGxg9AgNNDExev8KjZ4w16EJZPT+xa9e07ab96RGL+wxMHp7HYzeXmCiy1Mu+RN85hzV4z6oHDNBZX43gkR6NWT08hpoIC+ggXyQBvKVY40ewcOZBkaP0EBTE6N3sE6rQZjr0BQyegeXw42e9J2fh5RLjd4h5ZJ/jvnLGRi9/MBEV8CgyBcAxn0oVOQPBYt8Z8joHWaggcMADRwOaeBw2OgRPDQzMHqEBpqbGL2CQqMnzHVoDhm9grzRk77z84jU6IUjDIzekQ5G70hgoitkUOQLAeMuDBX5wmCR7woZvaMMNHAUoIGjIQ0cDRs9gocWBkaP0EBLE6NXRGj0hLkOLSGjV4Q3etJ3fhZNjV4oamD0jnEwescAE10xgyJfDBh3cajIFweL/HWQ0SthoIESgAZKQhooCRs9godWBkaP0EBrE6N3rNDoCXMdWkNG71je6HVWGr1SwrnE1eiVMjB6pcsxvKvF2UUpzjKpOEMZA3GWNRGn9HkF5VJxhnIG4ixvIk5pWY/S/k2IDMRZwaF/UwFYv1Q0WLtXBMZdCVq7VwLX7r2g/s1xBho4DtDA8ZAGjof7NwQPFxn0bwgNtDHp31QW9m+EuQ5toP5NZbP+TRVdfmwfpFzFwOidkHSjdyNU5C81eJDyCcAE39Zkgj9ROMELcx3aGhiDEwHdnASZw5NynOv+T5J7v1XTwhaqGhS2k5Ne2G6CCtsVBoXtZGCCamdS2E4RFjZhrkM7g8J2CqCbalBhq4YXtgY1lYWterpvFKobFLYaHvtGDWopxRlScYZgIM6aB+KmZi3doG3fEFDLQJy1HTY1awMWp47BhlYdYNx1IWuX+V3q6fB9oWVhPQMN1AM0UB/SQP1y7BsCCB7aGyzxCA10MGkNNBC2BoS5Dh2gTc0G5eg3BGiXyA3Tq9dCQwOj18jB6DUCJrpTDYr8qcC4T4OK/GnglUu3QUavsYEGGgMaaAJpoAl89RrBQycDo0dooLOJ0TtdaPSEuQ6dIaN3On71mrbdfEZq9MIZBkbvTAejdyYw0TU1KPJNgXGfBRX5s8Aifztk9M420MDZxMNSIQ00g40ewUNXA6NHaKCbidFrLjR6wlyHbpDRa84bPek7P89JjV44x8Donetg9M4lHhhpUORbEA+MhIp8S7DID4KM3nkGGjgP0MD5kAbOh40ewUN3A6NHaKCHidFrJTR6wlyHHpDRa8UbPek7P1unRi+0NjB6FzgYvQuAie5CgyJ/IfGgBajIXwQW+cGQ0WtjoIE2gAYuhjRwMWz0CB56Ghg9QgO9TIzeJUKjJ8x16AUZvUt4oyd95+elqdELlxoYvbYORq8tMNFdZlDkLwPGfTlU5C8Hi/w91D36Bhq4grhHH9JAO9joETz0NjB6hAb6mBi9K4VGT5jr0AcyelfyRq+j0uhdld4SHq4yMHrtyzG8q8XZSSnODqk4QwcDcV5tIk7p8wo6puIMHQ3E2clEnNKy3jnt34TOBuLs4tC/6QKsX64xWLtfQ1xqDK3du4Jr9xFQ/6abgQa6ARq4FtLAtXD/huChr0H/htBAP5P+zXXC/o0w16Ef1L+5zqx/012XH9sHKXc3MHo9km707oeKfH+DByn3ACb4ASYT/PXCCV6Y6zDAwBhcD+jmBsgc3pDjXPd/ktz77ZkWttDToLD1SnphewAqbAMNClsvYIIaZFLYbhQWNmGuwyCDwnYjoJuboMJ2E17YOtZQFrbe6b5R6G1Q2Pp47Bt1DEpx3pyKM9xsIM5bDsRNzb66Qdu+IaCvgTj7OWxq9gMszq0GG1q3AuO+DbJ2md+lng4/mup3GmigP9HvhDQwoBz7hgCCh8EGSzxCA0NMWgO3C1sDwlyHIdCm5u3l6DcEaJfId6RXr4U7DIzeQAejN5DogRoU+UHAuO+Eivyd4JVLj0BG7y4DDdxFmBtIA4Phq9cIHoYaGD1CA8NMjN4QodET5joMg4zeEPzqNW27+e7U6IW7DYzePQ5G7x5igjco8kOJCR4q8sPAIv8oZPTuNdDAvYAG7oM0cB9s9AgehhsYPUIDI0yM3nCh0RPmOoyAjN5w3uhJ3/k5IjV6YYSB0bvfwejdD0x0DxgU+QeAcY+EivxIsMhPgIzeKAMNjAI08CCkgQdho4fwYGD0CA2MMjF6DwmNnjDXYRRk9B7ijZ70nZ+jU6MXRhsYvTEORm8MMNE9bFDkHwbG/QhU5B8Bi/xEyOiNNdDAWEAD4yANjIONHsHDaAOjR2hgjInRe1Ro9IS5DmMgo/cob/Sk7/x8LDV64TEDozfeweiNBya6CQZFfgIw7sehIv84WOSfgozeEwYaeALQwERIAxNho0fwMNbA6BEaGGdi9CYJjZ4w12EcZPQm8UavvtLoPZneEh6eNDB6T5VjeFeLs4FSnJNTcYbJBuKcYiJO6fMKnk7FGZ42EOczJuKUlvWpaf8mTDUQ5zSH/s00YP3yrMHa/Vlg3M9Ba/fnwLX7NKh/M91AA9MBDcyANDAD7t8QPIw36N8QGphg0r95Xti/EeY6TID6N8+b9W9e0OXH9kHKLxgYvZlJN3rPQkV+osGDlGcCE/wkkwl+lnCCF+Y6TDIwBrMA3bwImcMXc5zr/k+Se78vpYUtvGRQ2GYnvbA9BxW2yQaFbTYwQU0xKWxzhIVNmOswxaCwzQF08zJU2F7mC9s1ysL2SrpvFF4xKGxzTfaNuirFOS8VZ5hnIM5XD8RNzdd0g7Z9Q8BrBuKc77CpOR+wOAsMNrQWAON+HbJ2md+lng4/E1oWvmGggTcADSyENLCwHPuGAIKHqQZLPEID00xaA4uErQFhrsM0aFNzUTn8DQHSJfKb6dVr4U0Do/eWg9F7C5jo3jYo8m8D414MFfnF4JVLL0FG7x0DDbwDaOBdSAPvwlevETxMNzB6hAZmmBi994RGT5jrMAMyeu/xV69J281LUqMXlhgYvfcdjN77wET3gUGR/wAY91KoyC8Fi/zLkNFbZqCBZYAGPoQ08CFs9AgeZhoYPUIDs0yM3kdCoyfMdZgFGb2PcKPXSfrOz+Wp0QvLDYzeCgejtwKY6D42KPIfA+P+BCryn4BFfh5k9D410MCngAZWQhpYCRs9gofZBkaP0MAcE6P3mdDoCXMd5kBG7zPe6Enf+fl5avTC5wZG7wsHo/cFMNGtMijyq4BxfwkV+S/BIj8fMnpfGWjgK0ADqyENrIaNHsHDXAOjR2hgnonRWyM0esJch3mQ0VvDGz3pOz+/To1e+NrA6H3jYPS+ASa6tQZFfi0w7nVQkV8HFvk3IKP3rYEGvgU08B2kge9go0fwMN/A6BEaWGBi9NYLjZ4w12EBZPTW80avrtLobUhvCQ8bDIze9+UY3tXirKcU5w+pOMMPBuLcaCJO6fMKNqXiDJsMxPmjiTilZf2ntH8TfjIQ52aH/s1mYP2yxWDtvgUY98/Q2v1ncO2+GOrf/GKggV8ADfwKaeBXuH9D8LDQoH9DaGCRSf9mq7B/I8x1WAT1b7aa9W9+0+XH9kHKvxkYvd+TbvTegYr82wYPUv6deJiGyQS/TTjBC3MdFhsYg22AbrZD5nB7jnPd/0ly7/ePtLCFPwwK259JL2zvQoXtPYPC9icwQS0xKWw7hIVNmOuwxKCw7QB0sxMqbDv5wtZZWdj+SveNwl8Ghe1vk32jLkpx7krFGXYZiHP3gbip+Y9u0LZvCPjHQJz/Omxq/gtYnD0GG1p7gHHvhaxd5nepp8MvhZaFeconXwOZc1SP+6DyjAYyv0u+IYDgYanBEo/QwDKT1kDe8sJ5RNgaWAZtauYtT78hQLtEzqfLj+3Va/nKJ/8cDy5vYPQOBia6QwyK/CHAuPNDRT7zuxEk0o8go1fAQAMFAA0cCmngUFADFA/LDYweoYEVJkbvMKHRE+Y6rICM3mE5GNr/SXK7+fDU6IXDDYxeQQejVxCY6I4wKPJHAOM+EiryR4JF/mPI6BUy0EAhQAOFIQ0Uho0ewcOnBkaP0MBKE6N3lNDoCXMdVkJG7yje6Enf+Xl0avTC0QZGr4iD0SsCTHRFDYp8UWDcx0BF/hiwyK+EjF4xAw0UAzRQHNJAcdjoETx8YWD0CA2sMjF6JYRGT5jrsAoyeiV4oyd952fJ1OiFkgZG71gHo3csMNGVMijypYBxl4aKfGmwyH8BGb0yBhooA2igLKSBsrDRI3hYbWD0CA2sMTF65YRGT5jrsAYyeuVwo9dZ+s7P8qnRC+UNjF7kYPQiYKKrYFDkKwDjrggV+Ypgkf8KMnqVDDRQCdDAcZAGjoONHsHDWgOjR2hgnYnRO15o9IS5Dusgo3c8b/RqK41eZeFc4mr0KhsYvSrlGd7V4qyjFOcJqTjDCQbiPNFEnNLnFZyUijOcZCDOqibilJb1k9P+TTjZQJynOPRvTgHWL9UM1u7VgHFXh9bu1cG1+zqof1PDQAM1AA0ESAMB7t8QPKw36N8QGthg0r+pKezfCHMdNkD9m5pm/ZtauvzYPki5loHRq510o/ctVOQ3GjxIuTYwwW8ymeDrCCd4Ya7DJgNjUAfQTV3IHNbNca77P0nu/dZLC1uoZ1DY6ie9sH0HFbbNBoWtPjBBbTEpbA2EhU2Y67DFoLA1AHTTECpsDfnC1lFZ2Bql+0ahkUFhO9Vk36iTUpynpeIMpxmIs/GBuKnZRDdo2zcENDEQ5+kOm5qnAxbnDIMNrTOAcZ8JWbvM71JPh98ILQubGmigKaCBsyANnFWefUMAwcOvBks8QgNbTVoDZwtbA8Jch63QpubZ5ek3BGiXyM3Sq9dCMwOj19zB6DUHJrpzDIr8OcC4z4WK/LnglUs/QUavhYEGWgAaaAlpoCV89RrBwzYDo0doYLuJ0TtPaPSEuQ7bIaN3Hn/1mrTdfH5q9ML5BkavlYPRawVMdK0NinxrYNwXQEX+ArDI/wwZvQsNNHAhoIGLIA1cBBs9gocdBkaP0MBOE6PXRmj0hLkOOyGj14Y3etJ3fl6cGr1wsYHRu8TB6F0CTHSXGhT5S4Fxt4WKfFuwyG+FjN5lBhq4DNDA5ZAGLoeNHsHDLgOjR2hgt4nRu0Jo9IS5Drsho3cFb/Sk7/xslxq90M7A6F3pYPSuBCa6qwyK/FXAuNtDRb49WOS3QUavg4EGOgAauBrSwNWw0SN42GNg9AgN7DUxeh2FRk+Y67AXMnodeaMnfednp9TohU4GRq+zg9HrDEx0XQyKfBdg3NdARf4asMj/CRm9rgYa6ApooBukgW6w0SN4yNvwwNRAvob64pQnj97oXSs0esJcB2X8cjJ0LW70utRUGr3r0lvCw3UGRq97eYZ3tThrKcXZIxVn6GEgzutNxCl9XsENqTjDDQbi7GkiTmlZ75X2b0IvA3He6NC/uRFYv9xksHa/CRh3b2jt3htcu++G+jd9DDTQB9DAzZAGbob7NwQP+Q36N4QGCpj0b24R9m+EuQ4FoP7NLWb9m766/Ng+SLmvgdHrl3Sj9w9U5A9P+ASfMbj9gAm+oMkEf6twghfmOhQ0MAa3Arq5DTKHt+U41/2fJPd++6eFLfQ3KGwDkl7Y/oUKWyGDwjYAmKAKmxS224WFTZjrUNigsN0O6OYOqLDdwRe2+srCNjDdNwoDDQrbIJN9owZKcd6ZijPcaSDOuw7ETc3BukHbviFgsIE4hzhsag4BLM7dBhtadwPjvgeydpnfpZ4On7cUsywcaqCBoYAGhkEaGFaefUMAwUMRgyUeoYGiJq2Be4WtAWGuQ1FoU/Pe8vQbArRL5PvSq9fCfQZGb7iD0RsOTHQjDIr8CGDc90NF/n7wyqVDIKP3gIEGHgA0MBLSwEj46jWCh+IGRo/QQAkTozdKaPSEuQ4lIKM3ir96TdpufjA1euFBA6P3kIPRewiY6EYbFPnRwLjHQEV+DFjkD4WM3sMGGngY0MAjkAYegY0ewUMpA6NHaKC0idEbKzR6wlyH0pDRG8sbPek7P8elRi+MMzB6jzoYvUeBie4xgyL/GDDu8VCRHw8W+YKQ0ZtgoIEJgAYehzTwOGz0CB7KGRg9QgPlTYzeE0KjJ8x1KA8ZvSd4oyd95+fE1OiFiQZGb5KD0ZsETHRPGhT5J4FxPwUV+afAIl8IMnqTDTQwGdDAFEgDU2CjR/BQ0cDoERqoZGL0nhYaPWGuQyXI6D3NGz3pOz+fSY1eeMbA6E11MHpTgYlumkGRnwaM+1moyD8LFvmjIaP3nIEGngM0MB3SwHTY6BE8VDYweoQGqpgYvRlCoyfMdagCGb0ZIEPHxFrK1NO84t8tKTSOzxvMyc8DPL4AzckvwHoi6vJMAw3MBDQwC9LALLguEzycZFCXCQ1UNanLLwrrsjDXoSpUl1/8Hxow6pi+JIzp6Hq63xpTj4npS+TmQMk8eYoDtWk2NEfP/g/0VSN3n6DUV8445Damc6CYzgH1lfG8MwF9VUt43cv4vd+AcVc3qXsvCxkS5jpUT7huMrzMAnRT04CX34Fx1zLh5RUhL8Jch1oGvLwI6KauAS/bgHHXM+FlrpAXYa6DS/zmCeM3VriGGgetoeaR/T1oDfUq5PdfzcIaSqmvV4VrqNegmL4G6qsYpK+GBr3DXcC4G5nM0fOFDAlzHRpBvcP5OfrEai0VhxhqbMDQHmDcTUwYWiBkSJjr0ARiaAHIUGat9RKgpTMN1loHldaPu6kJQ68LGRLmOjQ16E3MBnhpZsBLPoCX5ia8vCHkRZjr4BK/hcL4TRb2JqZAvYmF4NqxNOR7F0Hr6EVZ6E0o9bVI2Jt4E4rpm1m4JuMtYUynCpmdBjH7FshsOYjZtyF9vZ0FZpX6elvI7GIopovhazLmAPpqYeBLiwK+tKWJr3pHyJAw16GlwTruZYCXVga8FAN4aW3Cy7tCXoS5Dq0NeHkF4OUiA15KALy0MeHlPSEvwlwHl/gtEcZvunANNQNaQy0BPe5x0Brqfcjvv5+FNZRSX+8L11AfQDH9ANTX8ZC+LjXYT64A1Li2JnP0UiFDwlwHZfxyMrQU3E+uDDF0hQFDxwMMtTNhaJmQIWGuQzuIoWXwNRlzAYbaG6y1TgAY6mDC0IdChoS5Dh0MehPzAF46GfByEsBLZxNePhLyIsx1cInfcmH85gp7E/Og3sRycO1YFfK9K6B19Ios9CaU+loh7E18DMX04yxck/GJMKbzhcwugJj9BGS2GsTsp5C+Ps0Cs0p9fSpkdiUU05XwNRmvAvrqauBLGwK+tJuJr/pMyJAw16GbwTruNYCX7ga8nArw0sOEl8+FvAhzHXoY8DIf4KWnAS+NAV56mfDyhZAXYa6DS/xWCeO3ULiGWgStoVaBHrc2tIb6EvL7X2ZhDaXU15fCNdRXUEy/AvVVB9JXb4P95HOAGtfHZI5eLWRImOugjF9OhlaD+8l1IYb6GjB0HsBQPxOG1ggZEuY69IMYWgNfk7EAYKi/wVqrNcDQABOGvhYyJMx1GGDQm3gd4GWgAS8XArwMMuHlGyEvwlwHl/itFcZvqbA3sQzqTawF146NIN+7DlpHr8tCb0Kpr3XC3sS3UEy/zcI1Gd8JY7pcyOwKiNnvQGYbQ8yuh/S1PgvMKvW1XsjsBiimG+BrMt4A9DXYwJd2BHzpEBNf9b2QIWGuwxCDddxCgJehBrx0BngZZsLLD0JehLkOwwx4WQTwMtyAl2sAXkaY8LJRyIsw18ElfpuU1x0L11AroTXUJtDjngWtoX6E/P6PWVhDKfX1o3AN9RMU059AfZ0N6WukwX5yL6DGjTKZozcLGRLmOijjl5OhzeB+cjOIodEGDPUBGBpjwtAW5XuuhQyNgRjaAl+T8SbA0FiDtVZfgKFxJgz9rHzPoZChcQa9ibcAXsYb8HIrwMsEE15+EfIizHVwid+vwvitFfYm1kG9iV/BtWNLyPduhdbRW7PQm1Dqa6uwN/EbFNPfsnBNxu/KPXMhsxsgZn8HmW0FMbsN0te2LDCr1Nc2IbPboZhuzwKzfwhjulHI7CaI2T9AZi+EmP0T0tefWWBWqa8/hczugGK6A76O6n5gTTUx4WvJsvG4nwO4mmSyFtopZEiY6zDJoPfyAMDL5ISPuxzEyxQTXv5SvvdUyMsUA15GArxMTfi4y0O8TDPh5W/lO0eFvLjEb5cwfpuFa6gt0BpqF+hx20JrqN2Q39+dhTWUUl+7hWuof6CY/gPq6zJIX9MNrgEZC9T2GSZz9L/Kd8IJa5wyfjkZ+he8BuRyiKGZBgw9BjA0y4ShPUKGhLkOsyCG9sDXUU0AtDQ74QxF0FprjglDe4UMCXMd5hj0Jh4HeJmb8HFXgHiZZ8JLZiGgiqUw18ElfgcJ47dD2JvYCfUmMuM9dN/vqllsD/nevBETi7w5YvH/pa8aufsEpb5yxiG3Mc0HxTTffxDT3J77wcKY7hIyuxtiNjPeaN/vqpntCDF7SMTE4pCI7ycq9ZUzDrmNaX4opvn/g5jm9twLCGO6R8jsXojZAhHHbBeI2UMjJhaHRjyzSn3ljENuY3oYFNPDIp7Zw4UxzVtf91v56jMxPTzimO0GMVswYmJRMOKZVeorZxxyG9MjoJgeEfHMHimMaX4hswUgZo+MOGa7Q8wWiphYFIp4ZpX6yhmH3Ma0MBTTwhHP7FHCmB4uZLYgxOxREcfsDRCzR0dMLI6OeGaV+soZh9zGtAgU0yKgvv7f+9WBfZb5Cd9nqQjtsyww2ScoGuliKcx1WGCwL/k2wMvChI+7EsTLIhNejol0sRTmOiwy4OUdgJe3Ez7u4yBeFpvwUizSxVKY6+ASv+LC+BUSrqEKQ2uozHijfb+rZrEPtIYqETGxKBHxayilvnLGIbcxLQnFtCSor5shfb1ncH30cqC2LzGZo4+NdLEU5joo45eTocx4qeujb4EYWmrA0KcAQ8tMGCoV6WIpzHVYBjFUCmQos9b6HNDS8oQzdDy01lphwlDpSBdLYa7DCoPexCqAl08TPu7KEC8rTXgpE+liKcx1cIlfWWH8Sgl7E6Wh3kRmvNQ9Bv0h31suYmJRLuLvMVDqK2ccchvT8lBMy0f8PQaRMqZCZstDzGbGG+37XTWzd0DMVoiYWFSI+H6iUl8545DbmFaEYlrxP4hpbs+9kjCmFYXMVoKYrRRxzN4JMXtcxMTiuIhnVqmvnHHIbUyPh2J6fMQzW1kY08pCZqtAzFaOOGaHQMxWiZhYVIl4ZpX6yhmH3Mb0BCimJ0Q8sycKY3qSkNmqELMnRhyzQyFmT4qYWJwU8cxK9RXpYloVimnViGf2ZGFMqwmZrQ4xe3LEMXsfxOwpEROLUyKeWaW+csYhtzGtBsW0GqivzD5LvjJ6fX2R8H2WKtA+yyqTfYLqkS6WwlyHVQb7kocAvKxO+LhPgHhZY8JLjUgXS2GuwxoDXgoAvKxN+LhPhHhZZ8JLiHSxFOY6uMSvpjB+NYVrqFrQGioz3mjf76pZHAWtoWpFTCxqRfwaSqmvnHHIbUxrQzGtDerrQUhf6w2ujz4aqO0bTOboOpEulsJcB2X8cjKUGS91ffRDEEMbDRgqBjC0yYShupEulsJch00QQ3VBhjJrrZKAljYnnKGToLXWFhOG6kW6WApzHbYY9CZKAbz8mvBxV4V42WrCS/1IF0throNL/BoI49dY2JtoAvUmMuOl7jEYC/nehhETi4YRf4+BUl8545DbmDaCYtoo4u8xOFUY0zOFzDaFmM2MN9r3u2pmH4OYPS1iYnFaxPcTlfrKGYfcxrQxFNPG/0FMc3vuTYQxbSZktjnEbJOIY/ZxiNnTIyYWp0c8s0p95YxDbmN6BhTTMyKe2TOFMW0hZLYlxOyZEcfsJIjZphETi6YRz6xSXznjkNuYngXF9KyIZ/ZsYUxbCZltDTF7dsQxOxlitlnExKJZxDOr1FfOOOQ2ps2hmDaPeGbPEcb0IiGzbSBmz4k4Zp+BmD03YmJxbsQzq9RXzjjkNqYtoJi2APWV2WdpBuyzbEv4PsvJ0D7LdpN9gpaRLpbCXIftBvuS5wC87Ej4uE+BeNlpwst5kS6WwlyHnQa8tAB42ZXwcVeDeNltwsv5kS6WwlwHl/i1EsbvUuEaqi20hsqMN9r3u2oWZ0BrqNYRE4vWEb+GUuorZxxyG9MLoJheAOrreUhfewyuj74YqO17TeboCyNdLIW5Dsr45WQoM17q+ugXIIbyNko+Q5cBDOVr5MHQRZEulsJcB2X8cjJ0EchQZq3VDtBS/oQzVB1aaxUwYahNpIulMNehQMJ1k+HlKoCXwxM+7hoQLwVNeLk40sVSmOvgEr9LhPHrJOxNdIZ6E5nxUvcYzIZ876URE4tLI/4eA6W+csYhtzFtC8W0bcTfY3CZMKZdhcx2g5jNjDfa97tqZl+BmL08YmJxecT3E5X6yhmH3Mb0CiimV/wHMc3tubcTxrS7kNkeELPtIo7ZVyFmr4yYWFwZ8cwq9ZUzDrmN6VVQTK+KeGbbC2PaU8hsL4jZ9hHH7AKI2Q4RE4sOEc+sUl8545DbmF4NxfTqiGe2ozCmvYXM9oGY7RhxzC6EmO0UMbHoFPHMKvWVMw65jWlnKKadI57ZLsKY9hUy2w9itkvEMfsWxOw1EROLayKeWaW+csYhtzHtCsW0K6ivzD7LfcA+S6GE77MEaJ+lsMk+QbdIF0thrkNhg33JEQAvRRI+7poQL0VNeLk20sVSmOtQ1ICXBwBeiid83LUgXkqY8HJdpIulMNfBJX7dhfHrL1xDDYDWUJnxRvt+V83iEmgN1SNiYtEj4tdQSn3ljENuY3o9FNPrQX29D+mrlMH10eOA2l7aZI6+IdLFUpjrUBq6PjozXur66A8ghsoZMDQBYKi8CUM9I10shbkO5SGGeoIMZdZaEwEtVUw4Q7WhtVYlE4Z6RbpYCnMdKhn0Jp4EeKmc8HHXgXipYsLLjZEulsJcB5f43SSM31Bhb2IY1JvIjJe6x2A55Ht7R0wsekf8PQZKfeWMQ25j2geKaZ+Iv8fgZmFMhwuZHQExmxlvtO931cx+AjF7S8TE4paI7ycq9ZUzDrmNaV8opn3/g5jm9tz7CWM6UsjsKIjZfhHH7GcQs7dGTCxujXhmlfrKGYfcxvQ2KKa3RTyz/YUxHS1kdgzEbP+IY3YVxOyAiInFgIhnVqmvnHHIbUxvh2J6e8Qze4cwpmOFzI6DmL0j4phdDTE7MGJiMTDimVXqK2ccchvTQVBMB0U8s3cKYzpeyOwEiNk7I47ZbyBm74qYWNwV8cwq9ZUzDrmN6WAopoNBfWX2WT4E9llOSvg+S11on6WqyT7BkEgXS2GuQ1WDfcnlAC/VEj7uehAv1U14uTvSxVKY61DdgJePAV5qJnzc9SFeapnwck+ki6Uw18ElfkOF8ZsoXENNgtZQmfFG+35XzeIGaA01LGJiMSzi11BKfeWMQ25jei8U03tBfX0P6auuwfXRq4HaXs9kjr4vEq5HhTWuHnR9dGa81PXRP0AMNTRgaC3AUCMThoZHulgKcx0aQQwNBxnKrLW+A7TUOOEMNYDWWk1MGBoR6WIpzHVoYtCb2ADwcmbCx90Q4qWpCS/3R7pYCnMdXOL3gDB+04W9iRlQbyIzXuoeg82Q7x0ZMbEYGfH3GCj1lTMOuY3pKCimoyL+HoMHhTGdKWR2FsRsZrzRvt9VM/sLxOxDEROLhyK+n6jUV8445Damo6GYjv4PYprbcx8jjOlsIbNzIGbHRByzv0HMPhwxsXg44plV6itnHHIb00egmD4S8cyOFcZ0rpDZeRCzYyOO2e0Qs+MiJhbjIp5Zpb5yxiG3MX0UiumjEc/sY8KYzhcyuwBi9rGIY3YHxOz4iInF+IhnVqmvnHHIbUwnQDGdEPHMPi6M6UIhs4sgZh+POGb/hph9ImJi8UTEM6vUV8445DamE6GYTgT1ldlnKVxWr69mCd9naQTtszQ32SeYFOliKcx1aG6wL3k0wEuLhI/7VIiXlia8PBnpYinMdWhpwEtRgJdWCR/3aRAvrU14eSrSxVKY6+ASv8nC+L0tXEMthtZQmfFG+35XzeJeaA01JWJiMSXi11BKfeWMQ25j+jQU06dBfeU5ltHXRQbXR5cFansbkzn6mUgXS2GuQxvo+ujMeKnrow+CGLrUgKEKAENtTRiaGuliKcx1aAsxNBVkKLPWOg7Q0hUJZ6gxtNZqZ8LQtEgXS2GuQzuD3kRlgJf2CR93E4iXDia8PBvpYinMdXCJ33PC+C0X9iZWQL2JzHipewzyQ753esTEYnrE32Og1FfOOOQ2pjOgmM6I+HsMnhfG9FMhsyshZjPjjfb9rprZwyBmX4iYWLwQ8f1Epb5yxiG3MZ0JxXTmfxDT3J77LGFMvxAyuwpidlbEMXsExOyLEROLFyOeWaW+csYhtzF9CYrpSxHP7GxhTFcLmV0DMTs74pgtDDE7J2JiMSfimVXqK2ccchvTl6GYvhzxzL4ijOlaIbPrIGZfiThmi0DMzo2YWMyNeGaV+soZh9zGdB4U03kRz+yrwpiuFzK7AWL21YhjthjE7GsRE4vXIp5Zpb5yxiG3MZ0PxXQ+qK/MPstFwD5Lp4Tvs5wO7bN0NtknWBDpYinMdehssC95McBL14SP+wyIl24mvLwe6WIpzHXoZsDLpQAv3RM+7jMhXnqY8PJGpIulMNfBJX4LhfHbKFxDbYLWUJnxRvt+V81iaWgNtShiYrEo4tdQSn3ljENuY/omFNM3QX2VgfTV0+D66KuB2t7LZI5+K9LFUpjr0Au6PjozXur66LIQQ70NGOoCMNTHhKG3I10shbkOfSCG3gYZyqy1ugFa6ptwhppCa61+JgwtjnSxFOY69DPoTVwH8NI/4eM+C+JlgAkv70S6WApzHVzi964wftuEvYntUG8iM17qHoOKkO99L2Ji8V7E32Og1FfOOOQ2pkugmC6J+HsM3hfGdIeQ2Z0Qs5nxRvt+V83s8RCzH0RMLD6I+H6iUl8545DbmC6FYrr0P4hpbs99mTCmu4TM7oaYXRZxzJ4AMfthxMTiw4hnVqmvnHHIbUw/gmL6UcQzu1wY0z1CZvdCzC6POGarQsyuiJhYrIh4ZpX6yhmH3Mb0YyimH0c8s58IY5q3ge638jVgYvpJxDFbDWL204iJxacRz6xSXznjkNuYroRiujLimf1MGNP8QmYLQMx+FnHMBojZzyMmFp9HPLNKfeWMQ25j+gUU0y9AfWX2WR4B9lkGJnyf5Wxon2WQyT7BqkgXS2GuwyCDfclxAC+DEz7uZhAvQ0x4+TLSxVKY6zDEgJfHAF6GJnzczSFehpnw8lWki6Uw18ElfquF8TtcuIYqCK2hMuON9v2umsV60BpqTcTEYk3Er6GU+soZh9zG9Gsopl+D+qoP6Wu4wfXRU4DaPsJkjv4m0sVSmOswAro+OjNe6vroBhBDIw0YmgYwNMqEobWRLpbCXIdREENrQYYya63pgJZGJ5yhc6C11hgThtZFulgKcx3GGPQmngd4GZvwcZ8L8TLOhJdvI10shbkOLvH7Thi/4sLeRAmoN5EZL3WPQWPI966PmFisj/h7DJT6yhmH3MZ0AxTTDRF/j8H3wpiWEjJbGmI2M95o3++qmT0DYvaHiInFDxHfT1TqK2ccchvTjVBMN/4HMc3tuW8SxrSckNnyELObIo7ZsyBmf4yYWPwY8cwq9ZUzDrmN6U9QTH+KeGY3C2NaUchsJYjZzRHHbHOI2S0RE4stEc+sUl8545DbmP4MxfTniGf2F2FMKwuZrQIx+0vEMdsCYvbXiInFrxHPrFJfOeOQ25huhWK6NeKZ/U0Y05OEzFaFmP0t4pg9H2L294iJxe8Rz6xSXznjkNuYboNiug3UV2af5Utgn2V8wvdZWkD7LBNM9gm2R7pYCnMdJhjsS64GeJmY8HG3hHiZZMLLH5EulsJch0kGvHwN8DI54eM+D+Jligkvf0a6WApzHVzit0MYv2rCNVR1aA2VGW+073fVLLaB1lA7IyYWOyN+DaXUV8445Damf0Ex/QvU18WQvqYaXB+9Eajt00zm6L8jXSyFuQ7ToOujM+Olro++BGJougFDmwGGZpgwtCvSxVKY6zADYmgXyFBmrfULoKWZCWfofGitNcuEod2RLpbCXIdZBr2JrQAvsxM+7lYQL3NMePkn0sVSmOvgEr9/hfFrKOxNNIJ6E5nxUvcYXAH53j0RE4s9EX+PgVJfOeOQ25juhWK6N+LvMchTQRfTxkJmm0DMZsYb7ftdNbNXQcweVIGJxUEV+H6iUl8545DbmOaFYpr3P4hpbs89nzCmZwqZbQoxmw9k9mqI2YMhfR2cBWaV+jpYyOwhUEwPyQKz+YUxbSZktjnEbH6Q2c4QswUgfRXIArNKfRUQMnsoFNNDs8DsYcKYthAy2xJi9jCQ2a4Qs4dD+jo8C8wq9XW4kNmCUEwLZoHZI4QxbSVktjXE7BEgs9dBzB4J6evILDCr1NeRQmYLQTEtBOors89SupxeX3MTvs/SGtpnmWeyT1BYyJAw12Gewb5kWYCX+Qkf9wUQLwtMeDlKyIsw12GBAS/lAV4WJnzcF0K8LDLh5WghL8JcB5f4FRHG7yLhGqoNtIYqAnrcXtAaqijk94tmYQ2l1FdR4RrqGCimx4D6uhHS19sG10efCNT2xSZzdDEhQ8Jch8XQ9dGZ8R4EMXQTxNB7BgydAjC0xISh4kKGhLkOSyCGioMMZdZaNQAtLU04QxdBa61lJgyVEDIkzHVYZtCbqAnwsjzh424D8bLChJeSQl6EuQ4u8TtWGL/2wt5EB6g3kRkvdY9BX8j3loLW0aUq8PcYKPVVStibKA3FtHQF/h6DMsKYdhIy2xlitgzY77kNYrYspK+yFfh+olJfZYXMloNiWi4L11GVF8a0q5DZbhCz5UFmb4eYjSB9RVlgVqmvSMhsBSimFbLAbEVhTLsLme0BMVsRZHYQxGwlSF+VssCsUl+VhMweB8X0uCwwe7wwpj2FzPaCmD0eZHYwxGxlSF+Vs8CsUl+VhcxWgWJaJQvMniCMaW8hs30gZk8Amb0HYvZESF8nZoFZpb5OFDJ7EhTTk0B9ZfZZ2gP7LJ8mfJ/lYmifZaXJPkFVIUPCXIeVBvuSVwO8fJHwcV8C8bLKhJeThbwIcx1WGfDSCeBldcLHfSnEyxoTXk4R8iLMdXCJXzVh/PoK11D9oDVUNdDjjoDWUNUhv189C2sopb6qC9dQNaCY1gD1dT+kr7UG10dfD9T2dSZzdBAyJMx1WAddH50Z70EQQw9ADK03YOhGgKENJgzVFDIkzHXYADFUE2Qos9bqA2hpY8IZaguttTaZMFRLyJAw12GTQW/iFoCXzQkf92UQL1tMeKkt5EWY6+ASvzrC+A0W9iaGQL2JzHipewxGQ763LrSOrluBv8dAqa+6wt5EPSim9Srw9xjUF8Z0qJDZYRCz9cF+zyMQsw0gfTWowPcTlfpqIGS2IRTThlm4jqqRMKbDhcyOgJhtBDL7KMTsqZC+Ts0Cs0p9nSpk9jQopqdlgdnGwpiOFDI7CmK2McjsBIjZJpC+mmSBWaW+mgiZPR2K6elZYPYMYUxHC5kdAzF7BsjsRIjZMyF9nZkFZpX6OlPIbFMopk2zwOxZwpiOFTI7DmL2LJDZpyBmz4b0dXYWmFXq62whs82gmDYD9ZXZZ3kK2Gf5NeH7LJdD+yxbTfYJmgsZEuY6bDXYl5wC8LIt4eO+AuJluwkv5wh5EeY6bDfg5RmAlx0JH3c7iJedJrycK+RFmOvgEr8WwviNF66hJkBrqBagx50GraFaQn6/ZRbWUEp9tRSuoc6DYnoeqK9nIX3tMrg+ehZQ23ebzNHnCxkS5jrshq6Pzoz3IIih5yCG9hgwNAdgaK8JQ62EDAlzHfZCDLUCGcqsteYCWsp7arIZuhJaa+U71YOh1kKGhLkO+RKumwwvrwK85E/4uK+CeClgwssFQl6EuQ4u8btQGL+pwt7ENKg3kRkvdY/BTMj3XgStoy+qwN9joNTXRcLeRBsopm0q8PcYXCyM6XQhszMgZi8G+z0vQcxeAunrkgp8P1Gpr0uEzF4KxfTSLFxH1VYY05lCZmdBzLYFmX0ZYvYySF+XZYFZpb4uEzJ7ORTTy7PA7BXCmM4WMjsHYvYKkNl5ELPtIH21ywKzSn21EzJ7JRTTK7PA7FXCmM4VMjsPYvYqkNn5ELPtIX21zwKzSn21FzLbAYpphywwe7UwpvOFzC6AmL0aZPYNiNmOkL46ZoFZpb46CpntBMW0E6ivzD7L98A+y+EJ32dpD+2zFDTZJ+gsZEiY61DQYF9yI8BLoYSPuwPES2ETXroIeRHmOhQ24OVHgJciCR/31RAvRU14uUbIizDXwSV+XYXxWyhcQy2C1lBdQY+7GFpDdYP8frcsrKGU+uomXENdC8X0WlBf70D6Kp7wGpe5PnobUNtLmMzR1wkZEuY6KOOXk6HMeA+CGHoXYqiUAUM7AIZKmzDUXciQMNehNMRQd5ChzFrrb0BL5RLOUEdorVXehKEeQoaEuQ7lDXoTuwFeKiZ83J0gXiqZ8HK9kBdhroNL/G4Qxm+psDexDOpNZMZL3WOwFPK9PaF1dM8K/D0GSn31FPYmekEx7VWBv8fgRmFMlwuZXQExeyPY7/kIYvYmSF83VeD7iUp93SRktjcU095ZuI6qjzCmnwqZXQkx2wdk9mOI2Zshfd2cBWaV+rpZyOwtUExvyQKzfYUx/ULI7CqI2b4gsyshZvtB+uqXBWaV+uonZPZWKKa3ZoHZ24QxXS1kdg3E7G0gs19AzPaH9NU/C8wq9dVfyOwAKKYDssDs7cKYrhUyuw5i9naQ2a8gZu+A9HVHFphV6usOIbMDoZgOBPWV2WepUl6vr8oJ32fpDO2zVDHZJxgkZEiY61DFYF/yRICXkxI+7i4QL1VNeLlTyIsw16GqAS9VAV6qJXzc10C8VDfh5S4hL8JcB5f4DRbGb71wDbUBWkMNBj3uOmgNNQTy+0OysIZS6muIcA11NxTTu0F9fQvpq6bB9dF1gNpey2SOvkfIkDDXoRZ0fXRmvAdBDH0HMVTXgKEGAEP1TBgaKmRImOtQD2JoKMhQZq11KqClhglnqCu01mpkwtAwIUPCXIdGBr2JxgAvjRM+7m4QL01MeLlXyIsw18ElfvcJ4/ersDexFepNZMZL3WOwEfK9w6F19PAK/D0GSn0NF/YmRkAxHVGBv8fgfmFMtwmZ3Q4xez/Y7/kJYvYBSF8PVOD7iUp9PSBkdiQU05FZuI5qlDCmO4TM7oSYHQUy+zPE7IOQvh7MArNKfT0oZPYhKKYPZYHZ0cKY7hIyuxtidjTI7FaI2TGQvsZkgVmlvsYImX0YiunDWWD2EWFM9wiZ3Qsx+wjI7DaI2bGQvsZmgVmlvsYKmR0HxXRcFph9VBjTvA11v5WvIRPTR0Fm/4SYfQzS12NZYFapr8eEzI6HYjoe1Fdmn6U7sM9yZsL3Wa6F9lmamuwTTBAyJMx1aGqwL3k9wEuzhI/7OoiX5ia8PC7kRZjr0NyAl54ALy0SPu7uEC8tTXh5QsiLMNfBJX4ThfHLL1xDFYDWUBNBj7sbWkNNgvz+pCysoZT6miRcQz0JxfRJUF//QPpqZXB99K1AbW9tMkc/JWRImOvQGro+OjPegyCG/oUYusiAodsBhtqYMDRZyJAw16ENxNBkkKHMWmsQoKVLE85QD2it1daEoSlChoS5Dm0NehN3AbxckfBxXw/x0s6El6eFvAhzHVzi94wwfkWEvYmiUG8iM17qHoO8pRjfOxVaR0+twN9joNTXVGFvYhoU02kV+HsMnhXGtLiQ2RIQs8+C/Z5DIGafg/T1XAW+n6jU13NCZqdDMZ2eheuoZghjWkrIbGmI2Rkgs4dCzD4P6ev5LDCr1NfzQmZfgGL6QhaYnSmMaTkhs+UhZmeCzBaEmJ0F6WtWFphV6muWkNkXoZi+mAVmXxLGtKKQ2UoQsy+BzBaCmJ0N6Wt2FphV6mu2kNk5UEznZIHZl4UxrSxktgrE7Msgs0dDzL4C6euVLDCr1NcrQmbnQjGdmwVm5wljepKQ2aoQs/NAZo+BmH0V0terWWBWqa9Xhcy+BsX0tX0xPSQ+CuTQWM6PWnf182jHsv8zvwJ4wpkfV//uAqFAqHEvqPC/Ayz63f9jYzGv+JznlNfF9HXhZPA/5Se359dgX37UMWwgPMc3Kmh1o9Z4JsdvVNDnZiE0YS/MMWFn/l/+PP/9k+QJmzzPeibnWdfkPHPOpTVy+fmfzi/XDy6Of+PgPPr572DhbzWEcp1HO+Ya/7eG5GJSFoLM5HdojsTnASFQOO+u//UhEhj2/5EzFov2mbY3K+wLyP7qsWhfpcv5/97MwrLqtdw73Zr7qA+LhK75TXFy1TNcBppFkAMXg3LNa5CTegtyUm+BrZVMW6Us0Fppb3Aryk7gcugOJpe1vi1cMQpzHTokXDcZXsoBvHQy4OUvgJfOJrwsFvIizHXobMBLeYCXrga8/A3w0s2El3eEvAhzHboZ8BIBvHQ34GUvwEsPE17eFfIizHXoYcBLBYCXnga8ZBaF6nH3MuHlPSEvwlyHXga8VAR46W3AS9FIP+4+JrwsEfIizHXoY8BLJYCXvga8HBPpx93PhJf3hbwIcx36GfByHMBLfwNeikX6cQ8w4eUDIS/CXIcBBrwcD/Ay0ICX0pF+3INMeFkq5EWY6zDIgJfKAC+DDXgpE+nHPcSEl2VCXoS5DkMMeKkC8DLUgJfqkX7cw0x4+VDIizDXYZgBLycQr8E24KVGpB/3CBNePhLyIsx1GGHAy4kALyMNeAmRftyjTHhZLuRFmOswyoCXkwBeRhvwUi/Sj3uMCS8rhLwIcx3GGPBSlXiNqwEv9SP9uMeZ8PKxkBdhrsM4A15OBngZb8BLy0g/7gkmvHwi5EWY6zDBgJdTAF4mGvByXqQf9yQTXj4V8iLMdZhkwEs1gJfJBrycH+nHPcWEl5VCXoS5DlMMeKlOvPLAgJc2kX7c00x4+UzIizDXYZoBLzUAXqYb8HJxpB/3DBNePhfyIsx1mGHASwB4mWnAS7dIP+5ZJrx8IeRFmOswy4CXmsQjuw14uTbSj3uOCS+rhLwIcx3mGPBSC+BlrgEv10X6cc8z4eVLIS/CXId5BrzUBniZb8BLr0g/7gUmvHwl5EWY67DAgJc6AC8LDXi5MdKPe5EJL6uFvAhzHRYZ8FIX4OVtA16GRPpxLzbhZY2QF2Guw2IDXuoBvLxnwMvdkX7cS0x4+VrIizDXYYkBL/UBXpYa8HJPpB/3MhNevhHyIsx1WGbASwOAl+UGvIyI9ONeYcLLWiEvwlyHFQa8NAR4+dSAl/sj/bhXmvCyTsiLMNdhpQEvjQBevjDgZVKkH/cqE16+FfIizHVYZcDLqQAvqw14eTLSj3uNCS/fCXkR5jqsMeDlNICXtQa8PBXpx73OhJf1Ql6EuQ7rDHhpDPCy3oCXaZF+3BtMeNkg5EWY67DBgJcmAC8bDXh5NtKPe5MJL98LeRHmOmwy4OV0gJfNBrwsiPTj3mLCyw9CXoS5DlsMeDkD4OVXA15ej/Tj3mrCy0YhL8Jch60GvJwJ8LLNgJc3Iv24t5vwsknIizDXYbsBL00BXnYY8LI40o97pwkvPwp5EeY67DTg5SyAl10GvLwT6ce924SXn4S8CHMddhvwcjbAyx4DXlZF+nHvNeFls5AXYa7DXgNemgG85D0t+bx8GenHne80D162CHkR5jrkS7huMrw0B3jJb8DLV5F+3AVMePlZyIsw16GAAS/nALwcbsDLukg/7oImvPwi5EWY61DQgJdzAV4KGfDybaQfd2ETXn4V8iLMdShswEsLgJciBrxsj/TjLmrCy1YhL8Jch6IGvLQEeCluwMsfkX7cJUx4+U3IizDXoYQBL+cBvJQy4OXPSD/u0ia8/C7kRZjrUNqAl/MBXsoZ8LI70o+7vAkv24S8CHMdyhvw0grgpaIBL/9E+nFXMuFlu5AXYa5DJQNeWgO8VDbgpXAF/birmPDyh5AXYa5DFQNeLgB4OcmAl6MAXqqa8PKnkBdhrkNVA14uBHipZsDL0QAv1U142SHkRZjrUN2Al4sAXmoa8FIC4KWWCS87hbwIcx1qGfDSBuClrgEvJQFe6pnw8peQF2GuQz0DXi4GeGlowEtVgJdGJrz8LeRFmOvQyICXSwBeGhvwcjLASxMTXnYJeRHmOjQx4OVSgJczDXg5BeClqQkvu4W8CHMdmhrw0hbgpZkBL7UAXpqb8PKPkBdhrkNzA14uA3hpYcBLbYCXlia8/CvkRZjr0NKAl8sBXloZ8NIc4KW1CS97hLwIcx1aG/ByBcDLRQa8nAPw0saEl71CXoS5Dm0MeGkH8HKpAS/nAry0NeElT0VdLIW5Dm0NeLkS4OUKA15aA7y0M+HlICEvwlyHdga8XAXw0t6AlwsAXjqY8JJXyIsw16GDAS/tAV46GfDSGeClswkv+YS8CHMdOhvw0gHgpasBL10AXrqZ8HKwkBdhrkM3A16uBnjpbsDLNQAvPUx4OUTIizDXoYcBLx0BXnoa8NID4KWXCS/5hbwIcx16GfDSCeCltwEv1wO89DHhpYCQF2GuQx8DXjoDvPQ14GUQwEs/E14OFfIizHXoZ8BLF4CX/ga83AnwMsCEl8OEvAhzHQYY8HINwMtAA17uAngZZMLL4UJehLkOgwx46QrwMtiAl2EAL0NMeCko5EWY6zDEgJduAC9DDXi5F+BlmAkvRwh5EeY6DDPg5VqAl+EGvEwAeBlhwsuRQl6EuQ4jDHi5DuBlpAEvjwO8jDLhpZCQF2GuwygDXroDvIw24OUJgJcxJrwUFvIizHUYY8BLD4CXsQa8TAF4GWfCy1FCXoS5DuMMeLke4GW8AS9PA7xMMOHlaCEvwlwHZfwOjn+jbnx8u+/33o7zvTg+3omPf8rnyfNvfOyJj3fj7+/FR74oT5788XFYfBwRH4Xjo0h8LIn/7f34+CA+Ssbfj42PUvGxNP6+LD7Kx39XjI/j4+OE+KgaH9Xi48P43z6Kj+XxUTv+Xic+6sbHivj7x/HRKP67cXycER9nxUfz+GgRH5/E//ZpfKyMjwvi7xfGx0Xx8Vn8/fP4aBv/fUV8XBUfV8dH5/joGh9fxP+2Kj6+jI/r4+83xEfP+Pgq/r46PvrEf/eNj9vi4/b4GBQfg+NjTfxvX8fHN/Fxb/z9vvgYHh9r4+/r4mNU/Pfo+HgkPh6NjwnxMTE+vo3/7bv4WB8fT8ffn4mPqfGxIf7+fXzMiP+eGR8vxcfL8TEvPubHxw/xv22Mj03x8Wb8/a34eDs+foy//xQfSzKxjY+P4uPj+FiZGVt8bI7/LfNe78y7ir+Ov3+TOcf4yLyLNfN+yQ3x3xvj46f4+Dk+tsbHtsx/43/LvB8s886jv+Lvf8fHrsy/xd8z76nYG/+dN/7vIfFxaHwUjI9C8ZF5Jn/mOeOZZycfEx/F4qN4fGSeDZt53mXp+CgXHxXi47j4qBIfJ8VH5tl+meeVZZ7BVCM+QnzUzGguPjLPzagXHw3j47T4OD0+msZHs/jIPCMgc99z5l7O8+L/nh8frTJzVPw9c/9Nm/jvS+Pj8vi4Mj46xEenjG7jf8tcP525JvTa+Pt18dE9PjLXvGWu4+kV/907Pm6Jj1vjY0B8DMyMNf63zD5sZm/p7vj7PfExNDP++HumHzgi/ntkfDwUHw/Hx7j4GB8fmd5HZj2X8ahPxt+fio/J8ZGpwZl5ZVr89/T4eCE+XoyPOfExt0Ke//U5aN9/T9dwfs1r8W+/UUE/lxfRzZE18u2bi/7vj+r3odgGZQyocyyqPkf1CdbPwwh0Imyycnt+mTFnkqP+3UmQyToYFGZux3yM0LAJdROUuYAnybD/9w7ESfKYhE+S/6uK5xUPPPObp4sgLCYMYiZ++fbFMfO7EZN4i7gWT51WUMaAOscSSXdamd8jnNZkA6dVAnBaU0ycVgmh0yopdFpC3YQpqdOymCRLJnySpBxBTaUjOBZyWsf6OS1pXEulTisoY0CdY2l6ElE4jtKA45hq4jhKCx1HmYT2dqamjsNisihDTxY1cvehKmMtZWUsCzmOsn6OQxrXcqnjCMoYUOdYPum9nXp5mN7Oswa9nfKA03rOxGmVFzqtSOi0hLoJz6VOy2KSjBI+SVKOoLbSEVSAnFYFP6cljWvF1GkFZQyoc6zk0NvJnGRecOC5PcfjfMSOVUwHsR9Hi71G7j7UzF5HObMfD1XM4/0qpjSuldOKGZQxoM6xStIrZmbN2zDPf79Np0buPuFg4W81FI73BHFCCAdTBeiZPJ/w29oy4z4BGPcLJr2iKkKHeaKwVyTUTXgh7RVZFK0T6aJVI3cfyqHVVTq0kyDne5Kf85XGtWrqfIMyBtQ5npz0XblM4olduRcNduVOBpzWSyZO62Sh0zpF6LSEugkvpU7LYpI8JeGTJOUI6ikdQTXIaVXzc1rSuFZPnVZQxoA6xxoOu3I1gF25GsJKHtJdOQuxh4oHZsWsr5zZa0IVs6ZfxZTGtVZaMYMyBtQ51naomLWBillbWDHrpBXTQux1Kh6YFbOBcmavC1XMun4VUxrXemnFDMoYUOdY36Fi1gcqZn1hxWyQVkwLsTeoeGBWzI7Kmb0hVDEb+lVMaVwbpRUzKGNAneOpDhXzVKBiniqsmKelFdNC7KdVPDArZiflzN4YqpiN/SqmNK5N0ooZlDGgzvF0h4p5OlAxTxdWzDPSimkh9jNosdfI3Yea2TsrZ/YzoYp5pl/FlMa1aVoxgzIG1Dme5VAxzwIq5lnCinl2WjEtxH52xQOzYnZRzuzNoIrZzK9iSuPaPK2YQRkD6hzPSfgkEuaUZ+5KetngrqRMctS/+4rJXUnnCB3NuTqRB6FuwivpXUkWk+S5ynM8ZB8s+f97rvRXqeRhYJdfBGFynnVNzjNTNB3OU/3wmf/7o/rtvDl+s0XF//pvy0xxVgdkQVz1G+T579Y+11daCX9rQQXdeHMumVrkWDLt/6j7JC2EruK8itrqKr9qK/6NTK7UL5yntJTb3zo/4fnI6OV8wNG3gloYrfbxmDEsh+ZgMedHHaMdgsLV9b8+nf+H083tb4f9f+SMRet9BeGCivsCsj+ArfclO+f/u+B/mOTUj5rLGcT/n+KquU9cobVwwrygoja5apAycO5PpjAfxOPhOmZyTEwmF0KTyYVcPzQUL5Unz8xS+li8mvBHBG6Jx/xyef24X4NaRGojcpGw4AtzHV5LuG4yvMwCeHndgJdXAF7eMOGljZAXYa7DGwa8vAjw8qYBL3MBXt4y4eViIS/CXIe3DHh5CeDlHQNeXgd4edeEl0uEvAhzHd414GU2wMv7Bry8AfDygQkvlwp5EeY6fGDAyxyAlw8NeHkH4OUjE17aCnkR5jp8ZMDLywAvHxvw8i7AyycmvFwm5EWY6/CJAS+vALx8ZsDLewAvn5vwcrmQF2Guw+cGvMwFePnSgJcPAV6+MuHlCiEvwlyHrwx4mQfw8rUBLx8BvHxjwks7IS/CXIdvDHh5FeDlWwNePgN4+c6ElyuFvAhzHb4z4OU1gJfvDXj5HODlBxNerhLyIsx1+MGAl/kALz8a8PIFwMtPJry0F/IizHX4yYCXBQAvPxvw8jXAyy8mvHQQ8iLMdfjFgJfXAV5+M+DlG4CX3014uVrIizDX4XcDXt4AePnDgJfvAV7+NOGlo5AXYa7Dnwa8LAR4+cuAlx8AXv424aWTkBdhrsPfBrwsAnj5x4CXjQAv/5rw0lnIizDX4V8DXt4EeMnTOPm8/AzwclBjD166CHkR5joclHDdZHh5C+DlYANefgF4OcSEl2uEvAhzHZTxyzy5LPO0rhP2/V7mHuzMfaWZe+Vei3M/Pz4WxEfmXqDM/Q1vxn8vjo/MtduZ61Ez19h9EH9fGh/L4iNzDVHmuoiP479Xxkdmzzezj5XpzX8Vf18dH2viI9N7zPRTvo3/3hAfmbVixv9mavpP8ffN8bElPjJzViYPv8V/by//v3Pt8vyFrjoN/b+PBKyX579/VL8PxTYoY0CdYzf1ORKP/iMEeihchBQPcekGjPswqAipn5uaU5i5HfO1woIm1E1Q5gKeJLHnpjpMktcmfJL8X1U8r3jg5wshvE4YxJxPZMr8bsQk3iKu3VOnFZQxoM6xR9KdVub3CKd1hIHT6gGM+0gTp9VDOBldL3RaQt2EI1OnZTFJXp/wSZJyBDWVjuAGyGnd4Oe0pHHtmTqtoIwBdY696ElE4Th6AY7jKBPH0UsI5Y0J7e0clToOi8niRnqyqJG7D1UZaykr402Q47jJz3FI49o7dRxBGQPqHPskvbeTSTzR2yli0NvpA4y7qInT6iOcjG4WOi2hbkLR1GlZTJI3J3ySpBxBbaUjuAVyWrf4OS1pXPumTisoY0CdYz+H3k4/vdj/j4Hn9hxv9RE7VjEdxH5rxQOzYtZRzuy3QRXzNr+KKY1r/7RiBmUMqHMckPTeROblyURvorhBb2IAMO4SJr2JAcLJ6HZhb0Kom1Ai7U1YTJK3J3ySpBxBXaUjuANyWnf4OS1pXAemTisoY0Cd46CkO626eRinVcrAaQ0Cxl3axGkNEk5GdwqdllA3oXTqtCwmyTsTPklSjqCe0hHcBTmtu/ycljSug1OnFZQxoM5xSNKdVkuop1XOwGkNAcZd3sRpDRFORncLnZZQN6F86rQsJsm7Ez5JUo6gvtIR3AM5rXv8nJY0rkNTpxWUMaDOcVjSndYc6AFWFQ2c1jBg3JVMnNYw4WR0r9BpCXUTKqVOy2KSvDfhkyTlCBooHcF9kNO6z89pSeM6PHVaQRkD6hxHJN1ptYB6WpUNnNYIYNxVTJzWCOFkdL/QaQl1E6qkTstikrw/6ZPk6xXy5Hmjgn6yeKAiM1nkFZ/nggq63xpZUQuNOteZnIwECsMoyAmP4pxwOA8yBw9WZM1Bjdx9Qib/DwLjfgjSwEOgBigeTkr4+yIoDVQ1eV/EaOE8Lcx1UMYvJ0Oj9zHkuhredEjyz3GMct53TVSn/Mk/x4fTRNUIXQwS9UiaqBrhg3zJP8exSV/jZt6PRKxxxxl4/XGAz3sU8vqPgl4/s9YbC8TiMQMNPAaMezykgfGgBigeqhms9wgNVDdZ700QrveEuQ7VofXeBPP13vUG7vTxpJue+ZDpqZnwyS5T6B8HJrtaJpPdE8LJTpjrUMugSD4B6GYiZJQm5jjX/Z+8QExUcZiki0Nt18I2qWLyz/HJpBe2BVBhq2tQ2J4EJqh6JoXtKWFhE+Y61DMobE8BupkMFbbJfGGrqyxsU4RxcC1syhhQ5/g0cI6EOOspxflMKs7wjIE4p5qIs45SnNN0g67lKs5pBuJ8NulLgjehJcFzBps7zwHWbjpk7aZXZDf4ngViMcNAAzOAcT8PaeB5UAMUDw0NlniEBhqZtAZeELYGhLkOjaANvhdyMLT/k+Ql8szU6IWZFZN/jrOSbvQWQ0bvRYMi/yIwwb8EFfmXYKM3C4jFbAMNzAbGPQfSwBzY6BE8NDYweoQGmpgYvZeFRk+Y69AEMnov80avo9LovZK2m4MyBtQ5zq3I8K4WZyelOOel4gzzDMT5qok4OyvF+VoqzvCagTjnm4hTWtYXpP2bsMBAnK8nvX/zAdS/ecNg7f4GsG5bCK3dF8L9m9eBWCwy0MAiYNxvQhp4E+7fEDycadC/ITTQ1KR/85awfyPMdWgK9W/eMuvfvK3Lj+1NGm9XTP45Lk660VsKGb1mBjdpLAYm+OYmE/w7wglemOvQ3MAYvAPo5l3IHL5bEb9JQ9r7fS8tbOG9isk/xyVJL2zLoMLWwqCwLQEmqJYmhe19YWET5jq0NChs7wO6+QAqbB/ghS3UUBa2pcI4uBY2ZQyoc1xWkZnn1OKUPvPhw1Sc4UMDcX7kIc4aXZXiXK4btO2m5nIDca5I+pLgY2hJ8HHF5Fu7jwFr9wlk7T6pyG5qrgBi8amBBj4Fxr0S0sBKUAMUD60MlniEBlqbtAY+E7YGhLkOraFNzc8q0pua2iXy56nRC59XTP45fpF0o7cSMnqrDIr8KmCC/xIq8l/CRu8LIBZfGWjgK2DcqyENrIaNHsHDRQZGj9BAGxOjt0Zo9IS5Dm0go7eGN3q1lUbv67TdHJQxoM7xm4oM72pxSh92tzYVZ1hrIM51JuKUPqDn21Sc4VsDcX5nIk5pWV+f9m/CegNxbkh6/+YrqH/zvcHa/Xtg3fYDtHb/Ae7fbABisdFAAxuBcW+CNLAJ7t8QPFxq0L8hNNDWpH/zo7B/I8x1aAv1b34069/8pMuP7U0aP1VM/jluTrrRWw0ZvSsMbtLYDEzw7Uwm+C3CCV6Y69DOwBhsAXTzM2QOf66I36Qh7f3+kha28EvF5J/jr0kvbGugwtbeoLD9CkxQHUwK21ZhYRPmOnQwKGxbAd38BhW23/jCJn1ezO/COLgWNmUMqHPcVpGZ59TilD7zYXsqzrDdQJx/mIizgVKcf+oGbbup+aeBOHckfUnwLbQk2Fkx+dZuJ2Dt/oKs3V8V2U3NHUAs/jbQwN/AuHdBGtgFaoDioZPBEo/QQGeT1sBuYWtAmOvQGdrU3F0R39SULpH/SY1e+Kdi8s/x36QbvQ2Q0dtjUOT3ABP8XqjI74WN3r9ALPJUSr4GMueoHvdBlRgNZH43gjRA8dDVwOgRGuhmYvTy6rQahLkO3SCjl7cSbvSuURq9fMK5xNXo5auU/HM8uBLDu1qc0ofdHZKKMxxiIM78HuKsKX1AT4FUnKGAgTgPNZk5pWX9MN2gbfs3hxmI83D1Ocqv7If6NwUN1u4FgXXbEdDa/YhKbP/mcCAWRxpo4Ehg3IUgDRSC+zcED90N+jeEBnqY9G8KC/s3wlyHHlD/prBZ/+YoXX5sb9I4ysDoHZ10o7cZMno9DW7SOBqY4HuZTPBFhBO8MNehl4ExKALopihkDotWwm/SkPZ+j0kLWzjGoLAVS3ph2wIVtt4Gha0YMEH1MSlsxYWFTZjr0MegsBUHdFMCKmwl8MJWU/q8mJLpvlEoaVDYjjXZ1JQ+86FUKs5QykCcpU3EWUspzjLppmYoYyDOsklfEvwGLQnKGWxolQOsXXnI2pWHNzXLArGIDDQQAeOuAGmgArypSfDQ12CJR2ign0lroKKwNSDMdegHbWpWxDc1tUvkSqnRC5UMjN5xSTd62yGjd7xBkT8emOArQ0W+Mmz0jgNiUcVAA1WAcZ8AaeAE2OgRPPQ3MHqEBgaYGL0ThUZPmOswADJ6J+5jKPO9bp7//lHnTK3XTYck/xxPUs77ronqlD/551g1TVSN0MUgUSeniaoRPsiX/HM8Jenrvcxa7xTA71Qz8PrVgHFXh7x+ddDr/xOv+TNrPnUsahhooAaggQBpIMDrPYKHgQbrPUIDg0zWezWF6z1hrsMgaL1X03y9d72BO62VdNPzL1TwBid8ssuYvVrAZDfEZLKrLZzshLkOQwyKZG1AN3Ugo1Rn37m6TvLrDSb5ukmf5PdAk/xQg0m+LgDrMJNJvp5wkhfmOgwzmOTrAbqpD03y9c0n+Y0Gk3yDtM9cI/xokKiGaaJqhM0GiWrksCHQCCgDpxo0g08Fxn0aVP4yv3soJNJ8EWOdGxtooDGggSaQBpqAGqB4GG5ggwkNjDBZPp0uXD4Jcx1GQBsCp+9jyNX0/Gpges5wMD1nANCfaVDwzgTG3RQqeE3BHfD8EWN6zjLQwFmABs6GNHA2fBUEwcNIA9NDaGCUielpJjQ9wlyHUZDpaWZ+FcQ2A9PT3MH0NAegP8eg4J0DjPtcqOCdCxa8wyLG9LQw0EALQAMtIQ20hE0PwcNoA9NDaGCMiek5T2h6hLkOYyDTc5656dlhYHrOdzA95wPQtzIoeK2AcbeGCl5rsOAdETGm5wIDDVwAaOBCSAMXwqaH4GGsgekhNDDOxPRcJDQ9wlyHcZDpucjc9OwyMD1tHExPGwD6iw0K3sXAuC+BCt4lYMErHDGm51IDDVwKaKAtpIG2sOkheBhvYHoIDUwwMT2XCU2PMNdhAmR6LjM3PXsMTM/lDqbncgD6KwwK3hXAuNtBBa8dWPCKRIzpudJAA1cCGrgK0sBVsOkheJhoYHoIDUwyMT3thaZHmOswCTI97c1NzyEFkn+OHdLb7GqEAgaJuroSM0nlySs90VBD+RKAjsJBu4qzY6Xkn2MnD3HWuEYpzs66QddyFWdnA3F2cVjXdwF87TUGa7prgHF3hdZ0XcE1XcmIWdd3M9BAN0AD10IauBZe1xM8TDZY1xMamGKyrr9OuK4X5jpMgdb11+VgaP8nyUavuy4/tV2NXncDo9cj6Ubv2Igp8lMNHuDXA5jgp5lM8NcLJ3hhrsM0A2NwPaCbGyBzeEOOc93/ERe2rsrC1jMtbKGnQWHrlfTCVipiCtt0g8LWC5igZpgUthuFhU2Y6zDDoLDdCOjmJqiw3YQXtiB9eXTvdN8o9DYobH1MNjXrKMV5cyrOcLOBOG85EDc1++oGXd9VnH0NxNnPYVOzH2BxbjXY0LoVGPdtkLXL/C71xN3yEbMs7G+ggf6ABgZAGhhQiX3qMsHDTIMlHqGBWSatgduFrQFhrsMsaFPz9hwM7f8keYl8R3r1WrjDwOgNdDB6A4GJbpBBkR8EjPtOqMjfCV65VDFijN5dBhq4C9DAYEgDg+Gr1wgeZhsYPUIDc0yM3hCh0RPmOsyBjN4Q/Oo1bbv57tTohbsNjN49DkbvHmCiG2pQ5IcC4x4GFflhYJE/PmKM3r0GGrgX0MB9kAbug40ewcNcA6NHaGCeidEbLjR6wlyHeZDRG84bvbpKozciNXr/T3vvAS/T1b2Pj6v33tvoLcrWSzB69JbovbeQqEEiQZCQED0IgiAIgiAIEqL33nuNHkQN/ud473xz3nmvJPexnvnN+pv7+eyPa+48Zz1r7fWctfY+Z+aYYQoavc80NHqfEU50nyso8p8T/B5OKvLDiUU+q5vT6I1QkAMjCDnwBSkHviA3egw9rFTQ6DFyYJWSRm+kYKMnONdmFanRG8lv9ApJNnqjgo2eGaWg0RutodEbTTjRjVFQ5McQ/B5LKvJjiUU+h5vT6I1TkAPjCDkwnpQD48mNHkMPaxQ0eowcWKuk0ftSsNETnGuzltTofclv9ApLNnoTgo2emaCg0ZuoodGbSDjRTVJQ5CcR/P6KVOS/Ihb5XG5OozdZQQ5MJuTAFFIOTCE3egw9rFPQ6DFyYL2SRm+qYKMnONdmPanRm8pv9FpKNnpfC55LtDZ6Xyto9KZl4OhdOjlbSSbn9GBymukKknOGkuQU/b6Cb4LJab5RkJwzlSSnaFmfFdy/MbMUJOdsDfs3swnrl28VrN2/Jfg9h7R2n0Ncu+d3k75jUUEOzCXkwDxSDswj798w9LBRwf4NIwc2Kdm/+U5w/0Zwrs0m0v7Nd8r2b+bLzY/aL1Ker6DRWxDojV4BN6fIb1XwRcoLCCf4bUpO8AsFT/CCc222KWgMFhLy5ntSc/i9g6v3J5D3fhcFC5tZpKCwLQ70wlbQzSlsOxUUtsWEE9QuJYVtiWBhE5xrs0tBYVtCyJsfSIXtB3phy5tXsrAtDV43MksVFLZlOq4b5c0nmZzLg8lplitIzh9fxYuaK+ScVvuEgBUKknOlhouaKxkfs1ZwQWsVwe+fSK2dfVzWt8MXc3OWhasV5MBqxifuSDmwJgP3CQEMPexVsMRj5MA+JVsDawW3BgTn2uwjXdRcm4H9hADZJfLPwbvXzM8KGr1fNDR6vzA+daSgyK9jfOqIVOTXE+9cKuHmNHq/KsiBXwk5sIGUAxvId68x9HBQQaPHyIFDShq9jYKNnuBcm0OkRm8j/e412e3mTcFGz2xS0Oht1tDobSac6LYoKPJbCH5vJRX5rcQiX8rNafS2KciBbYQc2E7Kge3kRo+hh6MKGj1GDhxT0ujtEGz0BOfaHCM1ejv4jZ7oMz93Bhs9s1NBo7dLQ6O3i3Ci262gyO8m+L2HVOT3EIt8WTen0durIAf2Mi7bkXJgH7nRY+jhpIJGj5EDp5Q0evsFGz3BuTanSI3efn6jJ/rMzwPBRs8cUNDoHdTQ6B1kXLpQUOQPEfw+TCryh4lFvoKb0+gdUZADRxi7WKQcOEpu9Bh6OKug0WPkwDkljd4xwUZPcK7NOVKjd4zf6Ik+8/N4sNEzxxU0eic0NHonGCt5BUX+JGMlTyryp4hFvpKb0+idVpADpwk5cIaUA2fIjR5DDxcVNHqMHLikpNE7K9joCc61uURq9M7yG73mko3eOcFzidZG75yCRu98Bo7epZOzhWRyXggmp7mgIDkvKklO0e8ruBRMTnNJQXJeVpKcomX9t+D+jflNQXJe0bB/c4WwfrmqYO1+leD3NdLa/Rpx7V7Dzdm/ua4gB64TcuAGKQdukPdvGHq4omD/hpEDV5Xs39wU3L8RnGtzlbR/c1PZ/s0tuflR+0XKtxQ0er8HeqNX080p8jcUfJHy74QT/E0lJ/jbgid4wbk2NxU0BrcJeXOH1BzecXD1/gTy3u/dYGEzdxUUtj8CvbDVcnMK220Fhe0PxglKSWG7J1jYBOfa3FFQ2O4R8uY+qbDdpxe2fHkkC9uD4HUj80BBYXuo47pRPiOZnI+CyWkeKUjOx6/iRc0/5ZxW+4SAPxUk5xMNFzWfEFqcpwouaD0l+P2M1NrZx2V9O3xdN2dZ6MoY+Dlgc5T2O0JGTg7Yx2U+IYChh3sKlniMHLivZGsgRC5XjeBcm/uki5ohGdlPCJBdIkeUmx+1d69FzBj4HCNlVNDoRSKc6CIrKPKRCX5HIRV5+7huUpI2cHMavagKciAqIQeikXIgGjEHWHp4pKDRY+TAYyWNXnTBRk9wrs1jUqMX3aEh708gbzfHCDZ6JoaCRi+mhkYvJuFEF0tBkY9F8Ds2qcjHJhb5xm5OoxdHQQ7EIeRAXFIOxCU3egw9PFXQ6DFy4JmSRi+eYKMnONfmGanRi8dv9ESf+Rk/2OiZ+AoavQQaGr0EhBNdQgVFPiHB70SkIp+IWOSbuTmNXmIFOZCYkANJSDmQhNzoMfQQUvLVzIGIJeWLk8sl3+glFWz0BOfaSMbPqaGk/EZP9JmfyYKNnkmmoNFLrqHRS0440aVQUORTEPxOSSryKYlFvqWb0+ilUpADqQg5kJqUA6nJjR5DD1EUNHqMHIiqpNFLI9joCc61iUpq9NLwGz3RZ36mDTZ6Jq2CRs+todFzE0506RQU+XQEv9OTinx6YpFv4+Y0ehkU5EAGQg5kJOVARnKjx9BDDAWNHiMHYipp9DIJNnqCc21ikhq9TPxGr7Bko5dZ8FyitdHLrKDRy5KRo3fp5CwimZxZg8lpsipIzmxKklP0+wqyB5PTZFeQnDmUJKdoWX8tuH9jXlOQnDk17N/kJKxfcilYu+ci+J2btHbPTVy7d3Jz9m/yKMiBPIQcMKQcMOT9G4Ye4ijYv2HkQFwl+zd5BfdvBOfaxCXt3+RVtn+TT25+1H6Rcj4FjV7+QG/03nZzinyCAD/B2w1ufsZHDpSc4AsInuAF59okVNAYFCDkTUFSc1jQwdX7E8h7v4WChc0UUlDYCgd6Yevs5hS2JAoKW2HCCSqpksJWRLCwCc61SaqgsBUh5E1RUmEryi9srSULW7HgdSNTTEFhe13JdaM2kslZPJicpriC5CzxKl7ULCnntNonBJRUkJweDRc1PYQWp5SCC1qlCH6XJrV29nFZ3w7fzc1ZFpZRkANlCDlQlpQDZTNynxDA0EMKBUs8Rg6kVLI1UE5wa0Bwrk1K0kXNchnpTwgQXSKXD969ZsoraPQqaGj0KhBOdG8oKPJvEPyuSCryFYl3LvV0cxq9SgpyoBIhByqTcqAy+e41hh7SKGj0GDmQVkmjV0Ww0ROca5OW1OhV4d+9JrrdXDXY6JmqChq9ahoavWqEE111BUW+OsHvGqQiX4NY5Hu7OY1eTQU5UJOQA7VIOVCL3Ogx9JBeQaPHyIEMShq92oKNnuBcmwykRq82vdHLL/rMzzeDjZ55U0Gj95aGRu8twomujoIiX4fgd11Ska9LLPLvuzmNXj0FOVCPkAP1STlQn9zoMfSQWUGjx8iBLEoavQaCjZ7gXJsspEavAb/RE33mZ8Ngo2caKmj0Gmlo9BoRTnSNFRT5xgS/m5CKfBNikf/QzWn0mirIgaaEHGhGyoFm5EaPoYfsCho9Rg7kUNLoNRds9ATn2uQgNXrN+Y2e6DM/WwQbPdNCQaPXUkOj15JwomuloMi3IvjdmlTkWxOL/AA3p9FroyAH2hByoC0pB9qSGz2GHnIpaPQYOZBbSaPXTrDRE5xrk5vU6LXjN3oFJRu99sGPhJv2Chq9Dhk5epdOzkKSydkxmJymo4Lk7KQkOUW/r+DtYHKatxUkZ2clySla1rsE929MFwXJ+Y6G/Zt3COuXdxWs3d8l+N2VtHbvSly7f+Lm7N90U5AD3Qg50J2UA93J+zcMPeRVsH/DyIF8SvZvegju3wjOtclH2r/poWz/pqfc/Kj9IuWeChq9XoHe6H3q5hT5ggq+SLkX4QRfSMkJ/j3BE7zgXJtCChqD9wh505vUHPZ2cPX+BPLeb59gYTN9FBS2voFe2Ia6OYWtqILC1pdwgiqmpLC9L1jYBOfaFFNQ2N4n5M0HpML2Ab+wtZQsbP2C141MPwWF7UMl141aSSbnR8HkNB8pSM7+r+JFzQFyTqt9QsAABck5UMNFzYGEFudjBRe0Pib4PYjU2tnHZX07/Ag3Z1k4WEEODCbkwBBSDgzJyH1CAEMPJRQs8Rg5UFLJ1sAnglsDgnNtSpIuan6Skf2EANkl8qfBu9fMpwoavaEaGr2hhBPdMAVFfhjB789IRf4z4p1Lo9ycRu9zBTnwOSEHhpNyYDj57jWGHkoraPQYOVBGSaM3QrDRE5xrU4bU6I3g370mut38RbDRM18oaPRGamj0RhJOdKMUFPlRBL9Hk4r8aGKRH+vmNHpjFOTAGEIOjCXlwFhyo8fQQ3kFjR4jByooafTGCTZ6gnNtKpAavXH8Rk/0mZ/jg42eGa+g0ftSQ6P3JeFEN0FBkZ9A8HsiqchPJBb5L92cRm+SghyYRMiBr0g58BW50WPooZKCRo+RA5WVNHqTBRs9wbk2lUmN3mR+oyf6zM8pwUbPTFHQ6E3V0OhNJZzovlZQ5L8m+D2NVOSnEYv8JDen0ZuuIAemE3JgBikHZpAbPYYeqilo9Bg5UF1Jo/eNYKMnONemOqnR+4be6BUQfebnzGCjZ2YqaPRmaWj0ZhFOdLMVFPnZBL+/JRX5b4lFfoqb0+jNUZADcwg5MJeUA3PJjR5DD7UUNHqMHKitpNGbJ9joCc61qU1q9ObxG738ko3ed8GPhJvvFDR68zNy9C6dnAUkk3NBMDnNAgXJuVBJcop+X8H3weQ03ytIzkVKklO0rC8O7t+YxQqSc4mG/ZslhPXLDwrW7j8Q/F5KWrsvJa7dv3Fz9m+WKciBZYQcWE7KgeXk/RuGHuoo2L9h5EBdJfs3Pwru3wjOtalL2r/5Udn+zQq5+VH7RcorFDR6KwO90Zvp5hT5Bgq+SHkl4QTfUMkJfpXgCV5wrk1DBY3BKkLe/ERqDn9ycPX+BPLe7+pgYTOrFRS2NYFe2Ga5OYWtiYLCtoZwgmqqpLCtFSxsgnNtmioobGsJefMzqbD9zC9szSUL2y/B60bmFwWFbZ2S60YtJJNzfTA5zXoFyfnrq3hRc4Oc02qfELBBQXJu1HBRcyOhxdmk4ILWJoLfm0mtnX1c1rfDz3NzloVbFOTAFkIObCXlwNaM3CcEMPTQQsESj5EDLZVsDWwT3BoQnGvTknRRc1tG9hMCZJfI24N3r5ntChq9HRoavR2EE91OBUV+J8HvXaQiv4t459ICN6fR260gB3YTcmAPKQf2kO9eY+ihjYJGj5EDbZU0ensFGz3BuTZtSY3eXv7da6LbzfuCjZ7Zp6DR26+h0dtPONEdUFDkDxD8Pkgq8geJRX6Rm9PoHVKQA4cIOXCYlAOHyY0eQw8dFDR6jBzoqKTROyLY6AnOtelIavSO8Bs90Wd+Hg02euaogkbvmIZG7xjhRHdcQZE/TvD7BKnInyAW+R/cnEbvpIIcOEnIgVOkHDhFbvQYeuisoNFj5EAXJY3eacFGT3CuTRdSo3ea3+iJPvPzTLDRM2cUNHpnNTR6ZwknunMKivw5gt/nSUX+PLHIL3dzGr0LCnLgAiEHLpJy4CK50WPooauCRo+RA92UNHqXBBs9wbk23UiN3iV+oyf6zM/LwUbPXFbQ6P2modH7jXCiu6KgyF8h+H2VVOSvEov8Sjen0bumIAeuEXLgOikHrpMbPYYeeipo9Bg50EtJo3dDsNETnGvTi9To3aA3egXzSjZ6N4MfCTc3FTR6tzJy9C6dnPkkk/P3YHKa3xUk520lySn6fQV3gslp7ihIzrtKklO0rP8R3L8xfyhIznsa9m/uEdYv9xWs3e8T/H5AWrs/IK7df3Zz9m8eKsiBh4QceETKgUfk/RuGHvoo2L9h5EBfJfs3jwX3bwTn2vQl7d88VrZ/86fc/Kj9IuU/FTR6TwK90fvFzSny/RR8kfITwgn+QyUn+KeCJ3jBuTYfKmgMnhLy5hmpOXzm4Or9CeS9X1emYGETjAGNY4RMAV7Y1rk5hW2AgsJmT4603wOVFLYQucQ0gnNtBioobCGEvImYiVPYImaiF7bCkoUtkmActBa2SAoKW+RMnPOcdHIWkUzOKMHkNFEUJGdUJckputcVTc5ptU8IiKYgOaMH+pLAbo2jE1qcGJkCv7WLQfA7Jqm1s4/L+nb4TW7OsjCWghyIRciB2KQciJ2J+4QAhh4GK1jiMXJgiJKtgTiCWwOCc22GkC5qxsnEfkKA7BI5rtz8qL17La6CRi+ehkYvHuFEF19BkY9P8DsBqcjbx3WTknSrm9PoJVSQAwkJOZCIlAOJiDnA0sNQBY0eIweGKWn0Egs2eoJzbYaRGr3EDg15fwJ5uzlJsNEzSRQ0ekk1NHpJCSe6ZAqKfDKC38lJRT45scjvcHMavRQKciAFIQdSknIgJbnRY+hhuIJGj5EDI5Q0eqkEGz3BuTYjSI1eKn6jJ/rMz9TBRs+kVtDopdHQ6KUhnOjSKijyaQl+u0lF3k0s8rvdnEYvnYIcSEfIgfSkHEhPbvQYehiloNFj5MBoJY1eBsFGT3CuzWhSo5eB3+iJPvMzY7DRMxkVNHqZNDR6mQgnuswKinxmgt9ZSEU+C7HI73NzGr2sCnIgKyEHspFyIBu50WPoYZyCRo+RA+OVNHrZBRs9wbk240mNXnZ+oyf6zM8cwUbP5FDQ6L2modF7jXCiy6mgyOck+J2LVORzEYv8QTen0cutIAdyE3IgDykH8pAbPYYeJipo9Bg5MElJo2cEGz3BuTaTSI2eoTd6hfJINnp5gx8JN3kVNHr5MnH0Lp2cRjI58weT0+RXkJwFlCSn6PcVFAwmpymoIDkLKUlO0bJeOLh/YworSM4iGvZvihDWL0UVrN2LEvwuRlq7FyOu3Y+7Ofs3ryvIgdcJOVCclAPFyfs3DD1MUbB/w8iBqUr2b0oI7t8IzrWZStq/KaFs/6ak3Pyo/SLlkgoaPU+gN3on3JwiP13BFyl7CCf4GUpO8KUET/CCc21mKGgMShHypjSpOSzt4Or9CeS93zLBwmbKKChsZQO9sJ10cwrbLAWFrSzhBDVbSWErJ1jYBOfazFZQ2MoR8qY8qbCV5xe2gpKFrULwupGpoKCwvaHkulEhyeSsGExOU1FBclZ6FS9qVpZzWu0TAiorSM4qGi5qViG0OFUVXNCqSvC7Gqm1s4/L+nb4c27OsrC6ghyoTsiBGqQcqJGJ+4QAhh7mKljiMXJgnpKtgZqCWwOCc23mkS5q1szEfkKA7BK5VvDuNVNLQaNXW0OjV5twontTQZF/k+D3W6Qi/xbxzqWLbk6jV0dBDtQh5EBdUg7UJd+9xtDDAgWNHiMHFipp9OoJNnqCc20Wkhq9evy710S3m+sHGz1TX0Gj10BDo9eAcKJrqKDINyT43YhU5BsRi/xvbk6j11hBDjQm5EATUg40ITd6DD0sVtDoMXJgiZJGr6lgoyc412YJqdFrym/0RJ/52SzY6JlmChq95hoaveaEE10LBUW+BcHvlqQi35JY5K+5OY1eKwU50IqQA61JOdCa3Ogx9LBMQaPHyIHlShq9NoKNnuBcm+WkRq8Nv9ETfeZn22CjZ9oqaPTaaWj02hFOdO0VFPn2BL87kIp8B2KRv+nmNHodFeRAR0IOdCLlQCdyo8fQw0oFjR4jB1YpafTeFmz0BOfarCI1em/zGz3RZ352DjZ6prOCRq+LhkavC+FE946CIv8Owe93SUX+XWKRv+3mNHpdFeRAV0IOdCPlQDdyo8fQwxoFjR4jB9YqafS6CzZ6gnNt1pIave78Rq+1ZKPXI/iRcNNDQaPXMxNH79LJ2UYyOXsFk9P0UpCc7+lIzsKi31fQO5icpreC5Oyj5MwpWtb7BvdvTF8Fyfm+hv2b9wnrlw8UrN0/IPjdj7R270dcuz9wc/ZvPlSQAx8ScuAjUg58RN6/YehhnYL9G0YOrFeyf9NfcP9GcK7NetL+TX9l+zcD5OZH7RcpD1DQ6A0M9EbvoZtT5Dcq+CLlgYQT/CYlJ/iPBU/wgnNtNiloDD4m5M0gUnM4yMHV+xPIe7+Dg4XNDFZQ2IYEemF75OYUtq0KCtsQwglqm5LC9olgYROca7NNQWH7hJA3n5IK26f0wlY4v2RhGxq8bmSGKihsw5Rc1CwgmZyfBZPTfKYgOT9/FS9qDpdzWu0TAoYrSM4RGi5qjiC0OF8ouKD1BcHvkaTWzj4u69vhn7k5y8JRCnJgFCEHRpNyYHQm7hMCGHrYqWCJx8iBXUq2BsYIbg0IzrXZRbqoOSYT+wkBskvkscG718xYBY3eOA2N3jjCiW68giI/nuD3l6Qi/yXxzqWQdJxGb4KCHJhAyIGJpByYSL57jaGHvQoaPUYO7FPS6E0SbPQE59rsIzV6k+h3r8luN38VbPTMVwoavckaGr3JhBPdFAVFfgrB76mkIj+VWOQjkxq9rxXkwNeEHJhGyoFp5EaPoYeDCho9Rg4cUtLoTRds9ATn2hwiNXrT+Y2e6DM/ZwQbPTNDQaP3jYZG7xvCiW6mgiI/k+D3LFKRn0Us8tFIjd5sBTkwm5AD35Jy4Ftyo8fQw1EFjR4jB44pafTmCDZ6gnNtjpEavTn8Rk/0mZ9zg42emaug0ZunodGbRzjRfaegyH9H8Hs+qcjPJxb5mKRGb4GCHFhAyIGFpBxYSG70GHo4qaDRY+TAKSWN3veCjZ7gXJtTpEbve36jJ/rMz0XBRs8sUtDoLdbQ6C0mnOiWKCjySwh+/0Aq8j8Qi3wcUqO3VEEOLCXkwDJSDiwjN3oMPZxV0OgxcuCckkZvuWCjJzjX5hyp0VvOb/RaSjZ6PwY/Em5+VNDorcjE0bt0craSTM6VweQ0KxUk5yolySn6fQU/BZPT/KQgOVcrSU7Rsr4muH9j1ihIzrUa9m/WEtYvPytYu/9M8PsX0tr9F+LaPRFp/2adghxYR8iB9aQcWE/ev2Ho4aKC/RtGDlxSsn/zq+D+jeBcm0uk/Ztfle3fbJCbH7VfpLxBQaO3MdAbvcSkIn9FwRcpbySc4K8qOcFvEjzBC861uaqgMdhEyJvNpOZws4Or9yeQ9363BAub2aKgsG0N9MKWhFTYbigobFsJJ6ibSgrbNsHCJjjX5qaCwraNkDfbSYVtO72wFckrWdh2BK8bmR0KCttOHdeNiuSTTM5dweQ0uxQk5+5X8aLmHjmn1T4hYI+C5Nyr4aLmXsYXJyq4oLWP4Pd+UmtnH5f17fApScvCAwpy4ADjO7RIOXAwE/cJAQw93FawxGPkwB0lWwOHBLcGBOfa3CFd1DyUif2EANkl8uHg3WvmsIJG74iGRu8I43uEFBT5o4zvESIV+WPEO5fSkBq94wpy4DghB06QcuAE+e41hh7uKWj0GDlwX0mjd1Kw0ROca3Of1OidpN+9JrvdfCrY6JlTChq90xoavdOEE90ZBUX+DONj9aQif5ZY5NORGr1zCnLgHCEHzpNy4Dy50WPo4ZGCRo+RA4+VNHoXBBs9wbk2j0mN3gV+oyf6zM+LwUbPXFTQ6F3S0OhdIpzoLiso8pcJfv9GKvK/EYt8RtZHVRTkwBXGR1VIOXCV3Ogx9PBUQaPHyIFnShq9a4KNnuBcm2ekRu8av9ETfebn9WCjZ64raPRuaGj0bjA+vqKgyN8k+H2LVORvEYt8FlKj97uCHPidcV8aKQdukxs9hh5CPK9mDkT0yBcnl0u+0bsj2OgJzrWRjJ9TQ3f4jZ7oMz/vBhs9c1dBo/eHhkbvD8a9OQqK/D3GvTmkIn+fWOSzkxq9Bwpy4AEhBx6ScuAhudFj6CGK59XMgage+eLkcsk3eo8EGz3BuTaS8XNq6BG/0Wsu2eg9Dn4k3DxW0Oj9mYmjd+nkbCGZnE+CyWmeKEjOp0qSU/T7Cp4Fk9M8U5Ccrsw6klO0rEeQc1rt/k2EzIHPMUSaI2P/xiYpvlEt7Dhj3RaR4HckQb+d6w77uG5SkuYh7d9EVpADkQk5EIWUA1Eyc/dvGHqI4Xk1cyCmR744uVzy+zdR5XLVCM61kYyfU0NRM+vav4kmNz9qv0g5moJGL3qgN3qGVOTjeAL7BG83uNEJJ/i4Hh0n+BiCJ3jBuTbS8WM0BjEYjQGpOYzp4Or9CeS931jBwmZiKShssQO9sOUlFbYEnsAvbLEJJ6iEHvmktH+kC1scwcImONdGOn6MwhaH0RCRCltcemFrnkeysMUTjIPWwhZPQWGLr+O6UXMjmZwJgslpEihIzoSv4kXNRHJOq31CQCIFyZlYw0XNxIQWJ4mCC1pJCH4nJbV29nFZ3w5fiLQsTKYgB5IRciA5KQeSZ+Y+IYChhySeVzMHknrki5PLJb81kEJwa0Bwro1k/JwaSpGZ/YQA2SVyyuDdayalgkYvlYZGLxXhRJdaQZFPTfA7DanIpyHeuVSU1OilVZADaQk54CblgJt89xpDDyk8r2YOpPTIFyeXS77RSyfY6AnOtZGMn1ND6eh3r8luN6cPNnomvYJGL4OGRi8D4USXUUGRz0jwOxOpyGciFvnipEYvs4IcyEzIgSykHMhCbvQYekjjeTVzIK1Hvji5XPKNXlbBRk9wro1k/Jwayspv9ESf+Zkt2OiZbAoavewaGr3shBNdDgVFPgfB79dIRf41YpH3kBq9nApyICchB3KRciAXudFj6CG959XMgQwe+eLkcsk3erkFGz3BuTaS8XNqKDe/0RN95meeYKNn8iho9IyGRs8QTnR5FRT5vAS/85GKfD5ikS9DavTyK8iB/IQcKEDKgQLkRo+hh8yeVzMHsnjki5PLJd/oFRRs9ATn2kjGz6mhgvxGT/SZn4WCjZ4ppKDRK6yh0StMONEVUVDkixD8Lkoq8kWJRb48qdErpiAHihFy4HVSDrxObvQYesjueTVzIIdHvji5XPKNXnHBRk9wro1k/JwaKs5v9ApLNnolgh8JNyUUNHolM3P0Lp2cRSST0xNMTuNRkJyllCSn6PcVlA4mpymtIDnLKElO0bJeNrh/Y8oqSM5yGvZvyhHWL+UVrN3LE/yuQFq7VyCu3auQ9m/eUJADbxByoCIpByqS928YesjleTVzILdHvji5XPL7N5UE928E59pIxs+poUrK9m8qy82P2i9Srqyg0asS6I1eVVKRz+sJ7BO83eBWYdyR5dFxgq8qeIIXnGsjHT9GY1CVkDfVSM1hNQdX708g7/1WDxY2U11BYasR6IWtGqmwFfQEfmGrQThBFfLIJ6X9I13YagoWNsG5NtLxYxS2moS8qUUqbLX4ha21ZGGrHbxuZGorKGxvKrlu1EYyOd8KJqd5S0Fy1nkVL2rWlXNa7RMC6ipIznoaLmrWI7Q49RVc0KpP8LsBqbWzj8v6dvjapGVhQwU50JCQA41IOdAoM/cJAQw9FPW8mjlQzCNfnFwu+a2BxoJbA4JzbSTj59RQ48z0JwSILpGbBO9eM00UNHpNNTR6TQknumYKinwzgt/NSUW+OfHOpTqkRq+FghxoQciBlqQcaEm+e42hhxKeVzMHSnrki5PLJd/otRJs9ATn2kjGz6mhVvy710S3m1sHGz3TWkGj10ZDo9eGcKJrq6DItyX43Y5U5NsRi3x9UqPXXkEOtCfkQAdSDnQgN3oMPZT2vJo5UMYjX5xcLvlGr6Ngoyc410Yyfk4NdaQ3ei1En/nZKdjomU4KGr23NTR6bxNOdJ0VFPnOBL+7kIp8F2KRb0Rq9N5RkAPvEHLgXVIOvEtu9Bh6KO95NXOggke+OLlc8o1eV8FGT3CujWT8nBrqym/0RJ/52S3Y6JluChq97hoave6EE10PBUW+B8HvnqQi35NY5JuSGr1eCnKgFyEH3iPlwHvkRo+hh0qeVzMHKnvki5PLJd/o9RZs9ATn2kjGz6mh3vxGT/SZn32CjZ7po6DR66uh0etLONG9r6DIv0/w+wNSkf+AWORbkBq9fgpyoB8hBz4k5cCH5EaPoYdqnlczB6p75IuTyyXf6H0k2OgJzrWRjJ9TQx/xG72Cko1e/+BHwk1/BY3egMwcvUsnZyHJ5BwYTE4zUEFyfqwkOUW/r2BQMDnNIAXJOVhJcoqW9SHB/RszREFyfqJh/+YTwvrlUwVr908Jfg8lrd2HEtfu7Uj7N8MU5MAwQg58RsqBz8j7Nww91PK8mjlQ2yNfnFwu+f2bzwX3bwTn2kjGz6mhz5Xt3wyXmx+1X6Q8XEGjNyLQG732pCJfxxPYJ3i7wR1BOMHX9eg4wX8heIIXnGsjHT9GY/AFIW9GkprDkQ6u3p9A3vsdFSxsZpSCwjY60AtbB1Jha+AJ/MI2mnCCauiRT0r7R7qwjREsbIJzbaTjxyhsYwh5M5ZU2MbyC1tLycI2LnjdyIxTUNjGK7lu1EoyOb8MJqf5UkFyTngVL2pOlHNa7RMCJipIzkkaLmpOIrQ4Xym4oPUVwe/JpNbOPi7r2+G7kJaFUxTkwBRCDkwl5cDUzNwnBDD00MTzauZAU498cXK55LcGvhbcGhCcayMZP6eGvs7MfkKA7BJ5WvDuNTNNQaM3XUOjN51wopuhoMjPIPj9DanIf0O8c6krqdGbqSAHZhJyYBYpB2aR715j6KGF59XMgZYe+eLkcsk3erMFGz3BuTaS8XNqaDb/7jXR7eZvg42e+VZBozdHQ6M3h3Cim6ugyM8l+D2PVOTnEYt8D1Kj952CHPiOkAPzSTkwn9zoMfTQxvNq5kBbj3xxcrnkG70Fgo2e4Fwbyfg5NbSA3+iJPvNzYbDRMwsVNHrfa2j0viec6BYpKPKLCH4vJhX5xcQi/x6p0VuiIAeWEHLgB1IO/EBu9Bh66OB5NXOgo0e+OLlc8o3eUsFGT3CujWT8nBpaym/0RJ/5uSzY6JllChq95RoaveWEE92PCor8jwS/V5CK/Apike9LavRWKsiBlYQcWEXKgVXkRo+hh86eVzMHunjki5PLJd/o/STY6AnOtZGMn1NDP9EbvZaiz/xcHWz0zGoFjd4aDY3eGsKJbq2CIr+W4PfPpCL/M7HI9yM1er8oyIFfCDmwjpQD68iNHkMPXT2vZg5088gXJ5dLvtFbL9joCc61kYyfU0Pr+Y1efslG79fgR8LNrwoavQ2ZOXqXTs4Cksm5MZicZqOC5NykJDlFv69gczA5zWYFyblFSXKKlvWtwf0bs1VBcm7TsH+zjbB+2a5g7b6d4PcO0tp9B3Ht/jFp/2anghzYSciBXaQc2EXev2Hooafn1cyBXh754uRyye/f7BbcvxGcayMZP6eGdivbv9kjNz9qv0h5j4JGb2+gN3qDSEW+jyewT/B2g7uXcILv69Fxgt8neIIXnGsjHT9GY7CPkDf7Sc3hfgdX708g7/0eCBY2c0BBYTsY6IVtMKmw9fMEfmE7SDhBfeiRT0r7R7qwHRIsbIJzbaTjxyhshwh5c5hU2A7zC1tzycJ2JHjdyBxRUNiOKrlu1EIyOY8Fk9McU5Ccx1/Fi5on5JxW+4SAEwqS86SGi5onCS3OKQUXtE4R/D5Nau3s47K+HX4YaVl4RkEOnCHkwFlSDpzNzH1CAEMPAzyvZg4M9MgXJ5dLfmvgnODWgOBcG8n4OTV0LjP7CQGyS+TzwbvXzHkFjd4FDY3eBcKJ7qKCIn+R4PclUpG/xLxzidToXVaQA5cJOfAbKQd+I9+9xtDDYM+rmQNDPPLFyeWSb/SuCDZ6gnNtJOPn1NAV/t1rotvNV4ONnrmqoNG7pqHRu0Y40V1XUOSvE/y+QSryN4hFfiSp0bupIAduEnLgFikHbpEbPYYehnpezRwY5pEvTi6XfKP3u2CjJzjXRjJ+Tg39zm/0RJ/5eTvY6JnbChq9OxoavTuEE91dBUX+LsHvP0hF/g9ikR9DavTuKciBe4QcuE/KgfvkRo+hh+GeVzMHRnjki5PLJd/oPRBs9ATn2kjGz6mhB/xGT/SZnw+DjZ55qKDRe6Sh0XtEONE9VlDkHxP8/pNU5P8kFvnxpEbviYIceELIgaekHHhKbvQYehjleTVzYLRHvji5XPKN3jPBRk9wro1k/JwaesZv9ESf+enKEmz0BGNA4xghi4JGzyYpfaILyRL4J/gQgt8Rs3BOUPZx3aQknUhq9CIpyIFIhByITMqByFm4jR5DD+M8r2YOjPfIFyeXS77RiyKXq0Zwro1k/JwaipKF3ei1yivZ6EUVPJdobfSiKmj0omXh6F06OfNJJmf0YHKa6AqSM4aS5BT9voKYweQ0MRUkZywlySla1mMH929MbAXJGUfD/k0cwvolroK1e1yC3/FIa/d4xLX716T9m/gKciA+IQcSkHIgAXn/hqGHiZ5XMwcmeeSLk8slv3+TUHD/RnCujWT8nBpKqGz/JpHc/Kj9IuVEChq9xIHe6E0jFfkpnsA+wdsNbmLCCX6qR8cJPongCV5wro10/BiNQRJC3iQlNYdJHVy9P4G895ssWNhMMgWFLXmgF7bppMI23RP4hS054QQ1wyOflPaPdGFLIVjYBOfaSMePUdhSEPImJamwpeQXtsKShS1V8LqRSaWgsKVWct2oiGRypgkmp0mjIDnTvooXNd1yTqt9QoBbQXKm03BRMx2hxUmv4IJWeoLfGUitnX1c1rfDzyYtCzMqyIGMhBzIRMqBTFm4Twhg6GGW59XMgdke+eLkcslvDWQW3BoQnGsjGT+nhjJnYT8hQHaJnCV495rJoqDRy6qh0ctKONFlU1DksxH8zk4q8tmJdy7NJTV6ORTkQA5CDrxGyoHXyHevMfQw1/Nq5sA8j3xxcrnkG72cgo2e4Fwbyfg5NZSTf/ea6HZzrmCjZ3IpaPRya2j0chNOdHkUFPk8BL8NqcgbYpGfT2r08irIgbyEHMhHyoF85EaPoYcFnlczBxZ65IuTyyXf6OUXbPQE59pIxs+pofz8Rk/0mZ8Fgo2eKaCg0SuoodErSDjRFVJQ5AsR/C5MKvKFiUX+e1KjV0RBDhQh5EBRUg4UJTd6DD0s9ryaObDEI1+cXC75Rq+YYKMnONdGMn5ODRXjN3qiz/x8PdjomdcVNHrFNTR6xQknuhIKinwJgt8lSUW+JLHILyE1eh4FOeAh5EApUg6UIjd6DD0s87yaObDcI1+cXC75Rq+0YKMnONdGMn5ODZXmN3qiz/wsE2z0TBkFjV5ZDY1eWcKJrpyCIl+O4Hd5UpEvTyzyy0iNXgUFOVCBkANvkHLgDXKjx9DDSs+rmQOrPPLFyeWSb/QqCjZ6gnNtJOPn1FDFMBo96ZhWEoxp9hJyx8pRghPTSsxNiLQu16p08vqsTDpHV/4X+ZXn5X6MZH454/CyMa1CimkVYn7Z/W8tQu+zxhPYdc/u90YT/F7r0VH3qgpqSHCujXT8GHqpTcibdQr0Mobg93qPDr1UE9SL4Fwb6fgx9PImIW82KtDLWILfmzw69FJdUC+Cc220xK+GYPxyCa6hcpPWUDWIPe4K0hqqJqnfr+mHNZRkftUUXEPVIsW0FjG/VpLya6sn8PcOJxNq3DaPjnN0bUENCc61kYyfU0O1HfvE0rm0iqShnQo0NI2goV0eHRp6U1BDgnNtJOPn1NCbRA3Za623CLm0N8A1ZK+1viH4vc+jQ0NvCWpIcK6NdPwYeqlDyJuDCvQyi+D3IY8OvdQR1IvgXBst8asrGL+ignsTxUh7E3WJa8efSX1vPdI6up4f9iYk86ue4N5EfVJM6/vhnowGgjEtIajZkiTNNiBqdj1Jsw1J+dXQD5qVzK+GgpptRIppI/I9GXUJ/dlRT+D3pcsIfh/z6OirGgtqSHCujXT8GHqpR8ibkwr08iPB71MeHXppIqgXwbk20vFj6KU+IW/OKtDLSoLf5zw69NJUUC+Cc220xK+ZYPxKC66hypDWUM2IPe4W0hqqOanfb+6HNZRkfjUXXEO1IMW0BTG/tpLy66In8K8n/0qocZc8Os7RLQU1JDjXRjJ+Tg21JF5P3kbS0BUFGtpM0NBVjw4NtRLUkOBcG8n4OTXUinxPRgNCLt0IcA3Za61tBL9venRoqLWghgTn2kjHj6GXhoS8ua1ALzsIft/x6NBLG0G9CM610RK/toLxqya4N1GdtDfRlrh23E3qe9uR1tHt/LA3IZlf7QT3JtqTYtreD/dkdBCMaS1BzdYmabYDUbP7SJrtSMqvjn7QrGR+dRTUbCdSTDuR78loROjP7nkCvy89QfD7vkdHX/W2oIYE59pIx4+hl8aEvHmkQC+nCH4/9ujQS2dBvQjOtZGOH0MvTQh581SBXs4Q/H7m0aGXLoJ6EZxroyV+7wjGr47gGqouaQ31DrHHPUJaQ71L6vff9cMaSjK/3hVcQ3UlxbQrMb+OkvIrpFTgX0++SqhxEUvpOEd3E9SQ4Fwbyfg5NdSNeD35GElDURRo6CZBQ1GVaKi7oIYE59pEJWmoO/mejKaEXIoR4Bqy11q3CX7HVKKhHoIaEpxrEzPA88bWSzNC3sRRoJe7BL/jKtFLT0G9CM610RK/XoLxayG4N9GStDfRi7h2PE3qe98jraPf88PehGR+vSe4N9GbFNPefrgno49gTNsIarYtSbN9iJo9R9JsX1J+9fWDZiXzq6+gZt8nxfR98j0ZzQn9WQIFfWmkDPJ+J1TSV30gqCHBuTYJAzxvbL20IOgliQK9RCHoJakSvfQT1IvgXJukCvTSkqCXFAr0Eo2gl5RK9PKhoF4E59poid9HgvHrILiG6khaQ31E7HF/I62h+pP6/f5+WENJ5ld/wTXUAFJMBxDz6wopv9IouJ6cgFDj0io5Rw8U1JDgXBvJ+Dk1NJB4PfkqSUPpFWgoCUFDGZRo6GNBDQnOtclA0tDH5HsyWhHWWpkVrLWSEzSURYmGBglqSHCuTZYAzxtbL60JesmuQC8pCXrJoUQvgwX1IjjXRkv8hgjGr6fg3kQv0t7EEOLa8Rap7/2EtI7+xA97E5L59Yng3sSnpJh+6od7MoYKxrSPoGb7kjQ7lKjZOyTNDiPl1zA/aFYyv4YJavYzUkw/I9+TkZ3Qn+UK8L50neV3VUI/nltJX/W5oIYE59rkDvC8sfWSg6CXvAHu93qSXvIp0ctwQb0IzrXJp0AvrxH0UjDA/f6VpJdCSvQyQlAvgnNttMTvC8H49RNcQ31IWkN9Qexx/yStoUaS+v2RflhDSebXSME11ChSTEcR8+sJKb+KKrienJ9Q24spOUePFtSQ4Fwbyfg5NTSaeD35KUlDJRRoqBBBQyWVaGiM5HOuBTVUkqShMeR7MooQcql0gGtoA2mtVUaJhsZKPudQUENlAjxvbL0UJeilfID7vZGklwpK9DJOUC+Cc220xG+8YPyGCu5NDCPtTdj+Rgs9rrQWI7o5fe+XpHX0l45YvCi/8rzcj5HMry8F9yYmkGI64V/E9GW5TxSM6XBBzY4gaXYicb8nipuj2Umk/Jrkh/1EyfyaJKjZr0gx/coP91FNFozpKEHNjiZpdjJRs9HdHM1OIeXXFD9oVjK/pghqdiopplP9oNmvBWM6TlCz40ma/Zqo2VhujmankfJrmh80K5lf0wQ1O50U0+l+0OwMwZhOFNTsJJJmZxA1G9fN0ew3pPz6xg+alcyvbwQ1O5MU05l+0Owsyd5FULNTSZqdRdRsAjdHs7NJ+TXbD5qVzK/Zgpr9lhTTb8mfMWhKuM5SqVRgX2fZRLrOUlnJdYI5ghoSnGtTOcDz5vn39xP0Ui3A/d5M0kt1JXqZK6gXwbk21RXopQVBL7UC3O8tJL3UVqKXeYJ6EZxroyV+3wnGb7rgGmoGaQ31HbHHTebmrKHmk/r9+X5YQ0nm13zBNdQCUkwXEPMrOSm/6gR4jbPvj+5EqO11lZyjFwpqSHCujWT8nBpaSLw/OoWbo6EGCjT0DkFDDZVo6HtBDQnOtWlI0tD35M8YdCPkUpMA19BW0lqrqRINLRLUkOBcm6YBnje2XnoQ9NIiwP3eRtJLSyV6WSyoF8G5Nlrit0QwfgsE9yYWkvYmlhA/Y5DWzel7fyCto3/ww2cMJPPrB8G9iaWkmC71w2cMlgnGdLGgZpeQNLuMuN+T3s3R7HJSfi33w36iZH4tF9Tsj6SY/uiH+6hWCMZ0maBml5M0u4Ko2UxujmZXkvJrpR80K5lfKwU1u4oU01V+0OxPkjEV1OwqkmZ/Imo2q5uj2dWk/FrtB81K5tdqQc2uIcV0jR80u1YwpmsENbuWpNm1RM3mcHM0+zMpv372g2Yl8+tnQc3+QorpL37Q7DrBmK4T1Ox6kmbXETWby83R7HpSfq33g2Yl82u9oGZ/JcX0V/JnDKYRrrO0KRXY11m2k66ztFVynWCDoIYE59q0DfC8sfUyg6CXDgHu9w6SXjoq0ctGQb0IzrXpqEAvMwl66Rzgfu8k6aWLEr1sEtSL4FwbLfHbLBi/jYJrqE2kNdRmYo+b381ZQ20h9ftb/LCGksyvLYJrqK2kmG4l5lcBUn51DfAaZ98fvZBQ27spOUdvE9SQ4Fwbyfg5NbSNeH90QTdHQz0VaGgJQUO9lGhou6CGBOfa9CJpaDv5MwbLCLnUJ8A1tIu01uqrREM7BDUkONemb4Dnja2XHwl66Rfgfu8m6eVDJXrZKagXwbk2WuK3SzB+ewX3JvaR9iZ2ET9jUMzN6Xt3k9bRu/3wGQPJ/NotuDexhxTTPX74jMFewZgeFNTsIZJm9xL3e0q4OZrdR8qvfX7YT5TMr32Cmt1Piul+P9xHdUAwpkcFNXuMpNkDRM2WcnM0e5CUXwf9oFnJ/DooqNlDpJge8oNmDwvG9KSgZk+RNHuYqNmybo5mj5Dy64gfNCuZX0cENXuUFNOjftDsMcGYnhXU7DmSZo8RNVvBzdHscVJ+HfeDZiXz67igZk+QYnrCD5o9KRjTi4KavUTS7EmiZiu5OZo9RcqvU37QrGR+nRLU7GlSTE+TP2NwnnCdZUCpwL7Osod0nWWgkusEZwQ1JDjXZmCA542tl4sEvQwOcL/3kvQyRIlezgrqRXCuzRAFerlM0MvQAPd7H0kvw5To5ZygXgTn2miJ33nB+F0RXENdJa2hzhN73BpuzhrqAqnfv+CHNZRkfl0QXENdJMX0IjG/apLya3iA1zj7/ujbhNo+Qsk5+pKghgTn2kjGz6mhS8T7o2u5ORoapUBD9wgaGq1EQ5cFNSQ412Y0SUOXyZ8xeEjIpXEBrqH9pLXWeCUa+k1QQ4JzbcYHeN7YenlM0MvEAPf7AEkvk5To5YqgXgTn2miJ31XB+N0T3Ju4T9qbuEr8jEFdN6fvvUZaR1/zw2cMJPPrmuDexHVSTK/74TMGNwRj+khQs49Jmr1B3O9p4OZo9iYpv276YT9RMr9uCmr2Fimmt/xwH9XvgjF9KqjZZyTN/k7UbGM3R7O3Sfl12w+alcyv24KavUOK6R0/aPauYExDSsodK2JJTkzvEjXbzM3R7B+k/PrDD5qVzK8/BDV7jxTTe37Q7H3BmEYR1GxUkmbvEzXb0s3R7ANSfj3wg2Yl8+uBoGYfkmL60A+afSQY0xiCmo1J0uwjombbuDmafUzKr8d+0Kxkfj0W1OyfpJj+Sf6MQZaM8vk1pVRgX2c5SLrOMlXJdYInghoSnGszNcDzxtZLNoJepge434dIepmhRC9PBfUiONdmhgK95CDoZVaA+32YpJfZSvTyTFAvgnNttMTPlVXO5ziCa6i4pDWU7a879LjSWuzk5qyhImTlxCJCVv4aSjK/nHF42ZiGkGIaQsyvt0n5NTfAa5x9f3QBQm2fp+QcHVFQQ4JzbSTj59SQ7W8EkoY6uzkaWqBAQ0UIGlqoREORBDUkONdmIUlDkYgastdarxNyaXGAa+gIaa21RImGIgtqSHCuzZIAzxtbLyUIelkW4H4fJelluRK9RBHUi+BcGy3xiyoYvxSCexMpSXsTtr+szxh0c3P63mikdXS0rPzPGEjmVzTBvYnopJhGz8r/jEEMwZimEdRsWpJmYxD3e3q6OZqNScqvmH7YT5TMr5iCmo1FimmsfxHTl+UeWzCm6QU1m4Gk2dhEzfZ2czQbh5RfcfygWcn8iiOo2bikmMb1g2bjCcY0s6Bms5A0G4+o2ffdHM3GJ+VXfD9oVjK/4gtqNgEppgn8oNmEgjHNLqjZHCTNJiRq9kM3R7OJSPmVyA+alcyvRIKaTUyKaWI/aDaJYExzCWo2N0mzSYiaHeDmaDYpKb+S+kGzkvmVVFCzyUgxTUbML/s6SwfCdZaVpQL7Ossx0nWWVUquEyQX1JDgXJtVAZ43tl46EfSyJsD9Pk7Sy1olekkhqBfBuTZrFeilM0Ev6wLc7xMkvaxXopeUgnoRnGujJX6pBOOXV3ANlY+0hkpF7HE/cXPWUKlJ/X5qP6yhJPMrteAaKg0ppmmI+fUpKb82BniNs++Pfo9Q2zcpOUenFdSQ4Fwbyfg5NZSWeH/0UDdHQ1sVaOh9goa2KdGQW1BDgnNttpE05CZ/xuBDQi7tDHANnSSttXYp0VA6QQ0JzrXZFeB5Y+ulP0EvewPc71MkvexTopf0gnoRnGujJX4ZBONXQnBvoiRpbyID8TMGI9ycvjcjaR2d0Q+fMZDMr4yCexOZSDHN5IfPGGQWjGlpQc2WIWk2M3G/Z5Sbo9kspPzK4of9RMn8yiKo2aykmGb1w31U2QRjWl5QsxVIms1G1OxYN0ez2Un5ld0PmpXMr+yCms1BimkOP2j2NcGYVhLUbGWSZl8javZLN0ezOUn5ldMPmpXMr5yCms1FimkuP2g2t2BMqwlqtjpJs7mJmp3k5mg2Dym/8vhBs5L5lUdQs4YUU+MHzeYVjGktQc3WJmk2L1GzU9wczeYj5Vc+P2hWMr/yCWo2Pymm+cmfMZhPuM5ysFRgX2c5TbrOckjJdYICghoSnGtzKMDzxtbLQoJejga432dIejmmRC8FBfUiONfmmAK9LCLo5WSA+32WpJdTSvRSSFAvgnNttMSvsGD86giuoeqS1lCFiT3uN27OGqoIqd8v4oc1lGR+FRFcQxUlxbQoMb9mkvLrbIDXOPv+6FWE2n5OyTm6mKCGBOfaSMbPqaFixPujZ7k5GrqoQENrCRq6pERDrwtqSHCuzSWShl4nf8ZgHSGXrgS4hs6R1lpXlWiouKCGBOfaXA3wvLH18itBLzcC3O/zJL3cVKKXEoJ6EZxroyV+JQXj10Jwb6IlaW+iJPEzBvPcnL7XQ1pHe/zwGQPJ/PII7k2UIsW0lB8+Y1BaMKZtBDXblqTZ0sT9ngVujmbLkPKrjB/2EyXzq4ygZsuSYlrWD/dRlROMaQdBzXYkabYcUbOL3BzNliflV3k/aFYyv8oLarYCKaYV/KDZNwRj2llQs11Imn2DqNkf3BzNViTlV0U/aFYyvyoKarYSKaaV/KDZyoIx7Sqo2W4kzVYmana5m6PZKqT8quIHzUrmVxVBzVYlxbSqHzRbTTCmPQU124uk2WpEza50czRbnZRf1f2gWcn8qi6o2RqkmNYgf8bgFuE6y+1SgX2d5QLpOssdJdcJagpqSHCuzZ0AzxtbL7cJerkX4H5fJOnlvhK91BLUi+Bcm/sK9HKXoJdHAe73JZJeHivRS21BvQjOtdESvzcF49dHcA3Vl7SGepPY4/7s5qyh3iL1+2/5YQ0lmV9vCa6h6pBiWoeYX7+Q8utpgNc4+/7op4Ta/kzJObquoIYE59pIxs+pobrE+6PXuTkaCikd+BoKySTvd8TSOjRUT1BDgnNtJOPn1FA98mcMIhNyKUqAa+gyaa0VVYmG6gtqSHCuTdQAzxtbL1EJeokR4H7/RtJLTCV6aSCoF8G5Nlri11AwfoMF9yaGkPYmGhI/Y7DJzel7G5HW0Y388BkDyfxqJLg30ZgU08Z++IxBE8GYDhXU7DCSZpsQ93u2ujmabUrKr6Z+2E+UzK+mgpptRoppMz/cR9VcMKbDBTU7gqTZ5kTN7nBzNNuClF8t/KBZyfxqIajZlqSYtvSDZlsJxnSUoGZHkzTbiqjZ3W6OZluT8qu1HzQrmV+tBTXbhhTTNn7QbFvBmI4T1Ox4kmbbEjW7z83RbDtSfrXzg2Yl86udoGbbk2La3g+a7SAY04mCmp1E0mwHomYPujma7UjKr45+0KxkfnUU1GwnUkw7kT9jkI9wnSVOgF9nuUK6zhJX2O8Xaehleb4tqCHBuTZxAzxvbL0UIOglQYD7fZWkl4RK9NJZUC+Cc20SKtBLIYJekgS439dIekmqRC9dBPUiONdGS/zeEYzfFME11FTSGuodYo973M1ZQ71L6vff9cMaSjK/3hVcQ3UlxbQrMb9OkPIrRYDXOPv+6FKE2p5SyTm6m6CGBOfaSMbPqaFuxPujT7o5GkqjQEPlCBpKq0RD3QU1JDjXJi1JQ93JnzF4g5BL6QNcQ9dJa60MSjTUQ1BDgnNtMgR43th6qUTQS+YA9/sGSS9ZlOilp6BeBOfaaIlfL8H4zRXcm5hH2pvoRfyMwTk3p+99j7SOfs8PnzGQzK/3BPcmepNi2tsPnzHoIxjTBYKaXUjSbB/ifs9FN0ezfUn51dcP+4mS+dVXULPvk2L6vh/uo/pAMKaLBTW7hKTZD4ia/c3N0Ww/Un7184NmJfOrn6BmPyTF9EM/aPYjwZguE9TscpJmPyJq9pqbo9n+pPzq7wfNSuZXf0HNDiDFdIAfNDtQMKYrBTW7iqTZgUTN3nRzNPsxKb8+9oNmJfPrY0HNDiLFdJAfNDtYMKZrBDW7lqTZwUTN3nZzNDuElF9D/KBZyfwaIqjZT0gx/YT8GYOehOss2QP8OstN0nWWHMJ+v0hDL8vzU0ENCc61yRHgeWPr5T2CXnIFuN+3SHrJrUQvQwX1IjjXJrcCvfQh6CVvgPv9O0kv+ZToZZigXgTn2miJ32eC8VsnuIZaT1pDfUbscR+4OWuoz0n9/ud+WENJ5tfngmuo4aSYDifm10NSfhUM8Bpn3x/9MaG2F1Jyjh4hqCHBuTaS8XNqaATx/uhHbo6GiirQ0CcEDRVToqEvBDUkONemGElDX5A/YzCMkEslAlxDt0lrrZJKNDRSUEOCc21KBnje2Hr5nKCX0gHu9x2SXsoo0csoQb0IzrXREr/RgvHbKbg3sYu0NzGa+BmDZ25O3zuGtI4e44fPGEjm1xjBvYmxpJiO9cNnDMYJxnSvoGb3kTQ7jrjfE5KOo9nxpPwa74f9RMn8Gi+o2S9JMf3SD/dRTRCM6UFBzR4iaXYCUbORSZqdSMqviX7QrGR+TRTU7CRSTCf5QbNfCcb0qKBmj5E0+xVRs9FImp1Myq/JftCsZH5NFtTsFFJMp/hBs1MFY3pSULOnSJqdStRsTJJmvybl19d+0Kxkfn0tqNlppJhO84NmpwvG9KygZs+RNDudqNk4JM3OIOXXDD9oVjK/Zghq9htSTL8hf8ZgBeE6S/kAv85yl3SdpYKw3y/S0MvynCmoIcG5NhUCPG9svawi6KVSgPv9B0kvlZXoZZagXgTn2lRWoJfVBL1UC3C/75H0Ul2JXmYL6kVwro2W+H0rGL+LgmuoS6Q11LfEHjcRaQ01h9Tvz/HDGkoyv+YIrqHmkmI6l5hfiUn5VSvAa5x9f/QmQm2vreQcPU9QQ4JzbSTj59TQPOL90UlIGqqjQEPbCBqqq0RD3wlqSHCuTV2Shr4jf8ZgJyGXGgS4hu6T1loNlWhovqCGBOfaNAzwvLH1spuglyYB7vcDkl6aKtHLAkG9CM610RK/hYLxuy24N3GHtDexkPgZg5Skvvd70jr6ez98xkAyv74X3JtYRIrpIj98xmCxYEzvCWr2Pkmzi4n7PWlIml1Cyq8lfthPlMyvJYKa/YEU0x/8cB/VUsGYPhLU7GOSZpcSNZuOpNllpPxa5gfNSubXMkHNLifFdLkfNPujYEyfCmr2GUmzPxI1m5Gk2RWk/FrhB81K5tcKQc2uJMV0pR80u0owpiEeuWNF9HBiuoqo2Swkzf5Eyq+f/KBZyfz6SVCzq0kxXe0Hza4RjGkUj9yxono4MV1D1Gx2kmbXkvJrrR80K5lfawU1+zMppj+TP2PwJ+E6S4sAv87ykHSdpaWw3y/S0Mvy/EVQQ4JzbVoGeN7YenlK0EubAPf7EUkvbZXoZZ2gXgTn2rRVoBdXZvm86RDgfj8m6aWjEr2sF9SL4FwbLfH7VTB+MTxyx4opd6z/6nF/Jfa4eUhrqA2kfn+DH9ZQkvm1QXANtZEU043E/DKk/Ooc4DXOvj86BqG2d1Fyjt4kqCHBuTaS8XNqaBPx/ui8JA11VaChOAQNdVOioc2CGhKca9ONpKHN5M8YxCfkUs8A19CfpLVWLyUa2iKoIcG5Nr0CPG9svSQk6KVPgPv9hKSXvkr0slVQL4JzbbTEb5tg/JJ45I6V1MOp2duInzEoROp7t5PW0dv98BkDyfzaLrg3sYMU0x1++IzBTsGYpvDIHSulhxPTncT9nqIkze4i5dcuP+wnSubXLkHN7ibFdLcf7qPaIxjTNB65Y6X1cGK6h6jZ4iTN7iXl114/aFYyv/YKanYfKab7/KDZ/YIxTe+RO1YGDyem+4ma9ZA0e4CUXwf8oFnJ/DogqNmDpJge9INmDwnGNLNH7lhZPJyYHiJqtgxJs4dJ+XXYD5qVzK/Dgpo9QorpET9o9qhgTLN75I6Vw8OJ6VGiZsuTNHuMlF/H/KBZyfw6JqjZ46SYHid/xqAk4TpLvwC/zvKUdJ3lQ2G/X6Shl+V5QlBDgnNtPgzwvLH1UoqglwEB7vczkl4GKtHLSUG9CM61GahAL2UIehkc4H670nP0MkSJXk4J6kVwro2W+J0WjF8uj9yxcssd67963NPEHrcKaQ11htTvn/HDGkoyv84IrqHOkmJ6lphfVUn5NTTAa5x9f3RVQm0fpuQcfU5QQ4JzbSTj59TQOeL90dVIGhquQEM1CRoaoURD5wU1JDjXZgRJQ+fJnzF4k5BLowJcQxFIa63RSjR0QVBDgnNtRgd43th6qUPQy7gA9zuEpJfxSvRyUVAvgnNttMTvkmD8inrkjlXMw6nZl4ifMahN6nsvk9bRl/3wGQPJ/LosuDfxGymmv/nhMwZXBGNawiN3rJIeTkyvEPd76pA0e5WUX1f9sJ8omV9XBTV7jRTTa364j+q6YExLewTvI/RwYnqdqNn6JM3eIOXXDT9oVjK/bghq9iYppjf9oNlbgjEt75E7VgUPJ6a3iJptRNLs76T8+t0PmpXMr98FNXubFNPbftDsHcGYVvLIHauyhxPTO0TNNiVp9i4pv+76QbOS+XVXULN/kGL6hx80e08wptU8cseq7uHE9B5Rsy1Imr1Pyq/7ftCsZH7dF9TsA1JMH5A/YzCAcJ1lYoBfZ4lIus4ySdjvF2noZXk+FNSQ4FybSQGeN7ZePiboZUqA+x2JpJepSvTySFAvgnNtpirQy2CCXqYHuN+RSXqZoUQvjwX1IjjXRkv8/hSMXy2P4DVxuWP9V4/7J7HHbUdaQz0h9ftP/LCGksyvJ4JrqKekmD4l5ld7Un7NCvAaZ98f/QWhts9Wco5+Jqghwbk2kvFzaugZ8f7oDiQNzVWgoTEEDc1ToiFXNrlYCs61mUfSkO0vS0P2Wms8IZcWBLiGopDWWguVaCiCoIYE59osDPC8sfUygaCXxQHud1SSXpYo0UuIoF4E59poiV9Ewfg18Qje3+Dh1Gzb32ihx5XWYhdS3xspGycWkbLxP2MgmV/OOLxsTCOTYho5G/8zBlEEY9rCI3eslh5OTG1/3aHHldZsV5Jmo5LyK2o2/n6iZH5FFdRsNFJMo/2LmL4s9+iCMW3jkTtWWw8nptGJmu1B0mwMUn7F8INmJfMrhqBmY5JiGtMPmo0lGNMOHrljdfRwYhqLqNn3SJqNTcqv2H7QrGR+xRbUbBxSTOP4QbNxBWPa2SO4NvRwYhqXqNm+JM3GI+VXPD9oVjK/4glqNj4ppvH9oNkEgjHt6pE7VjcPJ6YJiJrtR9JsQlJ+JfSDZiXzK6GgZhORYpqImF/2dZYNhOssywL8Oks00nWW5cJ+v0hDL8szsaCGBOfaLA/wvLH1somgl5UB7nd0kl5WKdFLEkG9CM61WaVAL1sIelkT4H7HIOllrRK9JBXUi+BcGy3xSyYYv54euWP1kjvWf/W4yYg97sekNVRyUr+f3A9rKMn8Si64hkpBimkKYn4NIuXXugCvcfb90fsItX29knN0SkENCc61kYyfU0MpifdHDyZpaKMCDR0iaGiTEg2lEtSQ4FybTSQNpSJ/xuAoIZe2BriGYpLWWtuUaCi1oIYE59psC/C8sfVynKCXnQHudyySXnYp0UsaQb0IzrXREr+0gvEb4JE71kAPp2anJX7GYBip73WT1tFuP3zGQDK/3IJ7E+lIMU3nh88YpBeM6WCP3LGGeDgxTU/c7xlO0mwGUn5l8MN+omR+ZRDUbEZSTDP64T6qTIIxHeoRrFkeTkwzETU7kqTZzKT8yuwHzUrmV2ZBzWYhxTSLHzSbVTCmwz1yxxrh4cQ0K1GzY0iazUbKr2x+0KxkfmUT1Gx2Ukyz+0GzOQRjOsojd6zRHk5McxA1O56k2ddI+fWaHzQrmV+vCWo2JymmOf2g2VyCMR3nEcx/DyemuYianUjSbG5SfuX2g2Yl8yu3oGbzkGKah/wZg2hZ5PNrb4BfZ4lNus6yT9jvF2noZXkaQQ0JzrXZF+B5Y+slBkEvBwPc7zgkvRxSope8gnoRnGtzSIFeYhH0cjTA/Y5L0ssxJXrJJ6gXwbk2WuKXXzB+Ez1yx5okd6z/6nHzE3vcr0lrqAKkfr+AH9ZQkvlVQHANVZAU04LE/JpGyq+TAV7j7PujkxBq+ykl5+hCghoSnGsjGT+nhgoR74+eTtLQWQUaSkHQ0DklGiosqCHBuTbnSBoqTP6MQWpCLl0McA3FI621LinRUBFBDQnOtbkU4Hlj6yUtQS9XAtzv+CS9XFWil6KCehGca6MlfsUE4zfLI3es2R5OzS5G/IzBbFLf+zppHf26Hz5jIJlfrwvuTRQnxbS4Hz5jUEIwpnM9csea5+HEtARxv2cuSbMlSflV0g/7iZL5VVJQsx5STD1+uI+qlGBMF3jkjrXQw4lpKaJm55M0W5qUX6X9oFnJ/CotqNkypJiW8YNmywrGdLFH7lhLPJyYliVq9nuSZsuR8qucHzQrmV/lBDVbnhTT8n7QbAXJ79v1yB1ruYcT0wpEzS4hafYNUn694QfNSubXG4KarUiKaUU/aLaS5Hf+euSOtcrDiWklomaXkTRbmZRflf2gWcn8qiyo2SqkmFYJI6bS+VBVjHvePEye1XCeeX1fsLkltUYkB1c7Dk9Dfy/m+uv3S5H/+r1a6Hu8uOrW/2tYo6Y1amX77+NJ5v0bdi5Y18RCCMeVmp/aJA3UJp5jNcT1TVJc3/ybuL50X0iKq31MKY5vkeL6lh/qoGBOmLcE62AdUkzr+OEcIK2BuqRY1A0jv0KEuUvGt6LcsfIwfY4g6HMlJT6HCPpcWYnPEQV9rqLE50iCPlf1k895Xu7HVBOMX6WIHJ+la1l1JXNTQ3BupsTQocEKgvGr6dKRj7WU8KwtzFOa36/W+WdzRPke9UZprt8vy8/2eSvB75ulOXkZSXje3xT0+Ve5GmYE88aw5kK6Zr0lOBfVlPQTdVw6eNZVwrOeEp71lfBsoIRnQyU8Gynh2VgJzyZKeDZVwrOZEp7NlfBsoYRnSyU8Wynh2VoJzzZKeLZVwrOdEp7tlfDsoIRnRyU8Oynh+bYSnp2V8OyihOc7Sni+q4RnVyU8uynh2V0Jzx5KePZUwrOXEp7vKeHZWwnPPkp49lXC830lPD9QwrOfEp4fKuH5kRKe/ZXwHKCE50AlPD9WwnOQEp6DlfAcooTnJ0p4fqqE51AlPIcp4fmZEp6fK+E5XAnPEUp4fqGE50glPEcp4TlaCc8xSniOVcJznBKe45Xw/FIJzwlKeE5UwnOSEp5fKeE5WQnPKUp4TlXC82slPKcp4TldCc8ZSnh+o4TnTCU8ZynhOVsJz2+V8JyjhOdcJTznKeH5nRKe85XwXKCE50IlPL9XwnOREp6LlfBcooTnD0p4LlXCc5kSnsuV8PxRCc8VSniuVMJzlRKePynhuVoJzzVKeK5VwvNnJTx/UcJznRKe65Xw/FUJzw1KeG5UwnOTEp6blfDcooTnViU8tynhuV0Jzx1KeO5UwnOXEp67lfDco4TnXiU89ynhuV8JzwNKeB5UwvOQEp6HlfA8ooTnUSU8jynheVwJzxNKeJ5UwvOUEp6nlfA8o4TnWSU8zynheV4JzwtKeF5UwvOSEp6XlfD8TQnPK0p4XlXC85oSnteV8LyhhOdNJTxvKeH5uxKet5XwvKOE510lPP9QwvOeEp73lfB8oITnQyU8Hynh+VgJzz+V8HyihOdTJTyfKeFpH1ADzwhKeIYo4RlRmKcvv5d9nuUb1jGqZ5P3OxJpfkKEeUaOIBfLutl05GQUJdqJqoRnNCU8oyvhGUMJz5hKeMZSwjO2Ep5xlPCMq4RnPCU84yvhmUAJz4RKeCZSwjOxEp5JlPBMqoRnMiU8kyvhmUIJz5RKeKZSwjO1Ep5plPBMq4SnWwnPdEp4plfCM4MSnhmV8MykhGdmJTyzKOGZVQnPbEp4ZlfCM4cSnq8p4ZlTCc9cSnjmVsIzjxKeRgnPvEp45gvwewNWpXO5aqWXP+7t0oHt93DL56pZ5I97pzQnLyMK52V+ubw0gnNt7gR43th6qU3Qyz0FeqlG0Mt9JXopIKgXwbk29xXo5U2CXh4p0Et1gl4eK9FLQUG9CM61YcUvRDh+hQTvWayVRYfPhQV9rq3E5yKCPr+ZJfBrwVuEWvBUQS14i1ALnimpBUUFa4HgXJtnAZ43tl7qEPQSUibw9VKHoJeIZXTopZigXgTn2rDiJ11TXxesqfWV9BHFBX1upKCPqEs4L0ZRcF5sTDgvRlVyXiwheF4UnGsTNcDzxtZLPYJeYijQSxOCXmIq0UtJQb0IzrWJqUAv9Ql6iaNAL00JeomrRC8eQb0IzrWJq6TvLiXYg7ZQ0neXFvS5pRKfywj63ErBWqMBoRYkUFALWhNqQUIltaCsYC0QnGuTUEHv1JCglyQK9NKGoJekSvRSTlAvgnNtkirpncoL1tT2SvqICoI+d1LQRzQinBdTKDgvvk04L6ZUcl58Q/C8KDjXJqWCPqIxQS9pFOilM0EvaZXopaKgXgTn2qRVoJcmBL2kV6CXLgS9ZFCil0qCehGca5NBSd9dWbAH7aqk764i6HM3JT5XFfS5u4K1RlNCLcisoBb0INSCLEpqQTXBWiA41yaLgt6pGUEv2RXopSdBLzmU6KW6oF4E59rkUNI71RCsqb2V9BE1BX1+X0Ef0ZxwXsyl4Lz4AeG8mFvJebGW4HlRcK5NbgV9RAuCXvIq0Es/gl7yKdFLbUG9CM61yadALy0JeimoQC8fEvRSSIle3hTUi+Bcm0JK+u63BHvQAUr67jqCPg9U4nNdQZ8/VrDWaEWoBUUV1IJBhFpQTEktqCdYCwTn2hRT0Du1JuilhAK9DCbopaQSvdQX1IvgXJuSSnqnBoI19VMlfURDQZ8/U9BHrEsnf9zSCs6LnxPOi2WUnBcbCZ4XBefalFHQR6wn6KW8Ar0MJ+ilghK9NBbUi+BcmwoK9PIrQS+VFOhlBEEvlZXopYmgXgTn2lRW0nc3FexBRynpu5sJ+jxaic/NBX0eo2CtsYFQC6opqAVjCbWgupJa0EKwFgjOtamuoHfaSNBLLQV6GUfQS20lemkpqBfBuTa1lfROrQRr6gQlfURrQZ+/UuJzG0Gfpyrxua2gz9OV+NxO0OeZSnxuL+jztwrWBZsIfU4dBX3OHEKfU1dJn9NBsM8RnGtTV8G6YDNBLw0U6GUuQS8Nleilo6BeBOfaNFSgly0EvTRRoJd5BL00VaKXToJ6EZxr01TJOvptwR50gZK+u7OgzwuV+NxF0OfvFaw1thJqQQsFtWARoRa0VFIL3hGsBYJzbVoq6J22EfTSRoFeFhP00laJXt4V1IvgXJu2SnqnroI1damSPqKboM8/KvG5u6DPq5T43EPQ5zVKfO4p6PMvSnzuJejzrwrWBdsJfU4HBX3OBkKf01FJn/OeYJ8jONemo4J1wQ6CXjor0MtGgl66KNFLb0G9CM616aJALzsJeumqQC+bCHrppkQvfQT1IjjXppuSdXRfwR50q5K++31Bn7cp8fkDQZ+3K1hr7CLUgp4KasEOQi3opaQW9BOsBYJzbXop6J12E/TSR4FedhL00leJXj4U1IvgXJu+SnqnjwRr6h4lfUR/QZ/3K/F5gKDPh5T4PFDQ56NKfP5Y0OcTSnweJOjzaQXrgj2EPqefgj7nDKHP+VBJnzNYsM8RnGvzoYJ1wV6CXgYo0MtZgl4GKtHLEEG9CM61GahAL/sIehmsQC/nCHoZokQvnwjqRXCuzRAl6+hPBXvQi0r67qGCPl9S4vMwQZ8vK1hr7CfUgqEKasFvhFowTEkt+EywFgjOtRmmoHc6QNDLcAV6uULQywglevlcUC+Cc21GKOmdhgvW1OtK+ogRgj7fUuLzF4I+31Hi80hBn+8p8XmUoM8Plfg8WtDnPxWsCw4S+pxRCvqcJ4Q+Z7SSPmeMYJ8jONdmtIJ1wSGCXsYp0MtTgl7GK9HLWEG9CM61Ga9AL4cJepmoQC/PCHqZpEQv4wT1IjjXZpKSdfR4wR40JKsOn78U9DmiEp8nCPocKWvg14IjhFowRUEtiJxV/rhTldSCiYK1QHCuzVQFvdNRgl6mK9BLFIJeZijRyyRBvQjOtZmhpHf6SrCmRlfSR0wW9DmWEp+nCPocV4nPUwV9TqDE568FfU6sxOdpgj4nU7AuOEboc2Yp6HOSE/qc2Ur6nOmCfY7gXJvZCtYFxwl6matALykIepmnRC8zBPUiONdmngK9nCDoZYECvaQk6GWhEr18I6gXwbk2C5Wso2cK9qBplPTdswR9TqvE59mCPrsVrDVOEmrBYgW1IB2hFixRUgu+FawFgnNtlijonU4R9LJMgV7SE/SyXIle5gjqRXCuzXIlvdNcwZqaSUkfMU/Q56xKfP5O0OccSnyeL+hzLiU+LxD02SjxeaGgz/kVrAtOE/qclQr6nAKEPmeVkj7ne8E+R3CuzSoF64IzBL2sUaCXggS9rFWil0WCehGca7NWgV7OEvSyToFeChH0sl6JXhYL6kVwrs16JevoJYI9aFElffcPgj4XU+LzUkGfX1ew1jhHqAUbFdSC4oRasElJLVgmWAsE59psUtA7nSfoZasCvZQg6GWbEr0sF9SL4FybbUp6px8Fa2opJX3ECkGfyyrxeaWgzxWU+LxK0OdKSnz+SdDnqkp8Xi3ocw0F64ILhD5np4I+pyahz9mlpM9ZI9jnCM612aVgXXCRoJe9CvRSi6CXfUr0slZQL4JzbfYp0Mslgl4OKtBLbYJeDinRy8+CehGca3NIyTr6F8EetI6SvnudoM91lfi8XtDnegrWGpcJteCoglpQn1ALjimpBb8K1gLBuTbHFPROvxH0clKBXhoQ9HJKiV42COpFcK7NKSW900bBmtpYSR+xSdDnZkp83izoc0slPm8R9LmNEp+3CvrcXonP2wR97qRgXXCF0OecVdDnvE3oc84p6XO2C/Y5gnNtzilYF1wl6OWiAr10JujlkhK97BDUi+Bcm0sK9HKNoJcrCvTShaCXq0r0slNQL4Jzba4qWUfvEuxBuyrpu3cL+txNic97BH3urmCtcZ1QC24oqAU9CLXgppJasFewFgjOtbmpoHe6QdDLbQV66UnQyx0letknqBfBuTZ3lPRO+wVram8lfcQBQZ/fV+LzQUGfP1Ti8yFBnwco8fmwoM+DlPh8RNDnTxSsC24S+px7CvqcTwl9zn0lfc5RwT5HcK7NfQXrglsEvTxSoJehBL08VqKXY4J6EZxr81iBXn4n6OWpAr0MI+jlmRK9HBfUi+Bcm2dK1tEnBHvQ4Ur67pOCPo9Q4vMpQZ+/ULDWuE2oBSFlA78WjCTUgohlddSC04K1QHCuTcQAzxtbL3cIeomiQC+jCHqJqkQvZwT1IjjXhhU/6Zp6VrCmjlXSR5wT9PlLJT6fF/R5khKfLwj6PEWJzxcFfZ6mxOdLgj5/o2BdcJfQ58RQ0OfMJPQ5MZX0OZcF+xzBuTYxFawL/iDoJY4Cvcwi6CWuEr38JqgXwbk2cRXo5R5BLwkU6GU2QS8JlejliqBeBOfaJFSyjr4q2IPOVdJ3XxP0eZ4Sn68L+vydgrXGfUItSKKgFswn1IKkSmrBDcFaIDjXJqmC3ukBQS8pFOhlAUEvKZXo5aagXgTn2qRU0jvdEqypi5T0Eb8L+vyDEp9vC/q8XInPdwR9XqnE57uCPq9W4vMfgj7/rGBd8JDQ56RR0Of8Quhz0irpc+4J9jmCc23SKlgXPCLoJb0Cvawj6CWDEr3cF9SL4FybDAr08pigl8wK9LKeoJcsSvTyQFAvgnNtsihZRz8U7EE3Kum7Hwn6vEmJz48Ffd6sYK3xJ6EWZFdQC7YQakEOJbXgT8FaIDjXJoeC3ukJQS+5FOhlK0EvuZXo5YmgXgTn2uRW0js9FaypO5T0Ec8Efd6txGf7gFI+71PicwRBnw8q8TlE0OcjSnyOKOjzcQXrgqeEPievgj7nBKHPyaekz4kUIncswbk2+RSsC54R9FJQgV5OEvRSSIleIgvqRXCuTSEFenGllz9uUQV6OUXQSzEleokiqBfBuTbFlKyjowr2oGeV9N3RBH0+p8Tn6II+n1ew1ohAqAUlFNSCC4RaUFJJLYghWAsE59qUVNA7hRD0UlqBXi4S9FJGiV5iCupFcK5NGSW9UyzBmvqbkj4itqDP15T4HEfQ55tKfI4r6PNtJT7HE/T5DyU+xxf0+YGCdUFEQp9TXkGf85DQ51RQ0uckEOxzBOfaVFCwLohE0EslBXp5RNBLZSV6SSioF8G5NpUV6CUyQS/VFOjlMUEv1ZXoJZGgXgTn2lRXso5OLNiDPlXSdycR9PmZEp+TCvrsyhb4tSAKoRbUUlALImSTP25tJbUgmWAtEJxrU1tB7xSVoJc6CvQSQtBLXSV6SS6oF8G5NnWV9E4pBGtq5Gw6fE4p6HM0JT6nCpHzOaYSn1ML+hxHic9pBH2Or8TntII+J1KwLoiWXv64DRT0OYkJfU5DJX2OO0TuWIJzbRoqWBdEJ+iliQK9JCHopakSvaQT1IvgXJumCvQSg6CXFgr0kpSgl5ZK9JJeUC+Cc21aKllHZxDsQVMo6bszCvqcUonPmQR9TqVgrRGTUAvaKKgFqQm1oK2SWpBZsBYIzrVpq6B3ikXQSwcFeklD0EtHJXrJIqgXwbk2HZX0TlkFa2o6JX1ENkGfMyrxObugz1mU+JxD0OfsSnx+TdDnnEp8zinocx4F64LYhD6ns4I+xxD6nC5K+pxcgn2O4FybLgrWBXEIeumqQC95CXrppkQvuQX1IjjXppsCvcQl6KWnAr3kI+illxK95BHUi+Bcm15K1tFGsActqKTvzivocyElPucT9LmwgrVGPEIt6KOgFhQh1IK+SmpBfsFaIDjXpq+C3ik+QS/9FOilKEEvHyrRSwFBvQjOtflQSe9UULCmFlfSRxQS9NmjxOfCgj6XUeJzEUGfyyvxuaigzxWV+FxM0OcqJJ8jCPv8eogOnsWV8CyhhGdJJTw9SniWUsKztBKeZZTwLKuEZzklPMsr4VlBCc83lPCsqIRnJSU8KyvhWUUJz6pKeFZTwrM6iWeID8+XXcdlFvS5hp98zvNyP6am4Dq4jpJ1cC0luqmthOebSni+pYRnHSU86yrhWU8Jz/pKeDZQwrOhEp6NlPBsrIRnEyU8myrh2UwJz+ZKeLZQwrOlEp6tlPBsrYRnGyU82yrh2U4Jz/ZKeHZQwrOjEp6dlPB8WwnPzkp4dlHC8x0lPN9VwrOrEp7dlPDsroRnDyU8eyrh2UsJz/eU8OythGcfJTz7KuH5vhKeHyjh2U8Jzw+V8PxICc/+SngOUMJzoBKeHyvhOUgJz8FKeA5RwvMTJTw/VcJzqBKew5Tw/EwJz8+V8ByuhOcIJTy/UMJzpBKeo5TwHK2E5xglPMcq4TlOCc/xSnh+qYTnBCU8JyrhOUkJz6+U8JyshOcUJTynKuH5tRKe05TwnK6E5wwlPL9RwnOmEp6zlPCcrYTnt0p4zlHCc64SnvOU8PxOCc/5JJ4hPjxf9nPQkQV9XqDE5yiCPi9U4nNUQZ+/V+JzNEGfFynxObqgz4uV+BxD0OclSnyOKejzD0p8jiXo81IlPscW9HmZEp/jCPq8XInPcQV9/lGJz/EEfV6hxOf4gj6vVOJzAkGfVynxOaGgzz8p8TmRoM+rlficWNDnNUp8TiLo81olPicV9PlnJT4nE/T5FyU+Jxf0eZ0Sn1MI+rxeic8pBX3+VYnPqQR93qDE59SCPm9U4nMaQZ83KfE5raDPm5X47Bb0eYsSn9MJ+rxVic/pBX3epsTnDII+b1fic0ZBn3co8TmToM87BX227weIFHqsig7/I4TGIGLo3+3r5/b1ZPv6qn290b7+Zl+Psq/P2Ncr7P17ez/b3t+19zvt/T97P8zeH7L3S+z9A3s9ba8v7fWWvf6w+3G7P7X7Nbt/seu5Xd/c1rDPf/b5wNaHnS92/Ozvgs9ijazWyGaN7NbIYY3XrJHTGrmskduOiTWMNfLa82aN/NYoYI2C1ihkjcLWKGKNotYoZo3XrVHcGiWsUTJ0nkpZo7Q1ylijrDXKWaO8NSpY4w1HnAaH/BW7StaobI0q1qhqjWrWqG6NGtaoaY1a1qhtjTet8ZY16lijrjXqWaO+NRpYo6E1GlmjsTWaWKOpNZpZo7k1WlijpTVaWaO1NdpYo6012lmjvTU6WKOjNTpZ421rdLZGF2u8Y413rdHVGt2s0d0aPazR0xq9rPGeNXpbo481+lrjfWt8YI1+1vjQGh9Zo781BlhjoDU+tsYg23drDLHGJ9b41BpDrTHMGp9Z43NrDLfGCGt8YY2R1hhljdHWGGONsdYYZ43x1vjSGhOsMdEak6zxlTUmW2OKNaZa42trTLPGdGvMsMY31phpjVnWmG2Nb60xxxpzrTHPGt9ZY741FlhjoTW+t8Yiayy2xhJr/GCNpdZYZo3l1vjRGiussdIaq6zxkzVWW2ONNdZa42dr/GKNddZYb41frbHBGhutsckam62xxRpbrbHNGtutscMaO62xyxq7rbHHGnutsc8a+61xwBoHrXHIGoetccQaR61xzBrHrXHCGietccoap61xxhpnrXHOGuetccEaF61xyRqXrfGbNa5Y46o1rlnjujVuWOOmNW5Z43dr3LbGHWvctcYf1rhnjfvWeGCNh9Z4ZI3H1vjTGk+s8dQaz6xhnwwiWCPEGhGtEckaka0RxRpRrRHNGtGtEcMaMa0RyxqxrRHHGnGtEc8a8a2RwBoJrZHIGomtkcQaSa2RzBrJrZHCGimtkcoaqa2RxhppreG2RjprpLdGBmtktEYma2S2RhZrZLVGNmtkt0YOa7xmjZzWyGWN3NawT3LGGnmtkc8a+a1RwBoFrVHIGoWtUcQaRa1RzBqvW6O4NUpYo6Q1PNYoZY3S1ihjjbLWKGeN8taoYI03rFHRGpWsUdkaVaxR1RrVrFHdGjWsUdMataxR2xpvWuMta9SxRl1r1LNGfWs0sEZDazSyRmNrNLFGU2s0s0Zza7SwRktrtLJGa2u0sUZba7SzRntrdLBGR2t0ssbb1uhsjS7WeMca71qjqzW6WaO7NXpYo6c1elnjPWv0tkYfa/S1xvvW+MAa/azxoTU+skZ/awywxkBrfGyNQdYYbI0h1vjEGp9aY6g1hlnjM2t8bo3h1hhhjS+sMdIao6wx2hpjrDHWGuOsMd4aX1pjgjUmWmOSNb6yxmRrTLHGVGt8bY1p1phujRnW+MYaM60xyxqzrfGtNeZYY6415lnjO2vMt8YCayy0xvfWWGSNxdZYYo0frLHUGsussdwaP1pjhTVWWmOVNX6yxmprrLHGWmv8bI1frLHOGuut8as1NlhjozU2WWOzNbZYY6s1tlljuzV2WGOnNXZZY7c19lhjrzX2WWO/NQ5Y46A1DlnjsDWOWOOoNY5Z47g1TljjpDVOWeO0Nc5Y46w1zlnjvDUuWOOiNS5Z47I1frPGFWtctcY1a1y3xg1r3LTGLWv8bo3b1rhjjbvW+MMa96xx3xoPrPHQGo+s8dgaf1rjiTWeWuOZNexGIII1QqwR0RqRrBHZGlGsEdUa0awR3RoxrBHTGrGsEdsacawR1xrxrBHfGgmskdAaiayR2BpJrJHUGsmskdwaKayR0hqprJHaGmmskdYabmuks0Z6a2SwRkZrZLJGZmtksUZWa2SzRnZr5LDGa9bIaY1c1shtjTzWMNbIa4181rCfzW4/b9p+ZrL9DGH7mbr2M2btZ67azyC1n8lpP+/Sfpbk8+c0WsN+vqD97D77uXj2M+fs57nZz0qzn0NmP+PLfn6W/Wwq+7lP9jOV7OcV2c8Csp+zYz93xn6mi/2ME/v5IfazOeznXtjPlLCf12A/C8F+zoD9Hf729+Pb3z1vf6+7/Z3p9veRN7OG/T3a9ndU29//bH+3sv29xfZ3Atvft2t/l639PbH2d7Da329qf3eo/b2c9nde2t8naX9Xo/09iPZ3DNrf32d/N579vXP2d7rZ35dmfxeZ/T1f9ndo2d9PZX/3k/29SvZ3FtnfB/SRNezvsbG/I8b+/hX7u03s7w2xex/7+y7s75Kwv6fB/g4E+/sF7M/u25+Ltz9zbn+e2/6stP05ZPszvvbnZ+3Pptqf+7Q/U2l/XtH+LKD9OTv7M2z258Psz17Zn2uyPzNkfx7na2vYnyOxP6Nhf/7B/myBfd++fU+8fb+5fS+3fZ+0fQ+yfX+vfe+sfV+qfZ+mfd+ifR+ffV+bfZ+Xfd+TfR+QfV+MfZ+Ifd+EfR+BfV3dvs5sX3e1r0Pa1+Xs61T2dRv7Ooa9r2/vc9v7vvY+qL0vaO+T2ftG9j6Kva9gr7Ptdae9DrPXJXafnt1uiEN/Gvz16/Oe1/5p3r1767ff6e7u3sXdvFUrd6/23du5u/Rs3bVNpy52a/a8h/L+ZA79t2r7bm83796ynbtzl+6t3e1aN2/Vuqu7ZZfO3bs2b9ndPkzX1t262c3w8+7L+5P+79Ddunfp2rxta3e3Tl26P0fOB7i2ixh+TBcA082BSfe/mLd7dOre/p1Ovf8X2BMF9gFYfoAa648CP0aBQ1DgUBT4GQocjgK/AKZwDGpsAgqchAKnosAZKHAuENDvHZgEof++06Ob9aYe3d1d2rhbdOnRuZW9RHUtQWn9AtDaAmB2A5jDAOYkgLkEYG4CmD8AzGMAEyFS+DFRAUxsAJMQwKQCMOkBTBYH5u/llt3xznDJrTBAywNgKgCY6gDmLQDTGMC0BjBvA5geAKYfgBmAJtAgFPgpwHIUamwsCpwAsJwOYOahBBegwMUAy+WosZUocA3Acgtq7CAKPIYCL6LAOyjwAQqMGBkExkOBiVFgchSYCgW6HcB/Xd1RY9lRYC6AZUEAUxIlWBYFVkSB1VBgbRRYDwU2RIFNgSnsgBrrhQLfR4H9UeBgFDgMBX6BAiehwG9R4HwUuBgFLkeBP6HAX1DgdhR4BAWeRIHnUOBlFHgdBd5GgU9QYIwoIDAuCkyEApOjwDQoMAMKzIUCi6FADwoshwIrocDqKPBNFNgUBXZCge+iwJ4osC8K/AgFDkKBX6DAyShwOgqcjQK/Q4GLUOAyFPgLCtyJAvehwMMo8AQKPIsCL6HA2yjwGQqMFBUERkeBcVBgQhSYDAVmQIF5UGABFFgUBZZEgWVRYEUU+CYKbI4C26DAjijwHRTYAwX2QYGDUOAoFDgeBX6FAqehwFkocB4KXIYC16PAzShwBwrciwIPocDjKPASCryLAh+iwKcoMGI0EBgNBcZGgclQYCYUmB0F5kaB+VFgERRYAgWWQoHlUGBFB/DfXgaojBqrigKrAyzro8YaosDGAMsWAKYDSrATCuwMsHwHNdYVBXYHWPZGjX2IAvujwMEo8DMUOBwFjkaBE1DgJBQ4GQVORYHTgDSdhxqbjwIXAix/ADArUYI/ocA1KPBnFLgOBf6KAjeiwM3AFO5Aje1DgQdQ4CEUeAQFHkOBJ1DgWRR4GQVeQYHXUOANFHgLBd5GgfdR4BMU+AwFRogOAiOiwMgoMCoKjIUCE6DARCgwCQpMhgJToMBUKDAdCsyCArOhwBwoMCcKzI0CDQosiAJfR4ElUKAHBZZGgWVRYHkUWBkF1kSBtVHgWyiwLgqsjwIbosBmKLANCmyHAjugwE4osDMKfAcF9kCBfVHgByjwQxTYHwUORIGDUOBQFPgFChyFAsegwHEo8EsUOBEFTkWBM1HgbBQ4BwXOQ4HzUeBCFPgDClyJAn9CgWtQ4M8ocB0K/BUFbkGBu1DgHhS4DwUeQIGHUOARFHgSBZ5HgRdR4GUUeAUFXkOBN1DgHRT4EAU+RoFPUOAzFBghBgiMiAIjo8CoKDC6A/hvLwPEQo3FQYHxAJYJUGOJUGASgGUy1FgKFJgKYJkRwGR3YP7+60teQ12ZB9BaAmBWAph1AGYzgNkDYI4AmFMA5gKAuQpgfgcw9wHMEwATOWb4MTEBTDwH5u/llsDxznDJrSRAqwKAqQZg6gCYRgCmFYDpBGC6A5j3AczHAOYTNIGGocARAMtxqLEJKHAywHIGgJkLYJagTi1DgSsBlmtRY+tQ4EaA5R7U2H4UeBhgeQrAXAQwN1GnbqPAewDLx6ixpygwJFb4WcaOBRqLhwITASxTApj0ACYH6lQuFJgXYFkINVYUBZYAWFZEjVVBgTUAlnUBTBMA0xZ1qgMK7Ayw7IYa64kC+wAsP0CNfYQCPwZYDkONDUeBowCWXwKYKQDmG9Sp2ShwHsByIWpsMQpcBrBciRpbjQJ/AVhuQI1tRoHbAZa7UWP7UOAhgOUx1NhJFHgWYHkVNXYDBd4GWD4EMM8fVxdOTPTYoFOxUGA8gGVi1FgyFJgKYJkONZYRBWYFWOZEjeVBgfkBlkVQY6+jQA/Ashxq7A0UWAVgWRc11gAFNgFYtgYwnQBMD9Sp91Dg+wDL/qixj1HgJwDLz1FjX6DAMQDLCaixr1Dg1wDLmaixb1HgdwDLRaixH1DgjwDL9aixjShwK8ByD4A5DGDOoE6dR4GXAZbXUWO3UOBdgOVD1NifKPD5A6jDyTJyHNBYNBQYC2AZHzWWCAUmA1imRo25UWBGgGVu1FheFFgQYFkcwJQFMFVRp2qgwDcBlvVRY41QYDOAZWvUWDsU2Alg+S5qrDsKfA9g+QFq7CMU+DHA8lPU2Gco8AuA5STU2BQUOB1gOQfAfA9gVqBO/YQCfwZYbkCNbUaB2wGWe1Bj+1HgYYDlCdTYaRR4HmD5G2rsGgq8BbD8AzX2AAX+CbCMGhc0FgMFxokbfpaJAUwqAJMJdSorCnwNYGlQY/lRYGGAZXHUmAcFlgVYVkSNVUGBNQCWb6HG6qHARgDL5qixViiwHcCyG2qsJwrsA7DsD2A+ATAjUafGoMAvAZaTUWNfo8BvAJZzUGPfocDvAZZLUWM/osCfAJa/oMZ+RYGbAZY7UGO7UeB+gOUp1NhZFHgRYHkdwNwFME9Qp1zxQGCkeOFnGR01FgsFxgNYJkaNJUOBqQCW6VBjGVFgVoBlTtRYHhSYH2BZBDX2Ogr0ACwro8aqocBaAMv6AKYZgGmPOtUJBb4DsOyBGnsPBb4PsOyPGvsYBX4CsPwcNfYFChwDsJyAGvsKBX4NsJyJGvsWBX4HsFyOGluJAtcALDcAmO0A5gDq1GEUeBxgeQY1dh4FXgZYXkeN3UKBdwGWD1Fjf6JAV/zws4wcHzQWDQXGAljGR40lQoHJAJYZUGOZUWB2gKUBMIUBTCnUqbIo8A2AZVXUWA0U+CbAsj5qrBEKbAawbI0aa4cCOwEs30WNdUeB7wEsP0CNfYQCPwZYjkCNjUKB4wCWkwHMNwBmPurU9yjwB4DlCtTYTyjwZ4DlBtTYZhS4HWC5BzW2HwUeBlieQI2dRoHnAZa/ocauocBbAMvHqLGnKDAkQfhZRgcw8QBM8gSgU6lQoBtgmQk1lhUFvgawNKix/CiwMMCyOGrMgwLLAiwrosaqoMAaAMu3UGP1UGAjgGVb1FgHFNgZYNkDwLwPYAahTn2CAj8DWI5EjY1BgV8CLCejxr5Ggd8ALOegxr5Dgd8DLJeixn5EgT8BLH9Bjf2KAjcDLPehxg6iwKMAyzMA5jKA+R116i4KfACwfIIacyUEgZEShp9ldNRYLBQYD2CZGDWWDAWmAlimQ41lRIFZAZY5UWN5UGB+gGUh1FhRFFgCYOlBjZVGgWUBltVRYzVRYG2AZV0A0xDAtESdao0C2wIs26PGOqLAtwGW76HG+qDA9wGWHwGYjwHMZ6hTw1HgFwDLUaixMShwHMByGmpsBgqcCbCcA2DmA5ilqFPLUeAKgOUq1NhqFLgWYLkVNbYdBe4EWO4FMAcBzEnUqdMo8CzA8jxq7CIKvAywvIIau4YCbwAsH6LGHqPAJwDLCInCj4kMYGInAp2KiwLjAywTosYSo8CkAMvkqLGUKDA1wDItaiwdCswAsMyEGsuCArMBLHOgxnKiwNwAy6KosddRYAmAZWkAUx7AVEOdqoECawEs30SN1UGB9QCWDVBjjVBgE4BlM9RYCxTYCmDZBjXWDgV2AFh2Qo11RoHvACz7osY+QIEfAiwHApghAGYE6tRIFDgaYDkWNTYeBU4AWE5CjU1GgVMBltNQYzNQ4EyA5WzU2BwUOA9gOR81thAFLgJY/oQaW4MCfwZY/gpgNgOY3ahTe1HgfoDlQdTYYRR4FGB5HDV2EgWeBlieRY2dR4EXAZaXUWNXUOA1gOUN1NgtFHgbYPkENfYMBUZIHH6WkQFMdAATPzHoVEIUmBhgmRQ1lhwFpgRYpkaNpUWB6QCWGVBjmVBgFoBlNtRYDhSYE2CZGzVmUGA+gGUJ1JgHBZYGWJYHMJUATC3UqTdRYB2AZT3UWAMU2Ahg2QQ11gwFtgBYtkKNtUGB7QCWHVBjnVBgZ4DlO6ixriiwO8DyQ9RYfxQ4EGA5BMAMAzCjUafGosDxAMsJqLFJKHAywHIqamwaCpwBsJyJGpuNAucALOehxuajwIUAy0WosSUocCnA8mfU2DoU+CvAcjOA2Q5g9qNOHUSBhwGWR1Fjx1HgSYDladTYWRR4HmB5ETV2GQVeAVheQ43dQIG3AJa3UWN3UeA9gGWEJKCxiCgwcpLws4wOYGIDmMSoU0lRYHKAZUrUWGoUmBZgmQ41lgEFZgJYZkGNZUOBOQCWOVFjuVGgAVjmQ40VQIGFAJalUWNlUWB5gGUlAFMNwNRBnaqHAhsALBuhxpqgwGYAyxaosVYosA3Ash1qrAMK7ASw7IwaewcFdgVYdkeN9USB7wEsB6LGBqHAIQDLYQBmBIAZjzo1AQVOAlhORo1NRYHTAJYzUGMzUeBsgOUc1Ng8FDgfYLkQNbYIBS4BWC5FjS1HgSsAlr+ixjaiwM0Ay+0AZjeAOYw6dRQFHgdYnkSNnUaBZwGW51FjF1HgZYDlFdTYNRR4A2B5CzV2GwXeBVjeQ409QIGPAJaRk4LGoqLA6EnDzzI2gIkPYJKjTqVEgakBlmlRY+lQYAaAZSbUWBYUmA1gmQM1lhMF5gZYGtRYPhRYAGBZCDVWBAUWA1iWR429gQIrASyrAZhaAKYB6lQjFNgEYNkMNdYCBbYCWLZBjbVDgR0Alp1QY51R4DsAy66ose4osCfA8j3UWB8U+D7Acghq7FMUOAxgOQLAjAYwk1CnJqPAqQDLaaixGShwJsByNmpsDgqcB7CcjxpbiAIXASyXoMaWosDlAMsVqLFVKHA1wHIzamwrCtwOsNwNYPYDmOOoUydR4GmA5VnU2HkUeBFgeRk1dgUFXgNY3kCN3UKBtwGWd1Fj91DgA4DlI9TYnyjwKcDSlQw0FoICIyULP8uYACa+A+P9cvp3enSz3tSju7tLG3eLLj06t+pmv5oQdSVW8vDTSgRgUgKYDAAmG4DJC2CKAhgPgCkPYKoAmFoAph6AaQJg2gCYTgDmXQfm7+XWzfHOcMntR4DWzwBmE4DZBWAOAJgTAOYCgLkOYP4AME8ATIQUf2HCV3pQYLQU4WcZFzWWAAUmAVimAjAZAMxrqFO5UWA+gGVh1FgxFFgSYFkJNVYVBdYEWNYDME0BTDvUqY4osAvAsjtqrBcK7AuwHIwa+xQFfg6wHANgJgGYb1CnZqPAeQDL71FjS1DgcoDlOtTYBhS4BWC5G8AcAjCnUafOocBLAMtrqLGbKPAOwPIeauwhCnwCsIyUEjQWFQXGTBl+lvEBTFIAkxp1yo0CMwIss6LGcqDA3ADLfKixgiiwKMCyBGqsFAosB7CsiBqrggJrACzfRI3VRYENAZatUGNtUWBHgGVXANMbwAxAnRqEAj8FWA5HjY1EgWMBlhNRY5NR4DSA5SzU2BwUOB9guRg1thQFrgBYrkGN/YICNwAsd6PG9qHAQwDLkwDmAoC5gTr1Owr8A2D5CDX2BAVGSBV+llFSgcaio8DYAMsEqLHEKDA5wDINaiwdCswEsMyOGsuJAg3A8nXUWEkUWAZgWQnA1AQwDVCnGqPA5gDLNqix9ijwbYBlV9RYDxTYG2DZDzXWHwUOAlgORY19jgJHAizHocYmoMDJAMtvUWPzUOBCgOUyALMawGxEndqCAncALPeixg6gwCMAy5OosTMo8ALA8gpq7DoK/B1geQ819hAFPgFYhqQGjUVGgdFTh59lItRYUhSYEmCZHsBkAzB5UacKoMAiAMsSqLFSKLAcwLISaqwqCqwJsKyDGquPAhsDLFugxlqjwPYAy86osXdRYA+A5UeosYEocAjAcjiAGQtgpqBOTUOBMwGWc1Fj81HgIoDlMtTYChS4GmC5DjW2AQVuAVjuRI3tQYEHAJZHUWMnUOAZgOU11NhNFHgHYPkIwERIE35MjDSgU7FRYHyAZRLUWHIUmBpgmR41lgkFZgNY5kKNGRRYAGBZFDVWHAWWAliWR41VRIFVAZb1UGMNUWBTgGUbAPM2gOmJOtUbBX4AsByAGhuEAj8FWA5HjY1EgWMBlhNRY5NR4DSA5SzU2BwUOB9guRg1thQFrgBY/ooa24QCtwEs9wKYIwDmLOrUBRT4G8DyBmrsdxT4B8DyEWrsCQqMkDb8LKOkBY1FR4GxAZYJUGOJUWBygGUa1Fg6FJgJYJkHNZYPBRYCWJYAMOUATDXUqZoo8C2AZQPUWGMU2Bxg2QY11h4Fvg2w7Ioa64ECewMs+6HG+qPAQQDLoaixz1HgSIDlV6ixqShwBsByLoBZBGBWok6tRoG/ACw3osa2oMAdAMu9qLEDKPAIwPIkauwMCrwAsLyCGruOAn8HWN5DjT1EgU8AltHcoLGYKDCuO/wsk7hd//fzbzGpAUxmByZ8m+YoMCfAMi9qrAAKLAKwLIEaK4UCywEsK6HGqqLAmgDLOqix+iiwMcCyBWqsNQpsD7DsjhrrhQL7AiwHAJhPAcwo1KmxKHACwHIKamwaCpwJsJyLGpuPAhcBLJehxlagwNUAy3WosQ0ocAvAcidqbA8KPACwPI0aO4cCLwEsbwCYPwDMU9SpCOlAYOR04WcZAzUWGwXGB1gmQY0lR4GpAZbpUWOZUGA2gGUu1JhBgQUAlkVRY8VRYCmAZRXUWHUUWBtg2QDANAcwHVCn3kaB7wIse6LGeqPADwCWA1Bjg1DgpwDL4aixkShwLMByImpsMgqcBrCchRqbgwLnAyy/R40tQYHLAZYrUGOrUOBqgOVm1NhWFLgdYLkbwOwHMMdRp06iwNMAy7OosfMo8CLA8nfU2B0U+AfA8iGAeQJgIqcHnYqKAqOnDz/LmKix2CgwLsAyBWosFQpMA7BMD2AyA5hcqFN5UGBegGV+1FhBFFgYYFkGNVYOBVYAWFYGMNUBTF3UqfoosCHAsjFqrCkKbA6wbIkaa40C2wIsu6LGuqPAngDLPgCmH4AZjDr1CQocCrD8DDU2HAV+AbAchRobgwLHASy/RI1NRIFfASynoMa+RoHTAZbfoMZmocBvAZZLUGNLUeBygOUqALMWwGxCndqCArcBLHegxnahwD0Ay32osQMo8BDA8ghq7BgKPAGwPIUaO4MCzwEsL6DGLqHA3wCWd1Fj91DgA4DlnwDGlSH8mGgZQKdioMBYAMs4qLF4KDABwDIRaiwJCkwGsEyBGkuFAtMALN2osfQoMCPAMjNqLCsKzA6wLIAaK4QCiwAsiwOYUgCmIupUZRRYFWBZHTVWEwXWBli+hRqriwLrAywbosYao8CmAMvmqLGWKLA1wLItaqw9CuwIsOyJGnsPBfYBWPYDMAMAzFDUqc9Q4HCA5ReosVEocAzAchxq7EsUOBFg+RVqbAoK/BpgOR019g0KnAWw/BY1NhcFfgewXI4aW4ECVwEs1wKY9QBmG+rUDhS4C2C5BzW2DwUeAFgeQo0dQYHHAJYnUGOnUOAZgOU51NgFFHgJYPkbauwqCrwOsHyAGnuEAv8EWLoyhh8TCcDEygg6FQcFxgNYJkCNJUKBSQCWyVBjKVBgKoBlGtSYGwWmB1hmRI1lRoFZAZbZUWOvocBcAMsiqLFiKLA4wLIUgCkHYKqiTlVHgTUBlrVRY2+hwLoAy/qosYYosDHAsilqrDkKbAmwbI0aa4sC2wMsO6LG3kaBXQCWfVBj76PAfgDLAQBmMIAZjjr1BQocBbAcgxobhwK/BFhORI19hQKnACy/Ro1NR4HfACxnoca+RYFzAZbfocYWoMDvAZarUGOrUeBagOV6ALMJwOxCndqDAvcBLA+gxg6hwCMAy2OosRMo8BTA8gxq7BwKvACwvIQa+w0FXgVYXkeN3USBvwMs/0SNPUWBrkzhZxkJwEQDMPEygU4lQIGJAJZJUGPJUGAKgGUq1FgaFOgGWKZHjWVEgZkBlllRY9lR4GsAy1yosTwoMC/AsjhqrCQKLAWwLAdgKgKYmqhTtVHgWwDLuqix+iiwIcCyMWqsKQpsDrBsiRprjQLbAizbo8Y6osC3AZZdUGPvosBuAMt+qLGPUOAAgOVgADMUwIxCnRqDAscBLL9EjU1EgV8BLKegxr5GgdMBlt+gxmahwG8BlnNRY9+hwAUAy+9RY4tR4A8Ay7WosV9Q4HqA5SYAsw3A7EOdOoACDwEsj6DGjqHAEwDLU6ixMyjwHMDyAmrsEgr8DWB5FTV2HQXeBFj+jhq7gwL/AFi6MoPGQlBgpMzhZxkNwMQCMIlQp5KgwGQAyxSosVQoMA3A0o0aS48CMwIsM6PGsqLA7ADL11BjuVBgHoBlXtRYfhRYEGBZCjVWBgWWA1hWBDBVAcxbqFN1UWB9gGVD1FhjFNgUYNkcNdYSBbYGWLZFjbVHgR0Blm+jxrqgwHcBlt1QYz1QYC+AZW/UWF8U+AHA8mMAM9SBSRD67zs9ullv6tHd3aWNu0WXHp1bdbNf/Qx1ZVCW8NP6HMCMATBfAZjpAGYegFkCYFYAmLUAZgOA2QZg9gCYQwDmFIC5AGCuODB/L7drjneGS24ma/hpFQEwHgDzBoCpBmDqAJgmAKYNgOkMYHoCmD4OTPhKDwrsD7D8BDU2DAWOAFiOBTBfAZiZqFPfosDvAJaLUGM/oMAfAZbrUWMbUeBWgOUeAHMYwJxBnTqPAi8DLK+jxm6hwLsAy2eosZBsIDBKtvCzjA1gEgGY1KhTbhSYEWCZDTX2GgrMA7AshhorgQJLAywrApgaAKY+6lQjFNgMYNkaNdYOBXYCWHZBjXVFgT0Blh+gxj5CgR8DLIcCmC8AzDjUqQkocDLAchpq7BsU+C3A8jvU2EIUuARguRw1thIFrgFYrkONbUCBWwCWO1Bju1HgfoDlCdTYaRR4HmB5FcDcBjCPUaeeosCQ7OFnGTU7aCwGCowDsEyIGkuCAlMALNOixtKjwMwAyxyosVwoMC/AshBqrCgKLAGwrIgaq4ICawAs6wKYJgCmLepUBxTYGWDZDTXWEwX2AVh+iBobgAIHAyyHocaGo8BRAMvxqLGJKHAKwHIGamwWCpwLsFyKGvsRBf4EsFwPYLYCmH2oUwdR4FGA5SnU2FkUeBFgeRU1dgMF3gZY3keNPUKBTwGWEXOAxqKgwBg5ws8yLmosAQpMArBMhxrLiAKzAixzA5iCAKYk6lRpFFgeYFkZNVYNBdYCWNZFjTVAgU0Ali1RY21QYAeAZRfUWFcU2BNg2Rc11g8FDgBYfo4a+wIFjgFYTgIw0wHMPNSpBShwMcByOWpsJQpcA7BcjxrbiAK3Aix3ocb2osCDAMtjqLGTKPAswPISauwKCrwBsHyIGvsTBbpeCz/LqAAmDoBJ+hroVAoUmAZgmQE1lhkFZgdY5kaN5UWBBQGWxVBjJVBgaYBlBdRYJRRYDWBZGzVWBwU2AFi2Ro21Q4GdAJbdAEwfADMQdWowChwKsByBGhuFAscBLCehxqagwOkAy9mosbkocAHAcglqbBkKXAmwXIsaW4cCNwIs96DG9qPAwwDLUwDmIoC5iTp1GwXeA1g+Ro09RYEhOcPPMmpO0FgMFBgHYJkQNZYEBaYAWKZFjaVHgZkBljlQY7lQYF6AZXHUmAcFlgVYVgYwtQBMQ9SpJiiwBcCyLWqsAwrsDLDshhrriQL7ACw/RI0NQIGDAZbDUGPDUeAogOV41NhEFDgFYDkHNfYdCvweYLkcwKwBMJtQp7aiwJ0Ay32osYMo8CjA8hRq7CwKvAiwvIoau4ECbwMs76PGHqHApwDLiLlAY1FQYIxc4WeZGDWWDAWmAlhmADDZAUw+1KmCKLAowLIkaqw0CiwPsKyMGquGAmsBLOuixhqgwCYAy5aosTYosAPAsgtqrCsK7Amw7I8a+xgFfgKwHAFgxgGYqahT01HgLIDlPNTYAhS4GGC5HDW2EgWuAViuR41tRIFbAZa7UGN7UeBBgOUx1NhJFHgWYHkdNXYLBd4FWD4GMCG5w4+JmRt0Kg4KTACwTIoaS4EC0wAsM6DGMqPA7ADL3KixvCiwIMCyGGqsBAosDbCsgBqrhAKrASzro8YaocBmAMu2AKYzgOmFOtUHBfYDWA5EjQ1GgUMBliNQY6NQ4DiA5STU2BQUOB1gORs1NhcFLgBYLkGNLUOBKwGWG1Bjm1HgdoDlPgBzFMCcQ526iAKvACxvosZuo8B7AMvHqLGnKDAkT/hZRs0DGouBAuMALBOixpKgwBQAy7SosfQoMDPAMhtq7DUUmAdgmRc1lh8FFgRYlkKNlUGB5QCWFQFMVQDzFupUXRRYH2DZEDXWGAU2BVh2QI11QoGdAZZdAUxPANMPdeojFDgAYPkxamwwCvwEYDkaNTYWBY4HWE4CMFMBzGzUqTkocB7Acj5qbCEKXASw/Ak1tgYF/gyw/BXAbAYwu1Gn9qLA/QDLg6ixwyjwKMDyOGrsJAo8DbC8ihq7jgJvAizvAJj7AOYZ6lQEAwIjmvCzjIwai4oCowMsY6LGYqPAuADL+KixhCgwMcAyKWosOQpMCbBMjRpLiwLTASxfQ43lQoF5AJb5AUxhAONBnSqNAssCLMujxt5AgZUAllVQY9VQYA2AZS3U2JsosA7Ash5qrAEKbASwbIIaa4YCWwAs30aNdUGB7wIsewCY3gCmP+rUQBQ4CGA5BDX2KQocBrD8HDU2AgWOBFiORo2NRYHjAZYTUGOTUOBkgOVU1Ng0FDgDYLkANfY9ClwMsFwGYFYCmHWoU7+iwI0Ay82osa0ocDvAcidqbDcK3Auw3I8aO4gCDwMsj6LGjqPAkwDL06ixsyjwPMDyJmrsdxR4B2B5H8A8BjAR84JORUaBUfOGn2V01FhMFBgbYBkXNRYfBSYEWCZGjSVFgckBlilRY6lRYFqAZTrUWAYUmAlgmQc1lhcF5gdYFgYwrwOYsqhT5VHgGwDLSqixKiiwGsCyBmqsFgp8E2BZBzVWDwU2AFg2Qo01QYHNAJYtUGOtUGAbgOW7qLFuKLAHwLI3gPkAwAxCnRqCAj8FWA5DjX2OAkcALEeixkajwLEAy/GosQkocBLAcjJqbCoKnAawnIEam4kCZwMsF6PGfkCBywCWKwHMGgCzEXVqMwrcCrDcjhrbiQJ3Ayz3osb2o8CDAMvDqLGjKPA4wPIkauw0CjwLsDyPGruIAi8DLO+gxv5AgfcBlo8BzDMAEzUf6FR0FBgzX/hZxkaNxUWB8QGWCVFjiVFgUoBlctRYShSYGmCZFjWWDgVmAFhmQo1lQYHZAJb5UWMFUWBhgOXrAMYDYN5AnaqEAqsALKuhxmqgwFoAyzdRY3VQYD2AZQPUWCMU2ARg2Qw11gIFtgJYtkGNtUOBHQCWPVBjvVBgb4DlBwCmP4D5FHVqGAr8HGA5AjU2EgWOBliORY2NR4ETAJaTUGOTUeBUgOU01NgMFDgTYDkbNTYHBc4DWC5Djf2IAlcCLNcAmHUAZivq1HYUuBNguRs1thcF7gdYHkSNHUaBRwGWx1FjJ1HgaYDlWdTYeRR4EWB5GTV2BQVeA1jeR409RIGPAZbPAEzE/OHHxMwPOhUbBcYFWMZHjSVEgYkBlklRY8lRYEqAZWrUWFoUmA5gmQE1lgkFZgFYZkON5UCBOQGWhVFjRVHg6wBLD4ApC2CqoE5VQ4E1AJa1UGNvosA6AMt6qLEGKLARwLIJaqwZCmwBsGyFGmuDAtsBLDugxjqhwM4Ay96osb4o8AOAZX8AMwjAfI46NQIFjgRYjkaNjUWB4wGWE1Bjk1DgZIDlVNTYNBQ4A2A5EzU2GwXOAVjOQ43NR4ELAZYrUWM/ocA1AMt1AGYjgNmJOrUbBe4FWO5HjR1EgYcBlkdRY8dR4EmA5WnU2FkUeB5geRE1dhkFXgFYXkON3UCBtwCWt1Fjd1HgPYDlEwATscBfmASh/77To5v1ph7d3V3auFt06dG5VTf71cgFQFeeFgg/rSgFw4+JDWASA5iUACYjgHkNwOQFMIUBTAkAUxbAVAIwNQBMIwDT3IH5e+m0dLwzXNL5FqD1PYBZDmDWApgNAGYHgDkAYE4AmAsA5iaaDLdR4D2A5RPUmKsQCIxUKPwsYwCY+AAmBepUahSYDmCZGTWWDQXmBFgWRo0VQ4ElAZblAUxVAFMHdao+CmwMsGyBGmuNAtsDLLujxnqhwL4AywEA5lMAMwp1aiwKnACwnIIam4YCZwIsv0eNLUGBywGWawDMBgCzE3VqDwo8ALA8iho7gQLPACwvo8auosCbAMs/AMxjABOhMOhUJBQYrXD4WcZCjcVFgQkBlklRYylQYBqAZXrUWCYUmA1gmRM1lgcF5gdYFkaNFUOBJQGWb6DGKqPA6gDLOgCmMYBpgzrVHgW+DbDsihrrgQJ7Ayz7ocb6o8BBAMuhqLHPUeBIgOU41NgEFDgZYDkdNTYTBc4BWP6AGluOAlcBLNcBmC0AZi/q1AEUeARgeRI1dgYFXgBYXkGNXUeBvwMs76HGHqLAJwDLkCKgscgoMHqR8LOMgxqLjwITAyzdqLEMKDALwDIXgCkAYEqgTpVCgeUAlpVQY1VRYE2AZR3UWH0U2Bhg2QI11hoFtgdYdkaNvYsCewAs+6DGPkCB/QGWn6HGRqDA0QDLiQBmGoCZizo1HwUuAlguQ42tQIGrAZbrUGMbUOAWgOVO1NgeFHgAYHkUNXYCBZ4BWF5Ejf2GAq8DLB+gxh6jwGcAyyhFw4+JDWCSFAWdSo4CUwMs06PGMqHAbADLXKgxgwILACyLosaKo8BSAMvyqLGKKLAqwLIWauwtFFgfYNkKNdYWBXYEWHYFML0BzADUqUEo8FOA5XDU2EgUOBZgORE1NhkFTgNYzkKNzUGB8wGWi1FjS1HgCoDlGtTYLyhwA8ByN2psHwo8BLA8CWAuAJgbqFO/o8A/AJaPUGNPUGCEYuFnGaUYaCw6CowNsEyAGkuMApMDLNOgxtKhwEwAy+yosZwo0AAsX0eNlUSBZQCWlQBMTQDTAHWqMQpsDrBsgxprjwLfBlh2RY31QIG9AZb9UGP9UeAggOVQ1NjnKHAkwHIcamwCCpwMsPwWNTYPBS4EWC4DMKsBzEbUqS0ocAfAci9q7AAKPAKwPIkaO4MCLwAsr6DGrqPA3wGW91BjD1HgE4BlyOugscgoMPrr4WeZCDWWFAWmBFimBzDZAExe1KkCKLAIwLIEaqwUCiwHsKyEGquKAmsCLOugxuqjwMYAyxaosdYosD3AsjNq7F0U2ANg+RFqbCAKHAKwHA5gxgKYKahT01DgTIDlXNTYfBS4CGC5DDW2AgWuBliuQ41tQIFbAJY7UWN7UOABgOVR1NgJFHgGYHkNNXYTBd4BWD4CMBGKhx8TozjoVGwUGB9gmQQ1lhwFpgZYpkeNZUKB2QCWuVBjBgUWAFgWRY0VR4GlAJblUWMVUWBVgGU91FhDFNgUYNkGwLwNYHqiTvVGgR8ALAegxgahwE8BlsNRYyNR4FiA5UTU2GQUOA1gOQs1NgcFzgdYLkaNLUWBKwCWv6LGNqHAbQDLvQDmCIA5izp1AQX+BrC8gRr7HQX+AbB8hBp7ggIjlAg/yyglQGPRUWBsgGUC1FhiFJgcYJkGNZYOBWYCWOZBjeVDgYUAliUATDkAUw11qiYKfAtg2QA11hgFNgdYtkGNtUeBbwMsu6LGeqDA3gDLfqix/ihwEMByKGrscxQ4EmA5GjU2FgWOB1hOR419gwJnASznApgFAGYZ6tSPKHAlwPIn1NgaFPgzwHIbamwHCtwFsNwHYA4BmFOoU2dQ4DmA5QXU2CUU+BvA8i5q7B4KfACw/BPAuEqGHxOtJOhUDBQYC2AZBzUWDwUmAFimRo2lRYHpAJaZAEw2AGNQp/KhwAIAy0KosSIosBjAsjxq7A0UWAlgWQ3A1AIwDVCnGqHAJgDLZqixFiiwFcCyDWqsHQrsALDshBrrjALfAVh2RY11R4E9AZbvocb6oMD3AZZDUGOfosBhAMsRAGY0gJmEOjUZBU4FWE5Djc1AgTMBlrNRY3NQ4DyA5XzU2EIUuAhguQQ1thQFLgdYrkCNrUKBqwGWm1FjW1HgdoDlbgCzH8AcR506iQJPAyzPosbOo8CLAMvLqLErKPAawPIGauwWCrwNsLyLGruHAh8ALB+hxv5EgU8BltE9oLGYKDC2J/ws4wOYxAAmNepUWhSYDmCZATWWCQVmAVhmQ43lQIE5AZa5UWMGBeYDWBZAjRVCgUUAlsVQY8VRYEmAZSXUWBUUWA1gWQvA1AEwTVCnmqHAFgDLVqixNiiwHcCyA2qsEwrsDLB8BzXWFQV2B1j2RI29hwL7ACzfR431Q4EfASyHocY+R4EjAJajAcx4ADMVdWoaCpwBsJyJGpuNAucALOehxuajwIUAy0WosSUocCnAcjlqbAUKXAWwXI0aW4sCfwFYbkeN7USBuwGW+wHMYQBzGnXqLAo8D7C8iBq7jAKvACyvocZuoMBbAMvbqLG7KPAewPIBauwRCvwTYPkUNeYqBQJDSoWfZWzUWFwUGB9gmRjAJAcw6VCnMqDATADLLKixbCgwB8AyJ2osNwo0AMt8qLECKLAQwLIIaqwYCiwOsCyJGiuFAssALKuhxmqgwFoAyzoApgGAaYE61QoFtgFYtkONdUCBnQCWnVFj76DArgDL7qixnijwPYBlH9TY+yiwH8DyI9TYABT4McByBGpsJAocDbAcD2AmAZgZqFMzUeBsgOUc1Ng8FDgfYLkQNbYIBS4BWC5FjS1HgSsAlqtQY6tR4FqA5S+osfUocAPAcjdqbC8K3A+wPAxgjgOY86hTF1HgZYDlFdTYNRR4A2B5CzV2GwXeBVjeQ409QIGPAJZ/osaeokBX6fCzDCkNGouEAqMALOOjxhKiwMQAy+QAJjWAyYQ6lQUFZgNY5kCN5USBuQGWBjWWDwUWAFgWQo0VQYHFAJbFUWMlUWApgGUZ1Fg5FFgBYFkLNfYmCqwDsGwAYJoAmDaoU+1QYAeAZSfUWGcU+A7AsitqrDsK7AmwfA811gcFvg+w7Ica+wgFDgBYfowaG4wCPwFYjkaNjUWB4wGWkwDMVAAzG3VqDgqcB7CcjxpbiAIXASyXoMaWosDlAMsVqLFVKHA1wHItauwXFLgeYLkBNbYJBW4BWO5HjR1EgYcBlscBzGkAcxl16goKvAawvIEau4UCbwMs76LG7qHABwDLR6ixP1HgU4ClqwxoLAQFRioTfpZRUGPRUGAMgGVi1FhSFJgcYJkawKQDMNlQp3KgwJwAy9yoMYMC8wEsC6DGCqHAIgDLYqix4iiwJMCyFGqsDAosB7CsgBqriAIrAyxrAJhaKME3UWAdgGU9xFgE602fhb65/V94V/LQf0t17dq8t7t951at33N36dHd3aWNu0WXHp1bdXMCu6LAgShwKAociQK/RIFTUeAsFDgfBf6AAg84gFDqHXUc4N/kuxN7EmV94SWM/oYavf0SRhNFAI2mRIHpUaBxAKGMKIhaLh0BD3B51GitlzBaBzXa4iWMtkGNdn0Joz1RowNewuhg1OiolzA6DjU6/SWMzkKN/vgSRte9BHYjSng7CjwCsO0Q8T/vc7vCadQLzBleYOpIoEUvMNwWo8QELXqB4bbYNjlo0QsMt8XTWUCLXmC4LdYtCFr0AsNnMXroO+6EJnk0a4SEvma/ZCeHJ/T/eV7ux0RzMBM9duH8LaJYxygT7a9jO39iWSNUVv/3nqjWiO34e9nQ1yM6XisX+lokx2vlQ1+L7HitQuhrURyvveGw432tYrS/Yux9rVLof7zzkMDBxYuN5ji28JzkjeXwxeWw4fyJ5Pg9ioNTNA6nwrEcdv4Np2iOf6NyOJlYDjtebtF9YhBBzl6eCI5je/31/j8kDPuuoO2g7VfAtrCu88R1/XX+c56/vfYiO+z+E8+4jtec524n9xBB7vZxY5LiEsv1V01yOWy4fGLg/Ynp8DcGh9Pz/iE259jP/Y0ZDn9jO/yNRfQ3LufYz/2NHQ5/4zr8jUP0Nz7n2M/9jRsOf+M7/I1H9Dch59jP/Y0fDn8TOvxNQPQ3MefYz/1NGA5/Ezv8TUT0Nynn2M/9TRwOf5M6/E1C9Dc559jP/U0aDn+TO/xNRvQ3JefYz/1NHg5/Uzr8TaHP3+fHTsU59vM+KbXj2CHCvNNQeJtC9rHTkY5t51da17/Pr3SO/HJz5sk4/XW5ZOc/PSmOERzH9sbM+39vfO1YZ/B5zcZlDP09cijO+570jlhncrxfcH/BOO17j+21ldHhi/f3ZqH/xnXwdOam9zWXjy8hDh/rO/zK7MBK57VzPrw2XD78vD+ZHZwyUDjlMTFdf60B27buXq1L99bdIjhsefkm9eEbwfW/3L3vied4LaLjd+daM6z1W1hrnLDWAWH1ymH1k2H1XGH1JWHVbt/6Zv+kdPyeyvF7asfvzvOtV09hxcVpK8T1v/H0vu78v+TfXcRjS//d+1qkF/zue03g73Lz35wP7DzN4nNMT+j/87zUz3/OyVlDj+U9t3pzKYuDk/c9HUL/9c1vL7esPr549eo9pr0e9p5Hsjr89NryPdeFON6XxXHskDCO48Ww45Ut9FjeeKX04RfJ8Z5uof++KF7ZHP93xst7zDgO/7zvjeX6K99SObj0Cv3dtxZK9ocRfPyM5OCSyfG69z1bHfz6OnyK5Hjd61MUn9ciuP772kYkx/9DHMfyntOd11tI14DyEK+bFHbum0b28TeqIwbe93wc+u+Lcst3DzaST5ziuP6KtT+uC9nHjk6MXQyf2Hn9iO6Igfc9w/4hdjFeELuojth5YxbDETuSf3mJ+9fPYxfLJ3ZeP2I6YuB9z6h/iF2sF8QuuiN23pjFcsSO5F8+4l7489jF8Ymd14/Yjhh43zPhH2IX5wWxi+mIXSzH797YkfzLT9xXfx67eD6x8/oR1xED73u+/ofYxXtB7GI74uWNWTxH7Ej+FSDu0T+PXQKf2MX1iU8kx3tm+/zNN3YJXhC7uI7YeWOWwBE7kn8Fifv9z2OXyCd2Xj8SOmLgfc+Cf4hdohfELr4jdt6YJXLEjuRfIeK1g+exS+ITO68fiR0x8L5nqU8sfGOX5AWxS+iInTdmSRyxc663pPd6Ijr4RHD91SNFcvzrfc+qv/Evlg9n72veODlrYFLH795/kzli4H3Nuw8Qz/Gadw87geM17/ohkeM1L+ckjte8PiV2vOb118nJ2zMmc7zm7YWSO17z+pnC8Zq37ns52X471xHePPJy8a7rnOuIHY73/hC6mLZtZQx9Xfrc7dzjC/Hh57VJ3N99vs5K54hDJIct556j9z0HHTy8ez4RQ9/ju1fp3AvyHjuN4//ef9P6HDusHOftu+fJG8Hhs6+/mcLwN4rPe9wOnPc9x/7BF9b1CWfMvfnuDv2/M/be95z6G57OY3lx6X18ts8Z3hilpfv3n/OmLye3j3/2e7x7k1F83uPMR+97Lv5NDHjXwP4zV95zlXeuvPxSOXh633Plb3g6j+XF+V7ziOPw2fveEMfvqX38DHFgnccOcbw3rQ/m7+YnXRhc/25+vO+5E/rvi+aHdP3z+X24bh97EXz+H8nxux+u9+Zz1tx/wymFgxPpWq5x9gZebtEdr7lcsvUqhY+v3v+H/P/Ytr0+cvvE2Bl379/+Dce4jte8OUHM2ef3TXj7K68N+3wX1dFfkWp7Pvt4GR02nb2es+/xvmdVhL/eGzP09zgOjDv031iu/63/zl7Ke1zv/537yBl97Ds5+vJxXpshxej5XnNazrHzOfumyD4xcZ7rve9JHBrzF9W4ND5x8p1LO77u0N/TOGJH8o95j0y+8PYHqf4hdilfEDtnf+CNmbOWkfzLy6yT9vGS+8TO60cKRwy878nwD7FL/oLYOa83emOW3PGa89xj/8Ty4fWi43v/7zxvZPE5PjF+hSP4cHCuS509BeteSvt4yRzxiOSw5Zw/73vyRviLh3ePIaJPLJ2xSuJzbOeekvffJD7HflH/6YyB5B4R8b7QMPcmvXFyxsb7nkJ/E4Pnez6hGzLOtX/kaP8dY2/+OmtapGgc/+w9o9MR/uLnzZMo0f6yTdq7NM7Yev332vfGOK7jPc78yeKD874/rHvUovi8x3m93PueMv+Qu6T7rMPcv/XyS+Tg6X1PhX+ZX877hn3zyzuf/y/yyzsHzvwi7RkaZ2y9/vvmQFzHe9wOHm4fnG8P4Dx/RvF5j9uB876n9j/kF+k+7zDzyx36f2fd8L6n7r/ML+e98r75FVZP7q/88s6Bv85fvvnlmwPO/HLuu2X0wXnf78yv/9OK68X7zd73tPyH/CLtM4aZXxl9/HXmV9t/mV/O+8UC6fzlDj2uM79InxsJM7+89r0xduaXc3/Pdw3jff/fnb8y+hzHGetu/5BfnPv7ws6vsO7v876n17/ML7eDr29++a4p/Jlf/9ez/D86f/nmgDO/sjp4+K7DvO935pfb64vPe5I7cN73DPyH/GL2977XPcPq773vGSLQ3/+/PH/93/UER365XRTbxhlbr/++ORDX8R7nNcTEPrjw9PfONar3PaP/Ib9I9+eGmV+Jffx15tf4f5lfznO9b365Q//2KvT3L1oHemPszK+IDh5uH5z3/c788r325n2P24HzvmfG/8P66M0j3/7eWR+975mtvL//v57FkV+sz3U6Y+v13zcH4jrek9rxmnfP0nkfjxfj3M90+xzf7RPbsK5n+d5zQzp3hamvSKG/O236noe97wlrn2XFP+SfL9b5OQrnPrHbgUnj81oE1/9e//D+37lPnC709zR/gwtr3e/dy/Zd9zvXO973rP+H8wInd/9zz4TzGqIzBs7+3vueTX/D03ksLy69j89xXP973YCozTCvW2QJwz/ve3YI9G3efPHDeS+f73nv/+6pcpz3WJ+Vd8bW67/XvnPfzPse57XxdEROqXw4+V7TDOtc5Hv9yXkuOvo3OeE873p9d67P3GHY9D2+8xzufc15H6YvN+e1fvs43vw7G+Gvv5935IQ3F7y5a//9dhh/dzm4uny4/t/vjryKxsnp59eqoju4RnLYctqP4bAfwSWbQ9F9ju21Fd2hde/vv0f4670xov133Lwx9/K3z39RQ3938vfFRfHBxXW8J6oDF80H5/2/8zPplxx54Z13+17eBq6/Yun72VdP6P/zvNwP8/swCyLfh+m8n/vffB+m87sqnefzyJR45SV+TvE/x45GOfZ/7lkLz/dZen2074dP7JgDG+Q9jtt5oGg+B/L+3zkppA/xGWcyOTm9yLnoYXByyfF5fvNaxDBskT6I99x/5wcrvTZe5L+XR1wHzsmT9WVy4f2Cu1hhcHIJ8onr4OO0xfyCP69/Xhv2icpNj735T9F22HQu8GI5Yu99Tw7He71NTxzH3yM6XvP+7vzgjW9eOT/E4jyhh4WN5IiH929h2Y7g+t8P2EZy/N97DOeXBUo3Is4Pozr5xHG87n2PCf33RYuz2C/wJWoYx8r/L4/lxUVx/O7l5+XqfW+I67+/kNoVxnud+o37Dzgnh+g+GOc50vlBUu/v/A9//0cTzi+ZccbcadPrk+/GiPPDtN73lAr9958+xO374VJnwxLPcdwX5ZT3PeX+wV68F9iLGsax3viXx/LivDnl/DCrl6v3vSGOv/+bnPonnHO+YvtgnPXMySmuj51orv/2xRP6b56X+TF58jg5Ofk7+fl+iD2ai/ZBaRPWecA3d/8uv53nNu976oX++08bf2HVt9QOn/UtaArnRxY0zi81pSxKCud//mUCnC9myc9clITZk3htOb90xvllzuIbCT7H9u1bnD2R80tpfb/IJKKDr/3zfCMh9PcYf4OL7INznsOcC81/Wl9FdrzmXBR7HMfnzGP+/+prXQ4bLh/OLgcX77+chfp/vvDOWy/btu5eqkf3dnXbd+/cutt/fe2dl5XHh3UE1/964Pse+ydiGK/ZP85u19llO7Pd+5pv5jij6X2/nRHOr4NWuB1UxHn29N2KsP3xZmxZn21L+2/eR56UD+Nv3kefVPDZErT/5n0Eyhs+fwvrbO2Me1nHa965Kud4zcu/vOM1r1orOF7zxtP5KBZv5bVVWtFna9fOWu92fOvO7/Zo3aN1jR4tOrVvWb5H55bd23fpXKZ5p04unx9nMJ3bIE7JRX7B+6M6fo8Wxt+9P06xhPWaUzDOU2lBx7EVJm2LYNL+5z3ek4/zGULOZXylMPZlK4axL0vaWsnrPLm6HDacP878dbbfrGdF2GL2tn8tLd3W6Nq+Z/Purb1SdsrFSz3Eh3pYdcj7nkCVfVhdTgwf7hrfE831335LdsK8ywr/+boPbx783c6S9z3pQv990S5AZJ84OTtl+8fuusL6yklfmfnGN8TBx3c1E+I4ljN3Q15gK9K/tPlv55351Y2k1dXzeY/oiE0k138/Esjrr/c9uUL/fdG8+55jvPPu/OpG7xxEDCO+L5oD526x8/FHf9crh7Vb7OyVy4T+rrPtKNDS2Xb4fkV1iONvzt2IENeLWxLv37ztQLkw/hZWu+L9W1jtivdvYbUr3r95W4CKYfzN2zJUCuNvlUNfqxzG36qEvlYljL9VDX2tahh/qxb6WrUw/lY99LXqYfytRuhrNcL4W83Q12qG8bdaoa/VCuNvtUNfqx3G394Mfe3NMP72Vuhrb4Xxtzqhr9UJ4291Q1+rG8bf6oW+Vi+Mv9UPfa1+GH9rEPpaA5+/2f916l+wHc9HrMGGt0NXoAVvh+4/V1W95+Cwrqw5H//p/d15TvWtq/a/mUJ/t9v4Rj5rVOdtds54+d5m5/uV0s/nLhonBjbnPA5+/9fTRvvLNqvNd9Yq5+1PzJ6BlUvOx0S0at2iR9sqXdq6fH6c2vb+nszxd+e8e48V1pVb57rGe+5I5vOat/fzXQPFCP2bN+fyhr5u56P3yuiLbq0rHcbfnTadP861T/DWur9i4v29lCNugXhrXSHH7955t3PHebeLwm2pv70S9aL+0HsVL6yrVN5zlfPKgffHPid4b3Ht3KV7+za9a7fuXrV951qte7bu2r19i06ta7dv1bpcmzatW3Yv06VH5+6tu7p8fv5py9y5NPBdAvq+1/5xTpv94wn9N89L/jj5OZe5XlvO5ZLzAlUEeS7G5RMz3xgkCCM+UXz+dXJ3vcAf32M4fw9x/e+WlPP3sF6LFYadBGG89v8BTABEHD5sQQA=","debug_symbols":"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RaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRaMZRacZRacZRacZRacZxfM/aAXBktppRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRjFoRjFoRjFoRjFoRjEuWFIHzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgmzSgmzSgmzSgmzSjmBUvqpBnFpBnFpBnF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LamNltRGS2qjJbXRktpoSW20pDZaUjstqZ2W1E5LaqcltdOS2mlJ7bSkdlpSOy2pnZbUQUvqoCV10JI6aEkdtKQOWlIHLamDltRBS+qgJXXSkjppSU3bYKG0DRZK22ChtA0WSttgobQNFpq0pE5aUhctqYuW1EVL6qIlddGSumhJXbSkLlpS0zZYKG2DhdI2WChtg4U2LambltRNS+qmJXXTkpq20UFpGx2UttFBaRsdlLbRQWkbHXRoST20pB5aUg8tqYeW1ENL6oEltV2wpLYLltR2falnWkS5fL88Kn9WI3Z9qSda3G7Xd7X7pZ5mcbvdL/Usi9vtfqknWdxu90s9x+J2u1/qKRY325Uv9QyL2+1+qSdY3G5311QlsE/X9nDdfLMg2Kdro2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llo2llp2llp2llv2BJ7bQn5p6fQCsIltR+wZLaL1hS+wVLar9oSS20pBZaUgstqWlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlGMWhGMWhGMWhGMWhGMS5YUgfNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKCbNKCbNKCbNKCbNKOYFS+qkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWiGcWiGcWiGcWiGcW6YEldNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKPYNKPYNKPYNKPYNKPYFyypm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YU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NKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKPoNKPoNKPoNKPoNKN4fgKtIFhSO80oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0outOSmmYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUg2YUg2YUg2YUg2YU44IlddCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYjzeKHb0y8Vz2Y8F/XyxXpn1UsiVP9Qvcr3frb5W0vF6dXxvNjY1m5uarU3N9qZmZ1GzD7es3z5/vrx01I1mW/vlvaRtrj+1+kf58rnL189dvn3u8v1zlx+fu/z83OXX5y6/P3f586nL78/9rtuf+123P/e7bn/ud92He+o7l/+533X7c7/r9ud+1+3P/a57HzWe9t7n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rbSkVlpSGy2pjZbURktq2hMVlfZERaVpRaVpRaVpRaVpRaVpRaVpRaVpRaVpRXVaUjstqZ2W1E5LatoTFZX2REWlPVFRaU9UVNoTFZX2REWlaUWlaUUNWlIHLamDltRBS+qgJTVNKypNK2rSkpr2REWlPVFRk5bUSUtqmlZUmlZUmlZUmlZUmlZUmlbUoiV10ZKa9kRFpT1RUWlPVFTaExWV9kRFpT1RUWlPVFTaExWVphWVphW1aUndtKRuWlI3LambltRDS+qhJfXQkpr2REWlPVFRh5bUQ0vqoSX10JJ6YElttCcqGu2JinbBktouWFLbBUtqoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFpxlFpxlFpxlFpxnF8xNoBcGS2mlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlG0WlGMWhGMWhGMWhGMWhGMS5YUgfNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKAbNKCbNKCbNKCbNKCbNKOYFS+qkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWkGcWiGcWiGcWiGcWiGcW6YEldNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKNYNKPYNKPYNKPYNKPYNKPYFyypm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUm2YUh2YUh2YUh2YUh2YU54Il9dCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4tCM4sCMol8wo3gKYiX1KYiV1KcgVlKfglhJfQpiJfUpiJXUpyBWUp+CWEl9CqIlNcwonoJoSQ0ziqcgWlLDjOIpiJbUMKN4CqIlNcwonoJoSQ0ziqcgWlLDjOIpiJbUMKN4CqIlNcwonoJoSQ0ziqcgWlLDjOIpiJbUMKN4CqIlNcwonoJoSQ0ziqcgWlLDjOIpiJbUMKN4fgAtqWFG8fwAWlLDjOL5AbSkhhnF8wNoSQ0ziucH0JIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbCkFppRFJpRFJpRFJpRlAuW1EIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikIzikozikozikozikozinrBklppRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRlFpRtFoRtFoRtFoRtFoRtEuWFIbzSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSg6zSg6zSg6zSg6zSien0ArCJbUTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKQTOKQTOKQTOKQTOKccGSOmhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWlGMWlGMWlGMWlGMS9YUifNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKBbNKBbNKBbNKBbNKNYFS+qiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWmGcWmGcWmGcWmGcW+YEndNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKM4NKM4NKM4NKM4NKM4Fyyph2YUh2YUh2YUh2YUh2YUh2YUh2YUh2YUh2YUh2YUh2YUh2YU5+FGUS/zl5e+an4s6L2LM+v16px6vVzkereS0pdKquP16vjebG9qdhY1+3C3+aHNyqZmdVOztqlZ39RsbGo2NzWLnqDO0DdvA2CL3WhWTcReCxfXP13/R8PoKep3NIyepH5Dw4aepn5Hw+iJ6nc0jJ6qfkfDd5msxF/fCGxufPAue3vXCHlrWL8X5LSCglZQPrygul4v/mEseC2oaAU1raCB/Ru6jz2/Z0FCK0hpBdGS2mlJ7bSk9qQVVLSCaEntAysoLlpBQivo0UmtMi8FqVr+WNA7rxw/3CaJ1v55Bg/77A34Z28gPnsDtHeaoL3TRNMKGva/ufPO8/LSeX7Oz//m8vrsDchnb+Ae73wZr3er6rp1t2rk9aVPdTdeWltev0/o+OFmVb332n7Ny70qlx8zTvOdq8832/396vNVaPzLv/tG2F3WEDzP8o+z9OdZ3u0s43mWdzvLfJ7l3c6ynmd5t7Pszz6IfPZZtj77LFuffZYt+F2c2w3A7+LcbsBhN/YqaAXRvnkt2jevRbufX7T7+U27n9+0+/mttIKMVhAtqZuW1E1L6qYlddOSumlJPbSkHlpSDy2ph5bUQ0vqoSX10JJ6aEk9tKQeVlLHdbGS+hTESupTECupT0GspD4FsZL6FMRK6lMQK6lPQaykPgWxkvoUREtqoSW10JJaaEkttKQWWlILLamFltRCS2qhJbXQklppSa20pFZaUistqZWW1EpLaqUltdKSWmlJrbSkNlpSGy2pjZbURktqoyW10ZIapu5PQbSkhqn7UxAtqZ2W1E5LaqcltdOS2mlJ7bSkdlpSOy2pYer+FERLapi6PwXRkjpoSR20pA5aUgctqYOW1EFL6qAlddCSOmlJnbSkTlpSJy2pk5bUSUvqpCV10pI6aUmdtKQuWlIXLamLltRFS2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RR0l6ROe/0ZPzy+6f2CMt+2x9TbxSb9vaLGVTSwiuQ+TPGuFQmuIsVVxHqa8CnIaQWxniZ8CmI9TfgUxHru+ymI9dz3UxDrue8hsOe+n4JYz30/BbGe+34KoiU17LnvpyBaUsOe+34KoiW10JJaaEmttKRWWlIrLamVltRKS2qlJbXSklppSa20pFZaUhstqY2W1EZLaqMltdGS2mhJbbSkNlpSGy2pjZbUTktqpyW105LaaUnttKR2WlI7LamdltROS2qnJXXQkjpoSR20pA5aUgctqYOW1EFL6qAlddCSOmhJnbSkTlpSJy2pk5bUSUvqpCV10pI6aUmdtKROWlIXLamLltRFS+qiJXXRkrpoSV20pC5aUhctqYuW1E1L6qYlddOSumlJ3bSkblpSNy2pm5bUTUvqpiX10JJ6aEk9tKQeWlIPLamHltRDS+qhJfXQknpgSa0XLKn1giW1XrCkVppR1AuW1EozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikYzikYzikYzikYzinbBktpoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFpRtFpRtFpRtFpRvH8BFpBsKR2mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlEMmlEMmlEMmlEMmlGMC5bUQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKSTOKSTOKSTOKSTOKecGSOmlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGsWhGsWhGsWhGsWhGsS5YUhfNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKDbNKDbNKDbNKDbNKPYFS+qmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWm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aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJbpt2ktumneS2aSe5bdpJ7pt2kvumneS+aSe5b9pJfqrf1OyiCco37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJfdNOct+0k9w37ST3TTvJY9NO8vhqO8lLX5vtn5v9YhPUr5t9+ARlmS8v7aK/blZi4np56ZSSPzX7RwP+2RsIdAOp17w2cP5P32kgP3sD9dkb6M/ewKAbqKv9NUNF4lbkZr9Gbs78r5H7+F3cH9msbGpWNzXLnhzu3Kx/qWZ/Pe0LeyK5c7Ps6eXOzbInnTs3y56K7tzs15qgft2sfq0J6kazX2uCutHs15qgbjT7tSaoG836pmY3TVC6aYLSTROUbpqgdNMEZZsmKNs0QdmmCco2TVCP38X9kc1u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ZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSNZhSNZhSNZhSNZhTtgiW10Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi04yi04yi04yi04zi+Qm0gmBJ7TSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSjGDSjGDSjGDSjGDSjGBcsqYNmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFJNmFJNmFJNmFJNmFPOCJXXSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLRjGLRjGLRjGLRjGJdsKQumlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlFsmlFsmlFsmlFsmlHsC5bUTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKQzOKQzOKQzOKQzOKc8GSemhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWBGsS+YUTwFsZL6FMRK6lMQK6lPQaykPgWxkvoUxErqUxArqU9BrKQ+BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0GwpBaaURSaURSaURSaUZQLltRCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pKM4pKM4pKM4pKM4p6wZJaaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUbRaEbRaEbRaEbRaEbRLlhSG80oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oOs0oOs0oOs0oOs0onp9AKwiW1E4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4z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UWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlG0WhG0WhG0WhG0WhG0S5YUhvNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKBrNKDrNKDrNKDrNKDrNKJ6fQCsIltROM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pBM4pBM4pBM4pBM4pxwZI6aEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYx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rpqlFi0y/9btqllq0Srzb92umqUWLTP/1u2qWWrROvNv3a6apRYtNP/W7apZatFK82/drpqlFi01/9btqllq0Vrzb92umqUWLTb/1u2qWWrRavNv3a6apRYtN//W7apZatF682/drpqlFi04/9btqllq0Yrzb92umqUWLTn/1u2qWWrRmvNv3a6apRYtOv/W7apZatGq82/drpqlFi07/9btqllq0brzb92umqUWLTz/1u2qWWrRyvNv3a6apRYtPf/W7apZatHa82/dbpqlZNXec1m191xW7T2XVXvP5fJV3W6apWTV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcVu09l1V7z2XV3nNZtfdcV+0911V7z3XV3nNdtfdcL1/V7aZZSr/a3vPS1277nW6/2Cx1o9uHz1KW+fLSLvrrbiUmrpeXTin5U7ffO5jP3sHj95P/Ux3kOeLXDs7/6XsdyKfvQD99B/bpO3B0B3W1v0apSNxK3uzX5M2Zn5L38fu+P7TbXNVtreqWPUPcu1v2vPHPdntj9lf2bHLvbtlzzL27Zc889+6WPR/du1tf1e3XmqVudfu1Zqlb3X6tWepWt19rlrrV7apZylbNUrZqlrJVs5StmqUev+/7Q7tdNUvZqlnKVs1StmqWslWzlK+apXzVLOWrZilfNUs9ft/3h3a7apbyVbOUr5qlfNUs5atmqVg1S8WqWSpWzVKxapZ6/L7vD+121SwVq2apWDVLxapZKlbNUrlqlspVs1SumqVy1Sz1+H3fH9rtqlkq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HGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGTjHGTjHGTjHGTjHGRftMxunINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnIMcnIMcnIMcnIMcnIOci5bZg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQQ3OQctEc5KkIltmnIlhmn4pgmX0qgmX2qQiW2aciWGafimCZfSqCZfapCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkN8eUIurCJfZNAf57dE5uIpwmU1zkN+W+uIqwmU2zUF+WzeEqwiX2TQH+Q1CwioSnIMUnIMUnIMUnIM8X6/jKqJltuAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOIcpOIcpOIcpOIcpF60zFacg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1Scg1ScgzScgzScgzScgzScg7SLltmGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5CGc5COc5COc5COc5COc5DnR+AqomW24xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xyk4xxk4Bxk4Bxk4Bxk4BxkXLTMDpyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDTJyDTJyDTJyDTJyDzIuW2YlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIlzkIVzkIVzkIVzkIVzkHXRMrtwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJwDrJxDrJxDrJxDrJxDrIvWmY3zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkE2zkEOzkEOzkEOzkEOzkHO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wjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIwjnIxjnIxjnIxjnIxjnIvmiZ3TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgH2TgHOTgHOTgHOTgHOTgHORctswfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIAfnIIfmIO2iOchTESyzT0WwzD4VwTL7VATL7FMRLLNPRbDMPhXBMvtUBMvsUxEus2kO8lSEy2yagzwV4TKb5iBPRbjMpjnIUxEus2kO8lSEy2yagzwV4TKb5iBPRbjMpjnIUxEus2kO8lSEy2yagzwV4TKb5iBPRbjMpjnIUxEus2kO8lSEy2yagzwV4TKb5iBPRbjMpjnIUxEus2kO8lSEy2yagzwV4TKb5iBPRbjMpjnIUxEus2kO8vxgXGbTHOT5wbjMpjnI84NxmU1zkOcH4zKb5iDPD8ZlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KsJlNs1BnopwmU1zkKciXGbTHOSpCJfZNAd5KqJltuAcpOAcpOAcpOAcpFy0zBacgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScgxScg1Scg1Scg1Scg1Scg9SLltmKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CKc5CGc5CGc5CGc5CGc5B20TLbcA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScQ7ScQ7ScQ7ScQ7y/AhcRbTMdpyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDDJyDDJyDDJyDDJyDjIuW2YFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkPFwB6mX+ctLXzU/VvTexZn1enVOvV4ucr1bSelLJdXxenW8dOuruo1V3eaqbmtVt72qW9B7+zsXZ14vF2e9VW/S3+sn6dp/U/2gueHfVL+S/2s5Hc5bty12478WNRF7LVxc/3T9947RU8xv6djXdYyeZn5Lx+iJRmbk7V1PtN7r4GtNKdmv79s589P7dn6tKeVWt7Op24fr84/tVlZ1i56X/vlPF2avny7i508X9cXu+Nzo1ld1+8Xu+Nzo9ovd8bnR7Re743Oj2y92x+dGt19rlrrRbX+tWepWt19rlrrV7apZqlfNUg/fwvGx3a6apXrVLNWrZqleNUv1qllqVs1Ss2qWmlWz1KyapR6+Hedju101S82qWWpWzVKzapaaTbNUXptmqbw2zVJ5bZql8to0S+Xlq7rdNEvltWmWymvTLJXXplkqr1WzlKyapWTVLCWrZilZNUs9fJvcx3a7apaSVbOUrJqlZNUsJatmKV01S+mqWUpXzVK6apZ6+JbHj+121Sylq2YpXTVL6apZSlfNUrZqlrJVs5StmqVs1Sz18O2rH9vtqlnKVs1StmqWslWzlK2apXzVLOWrZilfNUv5qlnq4VuRP7bbVbOUr5qlfNUs5atmKV81S8WqWSpWzVKxapb6ahvFb3Trq7pdNUt9tY3iN7pdNUt9tY3iN7pdNUvlqlkqV81S7N3md+921SzF3ml+925XzVLsXeZ373bVLPXF9p7f6nbVLPXF9p7f6nbVLLVq73mu2nueq/ae56q957lq73mu2nueq/ae56q957lq73mu2nueq/ae56q957lq73mu2nueq/ae56q957lq73mu2nueq/ae56q957lq73mu2nueq/ae56q957lq73mu2nueq/ae56q957Vq73mt2nteq/ae16q953X5qm43zVK1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp73qv2nveqvee9au95r9p73pev6nbTLNWr9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3ns2rv+azaez6r9p7Pqr3nc/mqbjfNUrNq7/ms2ns+q/aez6q957Nq7/k8fu+5Zb68tIv+uluJievlpVNK/tTt9w7003dg6A5Sr3nt4PyfvteBf/oO4tN3kJ++g0J3UFf7a5SKxK3kzdbXhmd+Tt5e1e1s6vbx+74/tFv2DHHvbtnzxj/b7Y35UNmzyb279VXdsmeee3fLno/u3e3XmqVudfu1Zqlb3X6tWepGt/a1Zqlb3X6tWepWt6tmKVs1Sz1+3/eHdrtqlrJVs5StmqVs1Sxlq2YpXzVL+apZylfNUr5qlnr8vu8P7XbVLOWrZilfNUv5qlnKV81SsWqWilWzVKyapWLVLPX4fd8f2u2qWSpWzVKxapaKVbNUrJqlctUslatmqVw1S+WqWerx+74/tNtVs1SumqVy1SyVq2apXDVL1apZqlbNUrVqlvp/2ru7HUly9DzAt5Qkvx/yagzZMIwFBMmwZAM+8L07Znequ1ddmt4pZcU+rZyTARqTGfwYFXyTGRkP2S81l7p/ve+/a29fai7VLzWX6peaS/VLzaX6peZS+6XmUvul5lL7peZS+6XmUvev9/137e1LzaX2S82l9kvNpfZLzaX2S82lzkvNpc5LzaXOS82lzkvNpe5f7/vv2tuXmkudl5pLnZeaS52XmkudF5pLxePxQnOpq7cvNJe6evtCc6mrty80l7p6Gy/V2xeaS129faG51NXbF5pLXb19obnU1duXmkuNl5pL4et9P7u3LzWXwtcRf3Zv46V6+1JzKXwt82f39qXmUv/J1j3/UW9fai71n2zd8x/19qXmUq+07vnV25eaS73SuudXb19qLvVK655fvX2pudQrrXt+9fal5lKvtO751duXmku90rrnV29fai71SuueX719qbnUK617fvX2peZSr7Tu+dXbl5pLvdK651f1LzWXeqV1z6/qX2ou9Urrnl/Vv9Rc6pXWPb+qf6m51Cute35V/1JzqVda9/zq7UvNpV5p3fOrty81l3qldc+v3r7UXOqV1j2/evtSc6lXWvf86u1LzaXuX/f8+nni7dCPPj/o7enzdm7G2WP9oLdzjbG+FD5i/tXrf+3xeLkez5fr8Xq5HsfL9Thfrsf1cj3ul+vxfrken1frcb/cnOv2NdLHia996PVtj3+taHIVLa6i4Cp6ymf++PoFap0fVNRrfv36NL5WNN8qKq6i5iraXEVHq+g56zw/taLBVTS5ihZXUXAVpfYpsu/P7H58efHpd85RcxVtrqKjVXQeXEXcPPtw8+xzd2bPcd7+avO61//tX+2dI2f3lzzNPfc736ZO/PQ9yJ++B/XT96B/+h5sLlsOVtG4fZ3OH1ekfUaNh/YZNR7avaDxeMZnTuWXivrxo3uWZ3w59MnHDw4993g79Nz5zS3Lfu/Yv0wCfn319YP7N9Ey651Xn/nYv776zPmjH9z/htuh4ynLUv5xMn89mfXHyXzeyew/TubzTub+42Q+72SeP07m007mU1Yc/eNk/noyxx8n83knc/5xMp93MtcfJ/N5JzO072RD+2VlDPyu2HVNvh26rnbe+yvjd8X+hh7sn74H52fvwXz89D0YP30P5k/fA/yXqr+hB/HT9wD/pepv6EFps4TbV8j8cUXaL0ljcr8kLe6XpMX9krS4X5IW90vSuvsz4UdPzYyVXEXaE2pjaU+ojaU9oTaW9oTaCO0JtRGDq2hyFS2uotA+RYK79xVcZgeX2cFldnCZnVxmJzfPTm6enVxmP2e1padWxM2zk8vs5DI7uXsjyd0bKe7eSHGZXVxmF3dvpLjMLi6zi8vs4jK7uHl2cfPs5ubZzd0bae7eSHPzbG6VjNHcvZHmMru5zG4us5vL7M1l9uYye3OZvbnM/juskvGjirh59uaeG9nccyObuzeyuXsjh7s3wq2SMbhVMsbh7o0cLrMPl9mHm2cfbp59uHn20ebZ86HNs+dDm2fPhzbPng9tnj0fgX2KzId2b2Q+tMyeDy2z50PL7PngMntwmT20efYc2jx7Di6zn+Ncn1qRNs+eg8vswWX20O6NzKHdG5lTuzcyJ5fZk8vsqd0bmZPL7Mll9uQye3KZPbl59uTm2YubZy/u3sji7o0sbp79HAf5zE+Rxd0b4Rzk5Bzk5Bzk5Bzk5Bzk5Bzk5Bzk5BzkfI6DfGpF3Dw7tOdGZmjPjczg7o0Ed28kuXsjnIOcnIOcyd0b4Rzk5Bzk5Bzk5BzkTG6endw8u7h5dnHz7OLm2cXNs2/fzf6HnyLF3RvhHOTkHOTkHOTkHOTkHOTkdguf3G7hk3OQ8zkO8qkVcfNszkFOzkHO5u6NNHdvZHP3RjaX2ZvL7M3dG+Ec5OQc5OR2C5/cbuGT2y18cruFT2638Hm4eyOHuzdyuHn2cxzkMz9FDndvhHOQk3OQk3OQk3OQi3OQi3OQi3OQi3OQ66HNs9dDm2evh/bcyHpoz42sh3ZvZD20eyNraPdGFucgF+cg19DujSxuv8/F7fe5BpfZg8tszkEuzkEuzkEuzkEuzkEuzkGuyWX25DKb2w9ycftBLm4/yMXtB7m4/SAXtx/k4vaDXNx+kItzkItzkGtxmb24zF5cZi8us4PL7OAyO7jMDi6zuf0gF7cf5OIc5OIc5OIc5OIc5OIc5OIc5OIc5OIc5Eous5PL7OQyO7nM5vaDXNx+kIvbD3Jx+0Eubj/Ixe0HuTgHuTgHuYrL7OIyu7jMLi6zm8tszkEuzkGu5jKb2w9ycftBruYyu7nM5hzk4hzk4hzk4hzk4hzk4hzk2lxmby6zuf0gF7cf5OL2g1zcfpCL2w9ycftBLm4/yMXtB7k4B7k4B7kOl9mHy+zDZfbRMjseWmbHQ8vseGiZHQ8ts68muIq0zA7OQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI5B5mcg0zOQSbnIPOhZXZyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjiHGRxDrI4B1mcg6yHltnFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCbc5DNOcjmHGRzDrIfWmY35yCbc5DNOcjmHGRzDrI5B9mcg2zOQTbnIJtzkM05yOYcZHMOsjkH2ZyDbM5BNucgm3OQzTnI5hxkcw6yOQfZnINszkE25yCbc5DNOcjmHGRzDrI5B9mcg2zOQTbnIJtzkM05yOYcZHMOsjkH2ZyDbM5BNucgm3OQzTnI5hxkcw6yOQfZnINszkE25yCbc5DNOcjmHGRzDrI5B9mcg2zOQTbnIJtzkM05yOYcZHMOsjkH2ZyDbM5BNucgm3OQzTnI5hxkcw6yOQfZnINszkE25yCbc5DNOcjmHGRzDrI5B9mcg2zOQTbnIJtzkM05yOYcZHMOsjkH2ZyDbM5BNucgm3OQzTnI5hxkcw6yOQfZnIPcnIPcnIPcnIPcnIPcDy2zN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgN+cgD+cgD+cgD+cgD+cgz0PL7MM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yMM5yKM5yHxoDvKqCMvsqyIss6+KsMy+KsIy+6oIy+yrIiyzr4qwzL4qwjL7qojLbM1BXhVxma05yKsiLrM1B3lVxGW25iCvirjM1hzkVRGX2ZqDvCriMltzkFdFXGZrDvKqiMtszUFeFXGZrTnIqyIuszUHeVXEZbbmIK+KuMzWHORVEZfZmoO8KuIyW3OQV0VcZmsO8qqIy2zNQV4VcZmtOcirIi6zNQd5VcRltuYgr4q4zNYc5FURl9mag7wq4jJbc5BXRVxmaw7yqojLbM1BXhVxma05yKsiLrM1B3lVxGW25iCvirjM1hzkVRGX2ZqDvCriMltzkFdFXGZrDvKqiMtszUFeFXGZrTnIqyIuszUHeVXEZbbmIK+KuMzWHORVEZfZmoO8KuIyW3OQV0VcZmsO8qqIy2zNQV4VcZmtOcirIi6zNQd5VcRltuYgr4q4zNYc5FWRltmDc5CDc5CDc5CDc5DjoWX24Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk5Bzk5Bzk5Bzk5BzkfGiZPTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHOTkHuTgHuTgHuTgHuTgHuR5aZi/OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQS7OQQbnIINzkME5yOAc5NUEV5GW2cE5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQSbnIJNzkMk5yOQcZD60zE7OQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B1mcgyzOQRbnIItzkPXQMrs4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRzDrI5B9mcg2zOQfZDy+zmHGRzDrI5B9mcg2zOQTbnIJtzkM05yOYcZHMOsjkH2ZyDbM5BNucgm3OQzTnI5hxkcw6yOQfZnINszkE25yCbc5DNOcjmHGRzDrI5B9mcg2zOQTbnIJtzkM05yOYcZHMOsjkH2ZyDbM5BNucgm3OQzTnI5hxkcw6yOQfZnINszkE25yCbc5DNOcjmHGRzDrI5B9mcg2zOQTbnIJtzkM05yOYcZHMOsjkH2ZyDbM5BNucgm3OQzTnI5hxkcw6yOQfZnINszkE25yCbc5DNOcjmHGRzDrI5B9mcg2zOQTbnIJtzkM05yOYcZHMOsjkH2ZyDbM5BNucgm3OQzTnI5hxkcw6yOQfZnINszkE25yCbc5Cbc5Cbc5Cbc5Cbc5D7oWX25hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk5hzk4Rzk4Rzk4Rzk4RzkeWiZfTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTgHeTQHWQ/NQV4VYZl9VYRl9lURltlXRVhmXxVhmX1VhGX2VRGW2VdFWGZfFXGZrTnIqyIuszUHeVXEZbbmIK+KuMzWHORVEZfZtzvI+VjxduhHn28req/8Pl/r3+NrJWO89/q5xlhfCh8x/+r1v/b4vFqPb3ecf/8ej5fr8Xy5Hq+X6/FTPvPHWydGr/ODT49e88uLc3zt8XyrKLmKiquob6+oH19efPqdijZX0dEqeo6jfeZ19BxH+9SKJlfR4iriMntxmb24zF7NVbS5irjMjgdX0eAqmlxFd2f2HOetojlXfVvRO0fO7i/j4Jet2N+Zl0f89D3In74H9dP3gPvMCe4zJ45WUT7s6+7kl/Stq513rrscP30P5k/fg2d8BlZ+uZfVjx/dyzrjy6Gv8n5w6LnH26Hnzm9uZfV7x47HebuTFePbqJv1zqvPfOxfX33mzP/3H79N9hRS/cfJ/PVk5h8n83kns/44mc87mf3HyXzeydx/nMznnczzs89H6qef1dZPP6utn35WW/idnb+hB/HT9yC1+31VXEXcL7TF/UJb3N3+5u72N3e3v7m7/b24ioKriMvs5jK7ucxuLrOby+zNZfbmMntzmb25zN5cZm8uszeX2ZvL7M1l9uYy+3CZfbjMPlxmHy6zD5fZh8vsw2X24TL7cJl9tMweDy2zx0PL7PHQMns8tMweDy2zx0PL7PHQMns8tMweDy2zx4PL7MFl9uAye3CZPbjMHlxmDy6zB5fZg8vswWX24DJ7cpk9ucyeXGZPLrMnl9mTy+zJZTYn+wcn+wcn+8fiMntxmb24zF5cZi8usxeX2YvL7MVl9uIym5P9g5P9g5P9g5P9I7jMDi6zg8vs4DI7uMwOLrODy+zkMju5zE4us5PL7OQyO7nMTi6zk8vs5DI7ucwuLrOLy+ziMru4zC4uszkHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHObQdsq+KtJ37hrZD9lWRtnPf0HbIvirSdu4b2g7ZV0Xazn1D2yH7qkjbuW9oO2RfFWmZPbkdsie3Q/bkdsie3A7Z86Fl9uR2yJ7cDtmT2yF7cjtkT26H7MntkD25HbInt0P25HbIntwO2ZPbIXtyO2RPbofsObjMHlxmTy6zJ5fZk8vsyWX25DJ7cpk9ucyeXGZPLrMnl9mLy+zFZfbiMntxmb24zF5cZi8usxeX2YvL7MVldnCZHVxmB5fZwWV2cJkdXGYHl9nBZXZwmR1cZieX2clldnKZnVxmJ5fZyWV2cpmdXGYnl9nJZXZxmV1cZheX2cVldnGZXVxmF5fZxWV2cZldXGY3l9nNZXZzmd1cZjeX2c1ldnOZ3VxmN5fZzWX25jJ7c5m9uczeXGZvLrM3l9mby+zNZTbnICfnICfnICfnICfnICfnICfnICfnICfnICfnICfnICfnIBfnIBfnIBfnIBfnINdDy+zFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjFOcjgHGRwDjI4Bxmcg7ya4CrSMjs4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjkHGRyDjI5B5mcg8yHltnJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCTc5DJOcjkHGRyDjI5B5mcg0zOQSbnIJNzkMk5yOQcZHIOMjkHmZyDTM5BJucgk3OQyTnI5Bxkcg4yOQeZnINMzkEm5yCLc5DFOcjiHGRxDrIeWmYX5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnIMszkEW5yCLc5DFOcjiHGRxDrI4B1mcgyzOQRbnIItzkMU5yOIcZHEOsjgHWZyDLM5BFucgi3OQxTnI4hxkcQ6yOAdZnINszkE25yCbc5DNOch+aJndnINszkE25yCbc5DNOcjmHGRzDrI5B9mcg2zOQTbnIJtzkM05yOYcZHMOsjkH2ZyDbM5BNucgm3OQzTnI5hxkcw6yOQfZnINszkE25yCbc5DNOcjmHGRzDrI5B9mcg2zOQTbnIJtzkM05yOYcZHMOsjkH2ZyDbM5BNucgm3OQzTnI5hxkcw6yOQfZnINszkE25yCbc5DNOcjmHGRzDrI5B9mcg2zOQTbnIJtzkM05yOYcZHMOsjkH2ZyDbM5BNucgm3OQzTnI5hxkcw6yOQfZnINszkE25yCbc5DNOcjmHGRzDrI5B9mcg2zOQTbnIJtzkM05yOYcZHMOsjkH2ZyDbM5BNucgm3OQzTnI5hxkcw5ycw5ycw5ycw5ycw5yP7TM3pyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyD3JyDPJyDPJyDPJyDPJyDPA8tsw/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nIA/nII/mIPuhOcirIiyzr4qwzL4qwjL7qgjL7KsiLLOvirDMvirCMvuqCMvsqyIuszUHeVXEZbbmIK+KuMzWHORVEZfZmoO8KuIyW3OQV0VcZmsO8qqIy2zNQV4VcZmtOcirIi6zNQd5VcRltuYgr4q4zNYc5FURl9mag7wq4jJbc5BXRVxmaw7yqojLbM1BXhVxma05yKsiLrM1B3lVxGW25iCvirjM1hzkVRGX2ZqDvCriMltzkFdFXGZrDvKqiMtszUFeFXGZrTnIqyIuszUHeVXEZbbmIK+KuMzWHORVEZfZmoO8KuIyW3OQV0VcZmsO8qqIy2zNQV4VcZmtOcirIi6zNQd5VcRltuYgr4q4zNYc5FURl9mag7wq4jJbc5BXRVxmaw7yqojLbM1BXhVxma05yKsiLrM1B3lVxGW25iCvirjM1hzkVRGX2ZqDvCriMltzkFdFWmYPzkEOzkEOzkEOzkGOh5bZg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQk3OQk3OQk3OQk3OQ86Fl9uQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5OQc5HyKg9wnvjaSP6joMXu+vfoxd315+azHO6+fe4+3Us7j8eXVa7578F5vxx7fnJvrxb9297xUd58iOH+i7j7jo+zs8/bqx6jf7m7u8Xbo3OtrRWO829k1xvpSyYi/fv2vXZg/fxfWz9+F+Pm7kD9/F+rn70L//F3YP38X7v4aeN2Yjy/97fPttOu9k9Pn6yRtj/WEHt/OgP+ePb7+9V//15/+8R//9D/+yz/+83/7h3/90z//07/88u7HL/95/3Zb7y/TlH1V8PV4s95p/9tXX3em/+rVv5zv+Pwm8vObqM9voj+/if35TZxPb+L9u0TPbWJ8fhPz85v4/NE9P390z88f3fPzR/f8/NE9P390z88f3evzR/f6/NG9Pn90r88f3evzR/f6/NG9Pn90r88f3evzR/f6/NEdTxjda32ZH6/u8fXV+d5EfX4zO87HX7/6l4KGVtDUClpaQaEVlFpBpRXUWkFbK+hgBaWW1KkldWpJnVpSp5bUqSV1akmdWlKnltSpJXVpSV1aUpeW1KUldWlJXVpSl5bUpSV1aUldWlK3ltStJXVrSd1aUreW1K0ldWtJ3VpSt5bUrSX11pJ6a0m9taTeWlJvLam3ltRbS+qtJfXWknprSX20pD5aUh8tqY+W1EdL6qMl9dGS+mhJfbSkPlpSj4cW1ePxyVn95zaeEb993vqx9mN+38a6oY24oY28oY26oY2+oY397DbO922cz29jPG5o4xnjfNfXNvr7v8eYN7Sxbmgjbmgjb2ijbmjjGeNjnzflu87Y37XxDO7wwzaecF1F5Rtji9rr+zbihjbyhjbqhjZ++Pkxv53N/EpvfgwA3n3X+ci7fvyY/rvvGh961/zQu9aH3hUfeld+6F31oXd96NpYH7o21oeujfjQtREfujbiQ9dGfOjaiA9dG/GhayM+dG3Eh66N+NC1ER+6NvJD10Z+6NrID10b+aFrIz90beSHro380LWRH7o28kPXRn7o2qgPXRv1oWujPnRt1IeujfrQtVEfujbqQ9dGfejaqA9dG/Wha6M/dG30h66N/tC10R+6NvpD10Z/6NroD10b/aFroz90bfSHro39oWtjf+ja2B+6NvbfcG38UNZ9+crQ33wTzfWXBuKzG8jPbqA+t4H5lPuwZ80v36Mj/+33tvmM+5cxx9urY8b6vo26oY2+oY19Qxvn89t4xv3LH7Yxbmhj3tDGuqGNeEIb48uSTO+3kTe0UTe00Te0sW9o4ynjvL62sb+7Rzrn44Y2xg1tzBvaWDe0ETe08Yxxvtbbbwix4p026oY2+oY29g1tnM9v4xkL0MSa9bWN830b44Y25g1trBvaiBvayBvaqCe3kfV9G31DG/uGNp4xznO+/eYZub5v4xlL0fywjXFDG/OGNp4xzuM8vrbRf9XG968e3yyVPb9Zm31dv17/uaLgKkquouIqaq6izVV0tIqesRTMkysaXEWTq4jL7OQyO7nMTi6zk8vs5DI7ucyu20d/9tuC6Lm/fvtZj19X2A2sntuv6nq8vbge9X09G6vnWPX0A6vnk2cgf27jKd/s6ss37XrsH6XK+rLzwC///9fXxiP/Us/C6gmsnsTqKayexurZWD3n9npqv9XzzW5kb/XsB1bPwOqZWD0LqyewehKr5/Z8no8vO03N/r6exurZWD3Hquc8sHoGVs/E6nmKsptfnn6qd74zPGMpix+2kTe0UTe08Yy8+23JN5+xLMQP2zif3sZ6xtoNP2xj3NDGvKGNdUMbcUMbeUMbdUMbfUMb+4Y2bhjn44ZxPm4Y5+OGcT5uGOfjhnE+bhjn44ZxPm4Y5+OGcT5uGOfzhnE+bxjn84ZxfsPqGOuG1THWDatjrBtWx1jzhnE+bxjn84Zxvm4Y5+uGcb5uGOfrhnG+bhjn64Zxvm4Y5+uGcb5uGOfrhnEeN4zzuGGcxw3jPG4Y53HDOI8bxnncMM7jhnEeN4zzuGGc5w3jPG8Y53nDOM8bxnneMM7zhnGeN4zzvGGc5w3jPG8Y53XDOK8bxnndMM7rhnFeN4zzumGc1w3jvG4Y53XDOK8bxnnfMM77hnHeN4zzvmGc9w3jvG8Y533DOO8bxnnfMM77hnG+bxjn+4Zxvm8Y5/uGcb5vGOf7hnG+bxjn+4Zxvm8Y5/uGcX5uGOfnhnF+bhjn54Zxfm4Y5+eGcX5uGOc3PA+3bngebt3wPFzc8Dxc3PA8XNzwPFzc8DxcPOKGNvKGNuqGNvqGNvYNbdwwzm94Hi5ueB4ubngeLm54Hi5ueB4ubngeLm54Hi5ueB4ubngeLm54Hi5ueB4ubngeLm54Hi5ueB4ubngeLm54Hi5ueB4ubngeLm54Hi5ueB4ubngeLm54Hi5ueB4ubngeLm54Hi5ueFYtbnhWLW54Vi1ueFYtbnhWLcJa/yjuX6/yB/UkVk9h9dy/PtSXraprru/r2Vg9x6rn/jUqf1DP7StU1hd7XjO+r2di9SysnsDqSayewuqx1u+LtNbvi7TW74uy1u+LGlg9E6tnYfUEVk9i9RRWD5bP2Pqqga2vGtj6qtFYPjeWz43lc2P53Fg+N5bPLeXz9a/5yyvf/6Evvt6oGV+/CFT/0o/3f7b7zXeM3/2O+bvfsX7fO65/rD/3/92Lttbb3jx7fnuj8y8nLv78xnf/mrXfGtz9zd8yxy81vv/D7W+/5fzut7z/9/ntt4zf/5b5+9/y7p/oPN4u/zPHX73l++t51dufZfXX+4dz/2W34fjcw+fvO/wvb3k3gE6+naPzzY7J71c0++2G19zfV9T/0cN/2+HHXx3++9ee83ZvYDzG47uu7jtrmfH22lnru9NymFLe/+Xz71PKcEqZTinLKSWcUvLWUn4r41Y9s5TvD9+fe/j9uYc/n3r4938z/o3Pgd/7ofH+4ia/q4HfvI7fX9jkicdfn3z8+OTj5ycfvz75+P3Jx9//8eP/++F2/St/eeX7GbQf+eVb4deZ9Mz893Plt99yfvdb3h//v/2W8fvfMn//W9bvf0v8/rf8O7cz1pdvhuO7t9TvfMv1r/rlle9eAmM/vmxdsqv/zdfQ65//5x/+15/+4b/+43//l+tNv/zf//1P/+1f//TP//TrP//1//7Pv/yf68X/Hw=="},{"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":"field"},"visibility":"private"},{"name":"signing_pub_key_y","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":"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":"7Z3dbhw3EoXfRde+IOuPZF5lsVg4iRMYMOwgdhZYBHn3HcmaHsk99sSt6dIXdd/EVszuqi7ynCF7+FF/3vz85sc/fv3P2/e/fPh488O//rx59+Gn15/efnh/+OnPm6p3/+/jb6/f3/748dPr3z/d/FBe3bx5//Phz79e3fzy9t2bmx+s2F+vZu2kjXbfVHodU+uq/UxrkxH3rU3bpda1iPp988PfrU/tJcq59h56bO5dptYqZ2/epsZVHjX+96ubantR5kXxvSjzosRelHlR2l6UeVH6XpR5UcZelFlRpOxFmRelgovS5FSUHheKIr3XYy6jlCcVRRKLomMci2LNwSNF96LMi2J7UeZF8b0o86LEXpR5URq4KM/26fOkGa2OODY9PPAp7VrL3c3HijfX75hh3TY/O/cQb8d+OpR6XBoDfZpTaGmnEDHONS4uUy+VePAAAROGyl6ar5VG99J8rTSGL81zmar6XpqvlSb20nytNO3ppdGq02dmjbhQmlF9yt0vToB6PU2AXE8fx22c/fCeqq7DT49aJe6etW/oWceLelafJralxKNnPfdxM45p11D7sjJWtluZOFWmic8qU19QZQ73mF7FlX6xMuVUmSrlQetzfq2nWzd7kLWfvbP2yX+LXZ4sVWlTJr2eWre7LpK9iwBdNI7We0jEvuwi3buI3kW2dxG9i3zvoufvIilj6qIHS4f7Loq9i+hd9JJWdy+0i17SovQf20Wq0/sXtfJlF72ktfSaXeTlmHaUcqGLtNr0/qL2dir53Wspf0mLdEzJJY6NVeYl31f/6SXfV/PpJd9X5+klt73k2SXfV8/pJd9Xw+kl31e36SXfV6vpJd9Xn9klj331+fdKHtWOJX/wjuVr72RqnF7JPCr5maRteiFj9gCkuO+ffanK7p99Xcvun30RzO4f227/yJR2FZNH/XNbmQ0vbC9UZsPrzwuV2fAyUfrRwKpKXHC7OqZM6ugPTOn8d2bPt2k5NrwKfaE9uuFF7svs0fay1tDj+Kh21y/f7NEhpd+3HvJwm3U9W3Ot9Xjzw98ffn59Zg7by1rtPmcls9elelgIHBuXB0TuPR7astdhWtsEMdUhs3wMlo/D8glYPg2WT4flM1j59ALLp8LyEVg+MH/uMH/uMH/uMH/uMH/uMH/uMH8eMH8eMH8eMH8eMH8eMH8eMH8eMH8eMH8eMH8eMH+uBWbQh+/8aAnBLLoWmEcfvpulJQRz6VpgNn140UxLCGbUtdCcutKcutKcutKcutKcutKcutKcutKcutKcutKcutKcWmhOLTSnFppTC82phebUQnNqoTm10JxaaE4tNKdWmlMrzamV5tRKc2qlObXSnFppTq00p1aaUyvNqY3m1EZzaqM5tdGc2mhObTSnNppTG82pjebURnNqpzm105zaaU7tNKd2mlM7zamd5tROc2qnObXTnDpoTh00pw6aUwfNqYPm1EFz6qA5ddCcOmhOHTSnbjSnbjSnbjSnppGIlYYiVhqLWGkwYqXRiJWGI1Yaj1hpQGKlEYmVhiRWGpNYaVBipVGJlYYlVhqXWGlgYqWRiZWGJlYam1hpcGKl0YmVhidWGp9YaYBipRGKlYYoVhqjKDRGUWiMotAYRaExilJgTi00RlFojKLQGEWhMYpCYxSFxigKjVEUGqMoNEZRaIyi0BhFoTGKQmMUhcYoCo1RFBqjKDRGUWiMotAYRaExikJjFIXGKAqNURQaoyg0RlFojKLQGEWhMYpCYxSFxigKjVEUGqMoNEZRaIyi0BhFoTGKQmMUhcYoCo1RFBqjKDRGUWiMotAYRaExikJjFIXGKAqNURQaoyg0RlFojKLQGEWhMYpCYxSFxigKjVEUGqMoNEZRaIyi0BhFoTGKQmMUhcYoCo1RFBqjKDRGUWiMotAYRaExikJjFIXGKAqNURQaoyg0RlFojKLQGEWhMYpCYxSFxigKjVEUGqMoNEZRaIyi0BhFoTGKQmMUhcYoCo1RFBqjKDRGUWiMotAYRaExikJjFIXGKAqNUVQao6g0RlFpjKLSGEUtMKdWGqOoNEZRaYyi0hhFpTGKSmMUlcYoKo1RVBqjqDRGUWmMotIYRaUxikpjFJXGKCqNUVQao6g0RlFpjKLSGEWlMYpKYxSVxigqjVFUGqOoNEZRaYyi0hhFpTGKSmMUlcYoKo1RVBqjqDRGUWmMotIYRaUxikpjFJXGKCqNUVQao6g0RlFpjKLSGEWlMYpKYxSVxigqjVFUGqOoNEZRaYyi0hhFpTGKSmMUlcYoKo1RVBqjqDRGUWmMotIYRaUxikpjFJXGKCqNUVQao6g0RlFpjKLSGEWlMYpKYxSVxigqjVFUGqOoNEZRaYyi0hhFpTGKSmMUlcYoKo1RVBqjqDRGUWmMotIYRaUxikpjFJXGKCqNUVQao6g0RlFpjKLSGEWlMYpKYxSVxigajVE0GqNoNEbRaIzi4Q9aQjCnNhqjaDRG0WiMotEYRaMxikZjFI3GKBqNUTQao2g0RtFojKLRGEWjMYpGYxSNxigajVE0GqNoNEbRaIyi0RhFozGKRmMUjcYoGo1RNBqjaDRG0WiMotEYRaMxikZjFI3GKBqNUTQao2g0RtFojKLRGEWjMYpGYxSNxigajVE0GqNoNEbRaIyi0RhFozGKRmMUjcYoGo1RNBqjaDRG0WiMotEYRaMxikZjFI3GKBqNUTQao2g0RtFojKLRGEWjMYpGYxSNxigajVE0GqNoNEbRaIyi0RhFozGKRmMUjcYoGo1RNBqjaDRG0WiMotEYRaMxikZjFI3GKBqNUTQao2g0RtFojKLRGEWjMYpGYxSNxigajVE0GqNoNEbRaIyi0RhFozGKRmMUncYoOo1RdBqj6DRG0QvMqZ3GKDqNUXQao+g0RtFpjKLTGEWnMYpOYxSdxig6jVF0GqPoNEbRaYyi0xhFpzGKTmMUncYoOo1RdBqj6DRG0WmMotMYRacxik5jFJ3GKDqNUXQao+g0RtFpjKLTGEWnMYpOYxSdxig6jVF0GqPoNEbRaYyi0xhFpzGKTmMUncYoOo1RdBqj6DRG0WmMotMYRacxik5jFJ3GKDqNUXQao+g0RtFpjKLTGEWnMYpOYxSdxig6jVF0GqPoNEbRaYyi0xhFpzGKTmMUncYoOo1RdBqj6DRG0WmMotMYRacxik5jFJ3GKDqNUXQao+g0RtFpjKLTGEWnMYpOYxSdxig6jVF0GqPoNEbRaYyi0xhFpzGKTmMUncYoOo1RdBqj6DRG0WmMotMYRacxikFjFIPGKAaNUQwaoxgF5tRBYxSDxigGjVEMGqMYNEYxaIxi0BjFoDGKQWMUg8YoBo1RDBqjGDRGMWiMYtAYxaAxikFjFIPGKAaNUQwaoxg0RjFojGLQGMWgMYpBYxSDxigGjVEMGqMYNEYxaIxi0BjFoDGKQWMUg8YoBo1RDBqjGDRGMWiMYtAYxaAxikFjFIPGKAaNUQwaoxg0RjFojGLQGMWgMYpBYxSDxigGjVEMGqMYNEYxaIxi0BjFoDGKQWMUg8YoBo1RDBqjGDRGMWiMYtAYxaAxikFjFIPGKAaNUQwaoxg0RjFojGLQGMWgMYpBYxSDxigGjVEMGqMYNEYxaIxi0BjFoDGKQWMUg8YoBo1RDBqjGDRGMWiMYtAYxaAxikFjFIPGKAaNUQwaoxg0RjFojGLQGMVGYxQbjVFsNEax0RjFVmBO3WiMYqMxio3GKDYao9hojGKjMYqNxig2GqPY8hlFK1NCJv3CrUev943HaFNbOde06jjeuFq1h43vHtS28qC+lQeNrTxo28qD9q086NjIg+azsM/1oHUrDypbedCtzIzyWePnetCtzIxkKzMj2crMSLYyM5KtzIx0KzMj3crMSLcyM9KtzIzy2f7netCtzIx0KzMj3crMSLcyM9KtzIxsKzMj28rMyLYyM7KtzIzyz9J4rgfdyszItjIzsq3MjGwrMyPbyszItzIz8q3MjHwrMyPfyswo/+ya53rQrcyMfCszI9/KzMi3MjPyrcyMYiszo9jKzCj/7CWZclez+U7p/LOXzMeUUBvzhOxcQsf7lwupRJR+3zTCdGpda/l8d3/a3ZtMdx/10d3nraWNdixir6cnrdrPtDaZBo5pu9S6FlE/jrMidhrBh/46195Dj829n4aBytmbt6lxlUeN72oYew2fXMO21/DJNex7DZ9cw7HX8Kk1PH+O2V7D76phfTE1nFI5/L3HhRpKn6ZnMkp5Wg0FW0MdxzmfWXPyONS9hk+uoe01fHINueuUf04NueuUf04NueuU763h83wuH3748fe37969/fU/7z789PrT2w/vP95eWm7/cx5Tb31K9VCGU29XiTPBH7aW8rj1oQfPA+LXDeHrh4j1Q7T1Q/T1Q4zVQ5yHX68boq4fQtYPsb66ZX11y/rqlvXVLeurW9ZXt6yvbl1f3bq+unV9dev66tb11a3rq1vXV7eur25dX926vrrtCurW0zecenhvd2rt55YAUutxbixeHre+TajSEhJaQkpLyGgJOS2hoCXUaAl1WkIDlpDTnNppTu00p3aaUzvNqZ3m1E5zaqc5tdOc2mlOHTSnDppTB82pg+bUQXPqoDl10Jw6aE4dNKcOmlM3mlM3mlM3mlM3mlM3mlM3mlM3mlM3mlM3mlM3mlN3mlN3mlN3mlN3mlN3mlN3mlN3mlN3mlN3mlN3mlMPmlMPmlMPmlMPmlMPmlMPmlMPmlMPmlMPmlMPmlPXQrPqWlb26rsY17DfNo7Pob3IPIYmxLCEGJ4QIxJitIQY/doxxjzGWD9GLQkxrqHzHqcYbd4fVRJiaEIMS4jhCTEiIcY19NHHdEDKqH0W4xq4w8UYVxhXFtO5KhZd5zEsIYYnxIiEGBc/P+ThbOYevbkMAJy9aiy56vI2/bNX1UVXyaKrdNFVtugqX3RVLLpq0djQRWNDF40NWzQ2bNHYsEVjwxaNDVs0NmzR2LBFY8MWjQ1bNDZs0djwRWPDF40NXzQ2fNHY8EVjwxeNDV80NnzR2PBFY8MXjY1YNDZi0diIRWMjFo2NWDQ2YtHYiEVjIxaNjVg0NmLR2GiLxkZbNDbaorHRFo2NtmhstEVjoy0aG23R2GiLxkZbNDb6orHRF42Nvmhs9L8xNi6SddOSoT1Yibp+DmBrB/C1A8S6AeQq72GHyrSONv9y3SbXeH9pUo+tTUznMSIhRkuI0RNijPVjXOP95cUYNSGGJMTQhBh2hRi1j2/G8IQYkRCjJcToCTGuovM4xeizd6QiJSFGTYghCTE0IYYlxLiGzlWP3yGY2pkYkRCjJcToCTHG+jGucQCNqZzObLUxj1ETYkhCDE2IYQkxPCFGXDmGxzxGS4jRE2JcQ+cux+88zXUe4xpH0VyMURNiSEKMa+jcRjnFaI9izFvXB8dlSjvN+PTw7fVdRobLyHEZBS6jhsuo4zIatIyucRTMlTOquIwElxHOsx3n2Y7zbMd5tuM823Ge7TjPjnT1ezsenu79tPrRcn/CrsHySR/VUY6No8Q8nw7LZ7DyaQWWz8ozkLsYV1nZxbTSjtIvuYpOvzvST7860op/zkdh+RgsH4flE7B8GiyfDstnpOcTx19WWh/8RpJjPr3A8qmwfASWj8LyMVg+Dssn3Z+lTL9VWdo8nwbLp8PyGax8RoHlU2H5CCyfq1B2Mu1+ijNrhmscZXExhifEiIQY1/C7b5N8co1jIS7GGKvH0Guc3XAxRk2IIQkxNCGGJcTwhBiREKMlxOgJMRJ0XhN0XhN0XhN0XhN0XhN0XhN0XhN0XhN0XhN0XhN0Lgk6lwSdS4LOE07H0ITTMTThdAxNOB1DJUHnkqBzSdC5JuhcE3SuCTrXBJ1rgs41QeeaoHNN0Lkm6FwTdG4JOrcEnVuCzi1B55agc0vQuSXo3BJ0bgk6twSde4LOPUHnnqBzT9C5J+jcE3TuCTr3BJ17gs49QeeRoPNI0Hkk6DwSdB4JOo8EnUeCziNB55Gg80jQeUvQeUvQeUvQeUvQeUvQeUvQeUvQeUvQeUvQeUvQeU/QeU/QeU/QeU/QeU/QeU/QeU/QeU/QeU/QeU/Q+UjQ+UjQ+UjQ+UjQ+UjQ+UjQ+UjQecJ+OE3YD6cJ++EsYT+cJeyHs4T9cJawH86KJcTwhBiREKMlxOgJMRJ0nrAfzhL2w1nCfjhL2A9nCfvhLGE/nCXsh7OE/XCWsB/OEvbDWcJ+OEvYD2cJ++EsYT+cJeyHs4T9cJawH84S9sNZwn44S9gPZwn74SxhP5wl7IezhP1wlrAfzhL2qlnCXjVL2KtmCXvVLGGvmhnr/CPLP6/yQj4Oyydg+eSfDzX9quoQnefTYfkMVj75Z1ReyCf9hMqY2PMQm+cjsHwUlo/B8nFYPgHLh3V+nznr/D5z1vl9Fqzz+ywqLB+B5aOwfAyWj8PyCVg+MH+Gna9qsPNVDXa+qjWYPzeYPzeYPzeYPzeYPzeYPzeSPx9+ktuW57/os9OLmnpaCES7fY7zX9t984r63VfId1+h33fF4Qe9e/6z19V2PIFOyum6anq48PDjf1///vb1j+/efDxccvuvf7z/6dPbD+/vf/z0v98+/8uh8f8B"},{"name":"lookup_validity","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"consumer","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"inner_hash","type":{"kind":"field"},"visibility":"private"}],"return_type":{"abi_type":{"kind":"boolean"},"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":3,"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":"7f3RjuTIkmWJ/st57gdSKSSV/SsXF4PqmZ5BAYXqQXfNBS4a/e/jmR5G80iaUtJx1FxEVNbLIGqaYaGy9knq3ptmyv/5j//jv/6X/+f/+t/+9d//z//2P/7xn/8///Mf//bf/vd/+Y9//W///vF//c//9Z/+8V/++7/+27/96//1v339//2P6Y//T6l/Xv8//u9/+fc//s//8R//8t//4x//eZ32//SP//rv/8fHn+r08ff/z3/9t//6j/8sk/yv/+9/+kc5vv1XlvLqr9Rl+vVX6rJe/sry/b8i3/8r6/f/yvb9v7J//6/U7/+V49t/Rabv/5X5+3/l++rL99WX76sv31dfvq++fF99+b768n311++rv35f/fX76q/fV3/9vvrr99Vfv6/++n311++rv35f/e376m/fV3/7vvrb99Xfvq/+9n31t++rv31f/e376m/fV3//vvr799Xfv6/+/n319++rv39f/f376u/fV3//vvr799Wv31e/fl/9+n316/fVr99Xv35f/fp99ev31a/fV79+X/3j++of31f/+L76x/fVn6eX82/T4+/s+/Lb3/lP12vndf518TYfz6vnUl9cPc91+3X1XP74vF9Xl8/lzJOv5cy+llN8LWfxtRzxtZzV13I2X8vZfS2n+lqOr7ty8XVXLr7uysXXXbn4uisXX3fl4uuuXHzdlZcf/g993Z+t93Feu0zb52pmV6v54f8hPz95+1jBZTWrq9Vsrlazu1pNdbWaDs5i+bIa0W44y3m/WeXLJ69/rkYmV6uZXa2muFrN4mo14mo1q6vVbD+8mq0+VlO362p2V6uprlZzeFrNOrlazexqNcXVan74Xlym49fFpezX1Yir1ayuVrO5Ws3uajXV1WoOT6vZ3nov/vNfmN/+L5S3/wvL2/8Fefu/sL79X9je/i/sb/8X6tv/hePd/8L+9v+m97f/N72//b/p/e3/Te9v/296f/t/0/vb/5ve3/7f9P72/6b3t/83Xd/+33T95/+bLs9CsMyrljzuHxDU4ms5i6/liK/lrL6Ws/lazu5rOf/87XApj9ZgW9aqLucRQD5asUsAqYen1RyTq9XMrlZTXK1mcbUacbWa1dVqNler2V2txtW9+PB0L/7Y8lytxtO9uEye7sVl8nQv/nA8rlbj6V5cJk/34jJ5uheXydO9uEyu7sWzq3vx7Ope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"}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"00000000000000000000000000000000000000000000000000000000aad5fd6b"},{"kind":"string","value":"PublicKeyNote"}],"kind":"tuple"}],"storage":[{"fields":[{"name":"signing_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":"field"}},{"name":"signing_pub_key_y","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrAccount::constructor_parameters"}}],"kind":"struct","path":"SchnorrAccount::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"}},{"name":"cancellable","type":{"kind":"boolean"}}],"kind":"struct","path":"SchnorrAccount::entrypoint_parameters"}}],"kind":"struct","path":"SchnorrAccount::entrypoint_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrAccount::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: 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"},"140":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_nullifier_membership_witness.nr","source":"use dep::protocol_types::{\n abis::nullifier_leaf_preimage::{NullifierLeafPreimage, NULLIFIER_LEAF_PREIMAGE_LENGTH},\n constants::NULLIFIER_TREE_HEIGHT, utils::arr_copy_slice\n};\n\n// INDEX_LENGTH + NULLIFIER_LEAF_PREIMAGE_LENGTH + NULLIFIER_TREE_HEIGHT\nglobal NULLIFIER_MEMBERSHIP_WITNESS: Field = 24;\n\nstruct NullifierMembershipWitness {\n index: Field,\n leaf_preimage: NullifierLeafPreimage,\n path: [Field; NULLIFIER_TREE_HEIGHT],\n}\n\nimpl NullifierMembershipWitness {\n pub fn deserialize(fields: [Field; NULLIFIER_MEMBERSHIP_WITNESS]) -> Self {\n let leaf_preimage_fields = arr_copy_slice(fields, [0; NULLIFIER_LEAF_PREIMAGE_LENGTH], 1);\n Self {\n index: fields[0],\n leaf_preimage: NullifierLeafPreimage::deserialize(leaf_preimage_fields),\n path: arr_copy_slice(\n fields,\n [0; NULLIFIER_TREE_HEIGHT],\n 1 + NULLIFIER_LEAF_PREIMAGE_LENGTH\n )\n }\n }\n}\n\n#[oracle(getLowNullifierMembershipWitness)]\nunconstrained fn get_low_nullifier_membership_witness_oracle(\n _block_number: u32,\n _nullifier: Field\n) -> [Field; NULLIFIER_MEMBERSHIP_WITNESS] {}\n\n// Nullifier here refers to the nullifier we are looking to get non-inclusion proof for (by proving that a lower\n// nullifier's next_value is bigger than the nullifier)\nunconstrained pub fn get_low_nullifier_membership_witness(block_number: u32, nullifier: Field) -> NullifierMembershipWitness {\n let fields = get_low_nullifier_membership_witness_oracle(block_number, nullifier);\n NullifierMembershipWitness::deserialize(fields)\n}\n\n#[oracle(getNullifierMembershipWitness)]\nunconstrained fn get_nullifier_membership_witness_oracle(\n _block_number: u32,\n _nullifier: Field\n) -> [Field; NULLIFIER_MEMBERSHIP_WITNESS] {}\n\n// Nullifier here refers to the nullifier we are looking to get non-inclusion proof for (by proving that a lower\n// nullifier's next_value is bigger than the nullifier)\nunconstrained pub fn get_nullifier_membership_witness(block_number: u32, nullifier: Field) -> NullifierMembershipWitness {\n let fields = get_nullifier_membership_witness_oracle(block_number, nullifier);\n NullifierMembershipWitness::deserialize(fields)\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"},"213":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier_leaf_preimage.nr","source":"global NULLIFIER_LEAF_PREIMAGE_LENGTH: u32 = 3;\n\nuse crate::{\n abis::{read_request::ScopedReadRequest, side_effect::Readable}, hash::compute_siloed_nullifier,\n merkle_tree::leaf_preimage::{LeafPreimage, IndexedTreeLeafPreimage}, traits::{Empty, Hash}\n};\n\nstruct NullifierLeafPreimage {\n nullifier : Field,\n next_nullifier :Field,\n next_index : u32,\n}\n\nimpl Empty for NullifierLeafPreimage {\n fn empty() -> Self {\n Self {\n nullifier : 0,\n next_nullifier : 0,\n next_index : 0,\n }\n }\n}\n\nimpl Hash for NullifierLeafPreimage {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0\n } else {\n crate::hash::poseidon2_hash(self.serialize())\n }\n }\n}\n\nimpl LeafPreimage for NullifierLeafPreimage {\n fn get_key(self) -> Field {\n self.nullifier\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl IndexedTreeLeafPreimage for NullifierLeafPreimage {\n fn get_key(self) -> Field {\n self.nullifier\n }\n\n fn get_next_key(self) -> Field {\n self.next_nullifier\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl Readable for NullifierLeafPreimage {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n let siloed_value = compute_siloed_nullifier(read_request.contract_address, read_request.value());\n assert_eq(self.nullifier, siloed_value, \"Value of the nullifier leaf does not match read request\");\n }\n}\n\nimpl NullifierLeafPreimage {\n pub fn is_empty(self) -> bool {\n (self.nullifier == 0) & (self.next_nullifier == 0) & (self.next_index == 0)\n }\n\n pub fn serialize(self) -> [Field; NULLIFIER_LEAF_PREIMAGE_LENGTH] {\n [self.nullifier, self.next_nullifier, self.next_index as Field]\n }\n\n pub fn deserialize(fields: [Field; NULLIFIER_LEAF_PREIMAGE_LENGTH]) -> Self {\n Self { nullifier: fields[0], next_nullifier: fields[1], next_index: fields[2] as u32 }\n }\n}\n\nimpl Eq for NullifierLeafPreimage {\n fn eq(self, other: Self) -> bool {\n (self.nullifier == other.nullifier) &\n (self.next_nullifier == other.next_nullifier) &\n (self.next_index == other.next_index)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = NullifierLeafPreimage::empty();\n let serialized = item.serialize();\n let deserialized = NullifierLeafPreimage::deserialize(serialized);\n assert(item.eq(deserialized));\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"},"404":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_account_contract/src/main.nr","source":"mod public_key_note;\n\n// Account contract that uses Schnorr signatures for authentication.\n// The signing key is stored in an immutable private note and should be different from the encryption/nullifying key.\ncontract SchnorrAccount {\n use dep::std;\n\n use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, PrivateContext, PrivateImmutable};\n use dep::aztec::encrypted_logs::encrypted_note_emission::encode_and_encrypt_note_with_keys;\n use dep::authwit::{\n entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions,\n auth_witness::get_auth_witness, auth::{compute_authwit_nullifier, compute_authwit_message_hash}\n };\n use dep::aztec::{hash::compute_siloed_nullifier, keys::getters::get_current_public_keys};\n use dep::aztec::oracle::get_nullifier_membership_witness::get_low_nullifier_membership_witness;\n\n use crate::public_key_note::{PublicKeyNote, PUBLIC_KEY_NOTE_LEN};\n\n #[aztec(storage)]\n struct Storage {\n // docs:start:storage\n signing_public_key: PrivateImmutable<PublicKeyNote>,\n // docs:end:storage\n }\n\n // Constructs the contract\n #[aztec(private)]\n #[aztec(initializer)]\n fn constructor(signing_pub_key_x: Field, signing_pub_key_y: Field) {\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 // docs:start:initialize\n let mut pub_key_note = PublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this_keys.npk_m.hash());\n storage.signing_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 // docs:end:initialize\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update account_entrypoint.ts file\n #[aztec(private)]\n #[aztec(noinitcheck)]\n fn entrypoint(app_payload: AppPayload, fee_payload: FeePayload, cancellable: bool) {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.entrypoint(app_payload, fee_payload, cancellable);\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 // docs:start:entrypoint\n // Load public key from storage\n let storage = Storage::init(context);\n // docs:start:get_note\n let public_key = storage.signing_public_key.get_note();\n // docs:end:get_note\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 signature of the payload bytes\n let verification = std::schnorr::verify_signature_slice(\n public_key.x,\n public_key.y,\n signature,\n outer_hash.to_be_bytes(32)\n );\n assert(verification == true);\n // docs:end:entrypoint\n true\n }\n\n /**\n * @notice Helper function to check validity of private authwitnesses\n * @param consumer The address of the consumer of the message\n * @param message_hash The message hash of the message to check the validity\n * @return True if the message_hash can be consumed, false otherwise\n */\n unconstrained fn lookup_validity(consumer: AztecAddress, inner_hash: Field) -> pub bool {\n let public_key = storage.signing_public_key.view_note();\n\n let message_hash = compute_authwit_message_hash(consumer, context.chain_id(), context.version(), inner_hash);\n\n let witness: [Field; 64] = get_auth_witness(message_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n let valid_in_private = std::schnorr::verify_signature_slice(\n public_key.x,\n public_key.y,\n signature,\n message_hash.to_be_bytes(32)\n );\n\n // Compute the nullifier and check if it is spent\n // This will BLINDLY TRUST the oracle, but the oracle is us, and\n // it is not as part of execution of the contract, so we are good.\n let nullifier = compute_authwit_nullifier(context.this_address(), inner_hash);\n let siloed_nullifier = compute_siloed_nullifier(consumer, nullifier);\n let lower_wit = get_low_nullifier_membership_witness(context.block_number(), siloed_nullifier);\n let is_spent = lower_wit.leaf_preimage.nullifier == siloed_nullifier;\n\n !is_spent & valid_in_private\n }\n}\n"},"405":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_account_contract/src/public_key_note.nr","source":"use dep::aztec::prelude::{AztecAddress, NoteHeader, NoteInterface, PrivateContext};\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 PUBLIC_KEY_NOTE_LEN: Field = 3;\n// PUBLIC_KEY_NOTE_LEN * 32 + 32(storage_slot as bytes) + 32(note_type_id as bytes)\nglobal PUBLIC_KEY_NOTE_BYTES_LEN: Field = 3 * 32 + 64;\n\n// Stores a public key composed of two fields\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 PublicKeyNote {\n x: Field,\n y: Field,\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<PUBLIC_KEY_NOTE_LEN, PUBLIC_KEY_NOTE_BYTES_LEN> for PublicKeyNote {\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 PublicKeyNote {\n pub fn new(x: Field, y: Field, npk_m_hash: Field) -> Self {\n PublicKeyNote { 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,\n protocol_types::constants::{GENERATOR_INDEX__COMBINED_PAYLOAD, GENERATOR_INDEX__TX_NULLIFIER},\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, cancellable: bool) {\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 if cancellable {\n let tx_nullifier = poseidon2_hash_with_separator([app_payload.nonce], GENERATOR_INDEX__TX_NULLIFIER);\n self.context.push_nullifier(tx_nullifier);\n }\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"}}}