diff --git a/aptos-move/e2e-benchmark/data/calibration_values.tsv b/aptos-move/e2e-benchmark/data/calibration_values.tsv index 6dcad1f949b79..eb5cf701beb93 100644 --- a/aptos-move/e2e-benchmark/data/calibration_values.tsv +++ b/aptos-move/e2e-benchmark/data/calibration_values.tsv @@ -16,7 +16,10 @@ ResourceGroupsSenderWriteTag { string_length: 1024 } 60 0.918 1.075 15.8 ResourceGroupsSenderMultiChange { string_length: 1024 } 60 0.909 1.169 32.9 TokenV1MintAndTransferFT 60 0.953 1.069 384.6 TokenV1MintAndTransferNFTSequential 60 0.938 1.064 600.3 +TokenV2AmbassadorMint { numbered: false } 60 0.951 1.057 516.6 TokenV2AmbassadorMint { numbered: true } 60 0.951 1.057 516.6 +CompressedTokenAmbassadorMint { numbered: false } 60 0.951 1.057 516.6 +CompressedTokenAmbassadorMint { numbered: true } 60 0.951 1.057 516.6 LiquidityPoolSwap { is_stable: true } 60 0.961 1.139 582.6 LiquidityPoolSwap { is_stable: false } 60 0.929 1.099 563.0 CoinInitAndMint 60 0.928 1.130 205.0 diff --git a/aptos-move/e2e-benchmark/src/main.rs b/aptos-move/e2e-benchmark/src/main.rs index 3b2bd02c13962..8fa8b7a138d5b 100644 --- a/aptos-move/e2e-benchmark/src/main.rs +++ b/aptos-move/e2e-benchmark/src/main.rs @@ -169,6 +169,7 @@ fn main() { EntryPoints::TokenV1MintAndTransferFT, EntryPoints::TokenV1MintAndTransferNFTSequential, EntryPoints::TokenV2AmbassadorMint { numbered: true }, + EntryPoints::CompressedTokenAmbassadorMint { numbered: true }, EntryPoints::LiquidityPoolSwap { is_stable: true }, EntryPoints::LiquidityPoolSwap { is_stable: false }, EntryPoints::CoinInitAndMint, diff --git a/aptos-move/move-examples/token_objects/ambassador/Move.toml b/aptos-move/move-examples/token_objects/ambassador/Move.toml index 16e6328fbbf72..5e49252d2297b 100644 --- a/aptos-move/move-examples/token_objects/ambassador/Move.toml +++ b/aptos-move/move-examples/token_objects/ambassador/Move.toml @@ -7,5 +7,9 @@ version = '1.0.0' ambassador = "0xCAFE" [dependencies] -AptosFramework = { git = "https://github.com/aptos-labs/aptos-framework.git", subdir = "aptos-framework", rev = "mainnet" } -AptosTokenObjects = { git = "https://github.com/aptos-labs/aptos-framework.git", subdir = "aptos-token-objects", rev = "mainnet" } + +AptosFramework = { local = "../../../../aptos-move/framework/aptos-framework" } +AptosTokenObjects = { local = "../../../../aptos-move/framework/aptos-token-objects" } + +# AptosFramework = { git = "https://github.com/aptos-labs/aptos-framework.git", subdir = "aptos-framework", rev = "mainnet" } +# AptosTokenObjects = { git = "https://github.com/aptos-labs/aptos-framework.git", subdir = "aptos-token-objects", rev = "mainnet" } diff --git a/aptos-move/move-examples/token_objects/ambassador/sources/compressed_ambassador.move b/aptos-move/move-examples/token_objects/ambassador/sources/compressed_ambassador.move new file mode 100644 index 0000000000000..0052ccaa62e66 --- /dev/null +++ b/aptos-move/move-examples/token_objects/ambassador/sources/compressed_ambassador.move @@ -0,0 +1,503 @@ +/// This module is used to create ambassador tokens which are example soulbound tokens. +/// A collection for ambassador tokens is created when the module is published and initialized. +/// The creator of the collection is the only one who can mint and burn ambassador tokens. +/// Ambassador tokens are souldbound, thus non-transferable. Each ambassador token has a custom attribute +/// called level. The level of a newly minted token is 0, and can be updated by the creator. +/// Whenever the level of a token is updated, an event called LevelUpdate is emitted. +/// Each ambassador token has another custom attribute called rank, which is associated with the level. +/// The rank is determined by the level such that the rank is Bronze if the level is between 0 and 9, +/// Silver if the level is between 10 and 19, and Gold if the level is 20 or greater. +/// The rank is stored in the property map, thus displayed in a wallet as a trait of the token. +/// The token uri is the concatenation of the base uri and the rank, where the base uri is given +/// as an argument of the minting function. So, the token uri changes when the rank changes. +module ambassador::compressed_ambassador { + use std::error; + use std::option; + use std::string::{Self, String}; + use std::signer; + + use aptos_framework::object::{Self, Object}; + use aptos_token_objects::collection; + use aptos_token_objects::token; + use aptos_token_objects::property_map; + use aptos_std::any_map; + use aptos_std::string_utils::{to_string}; + + /// The token does not exist + const ETOKEN_DOES_NOT_EXIST: u64 = 1; + /// The provided signer is not the creator + const ENOT_CREATOR: u64 = 2; + /// Attempted to mutate an immutable field + const EFIELD_NOT_MUTABLE: u64 = 3; + /// Attempted to burn a non-burnable token + const ETOKEN_NOT_BURNABLE: u64 = 4; + /// Attempted to mutate a property map that is not mutable + const EPROPERTIES_NOT_MUTABLE: u64 = 5; + // The collection does not exist + const ECOLLECTION_DOES_NOT_EXIST: u64 = 6; + + const ENOT_OWNER: u64 = 7; + + /// The ambassador token collection name + const COLLECTION_NAME: vector = b"Compressed Collection Name"; + /// The ambassador token collection description + const COLLECTION_DESCRIPTION: vector = b"Compressed Collection Description"; + /// The ambassador token collection URI + const COLLECTION_URI: vector = b"Compressed Collection URI"; + + /// The ambassador rank + const RANK_GOLD: vector = b"Gold"; + const RANK_SILVER: vector = b"Silver"; + const RANK_BRONZE: vector = b"Bronze"; + + struct AmbassadorTokenPermission has drop, store { + object_addr: address, + } + + #[resource_group_member(group = aptos_framework::object::ObjectGroup)] + /// The ambassador token + struct AmbassadorToken has key, drop, store { + /// Used to mutate the token uri + mutator_ref: token::MutatorRef, + /// Used to burn. + burn_ref: token::BurnRef, + /// Used to mutate properties + property_mutator_ref: property_map::MutatorRef, + /// the base URI of the token + base_uri: String, + } + + // easiest to have this separate, as we cannot copy it / keep in external value + #[resource_group_member(group = aptos_framework::object::ObjectGroup)] + struct AmbassadorCompression has key { + /// Used to compress/decompress tokens + compression_ref: token::CompressionRef, + } + + #[resource_group_member(group = aptos_framework::object::ObjectGroup)] + /// The ambassador level + struct AmbassadorLevel has key, drop, store { + ambassador_level: u64, + } + + #[event] + /// The ambassador level update event + struct LevelUpdate has drop, store { + token: Object, + old_level: u64, + new_level: u64, + } + + /// Initializes the module, creating the ambassador collection. The creator of the module is the creator of the + /// ambassador collection. As this init function is called only once when the module is published, there will + /// be only one ambassador collection. + fun init_module(sender: &signer) { + create_ambassador_collection(sender); + } + + // #[view] + // /// Returns the ambassador level of the token + // public fun ambassador_level(token: Object): u64 acquires AmbassadorLevel { + // let ambassador_level = borrow_global(object::object_address(&token)); + // ambassador_level.ambassador_level + // } + + // #[view] + // /// Returns the ambassador rank of the token + // public fun ambassador_rank(token: Object): String { + // property_map::read_string(&token, &string::utf8(b"Rank")) + // } + + // #[view] + // /// Returns the ambassador level of the token of the address + // public fun ambassador_level_from_address(addr: address): u64 acquires AmbassadorLevel { + // let token = object::address_to_object(addr); + // ambassador_level(token) + // } + + // #[view] + // /// Returns the ambassador rank of the token of the address + // public fun ambassador_rank_from_address(addr: address): String { + // let token = object::address_to_object(addr); + // ambassador_rank(token) + // } + + /// Creates the ambassador collection. This function creates a collection with unlimited supply using + /// the module constants for description, name, and URI, defined above. The collection will not have + /// any royalty configuration because the tokens in this collection will not be transferred or sold. + fun create_ambassador_collection(creator: &signer) { + // Constructs the strings from the bytes. + let description = string::utf8(COLLECTION_DESCRIPTION); + let name = string::utf8(COLLECTION_NAME); + let uri = string::utf8(COLLECTION_URI); + + // Creates the collection with unlimited supply and without establishing any royalty configuration. + let constructor_ref = collection::create_unlimited_collection( + creator, + description, + name, + option::none(), + uri, + ); + token::collection_enable_compressed_tokens(constructor_ref); + } + + /// Mints an ambassador token. This function mints a new ambassador token and transfers it to the + /// `soul_bound_to` address. The token is minted with level 0 and rank Bronze. + public entry fun mint_ambassador_token( + creator: &signer, + description: String, + name: String, + base_uri: String, + soul_bound_to: address, + ) { + mint_ambassador_token_impl(creator, description, name, base_uri, soul_bound_to, false); + } + + /// Mints an ambassador token. This function mints a new ambassador token and transfers it to the + /// `soul_bound_to` address. The token is minted with level 0 and rank Bronze. + public entry fun mint_numbered_ambassador_token( + creator: &signer, + description: String, + name: String, + base_uri: String, + soul_bound_to: address, + ) { + mint_ambassador_token_impl(creator, description, name, base_uri, soul_bound_to, true); + } + + /// Function used for benchmarking. + /// Uses multisig to mint to user, with creator permissions. + /// Uses users address as unique name of the soulbound token. + public entry fun mint_ambassador_token_by_user( + user: &signer, + creator: &signer, + description: String, + uri: String, + ) { + let user_addr = signer::address_of(user); + mint_ambassador_token(creator, description, to_string
(&user_addr), uri, user_addr); + } + + /// Function used for benchmarking. + /// Uses multisig to mint to user, with creator permissions. + public entry fun mint_numbered_ambassador_token_by_user( + user: &signer, + creator: &signer, + description: String, + name: String, + uri: String, + ) { + mint_numbered_ambassador_token(creator, description, name, uri, signer::address_of(user)); + } + + /// Mints an ambassador token. This function mints a new ambassador token and transfers it to the + /// `soul_bound_to` address. The token is minted with level 0 and rank Bronze. + fun mint_ambassador_token_impl( + creator: &signer, + description: String, + name: String, + base_uri: String, + soul_bound_to: address, + numbered: bool, + ) { + // The collection name is used to locate the collection object and to create a new token object. + let collection = string::utf8(COLLECTION_NAME); + + // Creates the ambassador token, and get the constructor ref of the token. The constructor ref + // is used to generate the refs of the token. + let uri = base_uri; + string::append(&mut uri, string::utf8(RANK_BRONZE)); + let constructor_ref = if (numbered) { + token::create_numbered_token( + creator, + collection, + description, + name, + string::utf8(b""), + option::none(), + uri, + ) + } else { + token::create( + creator, + collection, + description, + name, + option::none(), + uri, + ) + }; + + // Generates the object signer and the refs. The object signer is used to publish a resource + // (e.g., AmbassadorLevel) under the token object address. The refs are used to manage the token. + let object_signer = object::generate_signer(&constructor_ref); + let transfer_ref = object::generate_transfer_ref(&constructor_ref); + let mutator_ref = token::generate_mutator_ref(&constructor_ref); + let burn_ref = token::generate_burn_ref(&constructor_ref); + let property_mutator_ref = property_map::generate_mutator_ref(&constructor_ref); + + // Transfers the token to the `soul_bound_to` address + let linear_transfer_ref = object::generate_linear_transfer_ref(&transfer_ref); + object::transfer_with_ref(linear_transfer_ref, soul_bound_to); + + // Disables ungated transfer, thus making the token soulbound and non-transferable + object::disable_ungated_transfer(&transfer_ref); + + // Publishes the AmbassadorToken resource with the refs. + let ambassador_token = AmbassadorToken { + mutator_ref, + burn_ref, + property_mutator_ref, + base_uri + }; + + let resources = any_map::new(); + + // Publishes the AmbassadorToken resource with the refs. + resources.add(ambassador_token); + + // Initializes the ambassador level as 0 + resources.add(AmbassadorLevel { ambassador_level: 0 }); + + // Initialize the property map and the ambassador rank as Bronze + let properties = property_map::prepare_input(vector[], vector[], vector[]); + property_map::add_typed_to_struct(&mut properties, string::utf8(b"Rank"), string::utf8(RANK_BRONZE)); + resources.add(properties); + + token::compress_token( + token::generate_compression_ref(&constructor_ref), + resources, + AmbassadorTokenPermission { + object_addr: signer::address_of(&object_signer), + } + ); + } + + public entry fun decompress_token(user: &signer, object: address, external_bytes: vector) { + let (constructor_ref, resources) = token::decompress_token( + external_bytes, + AmbassadorTokenPermission { + object_addr: object, + }, + ); + + // We can control permissions in the ambassador module - so here we only allow owners to compress/decompress + assert!( + object::owns(object::object_from_constructor_ref(&constructor_ref), signer::address_of(user)), + error::permission_denied(ENOT_CREATOR), + ); + + let object_signer = object::generate_signer(&constructor_ref); + + let ambassador_token = any_map::remove(resources.get_resources_mut()); + move_to(&object_signer, ambassador_token); + + let ambassador_level = any_map::remove(resources.get_resources_mut()); + move_to(&object_signer, ambassador_level); + + move_to(&object_signer, AmbassadorCompression { compression_ref: token::generate_compression_ref(&constructor_ref) }); + + resources.destroy_empty(); + } + + public entry fun compress_token(user: &signer, token: Object) acquires AmbassadorToken, AmbassadorLevel, AmbassadorCompression { + // We can control permissions in the ambassador module - so here we only allow owners to compress/decompress + assert!( + object::owns(token, signer::address_of(user)), + error::permission_denied(ENOT_OWNER), + ); + + let resources = any_map::new(); + resources.add(move_from(token.object_address())); + resources.add(move_from(token.object_address())); + + let AmbassadorCompression { compression_ref } = move_from(token.object_address()); + + token::compress_token( + compression_ref, + resources, + AmbassadorTokenPermission { + object_addr: token.object_address(), + } + ); + } + + // /// Burns an ambassador token. This function burns the ambassador token and destroys the + // /// AmbassadorToken resource, AmbassadorLevel resource, the event handle, and the property map. + // public entry fun burn(creator: &signer, token: Object) acquires AmbassadorToken, AmbassadorLevel { + // authorize_creator(creator, &token); + // let ambassador_token = move_from(object::object_address(&token)); + // let AmbassadorToken { + // mutator_ref: _, + // burn_ref, + // property_mutator_ref, + // base_uri: _ + // } = ambassador_token; + + // let AmbassadorLevel { + // ambassador_level: _ + // } = move_from(object::object_address(&token)); + + // property_map::burn(property_mutator_ref); + // token::burn(burn_ref); + // } + + // /// Function used for benchmarking. + // /// Uses multisig to mint to user, with creator permissions. + // /// Uses users address as unique name of the soulbound token. + // /// Burns token that was minted by mint_ambassador_token_by_user + // public entry fun burn_named_by_user(user: &signer, creator: &signer) acquires AmbassadorToken, AmbassadorLevel { + // let collection_name = string::utf8(COLLECTION_NAME); + // let token_address = token::create_token_address( + // &signer::address_of(creator), + // &collection_name, + // &to_string
(&signer::address_of(user)), + // ); + // let token = object::address_to_object(token_address); + // burn(creator, token); + // } + + // /// Sets the ambassador level of the token. Only the creator of the token can set the level. When the level + // /// is updated, the `LevelUpdate` is emitted. The ambassador rank is updated based on the new level. + // public entry fun set_ambassador_level( + // creator: &signer, + // token: Object, + // new_ambassador_level: u64 + // ) acquires AmbassadorLevel, AmbassadorToken { + // // Asserts that `creator` is the creator of the token. + // authorize_creator(creator, &token); + + // let token_address = object::object_address(&token); + // let ambassador_level = borrow_global_mut(token_address); + // // Emits the `LevelUpdate`. + // event::emit( + // LevelUpdate { + // token, + // old_level: ambassador_level.ambassador_level, + // new_level: new_ambassador_level, + // } + // ); + // // Updates the ambassador level. + // ambassador_level.ambassador_level = new_ambassador_level; + // // Updates the ambassador rank based on the new level. + // update_ambassador_rank(token, new_ambassador_level); + // } + + // /// Updates the ambassador rank of the token based on the new level + // fun update_ambassador_rank( + // token: Object, + // new_ambassador_level: u64 + // ) acquires AmbassadorToken { + // // `new_rank` is determined based on the new level. + // let new_rank = if (new_ambassador_level < 10) { + // RANK_BRONZE + // } else if (new_ambassador_level < 20) { + // RANK_SILVER + // } else { + // RANK_GOLD + // }; + + // let token_address = object::object_address(&token); + // let ambassador_token = borrow_global(token_address); + // // Gets `property_mutator_ref` to update the rank in the property map. + // let property_mutator_ref = &ambassador_token.property_mutator_ref; + // // Updates the rank in the property map. + // property_map::update_typed(property_mutator_ref, &string::utf8(b"Rank"), string::utf8(new_rank)); + // // Updates the token URI based on the new rank. + // let uri = ambassador_token.base_uri; + // string::append(&mut uri, string::utf8(new_rank)); + // token::set_uri(&ambassador_token.mutator_ref, uri); + // } + + // /// Authorizes the creator of the token. Asserts that the token exists and the creator of the token + // /// is `creator`. + // inline fun authorize_creator(creator: &signer, token: &Object) { + // let token_address = object::object_address(token); + // assert!( + // exists(token_address), + // error::not_found(ETOKEN_DOES_NOT_EXIST), + // ); + // assert!( + // token::creator(*token) == signer::address_of(creator), + // error::permission_denied(ENOT_CREATOR), + // ); + // } + + // #[test(creator = @0x123, user1 = @0x456)] + // fun test_mint_burn(creator: &signer, user1: &signer) acquires AmbassadorToken, AmbassadorLevel { + // // ------------------------------------------ + // // Creator creates the Ambassador Collection. + // // ------------------------------------------ + // create_ambassador_collection(creator); + + // // ------------------------------------------- + // // Creator mints a Ambassador token for User1. + // // ------------------------------------------- + // let token_name = string::utf8(b"Ambassador Token #1"); + // let token_description = string::utf8(b"Ambassador Token #1 Description"); + // let token_uri = string::utf8(b"Ambassador Token #1 URI/"); + // let user1_addr = signer::address_of(user1); + // // Creates the Ambassador token for User1. + // mint_ambassador_token( + // creator, + // token_description, + // token_name, + // token_uri, + // user1_addr, + // ); + // let collection_name = string::utf8(COLLECTION_NAME); + // let token_address = token::create_token_address( + // &signer::address_of(creator), + // &collection_name, + // &token_name + // ); + // let token = object::address_to_object(token_address); + // // Asserts that the owner of the token is User1. + // assert!(object::owner(token) == user1_addr, 1); + + // // ----------------------- + // // Creator sets the level. + // // ----------------------- + // // Asserts that the initial level of the token is 0. + // assert!(ambassador_level(token) == 0, 2); + // // Asserts that the initial rank of the token is "Bronze". + // assert!(ambassador_rank(token) == string::utf8(RANK_BRONZE), 3); + // assert!(token::uri(token) == string::utf8(b"Ambassador Token #1 URI/Bronze"), 4); + // // `creator` sets the level to 15. + // set_ambassador_level(creator, token, 15); + // // Asserts that the level is updated to 15. + // assert!(ambassador_level(token) == 15, 4); + // // Asserts that the rank is updated to "Silver" which is the expected rank for level 15. + // assert!(token::uri(token) == string::utf8(b"Ambassador Token #1 URI/Silver"), 5); + + // // ------------------------ + // // Creator burns the token. + // // ------------------------ + // let token_addr = object::object_address(&token); + // // Asserts that the token exists before burning. + // assert!(exists(token_addr), 6); + // // Burns the token. + // burn(creator, token); + // // Asserts that the token does not exist after burning. + // assert!(!exists(token_addr), 7); + // } + + // #[test(creator = @0x123, user1 = @0x456)] + // fun test_mint_burn_by_user(creator: &signer, user1: &signer) acquires AmbassadorToken, AmbassadorLevel { + // // ------------------------------------------ + // // Creator creates the Ambassador Collection. + // // ------------------------------------------ + // create_ambassador_collection(creator); + + // let token_description = string::utf8(b"Ambassador Token #1 Description"); + // let token_uri = string::utf8(b"Ambassador Token #1 URI/"); + // mint_ambassador_token_by_user( + // user1, + // creator, + // token_description, + // token_uri + // ); + // burn_named_by_user(user1, creator); + // } +} diff --git a/crates/transaction-generator-lib/src/args.rs b/crates/transaction-generator-lib/src/args.rs index da2a5e5a5f385..30c498dbbf3ad 100644 --- a/crates/transaction-generator-lib/src/args.rs +++ b/crates/transaction-generator-lib/src/args.rs @@ -62,6 +62,7 @@ pub enum TransactionTypeArg { FungibleAssetMint, TokenV2AmbassadorMint, TokenV2AmbassadorMintAndBurn1M, + CompressedTokenAmbassadorMint, LiquidityPoolSwap, LiquidityPoolSwapStable, VectorPictureCreate30k, @@ -294,6 +295,9 @@ impl TransactionTypeArg { use_account_pool: sender_use_account_pool, progress_type: workflow_progress_type, }, + TransactionTypeArg::CompressedTokenAmbassadorMint => { + call_custom_module(EntryPoints::CompressedTokenAmbassadorMint { numbered: false }) + }, TransactionTypeArg::LiquidityPoolSwap => { call_custom_module(EntryPoints::LiquidityPoolSwap { is_stable: false }) }, diff --git a/crates/transaction-generator-lib/src/publishing/module_simple.rs b/crates/transaction-generator-lib/src/publishing/module_simple.rs index cf5897a9e2ba8..07e9aeedf4956 100644 --- a/crates/transaction-generator-lib/src/publishing/module_simple.rs +++ b/crates/transaction-generator-lib/src/publishing/module_simple.rs @@ -282,6 +282,10 @@ pub enum EntryPoints { /// Burn an NFT token, only works with numbered=false tokens. TokenV2AmbassadorBurn, + CompressedTokenAmbassadorMint { + numbered: bool, + }, + LiquidityPoolSwapInit { is_stable: bool, }, @@ -357,9 +361,9 @@ impl EntryPoints { | EntryPoints::ResourceGroupsSenderMultiChange { .. } | EntryPoints::CoinInitAndMint | EntryPoints::FungibleAssetMint => "framework_usecases", - EntryPoints::TokenV2AmbassadorMint { .. } | EntryPoints::TokenV2AmbassadorBurn => { - "ambassador_token" - }, + EntryPoints::TokenV2AmbassadorMint { .. } + | EntryPoints::TokenV2AmbassadorBurn + | EntryPoints::CompressedTokenAmbassadorMint { .. } => "ambassador_token", EntryPoints::LiquidityPoolSwapInit { .. } | EntryPoints::LiquidityPoolSwap { .. } | EntryPoints::InitializeVectorPicture { .. } @@ -423,6 +427,7 @@ impl EntryPoints { EntryPoints::TokenV2AmbassadorMint { .. } | EntryPoints::TokenV2AmbassadorBurn => { "ambassador" }, + EntryPoints::CompressedTokenAmbassadorMint { .. } => "compressed_ambassador", EntryPoints::LiquidityPoolSwapInit { .. } | EntryPoints::LiquidityPoolSwap { .. } => { "liquidity_pool_wrapper" }, @@ -751,7 +756,8 @@ impl EntryPoints { bcs::to_bytes(&1000u64).unwrap(), // amount ]) }, - EntryPoints::TokenV2AmbassadorMint { numbered: true } => { + EntryPoints::TokenV2AmbassadorMint { numbered: true } + | EntryPoints::CompressedTokenAmbassadorMint { numbered: true } => { let rng: &mut StdRng = rng.expect("Must provide RNG"); get_payload( module_id, @@ -763,7 +769,8 @@ impl EntryPoints { ], ) }, - EntryPoints::TokenV2AmbassadorMint { numbered: false } => { + EntryPoints::TokenV2AmbassadorMint { numbered: false } + | EntryPoints::CompressedTokenAmbassadorMint { numbered: false } => { let rng: &mut StdRng = rng.expect("Must provide RNG"); get_payload( module_id, @@ -779,7 +786,6 @@ impl EntryPoints { ident_str!("burn_named_by_user").to_owned(), vec![], ), - EntryPoints::LiquidityPoolSwapInit { is_stable } => get_payload( module_id, ident_str!("initialize_liquid_pair").to_owned(), @@ -895,9 +901,9 @@ impl EntryPoints { EntryPoints::CoinInitAndMint | EntryPoints::FungibleAssetMint => { MultiSigConfig::Publisher }, - EntryPoints::TokenV2AmbassadorMint { .. } | EntryPoints::TokenV2AmbassadorBurn => { - MultiSigConfig::Publisher - }, + EntryPoints::TokenV2AmbassadorMint { .. } + | EntryPoints::TokenV2AmbassadorBurn + | EntryPoints::CompressedTokenAmbassadorMint { .. } => MultiSigConfig::Publisher, EntryPoints::LiquidityPoolSwap { .. } => MultiSigConfig::Publisher, EntryPoints::CreateGlobalMilestoneAggV2 { .. } => MultiSigConfig::Publisher, _ => MultiSigConfig::None, @@ -953,9 +959,9 @@ impl EntryPoints { EntryPoints::CoinInitAndMint | EntryPoints::FungibleAssetMint => { AutomaticArgs::SignerAndMultiSig }, - EntryPoints::TokenV2AmbassadorMint { .. } | EntryPoints::TokenV2AmbassadorBurn => { - AutomaticArgs::SignerAndMultiSig - }, + EntryPoints::TokenV2AmbassadorMint { .. } + | EntryPoints::TokenV2AmbassadorBurn + | EntryPoints::CompressedTokenAmbassadorMint { .. } => AutomaticArgs::SignerAndMultiSig, EntryPoints::LiquidityPoolSwapInit { .. } => AutomaticArgs::Signer, EntryPoints::LiquidityPoolSwap { .. } => AutomaticArgs::SignerAndMultiSig, EntryPoints::InitializeVectorPicture { .. } => AutomaticArgs::Signer, diff --git a/crates/transaction-generator-lib/src/publishing/raw_module_data.rs b/crates/transaction-generator-lib/src/publishing/raw_module_data.rs index 1ab5a36273c70..f99ad0fd4f383 100644 --- a/crates/transaction-generator-lib/src/publishing/raw_module_data.rs +++ b/crates/transaction-generator-lib/src/publishing/raw_module_data.rs @@ -770,7 +770,7 @@ pub static MODULE_SIMPLE_SIMPLE: Lazy> = Lazy::new(|| { 64, 6, 245, 9, 105, 16, 222, 10, 93, 10, 187, 11, 51, 12, 238, 11, 233, 15, 13, 215, 27, 16, 0, 0, 1, 9, 1, 15, 1, 20, 1, 22, 1, 29, 1, 33, 1, 40, 1, 53, 0, 1, 8, 0, 0, 3, 8, 0, 0, 5, 7, 0, 0, 6, - 8, 0, 1, 8, 4, 1, 6, 1, 0, 10, 6, 0, 0, 11, 8, 0, 2, 14, + 8, 0, 1, 8, 6, 1, 6, 1, 0, 10, 6, 0, 0, 11, 8, 0, 2, 14, 7, 0, 0, 17, 8, 0, 3, 19, 4, 2, 3, 1, 0, 1, 0, 21, 0, 1, 0, 1, 4, 23, 0, 2, 0, 1, 2, 24, 3, 4, 0, 1, 0, 25, 7, 1, 0, 1, 0, 26, 9, 1, 0, 1, 0, 27, 11, 12, 0, 1, 0, 28, 14, 1, @@ -1780,36 +1780,39 @@ pub static MODULES_FRAMEWORK_USECASES: Lazy>> = Lazy::new(|| { vec![ pub static PACKAGE_AMBASSADOR_TOKEN_METADATA: Lazy> = Lazy::new(|| { vec![ 10, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 64, 68, 70, 50, 57, 50, 70, 53, 53, 56, 50, 66, 48, 57, 50, 65, - 51, 54, 55, 65, 53, 69, 55, 69, 57, 65, 48, 48, 69, 66, 51, 68, 57, 52, - 48, 55, 56, 67, 49, 54, 69, 65, 66, 65, 48, 50, 52, 69, 65, 65, 50, 52, - 57, 52, 49, 55, 70, 54, 50, 51, 52, 53, 67, 50, 48, 253, 1, 31, 139, 8, - 0, 0, 0, 0, 0, 2, 255, 173, 142, 63, 79, 195, 64, 12, 197, 247, 251, 20, - 86, 24, 186, 144, 63, 172, 72, 12, 21, 162, 43, 11, 91, 84, 161, 203, 157, 155, - 28, 73, 236, 232, 236, 20, 36, 196, 119, 231, 142, 22, 144, 16, 99, 55, 219, 239, - 249, 253, 94, 187, 88, 55, 218, 30, 247, 134, 236, 140, 112, 7, 27, 59, 119, 86, - 196, 122, 142, 27, 115, 196, 40, 129, 41, 159, 111, 170, 166, 106, 54, 198, 92, 129, - 103, 32, 86, 112, 131, 165, 30, 65, 25, 138, 231, 226, 26, 28, 147, 139, 168, 8, - 214, 251, 136, 34, 64, 136, 30, 61, 28, 56, 194, 204, 126, 157, 176, 92, 214, 110, - 10, 50, 128, 162, 104, 160, 30, 14, 49, 33, 95, 57, 142, 166, 61, 63, 161, 236, - 205, 47, 63, 97, 139, 230, 237, 126, 187, 123, 40, 140, 105, 61, 46, 72, 30, 201, - 133, 236, 218, 46, 202, 178, 251, 14, 72, 206, 119, 232, 131, 230, 143, 65, 117, 145, - 219, 186, 78, 235, 176, 118, 149, 227, 185, 182, 217, 92, 78, 182, 147, 243, 248, 67, - 174, 146, 43, 149, 151, 181, 243, 225, 139, 247, 71, 79, 90, 196, 99, 22, 102, 27, - 136, 80, 11, 248, 56, 177, 159, 120, 68, 122, 236, 94, 208, 169, 92, 26, 175, 57, - 187, 228, 83, 248, 191, 21, 62, 1, 7, 30, 19, 174, 183, 1, 0, 0, 1, 10, - 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 0, 0, 0, 4, 0, 0, 0, 0, + 0, 0, 64, 56, 51, 56, 70, 53, 55, 49, 57, 53, 49, 48, 67, 49, 49, 65, + 66, 66, 50, 48, 48, 51, 65, 49, 53, 57, 55, 51, 55, 50, 51, 57, 54, 69, + 55, 53, 56, 51, 67, 54, 51, 55, 66, 49, 53, 65, 69, 56, 49, 53, 51, 67, + 49, 53, 50, 65, 56, 50, 69, 50, 48, 51, 53, 70, 51, 163, 2, 31, 139, 8, + 0, 0, 0, 0, 0, 2, 255, 173, 144, 63, 79, 195, 48, 16, 197, 119, 127, 138, + 83, 24, 186, 52, 127, 88, 145, 24, 42, 68, 87, 22, 182, 168, 66, 142, 125, 77, + 76, 98, 95, 228, 115, 2, 18, 226, 187, 99, 211, 16, 68, 233, 132, 144, 188, 220, + 249, 221, 239, 189, 187, 122, 148, 170, 151, 45, 30, 132, 147, 22, 225, 22, 54, 210, + 54, 146, 89, 106, 242, 27, 49, 163, 103, 67, 46, 181, 175, 139, 170, 168, 54, 66, + 92, 129, 38, 112, 20, 64, 117, 210, 181, 8, 129, 32, 123, 202, 182, 160, 200, 41, + 143, 1, 65, 106, 237, 145, 25, 28, 162, 70, 13, 71, 242, 96, 73, 79, 3, 230, + 227, 212, 12, 134, 59, 8, 200, 193, 184, 22, 142, 62, 90, 190, 144, 239, 69, 189, + 12, 33, 31, 196, 183, 127, 180, 205, 170, 215, 187, 221, 254, 62, 19, 162, 214, 56, + 162, 211, 232, 148, 73, 42, 177, 27, 3, 241, 254, 139, 16, 165, 111, 48, 144, 146, + 67, 26, 42, 138, 114, 125, 50, 233, 114, 75, 51, 150, 171, 223, 210, 92, 235, 12, + 222, 79, 188, 71, 234, 209, 61, 52, 207, 168, 2, 255, 9, 25, 18, 32, 167, 19, + 33, 97, 227, 189, 46, 36, 109, 77, 72, 208, 46, 132, 145, 111, 202, 50, 150, 221, + 212, 20, 138, 236, 130, 25, 100, 195, 231, 33, 139, 168, 138, 119, 230, 169, 209, 230, + 243, 52, 231, 75, 108, 193, 227, 156, 62, 172, 52, 206, 97, 72, 246, 139, 251, 175, + 189, 254, 49, 192, 207, 149, 47, 133, 248, 0, 218, 160, 146, 184, 100, 2, 0, 0, + 2, 10, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 0, 0, 0, 21, 99, 111, + 109, 112, 114, 101, 115, 115, 101, 100, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, + 114, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 14, 65, 112, 116, 111, 115, 70, 114, - 97, 109, 101, 119, 111, 114, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 14, 65, 112, 116, 111, 115, 70, 114, 97, 109, 101, 119, 111, 114, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 11, 65, 112, 116, 111, 115, 83, 116, 100, 108, 105, 98, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11, 65, 112, 116, 111, 115, + 83, 116, 100, 108, 105, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 77, 111, 118, 101, 83, 116, - 100, 108, 105, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 17, 65, 112, 116, 111, 115, 84, 111, 107, 101, 110, 79, 98, 106, 101, 99, 116, 115, - 0, + 0, 1, 10, 77, 111, 118, 101, 83, 116, 100, 108, 105, 98, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 65, 112, 116, 111, 115, 84, 111, 107, + 101, 110, 79, 98, 106, 101, 99, 116, 115, 0, ] }); @@ -1817,13 +1820,13 @@ pub static PACKAGE_AMBASSADOR_TOKEN_METADATA: Lazy> = Lazy::new(|| { pub static MODULE_AMBASSADOR_TOKEN_AMBASSADOR: Lazy> = Lazy::new(|| { vec![ 161, 28, 235, 11, 7, 0, 0, 10, 12, 1, 0, 24, 2, 24, 60, 3, 84, 157, - 2, 4, 241, 2, 18, 5, 131, 3, 236, 2, 7, 239, 5, 189, 8, 8, 172, 14, - 96, 6, 140, 15, 136, 1, 16, 148, 16, 249, 4, 10, 141, 21, 33, 12, 174, 21, - 129, 6, 13, 175, 27, 8, 0, 0, 1, 6, 1, 10, 2, 13, 2, 16, 2, 22, + 2, 4, 241, 2, 18, 5, 131, 3, 234, 2, 7, 237, 5, 199, 8, 8, 180, 14, + 96, 6, 148, 15, 136, 1, 16, 156, 16, 249, 4, 10, 149, 21, 33, 12, 182, 21, + 253, 5, 13, 179, 27, 8, 0, 0, 1, 6, 1, 10, 2, 13, 2, 16, 2, 22, 2, 24, 2, 34, 1, 39, 2, 40, 1, 43, 2, 69, 0, 1, 8, 0, 0, 3, 8, 0, 1, 5, 6, 0, 1, 8, 6, 0, 2, 5, 6, 0, 3, 12, 7, 0, - 0, 14, 6, 0, 4, 15, 7, 1, 0, 1, 8, 38, 11, 0, 9, 42, 7, 1, - 0, 0, 4, 45, 2, 0, 4, 54, 6, 0, 4, 58, 2, 0, 2, 62, 10, 0, + 0, 14, 6, 0, 4, 15, 7, 1, 0, 1, 8, 38, 15, 0, 9, 42, 7, 1, + 0, 0, 4, 45, 2, 0, 4, 54, 6, 0, 4, 58, 2, 0, 2, 62, 14, 0, 0, 19, 0, 1, 0, 1, 4, 20, 3, 4, 1, 8, 1, 1, 21, 5, 4, 1, 8, 1, 5, 23, 6, 4, 0, 1, 2, 19, 7, 1, 0, 1, 1, 19, 8, 1, 0, 1, 6, 25, 9, 9, 0, 1, 6, 26, 9, 9, 0, 1, 0, 2, 11, 9, @@ -1836,11 +1839,11 @@ pub static MODULE_AMBASSADOR_TOKEN_AMBASSADOR: Lazy> = Lazy::new(|| { 1, 51, 30, 22, 0, 1, 4, 52, 31, 32, 0, 1, 4, 53, 31, 33, 0, 1, 1, 55, 31, 34, 0, 1, 1, 56, 31, 8, 0, 1, 2, 55, 31, 7, 0, 1, 4, 57, 35, 36, 0, 1, 4, 59, 37, 1, 0, 1, 4, 60, 35, 1, 0, 1, - 2, 61, 38, 39, 0, 1, 2, 63, 40, 1, 0, 1, 2, 64, 41, 1, 1, 2, + 2, 61, 38, 39, 0, 1, 2, 63, 40, 1, 1, 2, 1, 2, 64, 41, 1, 0, 1, 1, 65, 42, 22, 0, 1, 0, 66, 24, 1, 0, 1, 0, 67, 44, 1, 0, 1, 0, 68, 45, 1, 0, 1, 11, 70, 47, 1, 1, 6, 1, 0, 71, 48, 1, 0, 1, 2, 72, 50, 1, 1, 2, 1, 1, 73, 51, 1, 0, 1, 1, 2, 2, - 2, 10, 2, 13, 2, 16, 4, 19, 19, 37, 12, 42, 46, 44, 12, 2, 6, 12, + 2, 10, 2, 13, 2, 16, 4, 19, 19, 36, 12, 42, 46, 44, 12, 2, 6, 12, 11, 7, 1, 8, 1, 0, 1, 8, 1, 1, 6, 11, 7, 1, 9, 0, 1, 5, 1, 11, 7, 1, 9, 0, 1, 6, 12, 1, 8, 4, 1, 8, 3, 1, 3, 1, 6, 11, 7, 1, 8, 1, 1, 11, 7, 1, 8, 1, 1, 8, 5, 1, 10, 2, @@ -1853,174 +1856,369 @@ pub static MODULE_AMBASSADOR_TOKEN_AMBASSADOR: Lazy> = Lazy::new(|| { 8, 5, 2, 5, 8, 5, 2, 7, 8, 5, 8, 5, 7, 6, 12, 8, 5, 8, 5, 8, 5, 8, 5, 11, 9, 1, 8, 8, 8, 5, 1, 6, 8, 10, 1, 12, 1, 8, 11, 1, 8, 2, 1, 6, 8, 11, 1, 8, 12, 2, 8, 12, 5, 3, - 10, 8, 5, 10, 8, 5, 10, 10, 2, 1, 8, 13, 2, 6, 8, 10, 8, 13, - 3, 6, 8, 4, 8, 5, 9, 0, 6, 6, 12, 8, 5, 8, 5, 8, 5, 11, - 9, 1, 8, 8, 8, 5, 14, 8, 5, 8, 5, 6, 12, 8, 5, 8, 5, 8, - 5, 11, 9, 1, 8, 8, 8, 5, 8, 10, 12, 8, 11, 8, 4, 8, 13, 8, - 1, 5, 6, 12, 6, 12, 8, 5, 8, 5, 8, 5, 3, 6, 12, 11, 7, 1, - 8, 1, 3, 1, 8, 6, 1, 9, 0, 2, 11, 7, 1, 8, 1, 3, 4, 6, - 11, 7, 1, 8, 1, 7, 8, 0, 3, 7, 3, 3, 6, 8, 4, 6, 8, 5, - 9, 0, 2, 6, 8, 2, 8, 5, 5, 3, 10, 2, 6, 8, 1, 8, 5, 8, - 5, 10, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 15, 65, 109, 98, 97, 115, - 115, 97, 100, 111, 114, 76, 101, 118, 101, 108, 16, 97, 109, 98, 97, 115, 115, 97, - 100, 111, 114, 95, 108, 101, 118, 101, 108, 15, 65, 109, 98, 97, 115, 115, 97, 100, - 111, 114, 84, 111, 107, 101, 110, 11, 109, 117, 116, 97, 116, 111, 114, 95, 114, 101, - 102, 10, 77, 117, 116, 97, 116, 111, 114, 82, 101, 102, 5, 116, 111, 107, 101, 110, - 8, 98, 117, 114, 110, 95, 114, 101, 102, 7, 66, 117, 114, 110, 82, 101, 102, 20, - 112, 114, 111, 112, 101, 114, 116, 121, 95, 109, 117, 116, 97, 116, 111, 114, 95, 114, - 101, 102, 12, 112, 114, 111, 112, 101, 114, 116, 121, 95, 109, 97, 112, 8, 98, 97, - 115, 101, 95, 117, 114, 105, 6, 83, 116, 114, 105, 110, 103, 6, 115, 116, 114, 105, - 110, 103, 11, 76, 101, 118, 101, 108, 85, 112, 100, 97, 116, 101, 6, 79, 98, 106, - 101, 99, 116, 6, 111, 98, 106, 101, 99, 116, 9, 111, 108, 100, 95, 108, 101, 118, - 101, 108, 9, 110, 101, 119, 95, 108, 101, 118, 101, 108, 4, 98, 117, 114, 110, 14, - 111, 98, 106, 101, 99, 116, 95, 97, 100, 100, 114, 101, 115, 115, 7, 99, 114, 101, - 97, 116, 111, 114, 6, 115, 105, 103, 110, 101, 114, 10, 97, 100, 100, 114, 101, 115, - 115, 95, 111, 102, 5, 101, 114, 114, 111, 114, 17, 112, 101, 114, 109, 105, 115, 115, - 105, 111, 110, 95, 100, 101, 110, 105, 101, 100, 9, 110, 111, 116, 95, 102, 111, 117, - 110, 100, 29, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 108, 101, 118, 101, - 108, 95, 102, 114, 111, 109, 95, 97, 100, 100, 114, 101, 115, 115, 17, 97, 100, 100, - 114, 101, 115, 115, 95, 116, 111, 95, 111, 98, 106, 101, 99, 116, 15, 97, 109, 98, - 97, 115, 115, 97, 100, 111, 114, 95, 114, 97, 110, 107, 4, 117, 116, 102, 56, 11, - 114, 101, 97, 100, 95, 115, 116, 114, 105, 110, 103, 28, 97, 109, 98, 97, 115, 115, - 97, 100, 111, 114, 95, 114, 97, 110, 107, 95, 102, 114, 111, 109, 95, 97, 100, 100, - 114, 101, 115, 115, 18, 98, 117, 114, 110, 95, 110, 97, 109, 101, 100, 95, 98, 121, - 95, 117, 115, 101, 114, 12, 115, 116, 114, 105, 110, 103, 95, 117, 116, 105, 108, 115, - 9, 116, 111, 95, 115, 116, 114, 105, 110, 103, 20, 99, 114, 101, 97, 116, 101, 95, - 116, 111, 107, 101, 110, 95, 97, 100, 100, 114, 101, 115, 115, 28, 99, 114, 101, 97, - 116, 101, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 99, 111, 108, 108, - 101, 99, 116, 105, 111, 110, 7, 82, 111, 121, 97, 108, 116, 121, 7, 114, 111, 121, - 97, 108, 116, 121, 6, 111, 112, 116, 105, 111, 110, 4, 110, 111, 110, 101, 6, 79, - 112, 116, 105, 111, 110, 10, 99, 111, 108, 108, 101, 99, 116, 105, 111, 110, 27, 99, - 114, 101, 97, 116, 101, 95, 117, 110, 108, 105, 109, 105, 116, 101, 100, 95, 99, 111, - 108, 108, 101, 99, 116, 105, 111, 110, 14, 67, 111, 110, 115, 116, 114, 117, 99, 116, - 111, 114, 82, 101, 102, 11, 105, 110, 105, 116, 95, 109, 111, 100, 117, 108, 101, 21, - 109, 105, 110, 116, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 116, 111, - 107, 101, 110, 26, 109, 105, 110, 116, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, - 114, 95, 116, 111, 107, 101, 110, 95, 105, 109, 112, 108, 29, 109, 105, 110, 116, 95, - 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 116, 111, 107, 101, 110, 95, 98, - 121, 95, 117, 115, 101, 114, 6, 97, 112, 112, 101, 110, 100, 21, 99, 114, 101, 97, - 116, 101, 95, 110, 117, 109, 98, 101, 114, 101, 100, 95, 116, 111, 107, 101, 110, 15, - 103, 101, 110, 101, 114, 97, 116, 101, 95, 115, 105, 103, 110, 101, 114, 21, 103, 101, - 110, 101, 114, 97, 116, 101, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 114, 101, - 102, 11, 84, 114, 97, 110, 115, 102, 101, 114, 82, 101, 102, 20, 103, 101, 110, 101, - 114, 97, 116, 101, 95, 109, 117, 116, 97, 116, 111, 114, 95, 114, 101, 102, 17, 103, - 101, 110, 101, 114, 97, 116, 101, 95, 98, 117, 114, 110, 95, 114, 101, 102, 28, 103, - 101, 110, 101, 114, 97, 116, 101, 95, 108, 105, 110, 101, 97, 114, 95, 116, 114, 97, - 110, 115, 102, 101, 114, 95, 114, 101, 102, 17, 76, 105, 110, 101, 97, 114, 84, 114, - 97, 110, 115, 102, 101, 114, 82, 101, 102, 17, 116, 114, 97, 110, 115, 102, 101, 114, - 95, 119, 105, 116, 104, 95, 114, 101, 102, 24, 100, 105, 115, 97, 98, 108, 101, 95, - 117, 110, 103, 97, 116, 101, 100, 95, 116, 114, 97, 110, 115, 102, 101, 114, 13, 112, - 114, 101, 112, 97, 114, 101, 95, 105, 110, 112, 117, 116, 11, 80, 114, 111, 112, 101, - 114, 116, 121, 77, 97, 112, 4, 105, 110, 105, 116, 9, 97, 100, 100, 95, 116, 121, - 112, 101, 100, 18, 99, 114, 101, 97, 116, 101, 95, 110, 97, 109, 101, 100, 95, 116, - 111, 107, 101, 110, 30, 109, 105, 110, 116, 95, 110, 117, 109, 98, 101, 114, 101, 100, - 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 116, 111, 107, 101, 110, 38, - 109, 105, 110, 116, 95, 110, 117, 109, 98, 101, 114, 101, 100, 95, 97, 109, 98, 97, - 115, 115, 97, 100, 111, 114, 95, 116, 111, 107, 101, 110, 95, 98, 121, 95, 117, 115, - 101, 114, 20, 115, 101, 116, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, - 108, 101, 118, 101, 108, 5, 101, 118, 101, 110, 116, 4, 101, 109, 105, 116, 22, 117, - 112, 100, 97, 116, 101, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 114, - 97, 110, 107, 12, 117, 112, 100, 97, 116, 101, 95, 116, 121, 112, 101, 100, 7, 115, - 101, 116, 95, 117, 114, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 8, 5, 10, 8, 5, 10, 10, 2, 1, 8, 13, 3, 7, 8, 13, 8, 5, + 9, 0, 2, 6, 8, 10, 8, 13, 6, 6, 12, 8, 5, 8, 5, 8, 5, 11, + 9, 1, 8, 8, 8, 5, 13, 8, 5, 8, 5, 6, 12, 8, 5, 8, 5, 8, + 5, 11, 9, 1, 8, 8, 8, 5, 8, 10, 12, 8, 11, 8, 13, 8, 1, 5, + 6, 12, 6, 12, 8, 5, 8, 5, 8, 5, 3, 6, 12, 11, 7, 1, 8, 1, + 3, 1, 8, 6, 1, 9, 0, 2, 11, 7, 1, 8, 1, 3, 4, 6, 11, 7, + 1, 8, 1, 7, 8, 0, 3, 7, 3, 3, 6, 8, 4, 6, 8, 5, 9, 0, + 2, 6, 8, 2, 8, 5, 5, 3, 10, 2, 6, 8, 1, 8, 5, 8, 5, 10, + 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 15, 65, 109, 98, 97, 115, 115, 97, + 100, 111, 114, 76, 101, 118, 101, 108, 16, 97, 109, 98, 97, 115, 115, 97, 100, 111, + 114, 95, 108, 101, 118, 101, 108, 15, 65, 109, 98, 97, 115, 115, 97, 100, 111, 114, + 84, 111, 107, 101, 110, 11, 109, 117, 116, 97, 116, 111, 114, 95, 114, 101, 102, 10, + 77, 117, 116, 97, 116, 111, 114, 82, 101, 102, 5, 116, 111, 107, 101, 110, 8, 98, + 117, 114, 110, 95, 114, 101, 102, 7, 66, 117, 114, 110, 82, 101, 102, 20, 112, 114, + 111, 112, 101, 114, 116, 121, 95, 109, 117, 116, 97, 116, 111, 114, 95, 114, 101, 102, + 12, 112, 114, 111, 112, 101, 114, 116, 121, 95, 109, 97, 112, 8, 98, 97, 115, 101, + 95, 117, 114, 105, 6, 83, 116, 114, 105, 110, 103, 6, 115, 116, 114, 105, 110, 103, + 11, 76, 101, 118, 101, 108, 85, 112, 100, 97, 116, 101, 6, 79, 98, 106, 101, 99, + 116, 6, 111, 98, 106, 101, 99, 116, 9, 111, 108, 100, 95, 108, 101, 118, 101, 108, + 9, 110, 101, 119, 95, 108, 101, 118, 101, 108, 4, 98, 117, 114, 110, 14, 111, 98, + 106, 101, 99, 116, 95, 97, 100, 100, 114, 101, 115, 115, 7, 99, 114, 101, 97, 116, + 111, 114, 6, 115, 105, 103, 110, 101, 114, 10, 97, 100, 100, 114, 101, 115, 115, 95, + 111, 102, 5, 101, 114, 114, 111, 114, 17, 112, 101, 114, 109, 105, 115, 115, 105, 111, + 110, 95, 100, 101, 110, 105, 101, 100, 9, 110, 111, 116, 95, 102, 111, 117, 110, 100, + 29, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 108, 101, 118, 101, 108, 95, + 102, 114, 111, 109, 95, 97, 100, 100, 114, 101, 115, 115, 17, 97, 100, 100, 114, 101, + 115, 115, 95, 116, 111, 95, 111, 98, 106, 101, 99, 116, 15, 97, 109, 98, 97, 115, + 115, 97, 100, 111, 114, 95, 114, 97, 110, 107, 4, 117, 116, 102, 56, 11, 114, 101, + 97, 100, 95, 115, 116, 114, 105, 110, 103, 28, 97, 109, 98, 97, 115, 115, 97, 100, + 111, 114, 95, 114, 97, 110, 107, 95, 102, 114, 111, 109, 95, 97, 100, 100, 114, 101, + 115, 115, 18, 98, 117, 114, 110, 95, 110, 97, 109, 101, 100, 95, 98, 121, 95, 117, + 115, 101, 114, 12, 115, 116, 114, 105, 110, 103, 95, 117, 116, 105, 108, 115, 9, 116, + 111, 95, 115, 116, 114, 105, 110, 103, 20, 99, 114, 101, 97, 116, 101, 95, 116, 111, + 107, 101, 110, 95, 97, 100, 100, 114, 101, 115, 115, 28, 99, 114, 101, 97, 116, 101, + 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 99, 111, 108, 108, 101, 99, + 116, 105, 111, 110, 7, 82, 111, 121, 97, 108, 116, 121, 7, 114, 111, 121, 97, 108, + 116, 121, 6, 111, 112, 116, 105, 111, 110, 4, 110, 111, 110, 101, 6, 79, 112, 116, + 105, 111, 110, 10, 99, 111, 108, 108, 101, 99, 116, 105, 111, 110, 27, 99, 114, 101, + 97, 116, 101, 95, 117, 110, 108, 105, 109, 105, 116, 101, 100, 95, 99, 111, 108, 108, + 101, 99, 116, 105, 111, 110, 14, 67, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, + 82, 101, 102, 11, 105, 110, 105, 116, 95, 109, 111, 100, 117, 108, 101, 21, 109, 105, + 110, 116, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 116, 111, 107, 101, + 110, 26, 109, 105, 110, 116, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, + 116, 111, 107, 101, 110, 95, 105, 109, 112, 108, 29, 109, 105, 110, 116, 95, 97, 109, + 98, 97, 115, 115, 97, 100, 111, 114, 95, 116, 111, 107, 101, 110, 95, 98, 121, 95, + 117, 115, 101, 114, 6, 97, 112, 112, 101, 110, 100, 21, 99, 114, 101, 97, 116, 101, + 95, 110, 117, 109, 98, 101, 114, 101, 100, 95, 116, 111, 107, 101, 110, 15, 103, 101, + 110, 101, 114, 97, 116, 101, 95, 115, 105, 103, 110, 101, 114, 21, 103, 101, 110, 101, + 114, 97, 116, 101, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 114, 101, 102, 11, + 84, 114, 97, 110, 115, 102, 101, 114, 82, 101, 102, 20, 103, 101, 110, 101, 114, 97, + 116, 101, 95, 109, 117, 116, 97, 116, 111, 114, 95, 114, 101, 102, 17, 103, 101, 110, + 101, 114, 97, 116, 101, 95, 98, 117, 114, 110, 95, 114, 101, 102, 28, 103, 101, 110, + 101, 114, 97, 116, 101, 95, 108, 105, 110, 101, 97, 114, 95, 116, 114, 97, 110, 115, + 102, 101, 114, 95, 114, 101, 102, 17, 76, 105, 110, 101, 97, 114, 84, 114, 97, 110, + 115, 102, 101, 114, 82, 101, 102, 17, 116, 114, 97, 110, 115, 102, 101, 114, 95, 119, + 105, 116, 104, 95, 114, 101, 102, 24, 100, 105, 115, 97, 98, 108, 101, 95, 117, 110, + 103, 97, 116, 101, 100, 95, 116, 114, 97, 110, 115, 102, 101, 114, 13, 112, 114, 101, + 112, 97, 114, 101, 95, 105, 110, 112, 117, 116, 11, 80, 114, 111, 112, 101, 114, 116, + 121, 77, 97, 112, 19, 97, 100, 100, 95, 116, 121, 112, 101, 100, 95, 116, 111, 95, + 115, 116, 114, 117, 99, 116, 4, 105, 110, 105, 116, 18, 99, 114, 101, 97, 116, 101, + 95, 110, 97, 109, 101, 100, 95, 116, 111, 107, 101, 110, 30, 109, 105, 110, 116, 95, + 110, 117, 109, 98, 101, 114, 101, 100, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, + 114, 95, 116, 111, 107, 101, 110, 38, 109, 105, 110, 116, 95, 110, 117, 109, 98, 101, + 114, 101, 100, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 116, 111, 107, + 101, 110, 95, 98, 121, 95, 117, 115, 101, 114, 20, 115, 101, 116, 95, 97, 109, 98, + 97, 115, 115, 97, 100, 111, 114, 95, 108, 101, 118, 101, 108, 5, 101, 118, 101, 110, + 116, 4, 101, 109, 105, 116, 22, 117, 112, 100, 97, 116, 101, 95, 97, 109, 98, 97, + 115, 115, 97, 100, 111, 114, 95, 114, 97, 110, 107, 12, 117, 112, 100, 97, 116, 101, + 95, 116, 121, 112, 101, 100, 7, 115, 101, 116, 95, 117, 114, 105, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 202, 254, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 10, 2, 5, 4, 82, 97, 110, 107, 10, 2, 27, 26, 65, 109, 98, 97, + 115, 115, 97, 100, 111, 114, 32, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, + 78, 97, 109, 101, 10, 2, 34, 33, 65, 109, 98, 97, 115, 115, 97, 100, 111, 114, + 32, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, 68, 101, 115, 99, 114, 105, + 112, 116, 105, 111, 110, 10, 2, 26, 25, 65, 109, 98, 97, 115, 115, 97, 100, 111, + 114, 32, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, 85, 82, 73, 10, 2, + 7, 6, 66, 114, 111, 110, 122, 101, 10, 2, 1, 0, 10, 2, 7, 6, 83, 105, + 108, 118, 101, 114, 10, 2, 5, 4, 71, 111, 108, 100, 20, 99, 111, 109, 112, 105, + 108, 97, 116, 105, 111, 110, 95, 109, 101, 116, 97, 100, 97, 116, 97, 9, 0, 3, + 50, 46, 48, 3, 50, 46, 49, 18, 97, 112, 116, 111, 115, 58, 58, 109, 101, 116, + 97, 100, 97, 116, 97, 95, 118, 49, 197, 4, 6, 1, 0, 0, 0, 0, 0, 0, + 0, 21, 69, 84, 79, 75, 69, 78, 95, 68, 79, 69, 83, 95, 78, 79, 84, 95, + 69, 88, 73, 83, 84, 24, 84, 104, 101, 32, 116, 111, 107, 101, 110, 32, 100, 111, + 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 2, 0, 0, 0, 0, 0, + 0, 0, 12, 69, 78, 79, 84, 95, 67, 82, 69, 65, 84, 79, 82, 38, 84, 104, + 101, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 115, 105, 103, 110, 101, 114, 32, + 105, 115, 32, 110, 111, 116, 32, 116, 104, 101, 32, 99, 114, 101, 97, 116, 111, 114, + 3, 0, 0, 0, 0, 0, 0, 0, 18, 69, 70, 73, 69, 76, 68, 95, 78, 79, + 84, 95, 77, 85, 84, 65, 66, 76, 69, 38, 65, 116, 116, 101, 109, 112, 116, 101, + 100, 32, 116, 111, 32, 109, 117, 116, 97, 116, 101, 32, 97, 110, 32, 105, 109, 109, + 117, 116, 97, 98, 108, 101, 32, 102, 105, 101, 108, 100, 4, 0, 0, 0, 0, 0, + 0, 0, 19, 69, 84, 79, 75, 69, 78, 95, 78, 79, 84, 95, 66, 85, 82, 78, + 65, 66, 76, 69, 38, 65, 116, 116, 101, 109, 112, 116, 101, 100, 32, 116, 111, 32, + 98, 117, 114, 110, 32, 97, 32, 110, 111, 110, 45, 98, 117, 114, 110, 97, 98, 108, + 101, 32, 116, 111, 107, 101, 110, 5, 0, 0, 0, 0, 0, 0, 0, 23, 69, 80, + 82, 79, 80, 69, 82, 84, 73, 69, 83, 95, 78, 79, 84, 95, 77, 85, 84, 65, + 66, 76, 69, 54, 65, 116, 116, 101, 109, 112, 116, 101, 100, 32, 116, 111, 32, 109, + 117, 116, 97, 116, 101, 32, 97, 32, 112, 114, 111, 112, 101, 114, 116, 121, 32, 109, + 97, 112, 32, 116, 104, 97, 116, 32, 105, 115, 32, 110, 111, 116, 32, 109, 117, 116, + 97, 98, 108, 101, 6, 0, 0, 0, 0, 0, 0, 0, 26, 69, 67, 79, 76, 76, + 69, 67, 84, 73, 79, 78, 95, 68, 79, 69, 83, 95, 78, 79, 84, 95, 69, 88, + 73, 83, 84, 0, 3, 11, 76, 101, 118, 101, 108, 85, 112, 100, 97, 116, 101, 1, + 4, 0, 15, 65, 109, 98, 97, 115, 115, 97, 100, 111, 114, 76, 101, 118, 101, 108, + 1, 3, 1, 24, 48, 120, 49, 58, 58, 111, 98, 106, 101, 99, 116, 58, 58, 79, + 98, 106, 101, 99, 116, 71, 114, 111, 117, 112, 15, 65, 109, 98, 97, 115, 115, 97, + 100, 111, 114, 84, 111, 107, 101, 110, 1, 3, 1, 24, 48, 120, 49, 58, 58, 111, + 98, 106, 101, 99, 116, 58, 58, 79, 98, 106, 101, 99, 116, 71, 114, 111, 117, 112, + 4, 15, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 114, 97, 110, 107, 1, + 1, 0, 16, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 108, 101, 118, 101, + 108, 1, 1, 0, 28, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 114, 97, + 110, 107, 95, 102, 114, 111, 109, 95, 97, 100, 100, 114, 101, 115, 115, 1, 1, 0, + 29, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 108, 101, 118, 101, 108, 95, + 102, 114, 111, 109, 95, 97, 100, 100, 114, 101, 115, 115, 1, 1, 0, 0, 2, 1, + 2, 3, 1, 2, 4, 4, 8, 2, 7, 8, 3, 9, 8, 4, 11, 8, 5, 6, + 2, 3, 6, 11, 7, 1, 8, 1, 17, 3, 18, 3, 0, 1, 4, 2, 0, 1, + 10, 37, 14, 1, 12, 2, 10, 2, 56, 0, 41, 1, 4, 30, 11, 2, 20, 56, + 1, 11, 0, 17, 3, 33, 4, 27, 14, 1, 56, 0, 44, 1, 19, 1, 1, 14, + 1, 56, 0, 44, 0, 19, 0, 1, 17, 4, 17, 5, 1, 2, 6, 2, 0, 0, + 0, 0, 0, 0, 0, 17, 6, 39, 11, 0, 1, 11, 2, 1, 6, 1, 0, 0, + 0, 0, 0, 0, 0, 17, 7, 39, 8, 1, 0, 1, 0, 1, 6, 14, 0, 56, + 0, 43, 0, 16, 0, 20, 2, 9, 1, 0, 1, 0, 1, 4, 11, 0, 56, 2, + 17, 8, 2, 11, 1, 0, 0, 12, 7, 14, 0, 7, 0, 17, 12, 12, 1, 14, + 1, 56, 3, 2, 14, 1, 0, 0, 1, 4, 11, 0, 56, 2, 17, 11, 2, 15, + 1, 4, 2, 0, 1, 18, 22, 7, 1, 17, 12, 12, 2, 10, 1, 17, 3, 12, + 3, 14, 3, 14, 2, 11, 0, 17, 3, 12, 4, 14, 4, 56, 4, 12, 5, 14, + 5, 17, 17, 56, 2, 12, 6, 11, 1, 11, 6, 17, 0, 2, 18, 0, 0, 0, + 23, 19, 7, 2, 17, 12, 7, 1, 17, 12, 7, 3, 17, 12, 12, 1, 56, 5, + 12, 2, 12, 3, 12, 4, 11, 0, 11, 4, 11, 3, 11, 2, 11, 1, 17, 20, + 1, 2, 21, 0, 0, 0, 1, 3, 11, 0, 17, 18, 2, 22, 1, 4, 0, 26, + 8, 11, 0, 11, 1, 11, 2, 11, 3, 11, 4, 9, 17, 23, 2, 24, 1, 4, + 0, 28, 13, 11, 0, 17, 3, 12, 4, 14, 4, 56, 4, 12, 5, 11, 1, 11, + 2, 11, 5, 11, 3, 11, 4, 17, 22, 2, 23, 0, 0, 0, 43, 87, 7, 1, + 17, 12, 12, 6, 10, 3, 12, 7, 13, 7, 7, 4, 17, 12, 17, 25, 11, 5, + 4, 76, 11, 0, 12, 8, 11, 6, 12, 9, 11, 1, 12, 10, 11, 2, 12, 11, + 7, 5, 17, 12, 56, 5, 12, 12, 12, 13, 11, 8, 11, 9, 11, 10, 11, 11, + 11, 13, 11, 12, 11, 7, 17, 26, 12, 14, 14, 14, 17, 27, 12, 15, 14, 14, + 17, 28, 12, 16, 14, 14, 17, 29, 14, 14, 17, 30, 14, 14, 17, 31, 14, 16, + 17, 32, 11, 4, 17, 33, 14, 16, 17, 34, 14, 15, 6, 0, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 45, 0, 64, 12, 0, 0, 0, 0, 0, 0, 0, 0, 64, + 12, 0, 0, 0, 0, 0, 0, 0, 0, 64, 13, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 35, 12, 17, 13, 17, 7, 0, 17, 12, 7, 4, 17, 12, 56, 6, 14, + 14, 11, 17, 17, 37, 11, 3, 18, 1, 12, 18, 14, 15, 11, 18, 45, 1, 2, + 56, 5, 12, 12, 11, 0, 11, 6, 11, 1, 11, 2, 11, 12, 11, 7, 17, 38, + 12, 14, 5, 33, 39, 1, 4, 0, 26, 8, 11, 0, 11, 1, 11, 2, 11, 3, + 11, 4, 8, 17, 23, 2, 40, 1, 4, 0, 4, 10, 11, 0, 17, 3, 12, 5, + 11, 1, 11, 2, 11, 3, 11, 4, 11, 5, 17, 39, 2, 41, 1, 4, 2, 0, + 1, 49, 46, 14, 1, 12, 3, 10, 3, 56, 0, 41, 1, 4, 39, 11, 3, 20, + 56, 1, 11, 0, 17, 3, 33, 4, 36, 14, 1, 56, 0, 42, 0, 12, 4, 10, + 4, 16, 0, 20, 12, 5, 10, 1, 11, 5, 10, 2, 18, 2, 56, 7, 11, 4, + 15, 0, 12, 6, 10, 2, 11, 6, 21, 11, 1, 11, 2, 17, 43, 2, 6, 2, + 0, 0, 0, 0, 0, 0, 0, 17, 6, 39, 11, 0, 1, 11, 3, 1, 6, 1, + 0, 0, 0, 0, 0, 0, 0, 17, 7, 39, 43, 0, 0, 1, 1, 52, 42, 10, + 1, 6, 10, 0, 0, 0, 0, 0, 0, 0, 35, 4, 32, 7, 4, 12, 3, 14, + 0, 56, 0, 43, 1, 12, 4, 10, 4, 16, 1, 7, 0, 17, 12, 12, 5, 14, + 5, 10, 3, 17, 12, 56, 8, 10, 4, 16, 2, 20, 12, 6, 13, 6, 11, 3, + 17, 12, 17, 25, 11, 4, 16, 3, 11, 6, 17, 45, 2, 11, 1, 6, 20, 0, + 0, 0, 0, 0, 0, 0, 35, 4, 39, 7, 6, 12, 3, 5, 6, 7, 7, 12, + 3, 5, 6, 0, 0, 1, 2, 1, 3, 1, 0, 0, + ] +}); + +#[rustfmt::skip] +pub static MODULE_AMBASSADOR_TOKEN_COMPRESSED_AMBASSADOR: Lazy> = Lazy::new(|| { + vec![ + 161, 28, 235, 11, 7, 0, 0, 10, 11, 1, 0, 26, 2, 26, 80, 3, 106, 250, + 1, 4, 228, 2, 26, 5, 254, 2, 215, 2, 7, 213, 5, 136, 9, 8, 221, 14, + 96, 6, 189, 15, 118, 16, 179, 16, 215, 4, 10, 138, 21, 44, 12, 182, 21, 192, + 4, 0, 0, 1, 6, 1, 10, 2, 13, 2, 16, 2, 25, 2, 28, 2, 33, 2, + 38, 1, 48, 2, 49, 1, 52, 2, 59, 0, 1, 14, 0, 0, 3, 14, 0, 1, + 5, 6, 0, 1, 8, 6, 0, 2, 5, 6, 0, 3, 12, 7, 0, 0, 14, 6, + 0, 4, 15, 7, 1, 0, 1, 0, 19, 8, 0, 1, 21, 6, 0, 0, 22, 6, + 0, 6, 30, 6, 0, 4, 36, 2, 0, 8, 37, 0, 0, 9, 47, 15, 0, 10, + 51, 7, 1, 0, 0, 4, 64, 6, 0, 4, 68, 2, 0, 2, 72, 14, 0, 0, + 24, 0, 1, 0, 1, 5, 26, 2, 3, 0, 1, 4, 27, 5, 6, 1, 8, 1, + 6, 29, 1, 7, 0, 1, 4, 31, 8, 3, 1, 8, 1, 6, 32, 9, 1, 1, + 6, 1, 1, 24, 12, 1, 1, 6, 1, 7, 34, 13, 13, 0, 1, 0, 35, 15, + 1, 0, 1, 1, 35, 16, 17, 1, 6, 1, 4, 39, 18, 19, 1, 8, 1, 4, + 40, 18, 20, 0, 1, 8, 41, 21, 22, 0, 1, 6, 42, 22, 23, 1, 0, 1, + 1, 43, 18, 24, 0, 1, 8, 44, 25, 1, 0, 1, 0, 45, 2, 1, 0, 1, + 3, 46, 27, 28, 0, 1, 10, 50, 1, 30, 1, 0, 1, 11, 53, 31, 32, 0, + 1, 1, 54, 32, 1, 0, 1, 0, 55, 2, 1, 0, 1, 0, 56, 34, 1, 0, + 1, 0, 57, 35, 1, 0, 1, 0, 58, 36, 1, 0, 1, 12, 60, 37, 28, 1, + 0, 1, 3, 61, 39, 1, 0, 1, 1, 62, 40, 32, 0, 1, 4, 63, 18, 41, + 0, 1, 1, 65, 18, 42, 0, 1, 1, 66, 18, 43, 0, 1, 2, 65, 18, 44, + 0, 1, 4, 67, 45, 46, 0, 1, 4, 69, 47, 1, 0, 1, 4, 70, 45, 1, + 0, 1, 2, 71, 48, 49, 0, 1, 2, 73, 50, 1, 1, 2, 1, 1, 74, 51, + 32, 0, 1, 0, 75, 34, 1, 0, 1, 0, 76, 53, 1, 0, 1, 2, 4, 4, + 4, 5, 4, 5, 10, 6, 11, 9, 11, 10, 4, 13, 4, 13, 10, 18, 29, 25, + 3, 36, 28, 5, 49, 2, 6, 12, 11, 7, 1, 8, 1, 0, 1, 6, 12, 1, + 5, 1, 8, 1, 2, 11, 7, 1, 9, 0, 5, 1, 1, 1, 8, 11, 1, 6, + 11, 7, 1, 9, 0, 2, 7, 8, 11, 9, 0, 1, 8, 0, 1, 8, 10, 3, + 8, 9, 8, 11, 9, 0, 1, 3, 6, 11, 7, 1, 8, 1, 5, 8, 11, 8, + 11, 8, 10, 8, 9, 3, 6, 12, 5, 10, 2, 2, 10, 2, 9, 0, 2, 8, + 12, 8, 13, 1, 6, 8, 12, 1, 11, 7, 1, 9, 0, 1, 12, 1, 7, 8, + 13, 1, 7, 8, 11, 1, 9, 0, 1, 8, 9, 1, 8, 13, 6, 8, 10, 8, + 13, 8, 12, 12, 8, 1, 8, 0, 1, 10, 2, 1, 8, 5, 1, 8, 14, 1, + 11, 15, 1, 9, 0, 5, 6, 12, 8, 5, 8, 5, 11, 15, 1, 8, 14, 8, + 5, 1, 8, 12, 4, 8, 5, 11, 15, 1, 8, 14, 8, 5, 8, 5, 5, 6, + 12, 8, 5, 8, 5, 8, 5, 5, 6, 6, 12, 8, 5, 8, 5, 8, 5, 5, + 1, 4, 6, 12, 6, 12, 8, 5, 8, 5, 1, 6, 9, 0, 2, 5, 8, 5, + 2, 7, 8, 5, 8, 5, 7, 6, 12, 8, 5, 8, 5, 8, 5, 8, 5, 11, + 15, 1, 8, 14, 8, 5, 1, 8, 16, 1, 8, 2, 1, 8, 3, 1, 8, 4, + 1, 6, 8, 16, 1, 8, 17, 2, 8, 17, 5, 3, 10, 8, 5, 10, 8, 5, + 10, 10, 2, 1, 8, 18, 3, 7, 8, 18, 8, 5, 9, 0, 6, 6, 12, 8, + 5, 8, 5, 8, 5, 11, 15, 1, 8, 14, 8, 5, 17, 8, 5, 8, 5, 6, + 12, 8, 5, 8, 5, 8, 5, 11, 15, 1, 8, 14, 8, 5, 8, 12, 12, 8, + 16, 8, 1, 8, 11, 8, 18, 8, 11, 8, 10, 8, 9, 5, 6, 12, 6, 12, + 8, 5, 8, 5, 8, 5, 21, 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 95, + 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 15, 65, 109, 98, 97, 115, 115, 97, + 100, 111, 114, 76, 101, 118, 101, 108, 16, 97, 109, 98, 97, 115, 115, 97, 100, 111, + 114, 95, 108, 101, 118, 101, 108, 15, 65, 109, 98, 97, 115, 115, 97, 100, 111, 114, + 84, 111, 107, 101, 110, 11, 109, 117, 116, 97, 116, 111, 114, 95, 114, 101, 102, 10, + 77, 117, 116, 97, 116, 111, 114, 82, 101, 102, 5, 116, 111, 107, 101, 110, 8, 98, + 117, 114, 110, 95, 114, 101, 102, 7, 66, 117, 114, 110, 82, 101, 102, 20, 112, 114, + 111, 112, 101, 114, 116, 121, 95, 109, 117, 116, 97, 116, 111, 114, 95, 114, 101, 102, + 12, 112, 114, 111, 112, 101, 114, 116, 121, 95, 109, 97, 112, 8, 98, 97, 115, 101, + 95, 117, 114, 105, 6, 83, 116, 114, 105, 110, 103, 6, 115, 116, 114, 105, 110, 103, + 11, 76, 101, 118, 101, 108, 85, 112, 100, 97, 116, 101, 6, 79, 98, 106, 101, 99, + 116, 6, 111, 98, 106, 101, 99, 116, 9, 111, 108, 100, 95, 108, 101, 118, 101, 108, + 9, 110, 101, 119, 95, 108, 101, 118, 101, 108, 21, 65, 109, 98, 97, 115, 115, 97, + 100, 111, 114, 67, 111, 109, 112, 114, 101, 115, 115, 105, 111, 110, 15, 99, 111, 109, + 112, 114, 101, 115, 115, 105, 111, 110, 95, 114, 101, 102, 14, 67, 111, 109, 112, 114, + 101, 115, 115, 105, 111, 110, 82, 101, 102, 25, 65, 109, 98, 97, 115, 115, 97, 100, + 111, 114, 84, 111, 107, 101, 110, 80, 101, 114, 109, 105, 115, 115, 105, 111, 110, 11, + 111, 98, 106, 101, 99, 116, 95, 97, 100, 100, 114, 14, 99, 111, 109, 112, 114, 101, + 115, 115, 95, 116, 111, 107, 101, 110, 6, 115, 105, 103, 110, 101, 114, 10, 97, 100, + 100, 114, 101, 115, 115, 95, 111, 102, 4, 111, 119, 110, 115, 7, 97, 110, 121, 95, + 109, 97, 112, 3, 110, 101, 119, 6, 65, 110, 121, 77, 97, 112, 14, 111, 98, 106, + 101, 99, 116, 95, 97, 100, 100, 114, 101, 115, 115, 3, 97, 100, 100, 5, 101, 114, + 114, 111, 114, 17, 112, 101, 114, 109, 105, 115, 115, 105, 111, 110, 95, 100, 101, 110, + 105, 101, 100, 16, 100, 101, 99, 111, 109, 112, 114, 101, 115, 115, 95, 116, 111, 107, + 101, 110, 14, 67, 111, 110, 115, 116, 114, 117, 99, 116, 111, 114, 82, 101, 102, 19, + 77, 111, 118, 105, 110, 103, 84, 111, 83, 116, 97, 116, 101, 79, 98, 106, 101, 99, + 116, 15, 101, 120, 116, 101, 114, 110, 97, 108, 95, 111, 98, 106, 101, 99, 116, 27, + 111, 98, 106, 101, 99, 116, 95, 102, 114, 111, 109, 95, 99, 111, 110, 115, 116, 114, + 117, 99, 116, 111, 114, 95, 114, 101, 102, 15, 103, 101, 110, 101, 114, 97, 116, 101, + 95, 115, 105, 103, 110, 101, 114, 17, 103, 101, 116, 95, 114, 101, 115, 111, 117, 114, + 99, 101, 115, 95, 109, 117, 116, 6, 114, 101, 109, 111, 118, 101, 24, 103, 101, 110, + 101, 114, 97, 116, 101, 95, 99, 111, 109, 112, 114, 101, 115, 115, 105, 111, 110, 95, + 114, 101, 102, 13, 100, 101, 115, 116, 114, 111, 121, 95, 101, 109, 112, 116, 121, 28, + 99, 114, 101, 97, 116, 101, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, + 99, 111, 108, 108, 101, 99, 116, 105, 111, 110, 4, 117, 116, 102, 56, 7, 82, 111, + 121, 97, 108, 116, 121, 7, 114, 111, 121, 97, 108, 116, 121, 6, 111, 112, 116, 105, + 111, 110, 4, 110, 111, 110, 101, 6, 79, 112, 116, 105, 111, 110, 10, 99, 111, 108, + 108, 101, 99, 116, 105, 111, 110, 27, 99, 114, 101, 97, 116, 101, 95, 117, 110, 108, + 105, 109, 105, 116, 101, 100, 95, 99, 111, 108, 108, 101, 99, 116, 105, 111, 110, 35, + 99, 111, 108, 108, 101, 99, 116, 105, 111, 110, 95, 101, 110, 97, 98, 108, 101, 95, + 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 95, 116, 111, 107, 101, 110, 115, 11, + 105, 110, 105, 116, 95, 109, 111, 100, 117, 108, 101, 21, 109, 105, 110, 116, 95, 97, + 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 116, 111, 107, 101, 110, 26, 109, 105, + 110, 116, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, 95, 116, 111, 107, 101, + 110, 95, 105, 109, 112, 108, 29, 109, 105, 110, 116, 95, 97, 109, 98, 97, 115, 115, + 97, 100, 111, 114, 95, 116, 111, 107, 101, 110, 95, 98, 121, 95, 117, 115, 101, 114, + 12, 115, 116, 114, 105, 110, 103, 95, 117, 116, 105, 108, 115, 9, 116, 111, 95, 115, + 116, 114, 105, 110, 103, 6, 97, 112, 112, 101, 110, 100, 21, 99, 114, 101, 97, 116, + 101, 95, 110, 117, 109, 98, 101, 114, 101, 100, 95, 116, 111, 107, 101, 110, 21, 103, + 101, 110, 101, 114, 97, 116, 101, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 114, + 101, 102, 11, 84, 114, 97, 110, 115, 102, 101, 114, 82, 101, 102, 20, 103, 101, 110, + 101, 114, 97, 116, 101, 95, 109, 117, 116, 97, 116, 111, 114, 95, 114, 101, 102, 17, + 103, 101, 110, 101, 114, 97, 116, 101, 95, 98, 117, 114, 110, 95, 114, 101, 102, 28, + 103, 101, 110, 101, 114, 97, 116, 101, 95, 108, 105, 110, 101, 97, 114, 95, 116, 114, + 97, 110, 115, 102, 101, 114, 95, 114, 101, 102, 17, 76, 105, 110, 101, 97, 114, 84, + 114, 97, 110, 115, 102, 101, 114, 82, 101, 102, 17, 116, 114, 97, 110, 115, 102, 101, + 114, 95, 119, 105, 116, 104, 95, 114, 101, 102, 24, 100, 105, 115, 97, 98, 108, 101, + 95, 117, 110, 103, 97, 116, 101, 100, 95, 116, 114, 97, 110, 115, 102, 101, 114, 13, + 112, 114, 101, 112, 97, 114, 101, 95, 105, 110, 112, 117, 116, 11, 80, 114, 111, 112, + 101, 114, 116, 121, 77, 97, 112, 19, 97, 100, 100, 95, 116, 121, 112, 101, 100, 95, + 116, 111, 95, 115, 116, 114, 117, 99, 116, 6, 99, 114, 101, 97, 116, 101, 30, 109, + 105, 110, 116, 95, 110, 117, 109, 98, 101, 114, 101, 100, 95, 97, 109, 98, 97, 115, + 115, 97, 100, 111, 114, 95, 116, 111, 107, 101, 110, 38, 109, 105, 110, 116, 95, 110, + 117, 109, 98, 101, 114, 101, 100, 95, 97, 109, 98, 97, 115, 115, 97, 100, 111, 114, + 95, 116, 111, 107, 101, 110, 95, 98, 121, 95, 117, 115, 101, 114, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 202, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 202, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 2, 5, 4, 82, 97, - 110, 107, 10, 2, 27, 26, 65, 109, 98, 97, 115, 115, 97, 100, 111, 114, 32, 67, - 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, 78, 97, 109, 101, 10, 2, 34, 33, - 65, 109, 98, 97, 115, 115, 97, 100, 111, 114, 32, 67, 111, 108, 108, 101, 99, 116, - 105, 111, 110, 32, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 10, 2, 26, - 25, 65, 109, 98, 97, 115, 115, 97, 100, 111, 114, 32, 67, 111, 108, 108, 101, 99, + 0, 1, 10, 2, 34, 33, 67, 111, 109, 112, 114, 101, 115, 115, 101, 100, 32, 67, + 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, 68, 101, 115, 99, 114, 105, 112, 116, + 105, 111, 110, 10, 2, 27, 26, 67, 111, 109, 112, 114, 101, 115, 115, 101, 100, 32, + 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, 78, 97, 109, 101, 10, 2, 26, + 25, 67, 111, 109, 112, 114, 101, 115, 115, 101, 100, 32, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, 85, 82, 73, 10, 2, 7, 6, 66, 114, 111, 110, 122, 101, - 10, 2, 1, 0, 10, 2, 7, 6, 83, 105, 108, 118, 101, 114, 10, 2, 5, 4, - 71, 111, 108, 100, 20, 99, 111, 109, 112, 105, 108, 97, 116, 105, 111, 110, 95, 109, - 101, 116, 97, 100, 97, 116, 97, 9, 0, 3, 50, 46, 48, 3, 50, 46, 49, 18, - 97, 112, 116, 111, 115, 58, 58, 109, 101, 116, 97, 100, 97, 116, 97, 95, 118, 49, - 197, 4, 6, 1, 0, 0, 0, 0, 0, 0, 0, 21, 69, 84, 79, 75, 69, 78, - 95, 68, 79, 69, 83, 95, 78, 79, 84, 95, 69, 88, 73, 83, 84, 24, 84, 104, - 101, 32, 116, 111, 107, 101, 110, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 101, - 120, 105, 115, 116, 2, 0, 0, 0, 0, 0, 0, 0, 12, 69, 78, 79, 84, 95, - 67, 82, 69, 65, 84, 79, 82, 38, 84, 104, 101, 32, 112, 114, 111, 118, 105, 100, - 101, 100, 32, 115, 105, 103, 110, 101, 114, 32, 105, 115, 32, 110, 111, 116, 32, 116, - 104, 101, 32, 99, 114, 101, 97, 116, 111, 114, 3, 0, 0, 0, 0, 0, 0, 0, - 18, 69, 70, 73, 69, 76, 68, 95, 78, 79, 84, 95, 77, 85, 84, 65, 66, 76, - 69, 38, 65, 116, 116, 101, 109, 112, 116, 101, 100, 32, 116, 111, 32, 109, 117, 116, - 97, 116, 101, 32, 97, 110, 32, 105, 109, 109, 117, 116, 97, 98, 108, 101, 32, 102, - 105, 101, 108, 100, 4, 0, 0, 0, 0, 0, 0, 0, 19, 69, 84, 79, 75, 69, - 78, 95, 78, 79, 84, 95, 66, 85, 82, 78, 65, 66, 76, 69, 38, 65, 116, 116, - 101, 109, 112, 116, 101, 100, 32, 116, 111, 32, 98, 117, 114, 110, 32, 97, 32, 110, - 111, 110, 45, 98, 117, 114, 110, 97, 98, 108, 101, 32, 116, 111, 107, 101, 110, 5, - 0, 0, 0, 0, 0, 0, 0, 23, 69, 80, 82, 79, 80, 69, 82, 84, 73, 69, - 83, 95, 78, 79, 84, 95, 77, 85, 84, 65, 66, 76, 69, 54, 65, 116, 116, 101, - 109, 112, 116, 101, 100, 32, 116, 111, 32, 109, 117, 116, 97, 116, 101, 32, 97, 32, - 112, 114, 111, 112, 101, 114, 116, 121, 32, 109, 97, 112, 32, 116, 104, 97, 116, 32, - 105, 115, 32, 110, 111, 116, 32, 109, 117, 116, 97, 98, 108, 101, 6, 0, 0, 0, - 0, 0, 0, 0, 26, 69, 67, 79, 76, 76, 69, 67, 84, 73, 79, 78, 95, 68, - 79, 69, 83, 95, 78, 79, 84, 95, 69, 88, 73, 83, 84, 0, 3, 11, 76, 101, - 118, 101, 108, 85, 112, 100, 97, 116, 101, 1, 4, 0, 15, 65, 109, 98, 97, 115, - 115, 97, 100, 111, 114, 76, 101, 118, 101, 108, 1, 3, 1, 24, 48, 120, 49, 58, + 10, 2, 1, 0, 10, 2, 5, 4, 82, 97, 110, 107, 20, 99, 111, 109, 112, 105, + 108, 97, 116, 105, 111, 110, 95, 109, 101, 116, 97, 100, 97, 116, 97, 9, 0, 3, + 50, 46, 48, 3, 50, 46, 49, 18, 97, 112, 116, 111, 115, 58, 58, 109, 101, 116, + 97, 100, 97, 116, 97, 95, 118, 49, 163, 4, 7, 1, 0, 0, 0, 0, 0, 0, + 0, 21, 69, 84, 79, 75, 69, 78, 95, 68, 79, 69, 83, 95, 78, 79, 84, 95, + 69, 88, 73, 83, 84, 24, 84, 104, 101, 32, 116, 111, 107, 101, 110, 32, 100, 111, + 101, 115, 32, 110, 111, 116, 32, 101, 120, 105, 115, 116, 2, 0, 0, 0, 0, 0, + 0, 0, 12, 69, 78, 79, 84, 95, 67, 82, 69, 65, 84, 79, 82, 38, 84, 104, + 101, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 115, 105, 103, 110, 101, 114, 32, + 105, 115, 32, 110, 111, 116, 32, 116, 104, 101, 32, 99, 114, 101, 97, 116, 111, 114, + 3, 0, 0, 0, 0, 0, 0, 0, 18, 69, 70, 73, 69, 76, 68, 95, 78, 79, + 84, 95, 77, 85, 84, 65, 66, 76, 69, 38, 65, 116, 116, 101, 109, 112, 116, 101, + 100, 32, 116, 111, 32, 109, 117, 116, 97, 116, 101, 32, 97, 110, 32, 105, 109, 109, + 117, 116, 97, 98, 108, 101, 32, 102, 105, 101, 108, 100, 4, 0, 0, 0, 0, 0, + 0, 0, 19, 69, 84, 79, 75, 69, 78, 95, 78, 79, 84, 95, 66, 85, 82, 78, + 65, 66, 76, 69, 38, 65, 116, 116, 101, 109, 112, 116, 101, 100, 32, 116, 111, 32, + 98, 117, 114, 110, 32, 97, 32, 110, 111, 110, 45, 98, 117, 114, 110, 97, 98, 108, + 101, 32, 116, 111, 107, 101, 110, 5, 0, 0, 0, 0, 0, 0, 0, 23, 69, 80, + 82, 79, 80, 69, 82, 84, 73, 69, 83, 95, 78, 79, 84, 95, 77, 85, 84, 65, + 66, 76, 69, 54, 65, 116, 116, 101, 109, 112, 116, 101, 100, 32, 116, 111, 32, 109, + 117, 116, 97, 116, 101, 32, 97, 32, 112, 114, 111, 112, 101, 114, 116, 121, 32, 109, + 97, 112, 32, 116, 104, 97, 116, 32, 105, 115, 32, 110, 111, 116, 32, 109, 117, 116, + 97, 98, 108, 101, 6, 0, 0, 0, 0, 0, 0, 0, 26, 69, 67, 79, 76, 76, + 69, 67, 84, 73, 79, 78, 95, 68, 79, 69, 83, 95, 78, 79, 84, 95, 69, 88, + 73, 83, 84, 0, 7, 0, 0, 0, 0, 0, 0, 0, 10, 69, 78, 79, 84, 95, + 79, 87, 78, 69, 82, 0, 4, 11, 76, 101, 118, 101, 108, 85, 112, 100, 97, 116, + 101, 1, 4, 0, 15, 65, 109, 98, 97, 115, 115, 97, 100, 111, 114, 76, 101, 118, + 101, 108, 1, 3, 1, 24, 48, 120, 49, 58, 58, 111, 98, 106, 101, 99, 116, 58, + 58, 79, 98, 106, 101, 99, 116, 71, 114, 111, 117, 112, 15, 65, 109, 98, 97, 115, + 115, 97, 100, 111, 114, 84, 111, 107, 101, 110, 1, 3, 1, 24, 48, 120, 49, 58, 58, 111, 98, 106, 101, 99, 116, 58, 58, 79, 98, 106, 101, 99, 116, 71, 114, 111, - 117, 112, 15, 65, 109, 98, 97, 115, 115, 97, 100, 111, 114, 84, 111, 107, 101, 110, - 1, 3, 1, 24, 48, 120, 49, 58, 58, 111, 98, 106, 101, 99, 116, 58, 58, 79, - 98, 106, 101, 99, 116, 71, 114, 111, 117, 112, 4, 15, 97, 109, 98, 97, 115, 115, - 97, 100, 111, 114, 95, 114, 97, 110, 107, 1, 1, 0, 16, 97, 109, 98, 97, 115, - 115, 97, 100, 111, 114, 95, 108, 101, 118, 101, 108, 1, 1, 0, 28, 97, 109, 98, - 97, 115, 115, 97, 100, 111, 114, 95, 114, 97, 110, 107, 95, 102, 114, 111, 109, 95, - 97, 100, 100, 114, 101, 115, 115, 1, 1, 0, 29, 97, 109, 98, 97, 115, 115, 97, - 100, 111, 114, 95, 108, 101, 118, 101, 108, 95, 102, 114, 111, 109, 95, 97, 100, 100, - 114, 101, 115, 115, 1, 1, 0, 0, 2, 1, 2, 3, 1, 2, 4, 4, 8, 2, - 7, 8, 3, 9, 8, 4, 11, 8, 5, 6, 2, 3, 6, 11, 7, 1, 8, 1, - 17, 3, 18, 3, 0, 1, 4, 2, 0, 1, 10, 37, 14, 1, 12, 2, 10, 2, - 56, 0, 41, 1, 4, 30, 11, 2, 20, 56, 1, 11, 0, 17, 3, 33, 4, 27, - 14, 1, 56, 0, 44, 1, 19, 1, 1, 14, 1, 56, 0, 44, 0, 19, 0, 1, - 17, 4, 17, 5, 1, 2, 6, 2, 0, 0, 0, 0, 0, 0, 0, 17, 6, 39, - 11, 0, 1, 11, 2, 1, 6, 1, 0, 0, 0, 0, 0, 0, 0, 17, 7, 39, - 8, 1, 0, 1, 0, 1, 6, 14, 0, 56, 0, 43, 0, 16, 0, 20, 2, 9, - 1, 0, 1, 0, 1, 4, 11, 0, 56, 2, 17, 8, 2, 11, 1, 0, 0, 12, - 7, 14, 0, 7, 0, 17, 12, 12, 1, 14, 1, 56, 3, 2, 14, 1, 0, 0, - 1, 4, 11, 0, 56, 2, 17, 11, 2, 15, 1, 4, 2, 0, 1, 18, 22, 7, - 1, 17, 12, 12, 2, 10, 1, 17, 3, 12, 3, 14, 3, 14, 2, 11, 0, 17, - 3, 12, 4, 14, 4, 56, 4, 12, 5, 14, 5, 17, 17, 56, 2, 12, 6, 11, - 1, 11, 6, 17, 0, 2, 18, 0, 0, 0, 23, 19, 7, 2, 17, 12, 7, 1, - 17, 12, 7, 3, 17, 12, 12, 1, 56, 5, 12, 2, 12, 3, 12, 4, 11, 0, - 11, 4, 11, 3, 11, 2, 11, 1, 17, 20, 1, 2, 21, 0, 0, 0, 1, 3, - 11, 0, 17, 18, 2, 22, 1, 4, 0, 26, 8, 11, 0, 11, 1, 11, 2, 11, - 3, 11, 4, 9, 17, 23, 2, 24, 1, 4, 0, 28, 13, 11, 0, 17, 3, 12, - 4, 14, 4, 56, 4, 12, 5, 11, 1, 11, 2, 11, 5, 11, 3, 11, 4, 17, - 22, 2, 23, 0, 0, 0, 43, 89, 7, 1, 17, 12, 12, 6, 10, 3, 12, 7, - 13, 7, 7, 4, 17, 12, 17, 25, 11, 5, 4, 78, 11, 0, 12, 8, 11, 6, - 12, 9, 11, 1, 12, 10, 11, 2, 12, 11, 7, 5, 17, 12, 56, 5, 12, 12, - 12, 13, 11, 8, 11, 9, 11, 10, 11, 11, 11, 13, 11, 12, 11, 7, 17, 26, - 12, 14, 14, 14, 17, 27, 12, 15, 14, 14, 17, 28, 12, 16, 14, 14, 17, 29, - 14, 14, 17, 30, 14, 14, 17, 31, 12, 17, 14, 16, 17, 32, 11, 4, 17, 33, - 14, 16, 17, 34, 14, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 45, - 0, 64, 12, 0, 0, 0, 0, 0, 0, 0, 0, 64, 12, 0, 0, 0, 0, 0, - 0, 0, 0, 64, 13, 0, 0, 0, 0, 0, 0, 0, 0, 17, 35, 12, 18, 14, - 14, 11, 18, 17, 36, 14, 17, 7, 0, 17, 12, 7, 4, 17, 12, 56, 6, 11, - 17, 11, 3, 18, 1, 12, 19, 14, 15, 11, 19, 45, 1, 2, 56, 5, 12, 12, - 11, 0, 11, 6, 11, 1, 11, 2, 11, 12, 11, 7, 17, 38, 12, 14, 5, 33, - 39, 1, 4, 0, 26, 8, 11, 0, 11, 1, 11, 2, 11, 3, 11, 4, 8, 17, - 23, 2, 40, 1, 4, 0, 4, 10, 11, 0, 17, 3, 12, 5, 11, 1, 11, 2, - 11, 3, 11, 4, 11, 5, 17, 39, 2, 41, 1, 4, 2, 0, 1, 49, 46, 14, - 1, 12, 3, 10, 3, 56, 0, 41, 1, 4, 39, 11, 3, 20, 56, 1, 11, 0, - 17, 3, 33, 4, 36, 14, 1, 56, 0, 42, 0, 12, 4, 10, 4, 16, 0, 20, - 12, 5, 10, 1, 11, 5, 10, 2, 18, 2, 56, 7, 11, 4, 15, 0, 12, 6, - 10, 2, 11, 6, 21, 11, 1, 11, 2, 17, 43, 2, 6, 2, 0, 0, 0, 0, - 0, 0, 0, 17, 6, 39, 11, 0, 1, 11, 3, 1, 6, 1, 0, 0, 0, 0, - 0, 0, 0, 17, 7, 39, 43, 0, 0, 1, 1, 52, 42, 10, 1, 6, 10, 0, - 0, 0, 0, 0, 0, 0, 35, 4, 32, 7, 4, 12, 3, 14, 0, 56, 0, 43, - 1, 12, 4, 10, 4, 16, 1, 7, 0, 17, 12, 12, 5, 14, 5, 10, 3, 17, - 12, 56, 8, 10, 4, 16, 2, 20, 12, 6, 13, 6, 11, 3, 17, 12, 17, 25, - 11, 4, 16, 3, 11, 6, 17, 45, 2, 11, 1, 6, 20, 0, 0, 0, 0, 0, - 0, 0, 35, 4, 39, 7, 6, 12, 3, 5, 6, 7, 7, 12, 3, 5, 6, 0, - 0, 1, 2, 1, 3, 1, 0, 0, + 117, 112, 21, 65, 109, 98, 97, 115, 115, 97, 100, 111, 114, 67, 111, 109, 112, 114, + 101, 115, 115, 105, 111, 110, 1, 3, 1, 24, 48, 120, 49, 58, 58, 111, 98, 106, + 101, 99, 116, 58, 58, 79, 98, 106, 101, 99, 116, 71, 114, 111, 117, 112, 0, 0, + 2, 1, 2, 3, 1, 2, 4, 4, 8, 2, 7, 8, 3, 9, 8, 4, 11, 8, + 5, 6, 2, 3, 6, 11, 7, 1, 8, 1, 17, 3, 18, 3, 8, 2, 1, 20, + 8, 9, 10, 2, 1, 23, 5, 0, 1, 4, 3, 0, 1, 3, 14, 38, 10, 1, + 12, 2, 11, 0, 17, 1, 12, 3, 11, 2, 11, 3, 56, 0, 4, 35, 17, 3, + 12, 4, 13, 4, 14, 1, 56, 1, 44, 1, 56, 2, 13, 4, 14, 1, 56, 1, + 44, 0, 56, 3, 14, 1, 56, 1, 44, 3, 19, 3, 11, 4, 12, 5, 14, 1, + 56, 1, 18, 4, 12, 6, 11, 5, 11, 6, 56, 4, 2, 6, 7, 0, 0, 0, + 0, 0, 0, 0, 17, 7, 39, 8, 1, 4, 0, 26, 42, 11, 1, 18, 4, 12, + 3, 11, 2, 11, 3, 56, 5, 12, 4, 12, 5, 14, 5, 56, 6, 11, 0, 17, + 1, 56, 0, 4, 39, 14, 5, 17, 11, 12, 6, 13, 4, 17, 12, 56, 7, 12, + 7, 14, 6, 11, 7, 45, 1, 13, 4, 17, 12, 56, 8, 12, 8, 14, 6, 11, + 8, 45, 0, 14, 6, 14, 5, 17, 14, 18, 3, 45, 3, 11, 4, 17, 15, 2, + 6, 2, 0, 0, 0, 0, 0, 0, 0, 17, 7, 39, 16, 0, 0, 0, 33, 19, + 7, 0, 17, 17, 7, 1, 17, 17, 7, 2, 17, 17, 12, 1, 56, 9, 12, 2, + 12, 3, 12, 4, 11, 0, 11, 4, 11, 3, 11, 2, 11, 1, 17, 19, 17, 20, + 2, 21, 0, 0, 0, 1, 3, 11, 0, 17, 16, 2, 22, 1, 4, 0, 6, 8, + 11, 0, 11, 1, 11, 2, 11, 3, 11, 4, 9, 17, 23, 2, 24, 1, 4, 0, + 38, 13, 11, 0, 17, 1, 12, 4, 14, 4, 56, 10, 12, 5, 11, 1, 11, 2, + 11, 5, 11, 3, 11, 4, 17, 22, 2, 23, 0, 0, 0, 52, 103, 7, 1, 17, + 17, 12, 6, 10, 3, 12, 7, 13, 7, 7, 3, 17, 17, 17, 26, 11, 5, 4, + 92, 11, 0, 12, 8, 11, 6, 12, 9, 11, 1, 12, 10, 11, 2, 12, 11, 7, + 4, 17, 17, 56, 9, 12, 12, 12, 13, 11, 8, 11, 9, 11, 10, 11, 11, 11, + 13, 11, 12, 11, 7, 17, 27, 12, 14, 14, 14, 17, 11, 12, 15, 14, 14, 17, + 28, 12, 16, 14, 14, 17, 29, 14, 14, 17, 30, 14, 14, 17, 31, 14, 14, 17, + 14, 1, 14, 16, 17, 32, 11, 4, 17, 33, 14, 16, 17, 34, 11, 3, 18, 1, + 12, 17, 17, 3, 12, 18, 13, 18, 11, 17, 56, 2, 13, 18, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 18, 0, 56, 3, 64, 28, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 28, 0, 0, 0, 0, 0, 0, 0, 0, 64, 27, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 35, 12, 19, 13, 19, 7, 5, 17, 17, 7, 3, 17, 17, 56, + 11, 13, 18, 11, 19, 56, 12, 14, 14, 17, 14, 11, 18, 12, 20, 14, 15, 17, + 1, 18, 4, 12, 21, 11, 20, 11, 21, 56, 4, 2, 56, 9, 12, 12, 11, 0, + 11, 6, 11, 1, 11, 2, 11, 12, 11, 7, 17, 37, 12, 14, 5, 33, 38, 1, + 4, 0, 6, 8, 11, 0, 11, 1, 11, 2, 11, 3, 11, 4, 8, 17, 23, 2, + 39, 1, 4, 0, 3, 10, 11, 0, 17, 1, 12, 5, 11, 1, 11, 2, 11, 3, + 11, 4, 11, 5, 17, 38, 2, 0, ] }); #[rustfmt::skip] pub static MODULES_AMBASSADOR_TOKEN: Lazy>> = Lazy::new(|| { vec![ MODULE_AMBASSADOR_TOKEN_AMBASSADOR.to_vec(), + MODULE_AMBASSADOR_TOKEN_COMPRESSED_AMBASSADOR.to_vec(), ]}); #[rustfmt::skip] pub static PACKAGE_AGGREGATOR_EXAMPLES_METADATA: Lazy> = Lazy::new(|| { diff --git a/testsuite/single_node_performance.py b/testsuite/single_node_performance.py index 119ba8a250efd..b2f84cfb6cbf9 100755 --- a/testsuite/single_node_performance.py +++ b/testsuite/single_node_performance.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3.11 # Copyright © Aptos Foundation # SPDX-License-Identifier: Apache-2.0 @@ -33,6 +33,8 @@ class Flow(Flag): RESOURCE_GROUPS = auto() # Test different executor types EXECUTORS = auto() + # + COMPRESSSED_TOKENS = auto() # Tests that are run on LAND_BLOCKING and continuously on main @@ -169,7 +171,6 @@ class RunGroupConfig: with open('testsuite/single_node_performance_values.tsv', 'r') as file: CALIBRATION = file.read() - # when adding a new test, add estimated expected_tps to it, as well as waived=True. # And then after a day or two - add calibration result for it above, removing expected_tps/waived fields. @@ -237,9 +238,11 @@ class RunGroupConfig: RunGroupConfig(key=RunGroupKey("no-op5-signers"), included_in=Flow.CONTINUOUS), - RunGroupConfig(key=RunGroupKey("token-v2-ambassador-mint"), included_in=LAND_BLOCKING_AND_C | Flow.REPRESENTATIVE | Flow.MAINNET), + RunGroupConfig(key=RunGroupKey("token-v2-ambassador-mint"), included_in=LAND_BLOCKING_AND_C | Flow.REPRESENTATIVE | Flow.MAINNET | Flow.COMPRESSSED_TOKENS), RunGroupConfig(key=RunGroupKey("token-v2-ambassador-mint", module_working_set_size=DEFAULT_MODULE_WORKING_SET_SIZE), included_in=Flow.CONTINUOUS), + RunGroupConfig(expected_tps=3000, key=RunGroupKey("compressed-token-ambassador-mint"), included_in=LAND_BLOCKING_AND_C | Flow.REPRESENTATIVE | Flow.COMPRESSSED_TOKENS), + RunGroupConfig(key=RunGroupKey("liquidity-pool-swap"), included_in=LAND_BLOCKING_AND_C | Flow.REPRESENTATIVE), RunGroupConfig(key=RunGroupKey("liquidity-pool-swap", module_working_set_size=DEFAULT_MODULE_WORKING_SET_SIZE), included_in=Flow.CONTINUOUS),