From 42d93741b94234263f846f3497fc93154ca58358 Mon Sep 17 00:00:00 2001 From: Abhishek-1857 Date: Wed, 20 Nov 2024 12:28:24 +0530 Subject: [PATCH 1/3] factory contract integration testcases --- contracts/liquidity/factory/src/execute.rs | 4 +- tests-integration/src/helpers/factory.rs | 58 +- tests-integration/src/tests/factory.rs | 1467 +++++++++++++++++++- 3 files changed, 1506 insertions(+), 23 deletions(-) diff --git a/contracts/liquidity/factory/src/execute.rs b/contracts/liquidity/factory/src/execute.rs index 231067f..9c33283 100644 --- a/contracts/liquidity/factory/src/execute.rs +++ b/contracts/liquidity/factory/src/execute.rs @@ -552,7 +552,7 @@ pub fn execute_swap_request( ensure!( first_swap.token_in == asset_in.token, - ContractError::new("Amount in doesn't match swap route") + ContractError::new("Token in doesn't match swap route") ); let last_swap = swaps.last().ok_or(ContractError::Generic { @@ -561,7 +561,7 @@ pub fn execute_swap_request( ensure!( last_swap.token_out == asset_out, - ContractError::new("Amount out doesn't match swap route") + ContractError::new("Token out doesn't match swap route") ); let channel = if !state.is_native { diff --git a/tests-integration/src/helpers/factory.rs b/tests-integration/src/helpers/factory.rs index f788128..11fe0e1 100644 --- a/tests-integration/src/helpers/factory.rs +++ b/tests-integration/src/helpers/factory.rs @@ -1,11 +1,13 @@ #![cfg(not(target_arch = "wasm32"))] -use cosmwasm_std::coin; +use cosmwasm_std::{coin, Uint128}; use cw20::Cw20Contract; use cw_orch::mock::MockBase; use cw_orch::prelude::*; use cw_orch_interchain::IbcQueryHandler; +use euclid::chain::CrossChainUserWithLimit; +use euclid::fee::PartnerFee; use euclid::msgs::cw20::ExecuteMsgFns; use euclid::msgs::factory::{ ExecuteMsgFns as FactoryExecuteMsgFns, QueryMsgFns as FactoryQueryMsgFns, @@ -13,9 +15,10 @@ use euclid::msgs::factory::{ use cw_orch_interchain::InterchainEnv; use cw_orch_interchain::MockInterchainEnv; -use euclid::token::PairWithDenomAndAmount; +use euclid::swap::NextSwapPair; use euclid::token::TokenType; use euclid::token::TokenWithDenom; +use euclid::token::{PairWithDenomAndAmount, Token}; use factory::FactoryContract; pub fn register_token( @@ -114,26 +117,49 @@ pub fn add_liquidity( factory: &FactoryContract, pair_with_denom: PairWithDenomAndAmount, slippage_tolerance_bps: u64, + timeout: Option, + funds: Vec, ) { - let chain = interchain - .get_chain(factory.environment().chain_id().as_str()) - .unwrap(); - let mut funds = vec![]; - for token in pair_with_denom.get_vec_token_info() { - faucet( - &chain, - chain.sender.as_str(), - token.amount.u128(), - token.token_type.clone(), - &mut funds, - ); - } let tx_response = factory .execute( &euclid::msgs::factory::ExecuteMsg::AddLiquidityRequest { pair_info: pair_with_denom.clone(), slippage_tolerance_bps, - timeout: None, + timeout, + }, + Some(&funds), + ) + .unwrap(); + + let _ = interchain + .await_packets(factory.environment().chain_id().as_str(), tx_response) + .unwrap(); +} + +pub fn swap_request( + interchain: &MockInterchainEnv, + factory: &FactoryContract, + asset_in: TokenWithDenom, + amount_in: Uint128, + asset_out: Token, + min_amount_out: Uint128, + timeout: Option, + swaps: Vec, + cross_chain_addresses: Vec, + partner_fee: Option, + funds: Vec, +) { + let tx_response = factory + .execute( + &euclid::msgs::factory::ExecuteMsg::ExecuteSwapRequest { + asset_in, + amount_in, + asset_out, + min_amount_out, + timeout, + swaps, + cross_chain_addresses, + partner_fee, }, Some(&funds), ) diff --git a/tests-integration/src/tests/factory.rs b/tests-integration/src/tests/factory.rs index c1e99b2..34a11d2 100644 --- a/tests-integration/src/tests/factory.rs +++ b/tests-integration/src/tests/factory.rs @@ -4,12 +4,16 @@ use std::collections::HashMap; use cosmwasm_std::{coin, Addr, Coin, Uint128}; use cw20::Cw20Contract; use cw_orch::prelude::{ - ContractInstance, CwOrchExecute, CwOrchInstantiate, CwOrchQuery, CwOrchUpload, + ContractInstance, CwOrchExecute, CwOrchInstantiate, CwOrchQuery, CwOrchUpload, Environment, }; -use euclid::msgs::cw20::QueryMsgFns as Cw20QueryMsgFns; +use euclid::chain::CrossChainUser; +use euclid::fee::{PartnerFee, BPS_100_PERCENT}; use euclid::msgs::factory::QueryMsgFns as FactoryQueryMsgFns; use euclid::msgs::router::QueryMsgFns as RouterQueryMsgFns; +use euclid::swap::NextSwapPair; +use euclid::token::TokenType; +use euclid::{chain::CrossChainUserWithLimit, msgs::cw20::QueryMsgFns as Cw20QueryMsgFns}; use cw_orch_interchain::{prelude::*, types::IbcPacketOutcome, InterchainEnv}; use escrow::{mock::mock_escrow, EscrowContract}; @@ -29,6 +33,7 @@ use euclid::{ }, token::{Pair, PairWithDenomAndAmount, Token, TokenWithDenom, TokenWithDenomAndAmount}, }; +use factory::state::PENDING_SWAPS; use factory::{ mock::{mock_factory, MockFactory}, FactoryContract, @@ -38,7 +43,7 @@ use router::RouterContract; use virtual_balance::VirtualBalanceContract; use vlp::VlpContract; -use crate::helpers::factory::{add_liquidity, create_pool, register_token}; +use crate::helpers::factory::{add_liquidity, create_pool, faucet, register_token, swap_request}; #[test] fn test_proper_instantiation() { @@ -725,7 +730,6 @@ fn test_create_pool_with_funds() { fn test_add_liquidity() { let sender = Addr::unchecked("sender_for_all_chains").into_string(); let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); - let factory_chain = interchain.get_chain("osmosis").unwrap(); let router_chain = interchain.get_chain("nibiru").unwrap(); let router = crate::helpers::chains::setup_router(&router_chain); @@ -754,5 +758,1458 @@ fn test_add_liquidity() { ); create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); - add_liquidity(&interchain, &factory, pair_info, BPS_1_PERCENT); + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity(&interchain, &factory, pair_info, BPS_1_PERCENT, None, funds); +} + +#[test] +#[should_panic(expected = "Slippage Tolerance must be between 0 and 100")] +fn test_add_liquidity_fails_with_invalid_slippage_tolerance() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity(&interchain, &factory, pair_info, 0, None, funds); +} + +#[test] +#[should_panic(expected = "Pool doesn't exist for this chain")] +fn test_add_liquidity_fails_when_pool_does_not_exit() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_100_PERCENT, + None, + funds, + ); +} + +#[test] +#[should_panic(expected = "Amount cannot be zero")] +fn test_add_liquidity_fails_with_zero_liquidity_amount() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(0u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_100_PERCENT, + None, + funds, + ); +} + +#[test] +#[should_panic(expected = "The deposit amount is insufficient to add the liquidity")] +fn test_add_liquidity_fails_with_insufficient_deposit() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_100_PERCENT, + None, + vec![], + ); +} + +#[test] +#[should_panic(expected = "UnsupportedDenomination")] +fn test_add_liquidity_fails_with_unsupported_token_denomination() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let mut pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + + // Attempt to add liquidity with tokens that aren't allowed by the escrow. + pair_info.token_1.token_type = TokenType::Native { + denom: "osmo".to_string(), + }; + + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_100_PERCENT, + None, + funds, + ); +} + +#[test] +#[should_panic(expected = "Extra funds are not allowed")] +fn test_add_liquidity_fails_with_extra_funds() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128() + 10, + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_100_PERCENT, + None, + funds, + ); +} + +#[test] +fn test_add_liquidity_with_timeout() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_100_PERCENT, + Some(30), + funds, + ); +} + +#[test] +fn test_add_liquidity_with_invalid_timeout() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_100_PERCENT, + Some(30), + funds, + ); +} +#[test] +fn test_swap_request() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + let asset_in = TokenWithDenom { + token: Token::create("eucl".to_string()).unwrap(), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }; + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_1_PERCENT, + None, + funds.clone(), + ); + + funds.clear(); + faucet( + &chain, + chain.sender.as_str(), + 100, + asset_in.token_type.clone(), + &mut funds, + ); + + swap_request( + &interchain, + &factory, + asset_in, + Uint128::new(100), + Token::create("nibi".to_string()).unwrap(), + Uint128::new(50), + None, + vec![NextSwapPair { + token_in: Token::create("eucl".to_string()).unwrap(), + token_out: Token::create("nibi".to_string()).unwrap(), + test_fail: None, + }], + vec![CrossChainUserWithLimit { + user: CrossChainUser { + chain_uid: ChainUid::create("nibiru".to_string()).unwrap(), + address: sender, + }, + limit: None, + }], + None, + funds, + ); +} + +#[test] +#[should_panic(expected = "Extra funds sent with message")] +fn test_swap_request_fails_with_extra_funds() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + let asset_in = TokenWithDenom { + token: Token::create("eucl".to_string()).unwrap(), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }; + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_1_PERCENT, + None, + funds.clone(), + ); + + funds.clear(); + faucet( + &chain, + chain.sender.as_str(), + 1000, + asset_in.token_type.clone(), + &mut funds, + ); + + // Send extra funds beyond amount_in + swap_request( + &interchain, + &factory, + asset_in, + Uint128::new(100), + Token::create("nibi".to_string()).unwrap(), + Uint128::new(50), + None, // Send extra funds beyond amount_in + vec![NextSwapPair { + token_in: Token::create("eucl".to_string()).unwrap(), + token_out: Token::create("nibi".to_string()).unwrap(), + test_fail: None, + }], + vec![CrossChainUserWithLimit { + user: CrossChainUser { + chain_uid: ChainUid::create("nibiru".to_string()).unwrap(), + address: sender, + }, + limit: None, + }], + None, + funds, + ); +} + +#[test] +fn test_swap_request_with_valid_partner_fee() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + let asset_in = TokenWithDenom { + token: Token::create("eucl".to_string()).unwrap(), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }; + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_1_PERCENT, + None, + funds.clone(), + ); + + funds.clear(); + faucet( + &chain, + chain.sender.as_str(), + 1000, + asset_in.token_type.clone(), + &mut funds, + ); + + // swapping + swap_request( + &interchain, + &factory, + asset_in, + Uint128::new(1000), + Token::create("nibi".to_string()).unwrap(), + Uint128::new(50), + Some(60), + // Set swaps such that first_swap.token_in doesn’t match asset_in.token or + // last_swap.token_out doesn’t match asset_out. + vec![NextSwapPair { + token_in: Token::create("eucl".to_string()).unwrap(), + token_out: Token::create("nibi".to_string()).unwrap(), + test_fail: None, + }], + vec![CrossChainUserWithLimit { + user: CrossChainUser { + chain_uid: ChainUid::create("nibiru".to_string()).unwrap(), + address: sender.clone(), + }, + limit: None, + }], + Some(PartnerFee { + partner_fee_bps: 30, + recipient: sender, + }), + funds, + ); +} + +#[test] +#[should_panic(expected = "InvalidPartnerFee")] +fn test_swap_request_fails_with_invalid_partner_fee_bps() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + let asset_in = TokenWithDenom { + token: Token::create("eucl".to_string()).unwrap(), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }; + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_1_PERCENT, + None, + funds.clone(), + ); + + funds.clear(); + faucet( + &chain, + chain.sender.as_str(), + 1000, + asset_in.token_type.clone(), + &mut funds, + ); + + // Providing a partner_fee_bps above MAX_PARTNER_FEE_BPS + swap_request( + &interchain, + &factory, + asset_in, + Uint128::new(1000), + Token::create("nibi".to_string()).unwrap(), + Uint128::new(50), + None, + vec![NextSwapPair { + token_in: Token::create("eucl".to_string()).unwrap(), + token_out: Token::create("nibi".to_string()).unwrap(), + test_fail: None, + }], + vec![CrossChainUserWithLimit { + user: CrossChainUser { + chain_uid: ChainUid::create("nibiru".to_string()).unwrap(), + address: sender.clone(), + }, + limit: None, + }], + Some(PartnerFee { + partner_fee_bps: 31, + recipient: sender, + }), + funds, + ); +} + +#[test] +#[should_panic(expected = "UnsupportedDenomination")] +fn test_swap_request_fails_for_unsupported_denomination_for_asset_in() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + // Use a token not supported by the escrow + let asset_in = TokenWithDenom { + token: Token::create("eucl".to_string()).unwrap(), + token_type: euclid::token::TokenType::Native { + denom: "juno".to_string(), + }, + }; + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_1_PERCENT, + None, + funds.clone(), + ); + + funds.clear(); + faucet( + &chain, + chain.sender.as_str(), + 1000, + asset_in.token_type.clone(), + &mut funds, + ); + + // swapping for inavlid denom not registered on escrow + swap_request( + &interchain, + &factory, + asset_in, + Uint128::new(1000), + Token::create("nibi".to_string()).unwrap(), + Uint128::new(50), + None, + vec![], + vec![CrossChainUserWithLimit { + user: CrossChainUser { + chain_uid: ChainUid::create("nibiru".to_string()).unwrap(), + address: sender.clone(), + }, + limit: None, + }], + None, + funds, + ); +} + +#[test] +#[should_panic(expected = "Amount cannot be zero")] +fn test_swap_request_fails_for_zero_amount_in() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + let asset_in = TokenWithDenom { + token: Token::create("eucl".to_string()).unwrap(), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }; + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_1_PERCENT, + None, + funds.clone(), + ); + + funds.clear(); + faucet( + &chain, + chain.sender.as_str(), + 1000, + asset_in.token_type.clone(), + &mut funds, + ); + + // swapping + swap_request( + &interchain, + &factory, + asset_in, + Uint128::new(0), + Token::create("nibi".to_string()).unwrap(), + Uint128::new(50), + None, + vec![], + vec![CrossChainUserWithLimit { + user: CrossChainUser { + chain_uid: ChainUid::create("nibiru".to_string()).unwrap(), + address: sender.clone(), + }, + limit: None, + }], + None, + funds, + ); +} + +#[test] +#[should_panic(expected = "Cannot Swap 0 tokens")] +fn test_swap_request_fails_for_zero_min_amount_out() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + let asset_in = TokenWithDenom { + token: Token::create("eucl".to_string()).unwrap(), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }; + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_1_PERCENT, + None, + funds.clone(), + ); + + funds.clear(); + faucet( + &chain, + chain.sender.as_str(), + 1000, + asset_in.token_type.clone(), + &mut funds, + ); + + // swapping + swap_request( + &interchain, + &factory, + asset_in, + Uint128::new(1000), + Token::create("nibi".to_string()).unwrap(), + Uint128::new(0), + None, + vec![], + vec![CrossChainUserWithLimit { + user: CrossChainUser { + chain_uid: ChainUid::create("nibiru".to_string()).unwrap(), + address: sender.clone(), + }, + limit: None, + }], + None, + funds, + ); +} + +#[test] +#[should_panic(expected = "Token in doesn't match swap route")] +fn test_swap_request_fails_for_invalid_swap_route() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + let asset_in = TokenWithDenom { + token: Token::create("eucl".to_string()).unwrap(), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }; + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_1_PERCENT, + None, + funds.clone(), + ); + + funds.clear(); + faucet( + &chain, + chain.sender.as_str(), + 1000, + asset_in.token_type.clone(), + &mut funds, + ); + + // swapping + swap_request( + &interchain, + &factory, + asset_in, + Uint128::new(1000), + Token::create("nibi".to_string()).unwrap(), + Uint128::new(50), + None, + // Set swaps such that first_swap.token_in doesn’t match asset_in.token or + // last_swap.token_out doesn’t match asset_out. + vec![NextSwapPair { + token_in: Token::create("osmo".to_string()).unwrap(), + token_out: Token::create("nibi".to_string()).unwrap(), + test_fail: None, + }], + vec![CrossChainUserWithLimit { + user: CrossChainUser { + chain_uid: ChainUid::create("nibiru".to_string()).unwrap(), + address: sender.clone(), + }, + limit: None, + }], + None, + funds, + ); +} + +#[test] +fn test_swap_request_with_timeout() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + let asset_in = TokenWithDenom { + token: Token::create("eucl".to_string()).unwrap(), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }; + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_1_PERCENT, + None, + funds.clone(), + ); + + funds.clear(); + faucet( + &chain, + chain.sender.as_str(), + 1000, + asset_in.token_type.clone(), + &mut funds, + ); + + // swapping + swap_request( + &interchain, + &factory, + asset_in, + Uint128::new(1000), + Token::create("nibi".to_string()).unwrap(), + Uint128::new(50), + Some(60), + // Set swaps such that first_swap.token_in doesn’t match asset_in.token or + // last_swap.token_out doesn’t match asset_out. + vec![NextSwapPair { + token_in: Token::create("eucl".to_string()).unwrap(), + token_out: Token::create("nibi".to_string()).unwrap(), + test_fail: None, + }], + vec![CrossChainUserWithLimit { + user: CrossChainUser { + chain_uid: ChainUid::create("nibiru".to_string()).unwrap(), + address: sender.clone(), + }, + limit: None, + }], + None, + funds, + ); +} + +#[test] +#[should_panic(expected = "Invalid Timeout")] +fn test_swap_request_fails_with_timeout_greater_than_240s() { + let sender = Addr::unchecked("sender_for_all_chains").into_string(); + let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); + let router_chain = interchain.get_chain("nibiru").unwrap(); + + let router = crate::helpers::chains::setup_router(&router_chain); + let factory = crate::helpers::chains::setup_factory(&interchain, "osmosis", "nibiru", &router); + + let pair_info = PairWithDenomAndAmount { + token_1: TokenWithDenomAndAmount { + token: Token::create("eucl".to_string()).unwrap(), + amount: Uint128::from(10_000u128), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }, + token_2: TokenWithDenomAndAmount { + token: Token::create("nibi".to_string()).unwrap(), + amount: Uint128::from(100_000u128), + token_type: euclid::token::TokenType::Native { + denom: "nibi".to_string(), + }, + }, + }; + register_token( + &interchain, + &factory, + pair_info.token_1.to_token_with_denom(), + ); + create_pool(&interchain, &factory, pair_info.clone(), BPS_1_PERCENT); + + let asset_in = TokenWithDenom { + token: Token::create("eucl".to_string()).unwrap(), + token_type: euclid::token::TokenType::Native { + denom: "eucl".to_string(), + }, + }; + + // adding funds + let chain = interchain + .get_chain(factory.environment().chain_id().as_str()) + .unwrap(); + let mut funds = vec![]; + for token in pair_info.get_vec_token_info() { + faucet( + &chain, + chain.sender.as_str(), + token.amount.u128(), + token.token_type.clone(), + &mut funds, + ); + } + + add_liquidity( + &interchain, + &factory, + pair_info, + BPS_1_PERCENT, + None, + funds.clone(), + ); + + funds.clear(); + faucet( + &chain, + chain.sender.as_str(), + 1000, + asset_in.token_type.clone(), + &mut funds, + ); + + // swapping + swap_request( + &interchain, + &factory, + asset_in, + Uint128::new(1000), + Token::create("nibi".to_string()).unwrap(), + Uint128::new(50), + Some(241), + // Set swaps such that first_swap.token_in doesn’t match asset_in.token or + // last_swap.token_out doesn’t match asset_out. + vec![NextSwapPair { + token_in: Token::create("eucl".to_string()).unwrap(), + token_out: Token::create("nibi".to_string()).unwrap(), + test_fail: None, + }], + vec![CrossChainUserWithLimit { + user: CrossChainUser { + chain_uid: ChainUid::create("nibiru".to_string()).unwrap(), + address: sender.clone(), + }, + limit: None, + }], + None, + funds, + ); } From da3d625d9c1a9bd6fe51d8658e2f9094693da6c1 Mon Sep 17 00:00:00 2001 From: Abhishek-1857 Date: Wed, 27 Nov 2024 23:54:53 +0530 Subject: [PATCH 2/3] invalid timeout testcase fixed --- tests-integration/src/tests/factory.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests-integration/src/tests/factory.rs b/tests-integration/src/tests/factory.rs index 34a11d2..0937663 100644 --- a/tests-integration/src/tests/factory.rs +++ b/tests-integration/src/tests/factory.rs @@ -1169,6 +1169,7 @@ fn test_add_liquidity_with_timeout() { } #[test] +#[should_panic(expected = "Invalid Timeout")] fn test_add_liquidity_with_invalid_timeout() { let sender = Addr::unchecked("sender_for_all_chains").into_string(); let interchain = MockInterchainEnv::new(vec![("osmosis", &sender), ("nibiru", &sender)]); @@ -1221,7 +1222,7 @@ fn test_add_liquidity_with_invalid_timeout() { &factory, pair_info, BPS_100_PERCENT, - Some(30), + Some(241), funds, ); } From 8b34b7eb7c8755e4eb818c1cb614f6ef1aa1b408 Mon Sep 17 00:00:00 2001 From: Abhishek-1857 Date: Fri, 6 Dec 2024 17:53:36 +0530 Subject: [PATCH 3/3] factory testcases fixed with assertion on both chains --- cli_commands.txt | 21 + optimized-wasm/cw_multicall.wasm.gz | Bin 0 -> 144516 bytes optimized-wasm/escrow.wasm.gz | Bin 0 -> 173270 bytes optimized-wasm/euclid.wasm.gz | Bin 0 -> 78300 bytes optimized-wasm/euclid_ibc.wasm.gz | Bin 0 -> 78300 bytes optimized-wasm/euclid_utils.wasm.gz | Bin 0 -> 6378 bytes optimized-wasm/factory.wasm.gz | Bin 0 -> 328382 bytes optimized-wasm/query_auth.wasm.gz | Bin 0 -> 95895 bytes optimized-wasm/schema.wasm.gz | Bin 0 -> 3190 bytes optimized-wasm/snip20.wasm.gz | Bin 0 -> 234356 bytes optimized-wasm/snip20_reference_impl.wasm.gz | Bin 0 -> 78300 bytes tests-integration/src/tests/factory.rs | 1024 +++++++++++++----- 12 files changed, 798 insertions(+), 247 deletions(-) create mode 100644 cli_commands.txt create mode 100755 optimized-wasm/cw_multicall.wasm.gz create mode 100755 optimized-wasm/escrow.wasm.gz create mode 100755 optimized-wasm/euclid.wasm.gz create mode 100755 optimized-wasm/euclid_ibc.wasm.gz create mode 100755 optimized-wasm/euclid_utils.wasm.gz create mode 100755 optimized-wasm/factory.wasm.gz create mode 100755 optimized-wasm/query_auth.wasm.gz create mode 100755 optimized-wasm/schema.wasm.gz create mode 100755 optimized-wasm/snip20.wasm.gz create mode 100755 optimized-wasm/snip20_reference_impl.wasm.gz diff --git a/cli_commands.txt b/cli_commands.txt new file mode 100644 index 0000000..ae5605c --- /dev/null +++ b/cli_commands.txt @@ -0,0 +1,21 @@ +STORE +================================================================ +secretcli tx compute store ./target/wasm32-unknown-unknown/release/snip20.wasm --from owner --gas auto --gas-prices 0.0125uscrt --gas-adjustment 1.3 -y -b sync --output json +================================================================ + +INSTANTIATE +================================================================ +secretcli tx compute instantiate 12318 '{"router_contract":"nibi15v6ucun55ud6aera98wm6su2fs46pja9apef3pthfp3mmza3eg3sy44cwq","chain_uid":"secret","escrow_code_id":12319,"escrow_code_hash":"25d467c87f5378333af6d9cfc0e40e0dcbfe984eebb987f5278e61650c1e88fa","snip20_code_id":12320,"snip20_code_hash":"f11bdae9c36ce54dd7a648837b5975de8be2e741a45aaae93eae52b491509149","is_native":false}' --from owner --chain-id pulsar-3 --node https://rpc.testnet.secretsaturn.net/ --fees=70000uscrt --label factorytest18 -y --admin secret12739yy09ln4vv2tcwchccuxatmmjz4q2axrzj2 +================================================================ + +EXECUTE +================================================================ +secretcli tx compute execute secret14srwunhsztatds2anzyft6tyz80fwktkq6g222 '{"update_factory_state":{}}' --from owner --chain-id pulsar-3 --node https://rpc.testnet.secretsaturn.net/ --fees=70000uscrt -y +================================================================ + +DECODE HASH +================================================================ +secretcli q compute tx 26E18902514FFD82E7FD0ACA4C4F8794D3D0E0EFD8447FF48CB8E7C88E06BF46 +================================================================ + +factory : secret14srwunhsztatds2anzyft6tyz80fwktkq6g222 diff --git a/optimized-wasm/cw_multicall.wasm.gz b/optimized-wasm/cw_multicall.wasm.gz new file mode 100755 index 0000000000000000000000000000000000000000..4c34699956099c97832d6324374b4eb161acf8d1 GIT binary patch literal 144516 zcmV)^K!Cp=iwFP!000021MGbdlpfV}-@Nx`=9};D&i>U(yDQE2X@M1%&;mj${@B)F zOU5lZhttzGMC)mM`eS%xs$W9#N)ajw8 zB&IfQX=A&@aa)>lTBmm6-rv3Ny_xxT_0K1vO%KaKGjHb2d-vV{@4fr(7wo?EMim5s z`hl9fMlUU?CHxy)W0u^%^hD8Zw6w&JLb)hBkC*JjWNFFWqK!MH7S)ii=!ROlGq|Sa ztGPRQg--(h?9MysWk5aOiCWF2;*V-}mMVXM^-lbYjj*TFT7a-m+_>wl?JGk@@H zwY}HwTAbg#H>jbMQ0X5n?msjiC=~1b^2VFqHXnp2w|DQ|ySVFZyKmUPcQ@7HPX_tf zp4|s;I=Fuiz4_(&ASmkYyY0r^2mQ13*7-d*UvSaZ1LyC0+x+7G>+T2)9*-A~7w7j- zZ;QKbzU|rr^LGRcVrPEu1s7d({>7DVM%=?|cOTlbuktF|JAdtM*9*j*qUl@rUw<%Y z;9<*sTRf`o**CxEz^?0e-x>@u^mMmt{%yN&zG=~qw0X;I^NV-v+Ou!>{)6=76XxSa zD;-5TRH0T%g`uYZLPh_Fn*S94gMSt3oZv4AqBzp@KmNk%Urc;yRE$>SFYtHDm;hYc z40T}tLh37ww2qTd9_Roi0x_aybUZ|lnn5j8HKkRJpsXbXeNg(N0u4z)9NILL;?KfL zB?^iK+EC*7Z)ku9HORI50I$pAs5W7{@jKK9=vpc8psZPlKTj14TX29Xg}t zsb_<#VJ+bL2{l6>Xk`NQZBW$&TDPcA4A=xCtsrQbfzdG&QJr8Q3|CQ|acz{TuTGkA zye8^Q#3rn%o7H>izsRUyC|+%rRDSsI@u0aB!IBT5A6r_-=}Kxx6kjnjc(tsBIbhNpQvbY{^lF*2<}(48~0z&T=D_6e(|&)$o4mck#O2d*&fVx9-2`;I3`K zyLCd9ZrTHY-=iCQ=Y8qDI$fN<<+lBc^SACI939wy@Or8}Sbny6Ju1Fi5BP_RyASTY z=|+0g*tLsv$L?M82lpD)+_h`p{O+4chHsrWy8csQg7VEy>#wMP@P2*2 z{(%0c`h)sI`d9P=`d9T){bBu}{)m1^Kdc|oW49f8S}$I9m-?*wjQVx;`}!aLk-GJ9 z^_%K9)UIFr#kaiWExUjI=imC)w_fuLzwqzWL+ab=!|Flx5%sI;6Z)unSUscvP>YNih54{d-ccakM&pepQ>-E=hc5u-%8yq|4IF> z9{YhB`!n@|`ilN0Rent0ZT>(%rT&%vBmJ!Y*ZO<-*nar#?|?!nx-#(kKF3z^PL`boN<(P2;J z?>Kz;@a=D+c7iP2pp!WrHtAMv)l|;Yh3TLJah*k*g2}GR zq8UBjHF~?=j@yx5C?f)p5dcf+Vz%m*z>{zzt%V)~6?>rK3Q#cv73ZJ2ivWoLNL&C# z9qA1wxQf0?fX+Dm7rLdIT<8)y@?@dg5|9n`W&m=VY7xi=Ajg>j$V~>>0OU>qvdLnA zY_cYSoVDp|f;G;+4(udZEB(BZPnwo)ZAF#h{I>yUoVBQLUnMTJx+zH4WFeln(kFGx zG*Q@~$BEi>7Zb5tnxAbBrY;TYMET|d^}TLkQxJf*A;3!LLSW&G4!%&;R_ImGq>nQ2 zOqPJVOu=1^EOFe`06hZ27r0A^X8dr@kj*~_#MJxP1{BK27kZ9N%=JddMD1@U>ZAQU z*s8}fbvgBXIGxieJu#OAm(eBLsyE8}ZFD*I-s5z)MIKDcWinHAlM=hnGR3JdxsX0+ z!tMESs-Dl$gCF7M+4mg}(jz7S={C#{rS&fT+R&5pzJq+Kk8_ zm9$0-Nz@{OOliTO5u6*8k~})JfH48(-MVKs0xpZv-_a0GVk3H-7U)y}W&Dz$g*!qu z={f_Et?z7WG|X&4EdXX>hi;?9%tZWN4V@4+?RXLyPff@`c ziRJ*&DZMwf4GUn`w8*P#5^k8mbl`ZDna@(4#?o4YDuj*nw^@a8{SlB=GpT`WCTqNm ztZ^S%VdE0!QA9QdQ3z2BwbcPBF@B;pnv+9Atg=#5;CQ&5S9o{8g6o+=@i$0 zC4g$gHY6I&FAXcRB(e8P96tGB#iL?%6}jlIYb9KJC!zJ6xWh^quFYA2GYTy;gQj?RpYDIOiWI# zU6*xx>!;5;`<$5#=e}m+rt>z>o`1oGTQ1rZ(obz;SW=B7{$v_{Gcyhx*||de)!CRx@5(cp8XkGx)>ln4-iKH z;x--+imOnZL-Ab?QgIB$ttdW>;vk9_q4?PcUF9t(e)T~&+6z&94#go9FF^4J54w)d zNAa&v96)gv#rJ*0wY(X{M^J2|cpi$s;oojrarDo8O!i@Lg&F*tmc}z(5%*3J*I_^hw7! zgS#q3XEPr^>^Su-1_8x$P@G2bzDFE6)}#0!iW4aIQ2gQ}j&@xXzy65BT884E_;1&t z_~*Xz+Cq!U;Kqx=yiVysnW9l&!KaJvM6i1nVP&^mK5ftzG7+hQwhf(~} z#~j-Zq4)2se6fb&U!d4SF1IJ;{`!T!iO?sNQhjb!7LZ%hQ=JYuH7cV2@E1iv6CO{#=0K+=4`ch} z%fW$87;%|O+jh3YCNUFWNiXA@a3Ni=Pr6EaAiuMtmBJVN4l^uQw|qy}6xZfxz>nBT z{kP3$<%q}L$_avV`eL`oGn*!D4OF;99$@~a>WjLjiKvA8rJxORv zZ$XV#mnIn5B$ia_`G@TEf@iHgc-K1raj=tS_QBTdE$p|-8Utw*5+Q*_oJwGfh(pUM*!9w?Jvt62Gn$FsJD`unheA_|~^TJ*W zkkJHSu*;XU+o2kFNjuYQb+Qg?hiL$&u-1fm?2^o5$9tVJZZ`^}{bj%l3N$07sbejF zx5YU0QLVs#E!Q+fg;wI4Dr;d#yrAKLstZtwtS6|MU}|eX6IGdZW(zYxu$9*n&=6fZ zb`sj)$#1Tj-3HY=QW;DmSGO!5kBp^J9!n3xQp-PxC;9#Omq)g9!mn?f5}tb6Skv3HkHrdH*J{_w6cR&Mz2~$-KBtnZ10Auz&!7&Z(1(VUBW`Z_`-2jvj zRy%B}jA1uqJ%`Egen)wQ4_h!H4RnB711wac{(=7KitKI*W*CQ_T}08S4SITxd52NH z(OL+gnA;)2IV6H(aYf>Db4h&Mgtvq39%_+ZZx?icW9u+||M4zfGya|eRz!NnMd_@k z4%R~>LV6%O)1+ajwe>40f+4Cr1SqFL>LKv5!X+V=9&)6frQ1wIe~1Rq>k_G{&a@js zHbiu+O8>W6`lm%RQa>Zq&j{2&D;vqCf#DHZei-3pi{rtZPSKPBT+ajtdL8QRqPO-ID70}zQwvMd9Z=s;mKz!`)d0+4Equ*{6)lMB67#cD>@!KzV3h&GZC<@Z|Q z`3~8iXbrDa5gV?`-{nY4h+ah>2cuxCRe-I7MI~XYRU%ERM4F6P1>#Ewv=X3$F3G>c zs|C8&541q&%mLx?G`g)hd1s~4lyT7DRyn;kPPZR)Lm~LkV|PGI`4l00Nr0qO!*Y#ymk^(J|L(C2m|?h3J|AJUx<$Q)picvRHRsxt(AN-$L-+Y1V~kb0)X?)-q0gw-G3x@+ zb8jogpkEpHV;&R2k**1*fCD~T1Dg%pubI)UvZ|o+NOv8RfJX8XNq$Pz)BGEO-~3uj z57uVuz@2NwH(4vb$=ZTD*D@5Opw)8&^1kSrGmRk=@ZND$2?dH# zKoQ`B}5`?B9VehOnn(sp|w@QBr^-W#O=Ib2Pe)NVA&WfYjDASPF%2TjA2ID z^%Rzk!Lo)15rbu;GRqoaSz}pNJFACD?=qHkn-AT#lx6Q28!YL)3fp2ycT_fv!`@(l zsy2@llxWjCp+uWOEU|1m8wAU?vr*ZGvMh^@jS|EJRheZqwpN*Cq5KFo&$0%T$UZ9X<&#s=p zD3cgXE^N?&_mx{D3R0HIooKw`6I(@~6e(@O&PG-u%Nw7Vl#mCXPB>bQl(m-fFaZKBF@fZHBnWRh=K-8CF7xx)%Y!PjtSYf=77Cxn ze-FgxP3;iBVqWB7}{K zo*H$gb+kIcTW(r){?3!=DQ{X$u~jS^!RdR*EI?o)YLhpElY(%@>nUtzi=HyF5?AOc zlO?>1nnkj`TsE!YiS?8!>#2UzYGl9I>M5&GLaV3zKvhLg$;bw2WP=!~s*bc5mBwmT z7%SeBX$||-s}iH61c-jq8hX0;-taF1Pp5k z!^-#@EaPvmz#rE(6@Ea(0Pv^^JdzY!HWd>_Y#Nmogh&#dz$PNF%|c*9UcJbgS;9Oe zGCR{voa|5cn&sK`of;tsKW60`%6bj~l8HMqX|{7~y$KFw=$)0mU0Q2OONr9}I&1D| zhuK7SR{FB4yxZA^_>w6BNupxdQNeJevYMZ{{HN;fOkEUgpq@4_oF4?2&)!3~n-(sl z+w7hrM=nq9InwN&Q)weR2jq>IW<1k$3u>t#AxuB7`=AlKc9M1kYx4{))YArVOXQa? zgj*^fC+q=mHPjyyVTVK}eN1zXs+vkv_%!A@j>L z@Rh~<@@H&*S?(vTJ^;HIS3kOCJtOamxqf`@ED$Fl@A~C=G#+1x&MT}J8*w`+xbHV19 zwEs%-^r$)=ftnRvAp$kK;EbRbsH7xNEJ{FFAxc+@C|yx7=T%TtYN4C3bltD4OOf7* zhCievCa@gsF{AHSy@{feX2&RPH1B%g;_&lXJ%RbmYNft zK!b3Y!j}+}52-nX)IoM;SwHu|_@e+#JQtL`QghXux!D8k#_#|jzE{!AgRT#$iW^J4 zn8V5etpw<#+~i@ZF}u8bVjk=P@sx(Y!g5LCznblx15snK=BKPk%Gv=FBpJoB?rv_f zg=BbtR2|^Wa|Tb};XN?xUXL@?yjGhnGaj^#NlIF0+=-`vCk5zQLdcdA=)b1uzXakL zTIV(0Clpvl<*OvREb=~F)aS#UR7tL63DD!C>Q#;SN@zs0qDDM^S{gAConuvEVpZZp z3OW&R9##D+vFcq+i%QH2l{iz}ZWH;n+VQB8nO?eNyJ(&`D2_WWt4X+I2Aj!%{RwXA z(W@A${}lsh)dJAUCr9bfG_PFCvpYTvQ0v?)5fM9OwuwCO{nvl&-Sk1N#_ z{5x#*k{zL?UPV8XzJ`$Ik5%tYR2a z8v80ZW$`^);PlL3JG@f=w+ls10Gk+7F(oB1wDnmT<=YRGzax!xyKRsy#7l*R$e-f+ zhbwTJebNtZZzr>)zo4>nK1H;9r_fHqMaYk@*r8*JEe&p;RBT^B)Dg=D&dv}IB&Tg? zCaj^UHwAkq_q5s4B;v?0dXf?w?ObfjY9hahEWo;ISj6T$;gG=w4vp=TWu<;r-zM9; zGg4u8xe(4+tG41yMOkwPwc+hup;As{@X+J&SMAy>V%PMmGv}Xe=6v_7Gv`<3X}LV9 zzYR0zfBcHioWJFRPX6}Job4F?Kb$!qd3EOesz&@9(umD$P&PKWxzY0e)o6Lkb$M&D zLo#a5(pfsi1)X9Xr}K1*L8q{wQ!HDqs#IC%#Gf&pV)i^_JKgQLgHAE%6c#(~GjvOI z3OT5mx7$Id7BL*EZO|z$=+rK6xwZj|qf@&WdAp!f?CI1Nz`2c5%_^PR*vsDG zH{RnCoyuPcX4@Q#V7tJccHfrkJI{Q}^~jlQx$;s9;&miY1o1ksk%zUjk;VRMC^oXR z{e6Yl$QaaMjqmnY3nN*MFtJ9m;f>@W*#o<|Fp{?yx0tx*KO}=W$_DdAt{ZDesRlJxI^1~JtAM!F2L zs(|I0cJB!eA6eY?0VnOgfD@`Lf;r*IP@Y4#(Lo|1G^o|Iu_)})hn2`;1G>z}S^sim zvBBmpM;2R@7m>xGjZoec{7{J)t-M(HqN++(d9m;r_MTpC>!LWeCt{6VUaNl2r`(AFfDSX=t zWq5wk@F)DqGu2O?Cepm@7OhDW!k(KzyjE`EM{2=6bBlym@WNWplxlB7<+xn&3YruE z8GFfH=2INTS0m6ix9e^BO1K0U&I zXC!B2wxAZ~W8n$>&Ki5xme!_OjZyaAr4|Zf7695Y*nCbxLf-+d&`yq_@L?vQUD2L+ zdwM3g$R80xWA2DhIS|%Hz=lQF==deO{`h}6BKC54Y{! z&6CB#wj>rdk@*-O=(wvq{p*W`-CT}^t#kBrB^DNOUaqZDQ!B*6ZmHECc9tS%y9c?CoJU|8*gVVO0abgUsUs@IjnV8g=U4>&k( zr7+mKys3o2BK9?r*w;!M(#5hc*j9nP)1Q;wQ<;;cr7Gjg=VYoRhA(+B#MJB+ic7!C zsf#mWJFbLl@ci^ zY?bo1ily*Mx63KEisdmoMcnh1vSNt1XD!0GrEAv?PbiFKzl4L&{qQQm=VUPUv>e8^+EEQz6oy>H#4WN|A? zAP})xyAoE*)>Y&MWhSvKSTrwTT!G@{Fg2B*ZXcV_e(d-iPWoA?lRhV!GB6&%*#v-4#3@nnXd zWF0d6y$x7qrMoM-=Vq(GhD<3wfI7o>*#^0sJEte$~EW? zs1nlU9<~hai1i%7l5j)bz{)g=(TtF!}vPk$l>@BWz?w@{O*H?~%U?Jl@Q@XeEUQ)y-KRx{#TXBGsO+JJ-Rm$?c<+0X{P1xx)yq@&t6m_E+FYU#bnz+ByII{lpHYNeCz**GdN znBxNGc-hG#-+EknAQ>E&JWnlrluM*!C7zv`C9;KMQ~iwM2-tlBaZX_J zf}fHo>4pF;+UK^EvnxZ40I9fMl8#j2X=dx?fJUA7T2*#-v5-~I&bE84$R&VftU8IH z$5B12V-rqq#9%mG0H+7Q`W5FMaM;3kNGWn?PS4UE^|}#*=}$oL9Do0GuuyJ(JNEco zHUgKRV6_Lfp8up$pZf67>JvfB&22$vKk|Mzy`2ee+Zvn?051suC*gkMawxYSAiiSo z8Q{Lw%~g^tg+Y6+I+UwmRs~HN7GwJIGi0k#iBH+A7LHn7q9itPS6d_|bjOUbI=2}> z6L3_7uCoPB<EaLk=g|bt zB?+l*NN}#)dAvXXL!wQa&8JK_&i6CSzDHf&3>UsfAh;uJZ!JC_w#sYR%Pyzh;R$?z zd^bg6Pb8dJ&>7YrK=`Y;Pk?Op;fdbMohA_D8Kk*mMuQnEG;2t zy5i}aw$r)g8CsAjisQSCjqg&jSIt>FB<+IPF3DbGR?~~qx1+uBE+2{=Db}-SVuScD znpZ-@l;3fDm)^kEo<>#<>M|14r7sGIKl61is7vQl)u669pC(my$VZSe;`3U%QAOYu zr*0aT+RD@4<%J3Q^1=i%7YqD>^uTYuG&zA7q5hX7!>i4Y%4Rz#6b`KAteZ+OevHhG zX7ErFYMFFZ7PyT{>M|X7$z_@yN$<+ckj^yULVa=O@h)c`54#G;=Si$O;FAFrKCU9q zTS;m!o61MAjSkoi3ndE}UfhuWa-5$ojZ9uI1P6Kp({LpNFztY3qa6^Y9U!*m zyfO%pXP1f|g$uoNz;ZR2UesiIQFAP}%`PLt1%ZjV1vOeWPgJd%j=|@NI)|4%!D_#R zMar%E>a6CDf?Pwl-whVJGjx4iEp*S%Rd?DTF~YH8YuD$Ds>w1wM&0aB8Wk-|8Wo)^ zX;gH=q*38%Z|#P%wcGSbqnaxujWRw-lj%#+WW=jCa+VW|R(@+YT$VH{JW0~1a9PqQ zbK;~?rvXn`P8t=KlSVbYI*LRcHI}KP2Jp`5?43f2%1NV2+t870?K1irba6?envygs zlB7`$mo%zTZ0&ONP`X2sMl~gAR3u5G8oU`U@5@P}La!XcKIIVFgT%6<&15LAByj?G ztOQ1qBEE6rq*2Bvjq2apRpqVS6_Q4g6g{q3jP9&#>XJwuQ&pKNHg#+H?*)*FCsdL4 zt2PsSMr|bn!YdQoWo6>XKB}b89qkycZ7@%$ zIfx^kKCaLdwk&4!HKk+!w$1M!=3i!z078*pyE?dmMz{eQvSxj;o|d##8?v7wXWc_b#j8AUWwsb=gzIK1CN=LoLg_QH?({=LAg{#MSkz}9vcuA zuCUywSeMGA(3DSLo6^#y9MhH!_RuaTa@uz%yFm%oOoKuK--{kT*)L7jkn+C^5fBnj zOiU>&);>v*{ow?W5pH_Ia$gfi-y>{GG_ftAiX=tSG%Q0?oRX&G!*4q695hR3-nE>0 zCkl;C2fTXI9jTu7?}dUi<<7jTKBVFO7xc2D`XgeOM#M^wRL;DQV8rZ=k9fT_0u{y> zA8}FCRsdWRcF|RU&&C{gjP+TlF-*R@EbzRV!jPi7G7Cp3uBX&b~y3}V9@#KzBN5bKuskvE9ZGJ_bM#2`k0%?2?l8^ow= z5R1*>x){WGnL&(!cNoOj8N_o$-uv#0F|?aow!PzcbIQk$e+2-Su(t5!CNJo z?llD3YhWBgyFk+0D3Sj5k2us~Am za8677OoHu1(ZRYLKMPe=K4jS!KWlADy<$`9g-xmV+mx29SGdf)THgeCaxSdTrs%?^Xm3-hyGYJW{XNl&EY|P6kgT@c4{Tuqm;SfVa(M zfRP+PiohBjYTVlt*47=uJO5@_hv1C-5hU4SPkO`ULr6tt-i~DEjU+Q~1e=n`?~HZ$ zCzjgCRqAa@oZ*MLE@v7@W?nuNH$#^WFlOHq9NwnH*u`g?B7p{lO^IdqKF)?MhT@7% zi6t{H$LXS0$Nu&b+X7v&DQsuirqnAorH&OLwka0ng-x-x$;;3QY|09fRoD~*PYgc{ zp$hN7$hq0iDe)AZP~s{)ju=(Vx$Y~+?G08q@@MZZ0$HUJ%et|r-uX;MPiLEo<$sfH zvd8U>J8mz~=<*4dE9P9shCANY-|=(kxZyfBw&QL`EZcd6p!0YY3%p9QzgZ01dDV=S zVl5<}Bw=|oShXd(w#8Y!=(#s+Ef_W^G3=`Mdc>-&vSDk%utm!a+h%XrB*(fEf!Rz$ zEz(!kd8yLdHw1>*9}GzC?{$r{x}=+t9qd~L2wB4Zf}X^br!JF@I?UCDFpFEW3t<-L z%4SjGSdgt8C^_2-CM+U;f{YYUu$zN;7?O&uyme5!bTyLLtuinHo$5SM-adSQ(0WtM4V~L zrU0lQGX^pfYZGx)p*L05&1@4BYZHgWCJt6?;$UGD2lLR{#38YXYk8u;(JB6H6a&RJ z5l17$1`SG-k|)@pDC5Cw$|~a_Zxe@#XfZpOA=t!a#3?Ip32frF0@f+9iHyGW zbRnCVz$UK6WfDC=d#uL=HgSDn6Njjewdor`1A+-QF#!^1=&~Ldv+oHGZxe^88L^3+ zi#;i9B2~t)hq7&+3}u@*gbotaf=wJk2l)L-v1M_^Ch|EOwuyrkn>dJrbZiqX$_txl z&!&(VeM7O+b|R}t^7XW;3RpQWAf{THqwrlcDtSJC$Wtv1y|4|jpET7XqZ5Olsky5Q z%cL>gdJKlih+&dCkU^0-m_&{J%3hq!7A8?=vuqM?7w~qpEhMpjuW{_bb{lfH`}(@Q z?>_z!RNHO1LbvyysM~v$>$ko_zxOKFF_AyZweRuA_Z10mV%gt_MSyt^GmQ^rMQP`97v7r`e!P%MRU+2BI8>e8|OjtH{EUT-0@v`b~urA^F-yot_KIAh& zC2sGS|~9Q+A~i&HscS;^Ykajna^-`<){(}FI)ajZ;@Az zGVm`1<>rw%=BTQO1;>5@I4c)t2HX=X0e4IZldlLIJwIxXu9TtB^2rkn^h;HsIU`V0 zXxEEnXzqRfJb&>-1yIhe^Q@9H6z({WJsR?yKM2G%aY$tr^w0IqEL$X_cS&%CoaAup zY;E`xlY)>UJjNa?xvbJJ$ICOSIPyqK7&)I6Ioob$&z5JD6aL2sCU{b9+nSKJebSH# zmpxs|NJ%u|JDHG9CW;+s&A%6g14Y_rYl=%e$?1qR@B1(r_&0!LB)!-ZdrR+P#Ai+L zu>*!GyLhhBk?8Cf`TP$PZJ9na`(oUQXhuuNB*t0ll?f_?fI%du4xHhp|ufGDMp zpAgq`LgtMHMCj`U4swB?+S5FhwEac+jo%r>;6%s<6BlM-7;m=V7n6r&HNX>fxEzs! zYKCJEhGiCSn&oGH^Q7_>0wCYvvPZ-JMNEnNeV7pk#et620gbqa5F>7`C$T6!3HHf+ zBomf}&gOtG{GLdJOCoE?^y1U^iia^pHEf(8f7>eJ{5rCx*O5Km zj*s)}ERXZ+2%ts#of45Tau+Mq$^DtGl{;YBVEhq#0S&?E#NK#sdgT z7y~K=$<`Xh-o(4h=H2&Q|K5k)I6Z#zSVBL?&#tk?wru3sfB-{8;sg<#NPrCj91z5S zLgYkAOc2B*3J4IvBudtR0)_}|@O%E}+-Lt^0k?J@|V7>`FHV9l}&6D0)zb1^bJkO3+8cG8~+#s1CGQsW}~j#LZV6 zA388|TJX>7YW-rDho`;$j;{>YVr(y3GBKeBxcETAu zXafhz$ykHI_Vsmyvg>vlu&?Jvwp+Y#J9V+MA3^j4oTb-D*flYkC*l(2UV;%0B;u9Y z-f7_k$Xc7nJB|FW-}CwB!2CWBk;ta`bXr^kg(z?A*u+_fV$=qMDp}PBVpSioRec>y zkI0qlvX0rRJ`&};wPRtyxVEZ~v{gL~NeU4mAEGa?hiGgM(KYTN`XV#35L(h9I?9JA zPeel|!gD5~a5`EnckxtC&9pc**{_CA%~Vd!v>c@b@8#5lI*?Ayw8uJrDKhY>xm4<2 z%1gdDHJ3^aG(AhjDsZVR7WgK~;#dlY9X>Vr+q5_}m&$HgDn=tq?Wwu6|I}P64K2!F zS~@jTdulGto~uvIQhSo@xpHcTuods9>^a4$8D`JnQ}bF;3PU{33Sed5hk((d>rlYj zUdMEawY?TuLOk3+!CAYT&cdJrFk%C%!&|8@9#G$`xqrC@KBhk@3|VWOo5(*dk0E-@ zfp2t*z~pW7Vb=y5(kEx}&fYBiwMd(rCBAjz30E$Gck z)#KH=uDo~O?p8S9rlsCjuVwoc5pSdHjxt!_5Ds39qfZq_AENGZ+uXLVS<3-wLcUs! z$xy{?ZCu2{&<$|u_o_fo54Ke-2i*9*wP{Fn*{l9V4g<#my ztKHez)IIe<=l54O$hp-eX?h zYBz{%%li+&?<1f_5UsGdzHH-7FnKd0(@}|U!wXJNz zm0USlXac>07^)l;b5Isj9ii}(JMGXKb92jPSB4f#R?7*$=q05vfUFC!6hZX$0ah%xA>(m zO4)iW3DKy+l5oidUej6sR%c7fbZc!p!zDZDw1X1QBNjqa5hK))&hyZE|DN zlW&dH?%RxwE;l_mpxPIS!}1_=T_xtaok>H`l@!*2!KSg<{VP=jXFz3pdGM;v^}{x9 zk7@a&J5sxqJ1$ibr_nWxM^@~C4}1Mt{EL&h2E7W>&R&~W0zwy<{2&cl&I z4PWP8w8oG(MrmV^9w{wd923Wdv95jQc&4d-2Js)`j=?R>dKx;DLFZ4#X4*2{wvrYEE^J1YiDW* z+-g8Sw4Qa>hFoHgZ^5Hv^4B!T{*Vy+F&e=4`%{@(?S}ABUblcTF8{+CbHpJCF8{%+o8{!4Dr|Q}eR|h-QXdB|F&xSZM zHpJ0D8{(kPhM0#h>UXNqHpG#!A&v^&HoSwAbXCczM%xfa7%~0cwIQxr8{%q@4RKX$ zh^s8>kZCAKx=keXD%%iOE%eF&8{*K~5Qin*c4%#g!#Qk-6(L*R4I!VvfzV+gEVL*N0C*v}PvDY!3KOW-tH z412g)=fY8sl4Pw6xIiEnPshN?SUq9^2pHeoH6R)n4YhSz?@5YA4HDTZcn;oGh;p z;3#pjgxygfewL%`Q&L51dl#`UtHENru(u_69RzCLsa%53+{aF0@Ytj+>_zX23QjPS z<3ZdgGfg2!*&?=z3xCIVrWrUEogvpo7Sl{WUt;=S6Z-EL^UFFzeMZ5zJJP{Z7h8-o zRSdijtJzqCXRt(qj|T^#=N$^nCj~-v`|JMqSjd z|0ySoCQAk8qCY9%E7XWg>J!jC0Iq~$b84NRjnG#mC0{{E_?ygs-mR?QgeB(TwjAs0 zld7BkKYW&gv4l`(w~{->ok|Fj7*^V)z#E<&`D?NiYO>*LW+_at(vLTMjhH+d%UXFU z3^_}oR$ifcDd-&^_3Zee(vBYjx&cqckZ2n1R1C>f3|aF=Mhd89rq$T-HQDhsvjTLh zu~15_mKHiYegW0??s&5ThWd9r>SF&f;AIOewZTaUWygoIA%K={9k<^L)J_`k^VTTu_c6$!t^HtJsCo&o+Z=;Qx_ zdHBDekN=D2=KmJZp1|e*0+;`*SpKgyw^Mbi$EmvI@_!9SPcHmlMVzWDmj9~=|JRz^ zsXCxKD(Q2C|Emc9*K(Yy^?R593oQQ^^zeU_SzPBDb{gJLasaEa-Vzmr683p6{x7op zUsU4%BFq0pbNi4z>iUq~*y}-davl$|hX51p;AOK58St_sTnPQeG(3~y$9A&hkv&=V*cE->_#`ZC*du#feE-MABYV79rsLv~O|Qfw zdt7_|XXAYy*^zi;N7^IX25Lfp?LK5lgCuFJBpvtcJGFau%eZIP9V1oio?Wr-*_B@R zY^@Kh=(TE)C8M&-1GUOsx?`;X zv-@d9kFWO%C}>;aL*x4akK77(|Tw?blwyDLFrh%2F=%Lz1D-E z)eDwWDSHsGGj8B`5R|}j9CN%t%T-#|hv1b$3@*O zhzUfoNPGLikuJc&x|FimgB3Oz*;2Gk4x+$yqziBuEj?2pibm;RZ4?Jbr*M6pN$Q7n}}6eALdg5NJR5XDjnMDeUS0#PiIKom>rd4 z)&}N<57tKMU~Pal@WHBwyf|0`>ojnelC4vA6xdw~KoOYGWE#SJPub#HLX$B}?i%4Z zI5e4G(sE+2=J(vBE%oJEv|H)DC06>(y|OWrH7K3XaCyE7O~x$&d=r|iztK80 zS#R}6%Lcq6j|%Kp)3|YF;v5}_$r7V`)-Ab(%0zn6SKYMxYqb|#TFG+Et=zr?}-geF_%G*X%!f~&PK^}iy18%MQS@iDJ|mbD_h zZduiO535?Lfe-AubEi>;^M8d^=3H-oQTr(*4QkXb@r@n;y>#xThg^X!85^= z-BDc9QVhADNapoYhLbZc!K;H2l8{$Qynzdycyy=T51DPP>^`OMFXH9l4RxlZbUTgk+G-PdmP;;zc!t$2Sw%_in%TM?1wF(R7Jl5VL;2WY#Zj(_?ye zZJQlb|Mi9Y*nqYp8$g^!x{X(GN0mi?>t z(QdeMs#4T?U!vBtzg_QAUnl-xQ<7o2e-i+LKz+Yz1O9;w7;|QZY*>b_ zASrWkbcuL0{)}<^2{3M|k8vx>yj#6s501<`WD#@5X8RJg9*8gEq|RV4j_^xIt*`Vk zZ<#P}BAuDUj$_}=rl1;6i9Fnv1XSY+P>qS9&=j|*MWY%|i5T1VKPdT5S1iCWEF>-{ z0FHa3)~_m+A^T7S;6jCNHc{(&5X|16EF6v%H)f75^f;gfWd~F%vR~MKs`Tuq`Wg09W$yh{>Dy00FbRH~{Z#*H-cJcf2AR~w zjcfLhiyJT4!%}HcQCdQojQQ;3DnF*hQ_9MVM`_wdWwl*hEb zq|oZd(ptpoyj1)J9BoY}+8Aops8QI!hvJ0p{A1sXkfiG>+T#7(!2MX1gJ zikoBTfV?}zjXzy>>bO=yb@CY6!DZXClWeoA)jEGwQkxX59WYhL22GX3+w5)i5har- z>Y~AI7hFY&IO$BZ@e?`9o!V8NwOLa(JVvlWIG(4HF)$f9o@eO9^W;x;JkL-jqA(KC6n5fM(=jS*%j{#+YmkhDZ^Q=_}yE z$Lp!V%6bVR5%$=!E@zE?5z%wG{&cX5Nu!%y0}FDyS0ZPHGW!*>F({9^INUts_4t{* z0#d%|lAp<{9zT--YRaP2(*tyj!L{>ykqkRtB%=%QBH@6Yg1H5ojHy!05O!pP6S?a^ zGK4p)G3G-ORO8|zJ`>DQCAg8qZ)&*K$2INvCLxz3IFwCu&4V3BjOZBuPxJpcch^EjYxk6kQ{tGT9c59${Q(c^9I#eOzcG!n? zI>aqMOmwBgt}*{r@a5q;u7rsp8ylr!zLu?oXCjT;6=s8g+gip(ZaSud9YP-K&Y*!r zjw4=Cv*QwQB|5cUhiQ?BDyzhecGgjOF4K(zbf>zo^qQNJUdzE!U{k-?;(k^OOQ7EH zD#fxk2K0$6>!gUMl4J?TQ%PZCn7PY(7;mPrtcNk|3Hqkj@i5kTLTk@HkKuV;@!nbI zC`Z=xuwCa)TCvWD=U(TDuo%XZIO`0TJ&DhO1M4KpJ4c*1&k+aK)rBYVXgBR>PvVJA zl^u$$C$X`BYA2jgJc(=NNL@AdnC%2QQdeXmb=BY-JOr=qY-sa%2O!jN2Oi3&uYuSy zfA8ntvzQ}wL8M!gNL`WeNHxmS7pW_9w%vr8>!=V2cEQ5k#B8T$#xd04#1Qi-i~ zM(^PwkWb+~d`@=mAn)NN)_Zt~RKBDqw$>8sJ-kHr)Dp*gm>0wn>pi@r$9s5*?58C% zj7zNd@REM-;U(64SeL(~3&+BK}y9ut@+i~D11#WuE9tYd4%ZnUa6i;LJ= zYyi#%-{3dnp4eK*DzUX<8(XW_r2H6vUw{X3@g}ww7jI0?m)XX~PHZh*hi$DtS8KVr zHK?qJtrY`_j$>=Z5?d?Qv9)?zxqc??aBQu(Z{PydPxqEWs|@Rc-%{e>F5o+9R!>FhPXpM0K2ti5>n!(!dl~^bXY2p07!K3 zEYFsvhlsdC9~Hv;Y|JrV8UhAJP!uqPm>sEbj}2+V#H6r`oy9o8!ff&RUMP3K)#)$@ zu_sVN8f!88wSW9dj!}dx(f!aV{hCOcjNrRBvq9dnh zQY&kn?~Nf~R|{`OMZ>vUUBkeo8K^-E_Wl!vJy{Ebi+D+Gwml9-a?Z^~UG27xIV6T> zRInT@?BtRew-8vz(2O5q&k77(QXaabXXp|cIzAv9*$6xN5>FxCt3;A<$N8X=&qC{# zDvdseY8;l~9WD>=aCvy&DG+)+!+Q?85liEn!qW8qmq+Y7-2tb&A$)D8voGsxsQuD7 zlvJ_ugE)*TRfYhG1sYu&A%?R0BF4wZE%;W3jo{U%Ee7ofgvILfi&iism#a=fOb9gp zb}s3Ud_f$qx+c1v@xpJHm}rbEo8vZEI7;J6Hv`5*%4+FHbTqcQ#crTX)%*u|Um<>o zZkeN!qgFH(uN5_Hjjg65afCV&TbS=GH?<;7t(NO$TVnqLZv{NX5qX;< zzM1gbg4hj2%?{9Sm#-AAM#z7|h+l@1e%#!aEo^ z9n5d}b^URA_8+szzGrlLKeD6KL)ZNNqs2I+D5LtnxNj!^wVXxanR(2Io!iaANlYKF8PbI+ zENIIcZ)eW+>7K3H+_QD_EoaB8)ZDc!W@!uORZ1Vr1r-R)3)={#kL5}z)M>P5KUDkI zSZqi5ZMQ!o)FPgHgx`r8BN^cjFQA{X+t1(U1;GX!>Bw1rd$zL^|2VS~pJ8?u{Ox^a zxYi6f2%`R}t=g&m;4`y%s!!kMss1?AQysW2XoN@3^4mdEJKs@Tu_OG^+nE7>x<|P3 z^o?*O8MO1#0ZVDXsTtXhKKRT~iRkP)I^U@oC4(*;y-7cXXKSF(*73Q|*4=k3lzlI5 zcK@`iBzV)Y(XC13Xs7Dj)L{CRiVd;3-O>ARqKG6LHybMI5xrIfTLc&?RV{jrMD!{U zTJYQE>#Ad6B__UIeqY(zs{ZigvO7G^56b-F5weA zbx3%}uQQ$dgfBo*QU3dKFa89gSBR6bT{m?EIKni*AUKi;F{zFjSZsy?x7Q%)Uvp=; z5k|7$E3)9LuC1g~$}_mMe32Et zG5Xgm`WHiJA4`>}Ij}AzEX;3;FrTYyvK$Akh%Fo3bcOj+ksg-VhV3psmJl->!4f2T zK_Bx3#>gu>xGBSYj-&XI7#`=C6)_^vI_JoWD61R%B9h>O)D6cabQ7x^9^R+dJR*wI zo%#wE!2nDl{kTvYeqgXwdY%5ExEu5|)9-1fKd70(SvK?QcMMWGp*^m{4z+BT>e-th zO#1{v`V)G4g!z3E3P|=Q5;!6OymbU#^q?^@}W=-@o zYdIXArCH0RSrgK%p|XlCgLMhe=hK(I1=$#w;joXj$wDo3py51b$3CByr5$?iP8(2^N+eG zTPTf6`WAH3v!Ihf3p&7pHWDWWar&r|EXq;j^AM*QoTpJdJFGP&7AEPhCYNfX6yDfM7p6-wUr1q@{jA3@CE5}%``kiI{_kjR@je-kKOlHYqX_jVsL90-zImC?r_*GFz<%J|3Z9e{+7-^|?d zA1go|(eoeO%t!Pe1Huo_f98JR*$}Uucy6P934{pi9*%y<)5NGQ_%*(}MGvC<^IT;9 z8QlZ>rY4v2Dyw?%=I@{DH^mr7lT)FR1=9h}p%c@v-mWC#ZfGLzI!Hfwf4|=sh&PZJ z4FR?f(3M>Lp}_D4^jBPvER8>8y^JiFm=s|dY^DVqA;6-031M^mBf%)PV?p&2{2>p_ zZw*`A6Xw_A4>4J6fS`L~=;a9jy=T0!9PA1%a)rLtiC5yGRbnpI$} zSgHpeZAyEz`5SKTH9!x=mrcQ!O%=Xus@IoILK{ZnvFD6brYx|hbUlVGAh#ea!EVAq zjLQhiWym=FcWxe#^;S9HoU04R@le1ydmF&P=#=(gNr)@P2@|*k zM79X#h-|^@!IMZ{HnN2$uKG4Ygoj2L7dDS4xQJ{4pFSB|Pq*4#=p}nVIS~RK*}{`> zS%veO-7J22v*;=k31;u2c-YMoY2dEj-Q&yd35(q`E%w?W<1|j|-O~{BGq#&6g9{6A zSFvkeDZA#<0@n5l`V+ui4c>B6}2P{Q*rUK}WzWzvGDsEpo;xghwcZ4o<#{$}8Kz2|W!~0EZ zX94M8i1omHB)o&e0=gp<&M@dAAs*`JV&g0S(Aag{2pbUV$3Ud z7a8C##Sx+$;4Yja4BYi%aaUaj4~GjSw3Y%YRpI%7&|3e@CM6oUOG%Uv*7Cm-1ns0J zK|-x9zCs93w#8QlxQkoh+xLpi+t&yXZ&93_Z@Zn)myv)i-^GEo7=Uq&_TebCk)7Tg zBX+LA0C#Z>>08lMAa;SE6o_4>c=)d>gV@#I+F6OH)m!gTi6o`q`=fNoDBl*lrZdD2 z(AJDS%7z%Lu{h%@iEe#wZ2;`TaVM|cm)EXk*W{ZFI1;F-J()|fRvB6~UaP&3tshze zwQ55TMH+{dP0k}Z2O{?vk8#w5iSF_*%V76TsKMxB6kQHz63JPgmQZw2Ls+hXaVyIV z4C)eeu7w@x{#hOA{@h2p-*=>g!H@nAJ<`>{BmK~Vj`Ub)iayh0eWu^74EXXM)qAFw zIpIk;)3buloGKRfI@zY}gpc<<1CRG?uG78Vce>Z-JKgI)#_1kB&8K_)U*YLqm(#t` zce+Du#ix72obL5GPWQTVx;Oey_qv?!4Rg9T+|wQ0z$;6qdtFZVhMeyFexav(eL<&t zT~7DLGjzJ&-FLc|&-vb+RRD7-j)klo6dgY6fw1!dC5Qb1C8xcPAszCu<^Xf4{9a}3 zqXZvIGD+}AjgQ3#LC5E4BlZ+XG%%Mkz+9>n_L`50OKsR|;WgH|=P4?-%!bWWRLuOw ziMc9%m8m!$RBHc!(B+@p2 zB$2k2plQqe8?LDwX?x*pQ%$o?5@~x*z9~jO*D&RZ)x&IQAbt~2Ti069kh%Ca)OF}*OxiQdq$OIHlT3^J z_ggH#Hlk)udICu*{d+YuSeP8<-wy0LD>s!2)v7#|77Vx!|Cm3l8Syf`fi8xK`qVYkges zY?%vgS}wRUhzsVZe|5_R2f_u%eOz$N5V{4|7`R-pEAtmFI4DQ`tCYClO2GwJEElY! z{?#oPT(?|sV7cIm+6s7rRw&Dx!_8P3l3Z^cmeIH zx?FJ8K?s%(23Q&~e!v9>1s5C$7Yy~c=7Ixo!Le_NVu=fmg$u3=7hDGy9Dob1<7Waj z2p1gmalybXsHZ+amJb* z4hpAgaH$T^Dd!Y;TEh$nW3mB8^)jf<$qWZQ%y3XJ!<7P_mPfBWlto5@)3EYRk$&>w z_-e}y@AJ>Z4r_Q?w?JXQ5A?CaSO1vouv^6&%F(F|Jgu(VVT#?3I?=%jra070aab%- z#(1-Enjzpc9V?!YEv?Gk%C^V8$e<-0^Nh4VkjpS@uBN-Ttq*iO(pcOXJ zK!uIV9~TOnb#o|eUL=U1Yv{*BT2ZAiBIrtSZ1pN^zGoCRVx3`kL(s3Vp%z3v^8M*K z6*kcTh0PiP>YBC+o7uBb*pyC^U7A{-QE#)Zhal@nE4|g5NGn=#<3w8Fuck$D(qF5^xms&+qQP1mUu$t9V{2jA!%_{*Ap7=i=Du?xtr%U-!YE?ULlL7h zP{d$viWu}!#6TNpJY|X){Zvy#E+)|d+B^hkO9}%izVQ0x!dM<=%QSY=EN{5?rF84} zd+o}4Z~Zj8>8-uDerE+I&aFQ=`&)mq@LT^G?aIO)yRu}EU6~#>$F8hthE3n5#|93Y z*p{8LhtWfxTorfw<}^yqAVxUWCq_7K#R$g+iV+ff9D&*VoHH;(LJiNf(YB?^PK7#!dIAgu5m;uJGIC(0bzmxv?#h88G1 zss#!sl@=zH?(~2q7w1WEWqbx7Q?l2DDLcjY`MS%L)tM=~TAGFkveF8_=OTDgX)f^6 z-U{D{3Kv;6uw3D+nxn$&O@-A#6<*I3%GLH&y%lOSx3BB#xvlWq=E^;=Lb-4s(|l)N zjkr{wRC1HEB|fIVDdZJZ;R%lu=lQ6XSDaJ{1Qs@?jyu`wO0jjgWHUj`avs%J@kh!m z=W)S6=eqfty|=fyM-;;TN^|!PzU%KXjd5qqNKuXz6K5L|EubL~Mnt_0*{>TS;;^G- zc9exsrHO0?x&eA37u*0Pci#R69Mp^b)S#Cq=YJ`pFil$qEDXt22*?h}7A<%3Rf5FN zpLg_xS=q`Hsw7UpO~da>Np2Z?baRYM;xT2UD7Yxh`XYO|*_FK@{0)P7bAWQ?VBGVU zC#@*P-|4SK9CMJ4Ot0`nUj&YoL@`z73p5seJ&`#ehQC^{B~@YgtB%0s|6!h)KY#?Tkxw~^)S_6@2w-4$NlQH2hZ z?-L=A%z;@uBry&6#_+Ibz}z_w!H@}V;J*^{&VOBvX=f%FSD3^a(`g!N0Mv{Ya4f|XZ_BnRh=PP8_3HOZKEwj&~g?)M2 z%RXbw3ikO1VV|!r7-a|+^264^{Lny7`Lr=G?^C|j`dH=Ke5`Wq$6%Fv49w?OzAbzSV?P zj)hg`_X}l}YxA?pbzzlj!Yaql5UYH6pn>_JGK*ZuD;Z!sKT>9oA0%S?AA~!;Qck!l zG^;wRdc<)KbL^bur;W&RkD9~Ae7BNj3Gdivl)PI(p5>QId`y4SXJ&qwPO>Y7b-Y4L zEz1qv&t>c?a|aOm?Jb&J;vx@frsJV9??e>^2W-pLpq3v{jL_cKgjsWtFdkER%=9_O98YRl zoxMt0r0_PC{$I0}_DIRz0Vlp;d#>o^dQx+eiInro`I(*+XIiLLZOkm}QUjL7tkV1f zR_bDhD;PTyQy{@$25=dPaLYgA7M^KtK@H{>W)~!ByVOJu@ioWU?}|1rtFT>Ig=>oi z>~IaZ%jS;~uTTs0rFa0>aB5Dj;U_3y3!Y}KA^um$HT-Wi*{Lv>arvAkJNo_8Bw(xm zLs;@ii?osRdyM$0u+}+g%!@?^ zwU^K1n#)JjnDp*Z(m)Zj_1!-q0l3t$*V(0d>$dz$A&)5PW*+9iTy^iabyo+~z2DaD zmrH$2e^>A^TBLwriLVqs=F*bI&hF zC_U(Vd8x~V^;ol9uVpmOxbhKovWJ^maPy81YTgmeqYZAJFl$CeQnW+QB?nrB2(wpm zaik<%I@BjzI$Hij2SQXju6ZFPGE7&Gpy;4(+xnSKNnQk=Xr7_TPgh&iyx zW_G1ftlk#c(-6y@j4CkGOrBxFE}c{K6f+a{$^}TCs);aPg@oz)vV`fh)x)nV_7`V>;<+LvK-UdyI}J%H5_Q=QL4G8(@wn z0>fTH58fG_hsV6yGv)>8d-KU>S0GCiA5e+ch+9B%IbyeF~umHB5|C99Stoz8kX46(6Xc9 zJQn1E6W7{ckz_5BPYel-{b@klqJM_5nPx z{X+Wf3%Cjvvq-;vZOe$^EMcnzn#>Hz4rAFjhswM@^Bvi@HRRfjzaJq&(#jRf!hP^z zB_{}pE`PcNwi1Xtb|AOfpdcfG+-gHvNW7d2ckH0&R(sa&*wFy9k-(ab1mcbzSa9xIYiN)dmF_2^@Fqp8iN*&e9$GjO{VE+F%}c>{!@=SqvuGE084GwthsD=fG|uLeR|;^} z6_Cr0Um;+fkcevtI-(^E7k)zNO_uIeQYm~(e6aQ>S#HfHc8@5O1nAYGAPrq7M5)-l z8Y>!r&r-1LT_#GEG76iG0Q~gYDJ4&bol?jP>J~Mpp_0kqo?M|mxoRA>-95QNEV)=# zE6yAf&o*>Jga-Nus&Vvq)D{cefce6%o~plt{iPY}cU2I#mkU6n{EdChQH?_l%vjBq zGna31Agh9m9mI0o!19&y3xMns?CUdlA%u+Q>uL~WNoe#!F-3CM*7rc|_wzlwRY)p) zK-hZF510xodSM4PhYwLdv@HSGx!Vb!EOq{wUC%+ePCji8&Q<3DTW2_^&I3lnCohW|ec(sK@{XqTvC&`4tz*+~|)YYYZ zw~1Gn(cJmCF#ASx7ZhDV-={SzEpSoX$Bk1|F(f_QyYI67zQgvrqp0QZq2|d?DNWMqM9}6KaX}NV3uz-B z`~INgm-Mf`2mlWRg_v!xFR&K-11mVo_xNJ6wl^pV)Aj^3K@T!sV+%!Ysk?n_ANreS>x8yEJgzO<_W0&bVdYw~$qM09fN4joFbLOZ(e_C< z_`JDXFko$B?MHFB(C2uAhO05?a?vPXE(%QVQ0^0 z9a&hm@Mqb@H;YR}kPYR>-zIT=eFH#kg-um6?~K>XAiyZcOc2=9q&Q!14R{64Xv0Qf66_*{f{t>U+9;5rsh}>_yvc^cL(YkJ@j-ie1^(K<* zP11M0;j6K89f;iPjl=asa=nT4^`^dHKl{2|Z(@7BDG)Lud%daH>qMpJI#GcSncly$)8g#v> z*y~NNpMBu^*$=+nyt@B(gN<}mc_S6dIzL}y&T!{O^WQG?o-Y@gY4Hc+JK%^8KG0?4 z5fP0D%jsFsNQ)z!hqA}8!zx0&T78!gcSBa}Hmny?2E8CM+mD#ro^{iAC>q`K5y~#0 zZY0Ix(XoDB@3IQ9JbGx?KhYhJsY*Lvw1%8;bgIAmbQ8s3tX^uy={ zc4NptHJybhKz(ylmG$uqDP}7VOnXKdl#kJJTv(mawM6`AHQu+Oeq(3(hHMvtmn`4M zW5Au|O+-sXZcdrqs7=<86O|PCTP*Uox{YHKX9pqInWiW5KYv0> zs!K_(IhybaE$zu=oTFRz;_~WtOV*j?(ksGQU45ay2K+zVnV6$ntuGbp-FpnJsc+bu zZJ^f_uOYd`9AgdJn0uob;~T{lT&vtC*7UGPSFEMV{8C|ZnQ&Se319r`wMFw3Ryw$S zd}fyVU#Y>pRCDz*VP2T|wyevID{+YaYOo4p90FcA#F{WpwcV3WlBXoCY1<@#bT=32pClp0Ymo%m^L=tMb(CMpg$X36NN<65R)$!Eodm$_mG_yYvzMSA<<(< zttvM$af&w4H01LJkFhDTl&zuJ6h?}rqeIm814CE!PX8YJMs&m`bR0zL?kH0}W;ElI%V7f23}fDZ;Fg}m{3 zgCyXNamSfcTqmOMHCj%2 zg?qfOabYZ&Wn?fTw%EK$X?@c`iQ%=-)nb4#cm%6uxSr=5c9+;mzoG~8=mX(?AkqNqppMDSG zr^DJ*wH>4eN)H4Mv&`Cbg$bLo?Q%G{HR!vBgts!jQW;uDBcqNJv~M{DSBV|LQJtqx z-g|9<#NN*|8R4Bq`E-SM!ZcZsPnT&rq%1#Q*Bpt3J1z1V!Cii2E{^0-!I2bv!YY5i z7RQy@httHFbdzien2bZrnJnq!Oiqj7&EKW1BZWgbQsz(&F^A%7=0jWhX~eUju%3j; z7QByT&*WhuVR-BsA=V8u%=r?i$_yU#Ws=m?#S|#W{30H$g<08gwS##c3kK z6cISp5p=Bxvoo%(1pRKN|2*Mqi8%3DzFtjM%6Zh+=7aS2DPQ{Xs4sSKM~#cC2*DG- z%oKKf@iPguJ+3xJSH;=1AvAE<4PnuhwQKS@EGC~vxtIor6=cVq zAeI1wVK(f}C(*rgaRd$9*bl=!u^)!z!ZR#Hv-nu1Oz(ByU5ds^RNqiSckh{ZR%CyI z2k@~T3sV1@4iC(*jlnT21b5gWTl8_jh%ti>;c;Zs^WH{xdI_`t*ehf=vw-R zrq_&i(*-qd3V<<6K(v!ls(Lhizc0n8Vx&_xU^FAm(Fdi@SmGLnSz3%VveHN^$%S%D zuTuwo7>1FD#2YC~DXC~U^6BbO5T79UQa3!!QbgSfu3($YeD9lR2e0H$y6NixgHsG$ zigBOxlDEIWpAe)V;>L#&<`%)TM>IH_00y&dWg@nfiF7O>4xycvpmqT)+*$gxN1a$& z!rNVXCcND-i?R5KHF3T1&ckyJ2z33oYJm zUw@=8RktsE$qP!CJm0~+@(F6EmEy)pNIZ8V&d6A2^OLwmHe7=~79>5oCNfv!in)hN`YVdY_*S6eu z@pdco{10P`}{6R1&QJnKuI9`fRn7ydLwo%oEg5gCBDdsBh8 zJLVp_V^1mSL{G(^zj+YeE^8&zna(nVc@;TT#s|!D5mPPe6H~1x;xMVN(#x?_tFjlX z5-qS=2&$@V$Uy6*3cRgRTB?+1(prdDA+;|J_ZQg@aXGD3sVAO9z+Qzg#&NbB#5D$u zoycP5RB-VerKC08_BhPHecilJhg+ss4G!zh__=_Rt2ey^{WyxuQ!}Qudg$ zyYy?l7`}*Rd;N@1uThOi>h}z;K_p#d<(IFPaMo89_YYhTX?3?JL<-Yhk*oF+7GUm& zi)x<$6C5S$xEsAX?q;6=vpJuRyLl!Zcdc}`)rzyN)~n-gSOI2ZfR4Ln1%|aAfniN_ z%C)TdwClKQbL+Sl(4M(<+zqSaZi zaW_QA-4q@7Vx!|;?CQ9il>hgXD7hP=*500S&bY$1B4WwQg{v{htbzj|I z9HD_o1@|kfaj8vWkV0L(_@MJqR-04V?)XbL#L&0dXXs1oK@5GH#?ZIn8u~6NhPUDP zOE>%dr5mDbZW=@1rt6>r|LOy(#k{AT`L)sEH$h0-p@cK###@8PNd$e%nI_$t3%|(`&EyITml8X zLIj)ZExet(_ypFD%Q6d)1;Tq7%*}V=B$@Ky0xc~xR*Y7L!tLE7u9Uvn6@4$)%RBbL zbP(+M{nhvuOFc(V^Fj9b1qM;R}X28Nvwy zfv+xghb4*jm$b=21l4CYpd2s2}OI99@rLn3k$IbqIrmx-}n= zvPgQB|BCiXCy}$!G96<7t1Qq;`4y!(pw+cR%zYs<(Cgzeec5uUC4XD_3`a5#8u#(dj zuU*#kmh%;;y+{;IpBTepBcyd--BW#)z^;+i?-(@#KwM$MW&BaaPno5I_rI+&NL@#$)$r z4C35{O|?p7V#LH_H20i|nXr6B%ri@OwJB6vEml}Ht70_<8E$OTO}rapv8?kx;Pp33 zcefAtoXr)qwvZu3-7TrR#g-!4u7u9ImefGg)siu5$>OO(6v&H(a!h&8!Xd}sqLF&r zwM6LJ5}i)V9&#=Bkds~5l7<%Lb6LI_fGQ7wWL&0IK&AF1bVJtapA&Ok(*O5HX#9+I z@AxT*(AX23M#~?T{e1{)Y~I_+2Rc6?43rK;L|O@5ng^V)8nb4dH7$)qPoY zL+zKwTUD>3*ugd72DN#+jGC+3j?5=En|2Ft_JqzT*$vpv4eX-aznn5*!{T8&$}=g4 zFKsOJZ4|K2Y%IzpiN#5Nahtwr6Q5!N>SUD-{%bpxeRQCM1KQwUIo=|E%OVQ%=MVEA zbTrY|>)NO!3;C7bM(eVOi&s*)D+lM6w?gz6OsQ_7?%tR#eNz8U>l4}MjXdZr{akEq zX9g6)Gwr17a5!znjEct$s-8l=7hRM7kAzoC`fU24PtKzsD(PyD1j=1Z_9|I}>$_SG z>9MYaiAgGEzG94(XRN}&`!%?x-Fe6pn@UfvMBasLPJ`GRxPB{Mlj%Er2}J5+E0`!L zez8e>W*vr-{1BCwuchagck|Qu`{CCg^3t7wm;4v6B$PonTTN-_7aNFBm*pa>_D;0f{$tE4?Lb;ORcEkqe@rC+RwI)Q+o@z))M>NudzSy18 z(J&_Qa{{B5$kYYiikGmxr3r5nis4r%`o&O`ul|5iRDW8+EIQ1%(R|0Syrm7r z_yWWC32hyQ6=yRxq3M{IX~TeaqT6l=n?si~%_qbnOCB@FpwG@Bmt)EB^+5>iO63Gn79pZ99TS?RToH z>;I#2MF1ogELkPam z6*Pp}1l%*A+8QkLRdQFQz5d~s`Og(wCE|zDNl&b-#^{HSbtM-V4j~`slh<^?E2U7Q zPso`yG$}XE&QjO`g&^GCOg{OmCNLTf-65Q53fLb^K$z1y1je4xKSWucfBrq6f6f+( zad%B8&b><+^EU40M90$WMWI(=`co0JJq8M4nUE5b5S548YfynV3x$8hUx@}3iG=75 z;XuWOgZ>yrlOUt+tP+9K5K<>_m=1AFHtELLq?}2%f1M^vb@{Xx0K3Y}WkxnB#t3v3 zpa$?j2=`%Rl3BCcX+kEMhwTdW52A_Aut*u3^dF>*O~C4H8SgBj;b@Q2!(Y?*Y|j1d zP;q9%)au-8S47c5x3p^nIY97JMiT)O8xt*QGaF?sY5E6>hY>xFL^>I=8?8R<3h5+H zC9o%2I+@6oIT7ikK22irASz-LB1KClV=bMe(=lvckd5(DMG<4!1sk&4=^DGiYhU0* zgBxS^6TI0n9*y>MjM;}rW5UcpbcqO6<7^pqw@YIZWs7*Ft<+e5*a4wH{n2!WdAO~; zgf9~96#$~y*3L8t;5lN;+a3{f$_~G5>v*LdeZ_b#-#Oang5~SBCs`oTewG+#wx6AG z@#mpwaeIpR!6{lw?bY~6+vgiAkZh40)?(bjf)5P%of^)yJuXY5$xuRBVJq0FrXTb9 zX5GfJzLNzhM!20!dVRN2V$;U*A3gcxlT~o>VIEyR&bUj;k8n{da1pA)?gJj71JkR2 z+0Q5O0~Q`3ELf>3*!@DFZa4y}t5MvZS)2}szR$m#d4NCi#Tc$GEsPTj%)?ew5NR-qq8R)y~9{B<@At2wpps+ub}^> z-=CyR{%4R>1oKdaJ?}20PYb6ELJ>TdBKSfPeB~GPU|;!!nqz$gXS+U%W95DCW_0$S z;IXn#uMf!hKHR%m)WDNPxAhMP4#tn&)?n_oehM|#7f2F#?;QD!)18y9RCSJ~SX zi?q1#LkzXDcRYXO_0;LlYhS=maOO<=U9;)Pd9FO{JaI@hp<<%EbqQNxApAthM_O4k zgmo|g3sD69a#87G6M5!*lyfouS)Z+@5ge{~5`TjTJe2s1eGYCWrZ7i;-gfGJ#z587w5<_3&Yj@j^EEYyCBX9x|GVX`TQM zhpd2|1}F-QMt(=N;k|aXPym=fXTRa6SnGkOTx(F&IwAPSDDPogp5pR!b+(j{8;Fvf z@+6>$2S-d>&?#F`xVBuoD5Uyo-u?NfP_r@K%p#5eCFV{7n;|f@Y^QX;66+?3!UXHx zEKGm5h*X`2W}V~hovIajp7N=g&&A7>?GCV5#P$FWKk~43+PQCtrv#NH-Va7RzA>kZ zvvVAQI6Ep=C@C#Adiw&;dx^S%H=gGSg26e3)g5*qRE4zjlKfBMIaEa5(%9csy92N7 zTp(eGj_}6TFD_s@0-u~EnqnA82D>38Ff?W{%hUzxhL=!>R%qKkFUzQx?ARjxMCB~+ zgeE*&!4{e@&*TUAoVi3nH|boi4#rLAQhPj214iLE%t~S1fB=?3QEBd&!g0iuv?~K* zrtYK?1B~;F0(gX|7mLNApNasOMak7)WarDX#gLINhB9(7R>&z3EG{0S@T~0F+TiqA z`2N|LLwTNLe=}X!WHFu!hvS%N&C|q)Yb6M#zy~a*b}yy>A(PT=NWbmN(@A&;?$ah) z2~GJ3OQKy62d^`YfuQ4VdLP4Y1k~nf-DX-9?)OnPis71GYiwd8v5pP9AhqcTCEIOKEy#>qP<>F8^QsvnEA)e<@T0p!EzM(x-m`1Q8RU=cdJcz*SC~=Ak#W12I zZjCbbv}AOYhFo!mxrm0ge>ju1#-Gm`lL6OSV;IbVV+=6?jld{=;DxDrtTj~0T0@~m zw$>1H2Da#i@?>$aK3lwzHPfTkT4Rw8qupU`!w6VQZtaL^ZQ5;*f%u})IRCkRvDR4T z00(2tmS-avGiJ<3gfU-YJU~Y~m=@orfgeyL15VSO>=LCzeH-k#g&7gv2!Tf!Rz-EnGIIW_TB@Px}w#ebP z!B~!Ei;N+`nArlxI3u+g=_a-~ADd|});mM28=BaJY~9eb0cWjsgJSE3ChOOxQOg*|o{VaF2CE!*Hv_)Qfe)ur;|DH5oTaG$tCqA=Y+b{Cs$BM7rm!0~EiEEYjmQ zgz<}t@f*Tsi0LORZ1}CwMNE_>>8X(!ak+MYiX=UZwBgfZG2jS!&lZfd=FnqfH5qG0 zx+;ux)mlwf`>iJ99;?aNT1{5-zktQ&^I3Pte00q9Xf0gcV%!K=;e;rAsZ_R9EbJRj z704q*eW~CijCJjE+GVpH`;35A_7F(e34BrvmOF}mCQ29_qm+jRGnF;P?V&e(L>dcG zLmt!rA01g@VV1JL0iv~Kfc3C04{Y9QJ}~7p5P=PZ0~&5B#7l?>2I)Bxa}6zHrpQmv zO@8esqO~{r`d_m8`XOp<`YtLirF#IiW0xv7b3(EaL|Zj=2g z)L^luvl@ON{V%pS9XgVnc>Pba`Vu4)cG*PAhsBXn+%6}(`B#98zJyqX8Ut15 z-+dcPtQNB&68&R5SK(#@pVlC@SC0ICqKZtr^8@;?QE@hJu-_}6Y~o8S&TX}L5L_7H5CQSUk5m9baj zuCcM2OQHBRQz#{(@Op_t)lKQ6LZM(zu#vr8nP@aDg=+Lus0cRY4uy&|h03&XWj=l( zx9YAvhde0^CJjuyndCC*(*Dx8-*uFO?;)`mX&t3^@F#u(bd~-=ZFV%h6KXDdpU}O+ZUjsOC_<*q6MgWt} zX-asQk;MYB%eW3EW#VvP1Xg}oU`094gKxEVtObw{ZBhDX{fvEHisyCqJ^W***Lp+6 zK-Vx0=kZ7sqn=e#+6FY}fegA>s?gw{^&!wl-}_Dg=a_IvzdbTMo?0vzIRrd?2%PP) z*njxh1!0fD-V<}svH04bNWF6z(ftRdcJx@}c#cI5&dTWWahT%-VFcU#^#6kWU;1jc z-cSD<|I0S|4P&*R{`X`HYzaNKRpZwJDZ&yqtNl?%`_rPm=ZWtFZ+a<-ogfkjSBPj! zX$>yRaetAVN%9igiQMOmMxSb$ANtCJ^u{)|?a4!uTug^Z9)j2x-&=hwTqJz@-ly;7 zgS^pZ!o*N^$zo5k7lz45UE=ln>2OUiE?TMjS{a}gYUIE+GUrqbaxyIB&iY1N4O`A4 z$FERT{tod8;{H(gVE2#Hk^Na3;sCB-ug#`n+9@Ud)nvIIYdTJhcM9czb4t=g9p_0E zJvCmFY^EU*ThYK0WQOoC>$JykSp$S&m^kt0VPwypWwX>>Z{cI$O#$~6t?=0ID1B>? zoG9Etd=}vD@WqSra<*AzcshDaH#a4$Zn&8}kg40(_VvOok68Dnw%MgrdU_~ORkqA+l!Ks#+BwQ^DyqXe-1<#V^8=W8U$|IIunqoK z_K6BR{zm;t8}KB-R));+bBvqz#U+Y9!Pp7;4O`nW5(DX_m6lM);sF6i2pyJs_v;?SRQ`y@ zg~%m6BR;7d@P!e?-6q?>M#^_4JAAndsM+I!gpVF`1^^i<2&RB_44gd)UUY zL*bhhPZX9kEfJ1Tf{z~2&SYQnlaAuK%EKA@h^9)OaIbq;fE_F@vEmcK1gDHRz=q&n z`fKct58BMe(H9zaDKuV8H&{P2`EuvYhuGCD$TWYUS&@soxi5T!56OLy?|;i7_ALvb zd;lg>Q1B*jJqx%7s0Hwsi1B&RbcsC)n73pCpsmi|LS*Ux?fW~_jgIFf%YD;-P=W>E z%UxTzU&a9$?Su>^0DIOzU$3Q$p*U>mcyR1k`SnOucJxNlW?6P`4DGNlhITk#4DE2v z7}`pZv%C^=R-f|+TZapBR%BynM+0JLdp2gZ*Auha6Mzm+RHnX>WCA%$^~KOu{V}wa z>5BugtpqvCD|;V7%5X7-r~zVKM^U8%mIl5p(k*gA23_P7R8o?b#UGUI{nLvoW;2!7;Rx zlRu5i-22%weVa0LD{BZh;X1?;Ha#9@{Aa*g`qt)i)WWR|&$na^m9p;s;-J zR#2N~4Yp6H`^gdIG2ua&~gE)`8&!M6q=8$o>A^QW?VIp zmv2oh3|>WSuZR})k}rJ!N%@6HMFz(mX1@$7%6GH>X=hNE8@T0)EF(D***hp?H9O{l zCAVlHFuZFDCQUW2)sqIIx%dnPB66LBZ((opKYa^Z9$?t=qx5(B=Ah9m=RENicGz}v zKB{vz$~m8S3;U6~Iq$qnawg@Rci+WjzEdzNIOl$yv)+{n)4VweMwJ3Ttqcb6@IpQf%I*7#)ap*w$+t@T{Bq9IQi+>$ z=i4NwD(AfGZR}_7=G-qi?Ml8q^h5DBKWY^;zED1vE{M1EdLr*y*3yZ}%RTe8ye`6N z#^|?zJ15fdT;LS5bs^)QtHhe4B2evf4M=|*`asp?1AX{1oM}x#S?c%#{6;NBvd=;! z?VcX2XXk>fy20B}Pk)!l^r|4+;Qa#JSs_9K|B%-&Z$@}A)`>I!z8gB#EWWboo7xm4 zafPHT)I}1QRo4b_E^eUU@~JY2 z?^MECVNo{1b^b%G(aH0cjwnut6RnCRxCO zCRUKqU*lawie!!1dJfOqQ5>o_y^hxh5xQ?FtsD*nfGl~3uR@pia*mq*NS32+BuhH| zLnoGH5zC^4TivlI4Go)(WuYXNMIf;(LKDj(EKYyc8Ky6ky{06VMIf;(LY)5ky&KEI zv#~6^o>&%^35yJWR670nASPttrIo znetb&`<%5tEl?`GN!IGH*&T#N4H>nVEtct0fuZdTrQ_zZKWe7?k|vD5hX6I)n;e$} zMpTsb0~OVQXH30e$>2t;GC(pqlxCv@Qyp@Ei2OUd>ArV9%e)xrS6TFWj1>GU0kLn# zbidz4tVTUtd+DiVpZ4F1tHxo>+M_%1C(uRnhxyO@eX)~+Kja?%JO7N|?Z7z^PxO0G z{~q87Q1t$Q4}l>~qu(R&UiuQVn^>}xUM#}D1N`|(r@;N3a>7a3%PGgoRUDO|B)W<{ z^HlMS_5u)}s++EmP%r7ZiHR>G_6Pji(7`(p<#kf5U9&KKG0bS!(~4k8pxECXv%yC~ z!IsD6(59T^lp;V0o8_)w8(fwD#hYo(J(pgdpzG>sJlwy_I84C|m;NcNT-oUN6^IFf z=zi%tiGZaSp<8UbcYjSKW%4rXJ91J@Tv&FxLXdlJkN<~(iCJlhC9QefQ9bTFo7cy2IDShl%=)+&zpKNj)7C*prk^to(U z88fLQ5)~H*pQsC7AR=cL|9hgr_22|NY2FL4v>bdWTMj-xp1tDW^Cg(2Z>{(J(!u8o zX_x3A5<8R0@w5SvwH<59{BdC%ZW1l#?>sOXxshP9P?OAu!lKATUH# z5|_%b;OJbbi6{pXJ6r6!uGDW6rn^$TTMf>LDO1hVATpNlP8M>N>fccR&i>@6)?H7P zY8^{deMe#EuAvl#fn<`!Mv_$_S{yM-V%})f?zIKGxLdgq+Qz_8Sq_N990_-r>cFpt zO;KFw`fkCmG-QLsvTH(K#hsYtf1P>?JN7A9_F;LaW$sz$` zVmhpawV8GqT!jp&c&cbuWVqBhK7>*U`>I6ZJ0gZ`nD=wUo5j830C4AIGF5o9FyG|4X6Byux1*`v%@GoM`6do`)w+bOGHE5!zmJuo zhau|tX~gQR6|*FK6XK(3zUfg$S>`_s&i zd8L9p2Y_#dO!`kfts~W*fPr{FG)fLap1AOZ+DTh9j_FeR-?2YQl;CsIWexml;Iy_|BohtfGCr!XnbNlO|_U#U3#n zr8j+P!WsqkVRNwmJspO|#_T9Nj(OS>&1z6p$#G0?0nfO$dU~rxvehE%I2QFgj(I(< zt)6vljq;Dafrjkw^q&8OG8Z0Zp@g&t?AZ|%9$c)Z;N!(6aLCERgOpF23{fXFUB_u9 zWc{!u>l{zD2*D`~930T(+`v3)sZ zmy@#F@7eS^KHo0LLaM#wbEj{~=Mx3_d`!sa`-ObY`a(8OYw~#t&JoCbN^$t=d>36c zPZw8Bh)5=~3g$Pmlx`Q(nL|!Ph4vlnqkRX;P2UeFAVZ5zSxQ&B0W!5asCozIfa)Eb zK8mOZXRoDpd)1&Ccohl78PW;hX~IoC1e) z;vMF4PC>yrJ?v~T<_QbViT4G+WYdlfrEVlF3i0CqOHe2Hz3)mWw-Wt32^lS~B|GYnbvRh+U-`1Gz+Zw0K zjKH-&-qzUrliM2iJk_l+?zt{Ao_3k>;4+i^f0cGVq}4jZahLMzw{~ba@|fM7I{tX3 zy4rb+-EPn8UN#P6!SwGqP}RG4KIrAo%a74d`UB!9@{^LV=T@DNe66A?J6v-Qu8Wbx zIu+Cwa%~mVRyDO%*$MJIutwo#s!#T%^Z~tl#P7sSx*EV}?li47}szYU{S#-=@7&#iAnECUSxh za%o)Wa>Xe?sW{=oc1xEubXn7fffkJOdJ5yOm56%z>qe5~yQRIhWneB%QCk@Brvekv zaLz&ycR3dqIqpGaQ1g}Bd=s%3MclZRqcmXD*bs=@BbK7|dCHUFsPYh(N1~SGca^$y zS+feK^{@GG{sNkvm*0?IFQ{0GRuru#nj0<_Wo#ZN0w`-YW{G*`zF02b$riw3DKOQ=~Pww!wYpiDscs(sIZTmL%L7)v01(TMW(Gbf<2=g9b{Dzboqt^Np zl(1GLZQu^!`z8Sg#p;$1vfokK;B)?B)}6T+wSZz?e8ysom@av)r^iA^xl;N2KY!TE zC(<_sA_CZh$E9$?O@3P$&tMjPTJgzr7qEO%Uw+)!qH>jM_^(lR_w(Qh2$9OMzdy|4 zTyI0Lmhl;mb4)t!*2S4PHj6|C;uh1FbzM>1dHEW~2viar?st@yaU?0Pg#4kuq6Vw< zJ;rZ%l!c}2%xT@St-rB2SHH^|_N4|HtH=5^>@zZk>`M49+}yO*bD3y8$6Q0>X-jM) zK40kMdIz@u`GA)U0w1bJ4&i%f*2Jl|Nk?tydWcvc4faG%M7I&T!ibdd`7>-J$cKj4 zAMu_)qXTp1z70>RTiO-4fs01q!)(`kzL$plGmNbea9Q=uOtK6^WKmStP_he(^5JErJ*eT1P*O((<(iClYg9O@t5^W)l^n+jc%@_%>+P0B|- zZ9oaPXZo{pk>@4rdTDs3pAl4vh!vngQ(oXGS8@VQG5H_XK)qtZDn=HlFDe1`MGVvz zF%R`24CTZ73`!p)QS1U?Buu54a+RK#aw0f#Bb9xXL%DE77evr{V<@X4Gpj=4vjd4K zfFlYk;K#(NfVF3CNXh^Z2&wo_G+5c&pySX)i(%R7N0fYJap+VLnaUTeLcfev=$Eky zzbZjZcEUX3;d^-$cKSU5M8}E%qNxNBy;uT>u9o)*CwlDOLpqeGCyqBBh_KJg2!^zZ z*9{%E;rjg4y*fDP{`=^Uo$oUoz4q1~>+#lRtfENfg{AxofjPA(Qh;20CaMC6JDI48 zOq33e74(4B1&m7NiHh@}w(|(I0fEf1j_;{asXU-k1qCXVCvlfOadFWmAgWwSsMkDu zliysBiKvKB8Zq<%1}W14BBH*yqXL>=I)OAYV}p(r1dn17YuNK)g|49oeGPedf!B0E z5{C+Gtw6A~s)DWMJA`dOO9nxcb^Kh;Iv zm=1!;5D!v)qno~4G3EoVIuqA`MXYG$As@GufF#Mmp2}DmfdBP$8WvqMk{HP-HBT!AaS{9zhe=fWhHJtcg5~ zaxdXagFr&4?HyoZ(f=+Rr&aoUZ~n7M1Vzh3t^onlLMj9LUOvp&+TAxW4Pk-NP{cZ8 z-4;`V20Y^`q9@mT!nbnbxZ?uU$Zq(iL#SV;2K(qp_l#3cpg4A~%1`do5d$Tx^Y`~L zir1S0an$==P@GZCK)Nm#AKuTdDu?(-Tr3{iUv{zhCAS@!uj`l3Z$dRo^F8~t!w7wT z5B|R2B#i2WPwr#-$x4m8g87SPE)}I8dM`WceEPi{zy|`V{22Z|`CjdlvkQNmlBfBK z*8Fs*kcXYdM@ygDfP7rd=RH-PA05b>r|7TuG4lVL*tbXJU*5+tl-|S+JnjUBk<*PbLR=w{A%9&hA^t4X@;j#7~0lNB2;|p=u zsaSWNigDLr;6X-*D%I$7tX?X)CT%rEgMW|UCsfmIsa<*B4egri(NoEojjk{ZCY|l# z+f(WD?TJKkXPkRd>)bQOTsS_*p(;W{$JuB2A`c?N<0WSw7v>X{Rz`b}>Gl$^g zn9)q%9V8$3RlI}c8<1^OMf|{KJ^>fx(3(8QRIRU(G>4f1(o2p#{)xl=3 z;}k(y82TTbBHRx;IHG*VYx0%X!IUpn4z+Rs@JNiPjpJhPxf*F+FLRbx)#?>Z|12 z)l<95?8K(DOg!^dEd32F)SMWV(B;M#+Ym5X2f-RH^rrJap0<|hx))ych$rBPd;@@; z&jbEXc%(jlHY3F#b$7kbfYkjT2}!rp9|TFale&}q!BT%%K)I;L9C{gJyhsG9b(yQM zJtS6^jgIJ=ZrI#r$@i~z5(ERLYe|;m!8M{uk_-qj%$KDtTe004^w?s>VEp- z5ljbZKh{CAv~{MjNT-5Tx}TSm+?&uI=EpdAurW8ZjBu8eP-!GihFp;9g0%pcVN=U6 zjmYtv9+bNPGzVIPP?i42Y>(c^$2ZfUHS*<WS`FoeqsLw0Et)ma@HdS zVjB@`W@FGP5cVn}9_J7J%V975tOCsXYLIKO;0HK5w`Zu^spZS_j=J3FN!*gS3Q*%*&zlRtYKW}iqpZLD*cZz>TO~2DE&5_=I z;|4ywsX02J-^283(U#`o0sUS?uSPaCmkj9l2xMeino9@t8*Ny;sW~>F-;3$hk}b_; z1N*%Mn8cf!%lrGilmnUPi@4u+K5qLROSo^{@3Ae-@!o!qQTnn?&4~g1UPiB$Z)vU= z&~F$Ej&Ew7GoasaPoLP*TsffMKuuh+shJJv_X>J-&X#7|^tj{R`5G`OTlOPuRS7 zo;FXkk@LIl6SnBR_9>$O9A#2U6PEvR`!q!VJ!+q@jPLw`c^anw?zT@@toPcd5&G`|`-J83kbPQA{~fna zSay%vr=|4Y6ZQ$q=kCYN(=z(+Ui*Ya@_>CBr~e+ZPgn}a?b8bS?@{}N>3+gKt)&0% zd_q5E)!fHH*r4eRuI;pDfZsar*+Hz2931|PoJO>9Sl#J?p~@<_EYg{X^TD41bCj_# zvD3_-pbN5poej*$g0YP-8^{{Crv?n#iUL4o6~1le;dVH8aRJplyl$Ias9-ZFYZal? z(TVN(#r6$jBGdA{tQj{_-Kba^rOJ(}It{Am7VvFd>ZdBV=hH=vbXQL~d}@C8_sjrt zRaF=d!2Yyx8ET?RI_zN5%xatIIDsEZlaJNo-?PVR*r{!#;{tI^C|@XtD!foSBRxY^ z!@-Gw3t={b5rIrm^0^}dpB6gDn>wG5d>l}$1MY2`bEHzfOE|D$$ef#VoMI_d1<_gd z>%Z7;QseLau31A5d{^&(bUA;>r1Q`mw@;87JZisr!hVCY?z97l5+3-Tp)B`)&rp_! zzE`3#-z(9W?-ewLD1dEcEC!Rqd`%;xLAtKXV}eODv`>Rfx523>g9=|lf=GsY0=~-sG|Hi`JL$J>(I|(%LS&yz1HDF zMGZ=C3WN`x08?4Hk4}#RTqS zTFY_O{>c-g24I;<SNRPwK4444(ITisV~}Mc>o)5w z5GujCGhVrlh%uDp_rH%7Ut#|8ZvH6#KJtF8`+BK}xzs)vAzdq63xxFC*mpnx7NqY` ztUu6q&13I3cg@@UpVqr3E_)2r&VCkN`W{K7_0g3eL>>zgX570fR03U*0<1g*=y=$qKWN9D0@3@@``P$0 z2CVoll)w7}dbQ-U_=~BmK$80=G6{>pH*jo=V8eSq^u{ON^sWz``XYyz2{t@=&qsGX z_@*!1{98K^G%DEe?Z5xSuf1#E5BL4v4z}6f@DC5|JNnm0|JR59a0jn12}$#tA0q1U z^7PLY>&jq#8l``MhzMD`lF#0Mm@c)!db%xEHZ~P>XKIG-!c}pzL;y&r@w!Bc!3n^) zVTJ+9X}2ZR|1W=#3ir}KGmdwdHXg8zP^E<&!6!dLgTzAK100vhJne@TZZ;6rfr4$( zerk<&%HjA;`B9U=LhsXFmnegYwnC@PWcn_wnNKSwP%8b5gpAxE=KaVUGmESf=vKVJ z814ofp#+=$x?F9&&_AfGe^tVlDWau+p{i2TBq<}cYkgBl|GNLhfi7R?&-?Hb!_ z)|f_DH`=23N7&SGRo$48rL5Qu=+Eem6^0miE7+--qb;GWtD2 zzptdanmS>mYXFU6N_?gHyeIpYgWMg%-X z@)Ay7qLU|xcWEKH#mOz5ygUOhLCJMauIuCwwS`<;D796QQstDYq*Rbn;gpJ`#7K!b zC6<&LDt-~le-W4eBI#p{ipP;W&dKAFTr!nTNv4zK zMOiCbj2Daf#bVw1aWG9tPB=Ny$q||taq}W+UK1%zPH9TY5K@LXWk^y|q@wS%Et$ePk%#z>4gG3G>S<4RayEW@H`@uEO7wecK8g<6Ky)8f^G;E$ejZHpJV2Fj!1oa$!JL*D0c-sef) z3#i~_sH4SoAnSRw%+5vPxtw?|CsG@!*bb6AoZR7LYUBAdg-C95a+{O0ZnnBh12Kd# zY4VtGZPQ4Z=9FnkxezHAa>|90vKA?8Ic2S+tn1P!FT;Shc)(Eu)w;Gz)3FRQ)8d&y zGSzw^^%TidoIJ(Jv{0vM_>p`bC!fd3v{0Xm$kNNOC|bNIkW35pIW+u8eikP`i<4=g zuIgqNpm`T?^DdC)twG8fPFW)%xQfny#829Je!l$IvghZE z>Fej`)n5ZChGll==LGTRrIfri`?=S2^F3eLe^=P;40D96&VTB57U9PI{4SC6mv-r( z`nfKZ{QT^tuh~lfqrXw^A})6kmz%%o_AlLD?RH)v_mNG2R-z9m`}1D|xs{XGo6imkLbJ%9{ltHWnc6fsF9ZA09nij2xtG|k^LVePW)A3e6t9MNp#Lo z_Bv&6A$yCnw{-TMU;Oi++xgGgCThgXwr$0~TeneD&q1q4xYc#am<@M3bn6+WGO`z- z!%NWN#gvXCn~G162gMI_@xxO5KfmknXQFQB1vD;;wo%FWrQ#bXzQM&er1)3RFmyYM zsq|qgtVJn{QP^TGY_Sw}{0BFEvoh0pAywR9rkLdS=*#Z=hv zz>dH7Q*YQ8&Co2+=um@DSVDy*C@kT^5-IFe(s3N(RM_Hy-8}i8uYS_U93^O3eJg$k zcJn`TH`?f8;8JN}6~ z{^XrLB5R+i<1e%wM`23_cKnYY|G<8l-|;hcd?EAu*vG#AR@xX7XY8iT?-D5S7lW7N zRrw-}Vlm_Wqj>Y(w|>7mLmfI($H(Y)545ty+;Pl!1BErXu!a=&x8Hu_J83O0hQyaU z9&lj+3JbWfKnh#l?Es{M7QPw9{w;pzZ}0vN-6WSlhQJ-CUn(p_VIdb5N@3%~PzwQQ zP+^UM1mKhRzWIwp03h~?s6kutONB)!EaJiKR9*U z%~U+>+^F~vZH)$Ye3(04b;v^%g;lw*sucDoe|X!EJd6%^Jes@Xi@D=;v**IFd@3lc z!i80&u!sKmgL{39&Y3#Cggf4Z!7&w91&@ltnp{{@3j5Zvd%oo}+}s(uImX>2zOse^ ztbjSLf+HJ3SYax@0?ru44{`BBQv7>v|J+~EXXzO`-r$Z`vt~9#g*69`;_<)w)Yqdf z%lGH+c%3_rQAA-w14r=-Z~FU>&?X!@W5*Njcp4puW|7;DgG_rIrs^p;iG5lc*-5GLPtV{#REt2;DPTv zN#|^O#*R0+;}}I0RvS2qAD#WpTdA<-89P429iM*`Uw`t+BSapC&e+Wn?k107hEZIG zQCxYZQT*tazWO;|CTaeTkLn#g-za|ePu_hYT{X|x@6>MSxd-tdK6lSM6*kG4`rYJy z&p(K_zV-OWea4hLLobK8mpq8i#vpbuh|fCHARheGqo;h?HuHCUL~rQ%2Jwk6e&8Re z4I^jl_^92`bC2R%e)GiJBbk!b(ak@KfB4q@ zAF3{dk_|0jLx1iYkNtCXW&xCJWC0uc@!$W*qYI*BqYK#3UwPl`Kb-~L;!%7KM)7=% z;;J)^;vanIZJ&%5PRZsU#ohn-*>403r)2Yw;+Ky9<>9lSWb=>WKfM3`@0@%VRs>o5G71(UM*NAdBy{`4!}%z{bT{G)j4(0guC3nyjskK)^Ie#@uT z!U-3T;#!R2i!q89o@o?!9sANhtA&%Y`A6}gZ@%+m{=!Mw{G<2>-~ZI_1q&x-^N-?( z-hS#xuyDdfqqrIZlhrIRSR@n&l3`4n8 z4`neg{X_Za8^8Rwbg(Tw3o2^nrGF?-KmN71SI>fq&fCq~W_SLevJjfNjJw&){v(4W zc-enCV_#_WdfQZPGLKzvP349N5$h?sTr>BxssSE;jy}5pE93%RAs6rpp@ZWk5W@E= zTv7+t*-hR;cRyM5IbumY9t891{{Z;3`&Zoa> z{MU=2L)cvEai zC*2h#`LmSTksng<$7M%BbxF7*KPom3e@Ycc^fF1_rWkgRfd(0!wc~G?-nHSgubZ7s zZ@i(SHasc+SG|Qb`^XY!YQvgcJ?~<9mkxTD%Db^a@38EBo$&HoB*)qyOU|X%!}K$s z+9Xy;%340eTA82BNYh~!b6+Re@a0oaKKYd=pB%c89sgb{?F}~kND3divBMsL@oS~A z{E)s@TE`D#ua)N5PdqLudo9{C1)~TLPPjBBUNI$}of40yB)OQ8Ycqcfn=yr300PGj zJEz5_5%`3+8q+s5qy57&>}oGr#eZ%wK_Tp0A8&`)$}9`h@A(Em2Hy`TP0-(p>B3p}JJ ze1n^_>mLroTk1XR%H-nw2tZPw>#;w;>-b$K4~vzQcpbkFk4@`!eBi5xwO=uN9se;N z$E?@!A0qQI>vjA^yuDC+9eZK|=;eF=PD}tjF#+`Q&v^oF?(7> zF`4vBCZArfVW+a@p7b(T#vaqYE?H+1Wf1TGB16zypxdt%)EfSec~R@S^4pahZZl!yTfG{RFv+dluiC!jSx z)?Ac7^nmQ32#)I$l<-;JK@mVdE{3l+C{IM`vY+r5sK~Sc4(LK2vxTT~A^Nj~|BSn` z^a0h9UPnJna%$X>^rT9j(0;6g!K*?6uL}CXs{#XF1+!%nzgn=zY~-ei5}fR)1aL~5 zzCj`tyIgi1Rty-$c(KOwwjm%WPMl#+2j?i^r)j(z7YNOX)6`#x3u>h;irIoW7K`G| zy(h0l3^|PRwV8hwKZp!)5Ig&?<%tj7?QSpK#=Co#khJqdN0ow#18ohTSSw0Ph8)tL@T9k^N zAwau_pGck=6B5L&l7~#xf{jg;E19Ix{Jn3Ww(%_Lwryl}6&JRcj=`!B&DmCGZzuk!jqB z=~t1(UK!0l`UdW`XL}8YES~c}DNKX|6W*qvlEuHMwd&ks4Q53mE8L4LadwBW6!Bh@6D+%UdCQ(0tzB7z;GK`;s;BRW~S$W4o# zjM!S{L4xJj<{-*Yz8kN2tlomZV5QuS2Gc|&M`IZm6t@qj9~naO$41CGZxAuuCj602|2 zAW$=DF9vZy;JvW#n6}-0)!B!$|BhNnJo_I!bK@wSg$!pb!x{FRj(jx!P}#tS6EcEh zGJ>NvLum}3w&U^NpZ%bIw=}4s6zq&<{Oe97CijiZok+Q#=Vnm!f|Ig2|gt=KSeLSvR0sh|%9bke~9okWl5`9=;%{y6ix z0=|k3KPpq71`_i~*se-?icduo7PAwY2#P*V@{mi-D(Pdq$R^F}O>otr&!+I%i@a5o z?Sk&}J#WJ_og?}A-51iI866`%yN~)wxmQq@bBo+%SI1!A4xwPp#9BU%B1nl*{R z_@FOsF;J#WjYT@ugU(nYq{V2PAe&U;Sum`l&W4ng^9HkWXk&iSL&(WutWz25Mj+W4 za?E0Vrd=JW3VWc2I)P3FSQD(-x`4>E;c0b~TX&t#Cq@dDNk+K0)r@LMD~u!0;fV6{ z*U8t6TIL*5ltLp|6I5U7tEsmp^~TaquGRE-BNGv>k8w}9w1n&1#BfM&acC?uQla0~ zz@rttjF8V_UWN>3#PN3uQXbmF$b{VqZ0LqjLl!P+3PN&|UE5Up0gafe8OUNOc(N2+ zpiTkr9K0x;yn%~Ss{wHSSyQ1v!&E-iBjV(Oj);H!-+x5>=uAh%kJQ4CSsmY2L!i3j zn{-`IR6U02_m$ptW)#EHD8l43X6C*W>FNBeVWhp=BiEu;E_GmYvGo}N)X$H*0q zLns>Le~lkMf0%yKeL(?7T+Q#qn~1NSfFrhV;`}Y;H(!6Yzhpktq*@kS_J|YOq_H`7S zmI9{16MuiMhDs06q~R<`A7VMtFf^7koqGB%1kMBZdT8p&cHo$FgsL7!&>TO6m^Mo(2c?0*= zp$tB?h3E$SUqNv{nY z)SA=O`oKZ0J2{epgPJ%w8UqKl;pAuz9MqzE zVNf5CLFG^~kmi(!^%p`(A09ZY!)Quf8oOxVur6|Pj0_ys5hus!z+oMAax5M=tc#r- zO9l?>5+}#fo?-n3)+{VVj#|Q=^LBuz@z0v4G{959c7Vr<0iMD?tDnLExAG82 zA^ps>TMTzcR{>wU>L16D|F$U7VpK+F%;}?t5u|7TXU&mZ&tvG6=!XtK2QVrDypxhJ zjtH^@_@&DzV@w2(m;(BU`8{w1bVhGsXnNo^;Z(TyFSUqM2!Gs5qbj&F%t!cn1mpP# zzs@la;nz9lA^bYWJcM88n1}G|9MyqyU6r}c@BT}BfI^%L(9x$d*P+06(M0<+%aNYt z2maE`a)eX+)ArQ6x!O{h<@z7t&F(mlE z4Ejqf)&{S=T%%*Q=zj_QuO9T65@b!>FB4#i4K-E%(1%U)CiZm@4lVx@@#FyF*a%c7 z$aaJ6`7T&U06BZvZC5mxfob7rQkOyHVDP*B4Ssu~F+nTejtL{ajA$g7{H0VegP(c- zj%|hNjN(G;zpDlRQx;#u9)9FlicmkLmCF>Y9;Lk)w8L+P?r1 zckItCL>&Eh^3Pou%G34W*a%T$j$j|*QfuS&1sd+26{SQefcy)b|2z=8 z&Ooed4nJ|24Lvws0H8kq7soaVSa1nbiU4AnDNcaJa>fu@u?goFNE11pI*Qx%LsJ}w zuqyJZ1-Iy)A3o(4B^(uX(hJw;kA0Z!VWwBX$G0K)W5ic|XxJO`4IgzuzAu z$=0$*HYX|6SAM^yZeB^PEuyT{<1n2i1!MAhUqw6Iuw&C4*fc$fPEJ9l=jRufLIU3EIq-obtPlS?+-C+HXK0+$-<90dcTa1?z7>ToQVO z-HMI~ElvPe+>rT{US!|!vRzQ=Zt!8O^0Hk!+1z2n`L|JvM|SPp@bTZh`CV^#Z#bLa z1M29B10Q+ENACWvGzkXr;SE&7*F6q+p5F-s;`B~7F3NTIr8`xJBeLwgfCsITeZ zd>*}g97pe{7=l;hT0LnrTSMvaqLERF7xs^6%v9bXhMpdO{h#D>fP zey@J~j3+kBkL%})#b)^<-;&1{Ys_2b6Q(#^4T8+5{2x8BM~>L^O}Gt%h8qhSu3+Cz zX^uc?WoW%b)8H%zC~*X!7tI@i04V2!?*p$k~>g%XB`Xg$$qUH;G)b;noh-iS*@Q73KgRNGX3RnB{A z@JF;^xhB{gFNgJWb{s;EjYDk>I^jlRNG&lpJHN={UItUpLARQp3<<31+rKPn6@)h>E~b2t&e(JkJ9tjoUMQ2 zDYRa8FUk!PxwLUxZ}YuUON;HH!&}i)z;!VjBTHtq|Ad!Fc4?*Kw-W8!MgLdzir8y8 zTmMusWL3uuwc;ee!blE7!D!Ewz`j55rNc}c81Fq}okxE7OO_PmzA^O43qzl^xlM|Ubj|T`(@RA zG@)|POV7*!EnSVJt8y6U4;NkKVq$BLiKj7Ripft?Yke(k7D8L8JX$* zU+$mj179}X@6G+hfZRL3Qml)oyc&MMV+ErYIRs-Nin~}cI)xFN@>4y0qg*eKpm{%m ze=|CISc+H$cTzmS4_);0Pi|r7vlR<+5YF#(K>no)pc5**4Aoo2B z9O5;4NT;-&|D=8%)6ZrKV*Shlnt4ySdhZFhOK;l&=X+dQ)(tbRY0|04Hf8C+$*MLW zEq3Xc*F)LONar2XznP^n&V&TIctL6qef{rP3N@9gD7vg$IKu9fBdl>KE`LS8aP0>F8Jw? z9CKpbB|$^6OgiJtiA!@APeNKvcY!5(i?%4CCC+y(;R;(U^P|Ky-S&{o$ui2cENemD zvkb<6`~&WOnPdFNhJVXIJ7HrBqi>Ex3R`NLnxPH1QO>>A{5?o|Y#3YVX*EEeHe^ir z*vxe(^Dppfh_^n3cu~27r*Ol~^N-VrGfvf_ZDDDgLOV|3pmB;MI&DL4T@l79qk+!voe z&$uq}j7QFlSIvwI^DI+cm8p)z$IW*n$Xo`mJ=*~jI+&LD6tmIAWCgHGHncq7|@Rx19~=}FU;nr*%ZEAG2&xAZCHY=9YEy3uD-fA(1diY zxHmPp#UX@78MBbp05ZTE9 z`}3egngUCjf`Q<^fMetB1#<6s%K4KiMb!pG2EtPO3a9^UI+5#h~diBTiPYJc)h2M!b`cDnrz(y>|Ukq0Curu@C%wbyozB zk9#ocuUem-SE3BCzP=F!T~Yjb75sfwx19#-dz{XERwUOr$h!4E3&sDeNm&N?ocj48 zMJIywJZ-Y)srE>tma*q)s69_>J)WltB=df60%-gENUeei(1LW zqJ}~^Xd@P14TbQcXQ!m7)Xv00Orgsx)s+O@jcfUCW#r&@M9shVno za<$(^wY$_D)y^tYZ*@Suv&vNLmkWJNe^xjy#-b-aOkb=KXB_!ZB{J}4s6-sfWtrhx zMvn&-w8?({kSeL2sW`+TlP22$Vo?Coy1wJhe zDNEPUHa(_i)wcbE+O}88j0|iWrSDc+7wt5{mrwR{n@^V8d=-kc%XJU8siWodhoMf! zXUuv_+7v^?+s}8a&IDJChrOz^Vy%BMJxm~G9sJZgp`6@)wt_=If)*!bB|lET+!Iy& z>MoIb@f=<4?yT7Ir!fn0bP2JL_EE#B#fEv6XK45M%V|^+3o{y(RJP)OlMC`_gjpSIf}%ZHVA1xeXlEd5(E~ zn>DyX%rs+Wyb4!uWs(X@3={;tGy6KgOqWLgZV z1tHl?W_CSxzkCIx3ivCSg21yP@FQ#>T-CSG8vcok8|WG^*KxsISH-P$tXR41Wm}_Qw^qBsPZJC2@Q9ol_e#W-^Z)977fo#j( zXP9ldi+GhqXT__ebMY#>OT0>YcD#!JuZUMkg;#0z^D0flt29wd>hLPfeqJRNUZrVx zm8Q$9q?CWwFYzj=@G4E=RV2e%^D3$ED$QqzSGlW?SHT|GUFK03B-Srce1}1KYd?dc zxrAQk1Qz#sNL+#(F1yQ&$w_8R7P%b4BIXdTk|u3zMgtgxtL*u@yN5T}?eGSXP~N*7 z-k_oS+j!a=d_-Ss8*KWp%(66oes}p)rb;wZgEp(Vn413Df4pO(lIRZf9T(S%_D5d# zFm*Uc{Q(DQIOjoHAmE+xERD)%X*l344d*?`t~$$uZ12wwvZrv6`Q{)KeF`0971yD} z^pbr*BGKQ(Jvg;ltWj!3YgJ)@wMYZ36-U~%9BHc=^lJ^+LM*#ZO+&1$6P@y!PFz5& zMSxfXESGF*`%duHXjU->mGV-+!ixkP&3}>iVyfij1(@1PEtnd-0uwCF3ShND8jnaD z$@w{3d7+JVPpq*du?g!hR4v~|#kVp9GB1_>70X|xYwa4NeQwtr@1)F3enobYQG*)y z7MdMi+F`M@L+GjO(hjAaytG3sZQ6Ct(hl9F&0q4;#$U3une}e4t+Y&fh@}m^T5)#r z(yk0z+OfN|!=9xbx=TBpdufO6(hkpVX@_QMhk9wNpYdovF@8V*H$57%{)h$s{WTY=Ii#6xkc%iaLiH56doMDAS=MtBG4 zXZRRkeAxTxgx6&oat-yMm_{pcESH3%oRHZBjv%%+xKvyjwr9$?JzoRk^^3ec>=ARJ zze`DuyYMTX&%1Tftp2^8t=k_3y2G9Li!nnGdx6f2cld0rPo2C*yjp=fkw4}Yy%ZmR z86M*ys|pWU9|#bI={_GFLy7UWRrxzquez-g5qS;pH@(a&~{Mr<^Y= zyqv@-XMb-wFI#Xib*GpkPraC0BC%Y)s5uFbVL?(6N1^P;Y}vk){YBf=bWq`}{^M6} zHL=s$J&!!))>hq4KlNgm|I__D{?vD}g^>%-P|1O(qmsZG z*N48|GaxTs@PPPEF^}{Xvv$G7Fg1OYzRwpSj+jQlPku!OJDgxM`QP6AAc6@l&l_~f zcr!!?0fRT@4b&6~;}4X9PRMrAd`v?RorifNJw-0+3S&_)R53>;{c!$|08hdS%bW$c@gIvD;O3@p7@Vsv#pfzZE% zk0Tp@%K*+eLF<0cPnLK#Hjf+0>8N67T{+wkYVBWV05$QIXK#tI0nv33XfAoHvOodw z3WAF=Yu-I`fNBpDIvOu!*D}zo94iaX%pCj)-m36Ay`Gl{GxT`QRr+fT0Ftn;oAGhu z1(KJ5%~|m+4l5>#(6osn)E~mlL~Sbtb4&6byaQeqavWl1sJ@k$o$q)}zLK#uvI=6Fcx~O#ib#|MVqugm16a7kf*r^* zL1o^{;;NX(0`e+&y9SyHp*J@f>0K!B`N)(|F5NjYG;MD$kVd+8_r4A!7oPyiHE7TJn& z-t}#bukoUC{5A^}<>hZ?`5#{rSX(e&_;VyzyI5PS1~4&V1Y%00Tl7&UlwcmU86vDp zX>w?jMB5=-47WBVMv+7%40t=+7=nl$18IZ_YB24Fz3Pp41(Ax5ATlW-Ul^SPUbtIz z%oh>1jg=xTFxnL&i%3`L;Y*MUFX!4N9}@u^&k7Z5vFMx4u+$JFWW0Ee#}gM7Y=wgg zmKCUAI!;~aL}^L>aPIgGfk?GOC$g9JUEzL?>V7s%KjSm>^M?caDIF^{zUeeRowM=0 zhW{T`<=CHa>tryQD(|3n9I(e3c9_I5si3M~mp=gnd^yl-xO;FN#yVwbY{aWZ&2Y>L zARNOVuA9}{5HD|Pa#$fI3CV#4g}o>b8<1|?VGGT$75=07tvc)qw&_I(99WE2Brg{- zRz2`A&{#B!2v?J1Cbf>oMs`9+)R2CdwpGD!Vz7$*1B=e z+Ez9bDJ*ab(@P^_EITf$qa-j!RqWRGO-5L7mAqrbi?e>LOA2x3OYW>oMk1IT>Sn`y<-=;&x=v|8u*UP1nMlokb) z7IN63&L;Zjf=%1F-c8$@3P@vB8eu)Ec$7Ix-|b_1Q0Ov#-72ppYmX*~{I?%2v1*vwrrNf^kzZ+U+GUQuK2i*@P#5b7wc2!Qs zth%YmXi}@0RC_-!yHah{OafmZ>D;ILA?_CW%B@T`{ws%C$Sd2kXdCDBO-`S3QZp;t zw{iY!H!~zGQy0z{bcIqa+D_Z>l*i0MV84+(VK-^db*j=p&9o|ER8iGf(_N05bzGdl zd2erO);SOyP~rpJx|_gIVKU3Gi^uh%;9r4WG)WjIL0>c}f5(}sZqj3(rr1T&H$6?a zi=@BzH1#f$zU^rmUL<{2|4zF<)ap}oN`=?aiZTh)I9Y~3Zr5UC*Ef&rBOv4pRD%f? z--n$$S0 zUI!v7j;6^y&%^Xh!r7r{1lo4dJ~&AB3C`vO$-c;I2)n{gf){yB<15I4ud8As<{8N3 zKmu_Ebg5Ph_yAKCY+m52+u+v{g#h&2bp_7Ja_gJFAFyp|yg zB}n-+wW7)(g-#0@sMd*x?b&$PiT2dzarYP!n5PLh2t**igb7_oZDa{V#w9Vd3WG-G z>JqusA^XnwFaL^cgXBCk&0(HA{i-@-MCO+MxG@r0S=5kT5%qqlQ zpH-I$t|VPGrKkuQB-M?^>Qlo2u-#`O*Hgj@cC8}m2bGv1nHt5P>2_yc%2fHd9x zUBlIQtLV6S`ooDQQ(9D4#852BV}~R%=RYb2;}qfTYZwff|K{9S55#F)(i5nYMHPPr zEFHPjij=M33kAFEv6~)5nLqOFdYWcIlmMmja)r21emJPP@1U}=u6F4l0qg%rk}a-K z$q^^}=1^Cxl)x##(rW%kp90+LciTqg3;@mDjkj0{R+7BfRBe{Lua~^E0qCY;m2NCJws+o4i%r-?U~Z@XL}NAVS%E%A>8*hyl>d~XD$hKJQ;f`mX>_Oo z4;kJdsXU+m4|89auX0=>D9@AK0;*9KFW0B{#68K($_ zvVig$q*_Q{?g^GNKTBPsd0^#@3CarNu;aCY&{vS5Lu8d7zvV%o3%n^{$!f5j zsgWm=Ve!C}IHnPw#a}~iAGt%V3!I>zdvAGAfPJB}n&j(<(U^q{J?*p9Np}O_fS>c5 zERpVV1aBg2EJK=UdvZ6!JTknsC$`L}QHQ#a@*2G`FXu z0pA;8Wfl%4`3JDdTlw8o3`?8a*jPWc~d!Cv8>I!TK|oi9(O2?r%kf+m=CLeH@ztDy_)H zs^yrsfjPr|4(q}1Rq4vHY>NwYalrtkFqQFJ$|#DIoTZmGmDSGqT0e&=;I+n{cT)H633{>y@({xfJUn%|J?FqW%-xvcgv ztq`Kpn9s>a^OVo5jz2E)nI=a^wu?;3iR%}!uwmZC)>QsD1m#%>DOLxoLL1z2aP)Cj zk)U*C3T7@@49fz8H8r>LK?80+VI_LGEwGvB{e=Kpu|gL0mw-M_RE-_EDGzTk`-2#K~{mst?#)ZIdHG*#Iv=`V~JZ%-B({ulcXLb@?zCu$4iRK#jV7YsaTA z^&aV%lFGjR?8D=J`1us%F8W@|>W{@EqN@Vl1YzM-Gkfwog1>4%p5$62r zI>f&A^Ocv3Z*NB&+#c@1FAd_7um*(tApi zT2*YRg>9&)w4sEo68G16mBlmhN&SYOFn#ZCEJ)jxpK?6Ec?67?k;a3BFfs_R=3J@AXCuG4%k9y z?0&Pqw=_L7U|2&QTJEnmr4#S5iuOo;idw7%4#K`%&az*z$U=sk?CVnnKNdO9ncaT=^IdIn%_HVbkW3u#>|42 zOl$M+GArukpMLUxUfzVXEWskXerr228^2TA*bHeqM>Fk!=}=VAp{SrkQI23#phKR} zAj646P~`ia-ozMAgBCa|TMm%W+cD{8Tyt&psV~ zZBOIuj3Ocy95{&+we*H7y##{B%6JZMzPoBW#XLybtz(d4q&+*KC8p z#nC@@`Z^*>kO_szKQi;Zr5QLXbKQF4AE@V7mj+sCii(LtIN3m(wWnCsET82+U^fFe zRta8B3|>db9P?Q`rk=~i3GAvvojuFN73`X4xHvkSIt6p*SuW1&EqN!DU#e2Lb5vX0#~~-hUjjN3A<0vO*7Z z1ErN2&TK;k+qYi*bWJ@1f$HgwfQ>6l0L=>BZ5*2Y&Xj~XSxaOr?Jtp=2$Fp!H$g#e z=mchRBj&SAZUP}Nu@QjzLUov3jm_E=qEj)A;O0On<-wtLjPGcL3+)K_7y(?hrQZQtqPYEL5b8?Nam#cO?Jsw{!X2*^9gngKciaflsN)r5 zq**a^RxaY`rYvL(7wDjwAirlnDou>-7$kaA1nxI8g#e$&{Xc5)6VzUN4 zo3)J<0hixE0x;=C3XmlxdYe1d@pet_5EABz2Dr^v7leb3Hq$0;V>wp<)I5$2NV6)( zSH|;T=|{)g0uc!ne7QCrGTUDwg2?t)vO%5g?-$!&>&XkoITqe;RH7!h+u!fq{(iCj zeN%9G`r(;Ifq{{BCJw~EDzx^vyi`k7P^Gl8@A$X zxNbeps+dK=5}`pci;MTvogJH~W6W#i>=v{=^O;MCS+gb!A%Mm=#tpiX@5P#l#UyR7 zR4b==eh=Dyk2#bwj&ZShoMos)k1XdyC0ZUw-vUFqAXd9zBrW%XWAnZanPP54+uL_uyfVe%Rw? zyB808^}}8_+x>XhuOIfi*&e{d0sU~m&2|_M2lc~2H`_yaIHVsAx!I1mZyv_O5&dw~ zeK?MXqx#{P`|t=Jj_HRJ?!%*aIH4a-x(|=x;iP^z~|X1fOud-TH|H`~2<*sCA*y4mi>!+!m+-_7;_9uDY- z18%m%csQsZ4!YSM!owl`aLCQ}FdmNRha+yb<9Il#AC9`&9>K#g{cz09_9z}s=!X+- zw#V>rQa_w@vps=_Q~KeQn{6j{&}sc}+RY}npnRyyw@%zdeV#V=gS+?y$){#Id|8|6 z!coO~T*;xRpxKyPp#TLL;M=5P zssjE8k^vzmpfLf<1T@9fWJDy4Ty|B;uIjSsBs6r$x3{hE@=zBN!hab7Ddp^Kdu)5u zKPF*$7-~Jk5IVz98!!wo9?G*BFbGr_(@Z*WAd=2OmAQ#9AE>iA2H*Fzi)NVB*ZT1p z$R6^uhkzJ#OmsziWa3kW;0~&rSxcRTo9G%9vf+rne#5repRreWBd^c`EuZh-%u+dw zox|0HgKv*vFFWTMcFyZz=WtqafGuMYr-jgRT=69Evb5}2SR@9*n|U*AL3MW_>6%`uW_x zfeG~uT1LKMZr9Ac#f>PDb?5Pg!0cFi&@yu_(qTtTXIXdQ_u|CzqpS``QGPxITLUY^ zC5iwwq8{DuO%r~@o&4sA0~Rum4tyoJ58qR>c1 z!yfr{Xt?p-J4}yEK|HphlZtgjqexgs3E(>W{ zK0+&^(M`YR%joz}Y%3NjDJC2&-BfKI%PE}cMB=bT-$Uue_aRMryj7^(-ylx-IwZ(8Alx_6Gr)7!kx~(mIGzCg{sf_?k9&qBGIM!#X{-r}qpwL${ce z`Fw8hC_w2}Y6orvpz*l3JNHE`54MLlRcp2=O@8vh*F$|#{ zV7zfLL#u*Va1~ISg(o<0n`(JbVDGc{Gwmp{B6G%r7m5NP92Bh8O+i=zuT3U}%ZTt_KE_!lLV!A=S zOuY30ZjJscXII|)@z?!E4bT+dBE>sRZB(4VI@D!O-SL|L8~`Eaj%i6 zaus;g?yd5WKOz~z9a%-&aSkiN2MUNMYnb;8ualpY2O`3h$&^hLhPHdcmj^ypIkp;c znGoBtsmAWt8B>iG*2^w>%pkquHKjiv}*I9}{!+}-x zJ`4b?qH-3`YENJ)Si^9X{ecCs97YFW;%w6#rUlj=SmoLd0hAtj{l2_OM-c7!fHJPq z#z&gk5<^zh=7_=->l4f_h|7g9IDW5TV!llYR zT)eDPF+w@Tu8K&UY_ku;YNGZc1!n_h_7Krl7=^_eI~{U|IuZJlvoW=VJ?FVkjWm@; z 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 GaRdO7GVIR) literal 0 HcmV?d00001 diff --git a/optimized-wasm/escrow.wasm.gz b/optimized-wasm/escrow.wasm.gz new file mode 100755 index 0000000000000000000000000000000000000000..2d7b4ce6876f5a2c3316ad253ce33892417841a8 GIT binary patch literal 173270 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