From 6869bf4af8f76f0552880946e5e79a7f933227a6 Mon Sep 17 00:00:00 2001 From: Sergej Sakac Date: Sat, 26 Aug 2023 14:12:31 +0200 Subject: [PATCH 01/11] breaking changes companion --- __tests__/crossChainRouter.test.ts | 45 ++-- __tests__/teleport.test.ts | 21 +- __tests__/transactionRouter.test.ts | 47 +++-- src/components/Cards/AddressCard/index.tsx | 7 +- src/contracts/identity/metadata.json | 6 +- src/contracts/types.ts | 6 +- src/utils/transactionRouter/index.ts | 26 +-- src/utils/transactionRouter/types.ts | 4 +- types/build-extrinsic/identity.ts | 72 +++---- types/constructors/identity.ts | 12 +- types/contract-info/address_book.ts | 4 +- types/contract-info/identity.ts | 4 +- types/data/identity.json | 232 ++++++++++++++------- types/event-data/address_book.json | 2 +- types/event-data/identity.json | 2 +- types/event-types/address_book.ts | 4 +- types/event-types/identity.ts | 22 +- types/events/address_book.ts | 6 +- types/events/identity.ts | 18 +- types/mixed-methods/identity.ts | 92 ++++---- types/query/identity.ts | 98 ++++----- types/tx-sign-and-send/identity.ts | 80 +++---- types/types-arguments/identity.ts | 10 +- types/types-returns/identity.ts | 10 +- 24 files changed, 463 insertions(+), 367 deletions(-) diff --git a/__tests__/crossChainRouter.test.ts b/__tests__/crossChainRouter.test.ts index a9edf21..1013c87 100644 --- a/__tests__/crossChainRouter.test.ts +++ b/__tests__/crossChainRouter.test.ts @@ -7,7 +7,7 @@ import { Fungible, Receiver, Sender } from "../src/utils/transactionRouter/types import IdentityContractFactory from "../types/constructors/identity"; import IdentityContract from "../types/contracts/identity"; -import { AccountType, NetworkInfo } from "../types/types-arguments/identity"; +import { AccountType, ChainInfo } from "../types/types-arguments/identity"; const wsProvider = new WsProvider("ws://127.0.0.1:9944"); const keyring = new Keyring({ type: "sr25519" }); @@ -41,18 +41,18 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { swankyApi ); - await addNetwork(identityContract, alice, { - rpcUrl: WS_ASSET_HUB_LOCAL, + await addChain(identityContract, alice, 1000, { + rpcUrls: [WS_ASSET_HUB_LOCAL], accountType: AccountType.accountId32, }); - await addNetwork(identityContract, alice, { - rpcUrl: WS_TRAPPIST_LOCAL, + await addChain(identityContract, alice, 1836, { + rpcUrls: [WS_TRAPPIST_LOCAL], accountType: AccountType.accountId32, }); - await addNetwork(identityContract, alice, { - rpcUrl: "ws://127.0.0.1:9930", + await addChain(identityContract, alice, 3000, { + rpcUrls: ["ws://127.0.0.1:9930"], accountType: AccountType.accountId32, }); }); @@ -60,13 +60,13 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { test("Transferring cross-chain from asset's reserve chain works", async () => { const sender: Sender = { keypair: alice, - network: 0 + chain: 1000 }; const receiver: Receiver = { addressRaw: bob.addressRaw, type: AccountType.accountId32, - network: 1, + chain: 1836, }; const rococoProvider = new WsProvider(WS_ROROCO_LOCAL); @@ -89,7 +89,7 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { await deactivateLockdown(trappistApi, alice); } - // Create assets on both networks + // Create assets on both chains if (!(await getAsset(assetHubApi, USDT_ASSET_ID))) { await forceCreateAsset(rococoApi, assetHubApi, 1000, alice, USDT_ASSET_ID); @@ -121,7 +121,7 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { const receiverBalanceBefore = await getAssetBalance(trappistApi, USDT_ASSET_ID, bob.address); const amount = 4000000000000; - const assetReserveChainId = 0; + const assetReserveChainId = 1000; const asset: Fungible = { multiAsset: { @@ -176,7 +176,7 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { await deactivateLockdown(trappistApi, alice); } - // Create assets on both networks. + // Create assets on both chains. if (!(await getAsset(assetHubApi, USDT_ASSET_ID))) { await forceCreateAsset(rococoApi, assetHubApi, 1000, alice, USDT_ASSET_ID); @@ -204,13 +204,13 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { const sender: Sender = { keypair: bob, - network: 1 + chain: 1836 }; const receiver: Receiver = { addressRaw: charlie.addressRaw, type: AccountType.accountId32, - network: 0, + chain: 1000, }; const asset: Fungible = { @@ -231,7 +231,7 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { const receiverBalanceBefore = await getAssetBalance(assetHubApi, USDT_ASSET_ID, charlie.address); // Transfer the tokens to charlies's account on asset hub: - await TransactionRouter.sendTokens(identityContract, sender, receiver, receiver.network, asset); + await TransactionRouter.sendTokens(identityContract, sender, receiver, receiver.chain, asset); // We need to wait a bit more to actually receive the assets on the base chain. await delay(5000); @@ -273,7 +273,7 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { await deactivateLockdown(trappistApi, alice); } - // Create assets on all networks. + // Create assets on all chains. if (!(await getAsset(assetHubApi, USDT_ASSET_ID))) { await forceCreateAsset(rococoApi, assetHubApi, 1000, alice, USDT_ASSET_ID); @@ -302,17 +302,17 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { } const amount = 950000000000; - const assetReserveChainId = 0; + const assetReserveChainId = 1000; const sender: Sender = { keypair: bob, - network: 1 + chain: 1836 }; const receiver: Receiver = { addressRaw: bob.addressRaw, type: AccountType.accountId32, - network: 2, + chain: 3000, }; const asset: Fungible = { @@ -348,14 +348,15 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { }, 180000); }); -const addNetwork = async ( +const addChain = async ( contract: IdentityContract, signer: KeyringPair, - network: NetworkInfo + chainId: number, + chain: ChainInfo ): Promise => { await contract .withSigner(signer) - .tx.addNetwork(network); + .tx.addChain(chainId, chain); }; const createAsset = async ( diff --git a/__tests__/teleport.test.ts b/__tests__/teleport.test.ts index 62ae7a0..be1c8bb 100644 --- a/__tests__/teleport.test.ts +++ b/__tests__/teleport.test.ts @@ -7,7 +7,7 @@ import { Fungible, Receiver, Sender } from "../src/utils/transactionRouter/types import IdentityContractFactory from "../types/constructors/identity"; import IdentityContract from "../types/contracts/identity"; -import { AccountType, NetworkInfo } from "../types/types-arguments/identity"; +import { AccountType, ChainInfo } from "../types/types-arguments/identity"; const WS_ROROCO_LOCAL = "ws://127.0.0.1:9900"; const WS_ASSET_HUB_LOCAL = "ws://127.0.0.1:9910"; @@ -38,13 +38,13 @@ describe("TransactionRouter Cross-chain teleport", () => { swankyApi ); - await addNetwork(identityContract, alice, { - rpcUrl: WS_ROROCO_LOCAL, + await addChain(identityContract, alice, 0, { + rpcUrls: [WS_ROROCO_LOCAL], accountType: AccountType.accountId32, }); - await addNetwork(identityContract, alice, { - rpcUrl: WS_ASSET_HUB_LOCAL, + await addChain(identityContract, alice, 1000, { + rpcUrls: [WS_ASSET_HUB_LOCAL], accountType: AccountType.accountId32, }); }); @@ -53,13 +53,13 @@ describe("TransactionRouter Cross-chain teleport", () => { test("Teleporting ROC works", async () => { const sender: Sender = { keypair: alice, - network: 0 + chain: 0 }; const receiver: Receiver = { addressRaw: bob.addressRaw, type: AccountType.accountId32, - network: 1, + chain: 1000, }; const rococoProvider = new WsProvider(WS_ROROCO_LOCAL); @@ -110,14 +110,15 @@ describe("TransactionRouter Cross-chain teleport", () => { }, 120000); }); -const addNetwork = async ( +const addChain = async ( contract: IdentityContract, signer: KeyringPair, - network: NetworkInfo + chainId: number, + chain: ChainInfo ): Promise => { await contract .withSigner(signer) - .tx.addNetwork(network); + .tx.addChain(chainId, chain); }; const getBalance = async (api: ApiPromise, who: string): Promise => { diff --git a/__tests__/transactionRouter.test.ts b/__tests__/transactionRouter.test.ts index d7e1844..7a4d197 100644 --- a/__tests__/transactionRouter.test.ts +++ b/__tests__/transactionRouter.test.ts @@ -6,7 +6,7 @@ import { Fungible, Receiver, Sender } from "@/utils/transactionRouter/types"; import TransactionRouter from "../src/utils/transactionRouter"; import IdentityContractFactory from "../types/constructors/identity"; import IdentityContract from "../types/contracts/identity"; -import { AccountType, NetworkInfo } from "../types/types-arguments/identity"; +import { AccountType, ChainInfo } from "../types/types-arguments/identity"; const wsProvider = new WsProvider("ws://127.0.0.1:9944"); const keyring = new Keyring({ type: "sr25519" }); @@ -34,22 +34,22 @@ describe("TransactionRouter e2e tests", () => { }); it("Can't send tokens to yourself", async () => { - // First lets add a network and create an identity. + // First lets add a chain and create an identity. - await addNetwork(identityContract, alice, { - rpcUrl: "ws://127.0.0.1:9910", + await addChain(identityContract, alice, 1000, { + rpcUrls: ["ws://127.0.0.1:9910"], accountType: AccountType.accountId32, }); const sender: Sender = { keypair: alice, - network: 0 + chain: 1000 }; const receiver: Receiver = { addressRaw: alice.addressRaw, type: AccountType.accountId32, - network: 0, + chain: 1000, }; const asset: Fungible = { @@ -57,7 +57,7 @@ describe("TransactionRouter e2e tests", () => { amount: 1000 }; - const assetReserveChainId = 0; + const assetReserveChainId = 1000; await expect( TransactionRouter.sendTokens( @@ -70,16 +70,16 @@ describe("TransactionRouter e2e tests", () => { ).rejects.toThrow("Cannot send tokens to yourself"); }); - it("Sending native asset on the same network works", async () => { + it("Sending native asset on the same chain works", async () => { const sender: Sender = { keypair: alice, - network: 0 + chain: 0 }; const receiver: Receiver = { addressRaw: bob.addressRaw, type: AccountType.accountId32, - network: 0, + chain: 0, }; const rococoProvider = new WsProvider("ws://127.0.0.1:9900"); @@ -90,9 +90,9 @@ describe("TransactionRouter e2e tests", () => { )) as any; const receiverBalance = parseInt(balance.free.toHuman().replace(/,/g, "")); - // First lets add a network. - await addNetwork(identityContract, alice, { - rpcUrl: "ws://127.0.0.1:9900", + // First lets add a chain. + await addChain(identityContract, alice, 0, { + rpcUrls: ["ws://127.0.0.1:9900"], accountType: AccountType.accountId32, }); @@ -125,16 +125,16 @@ describe("TransactionRouter e2e tests", () => { expect(newReceiverBalance).toBe(receiverBalance + amount); }, 30000); - it("Sending non-native asset on the same network works", async () => { + it("Sending non-native asset on the same chain works", async () => { const sender: Sender = { keypair: alice, - network: 0 + chain: 1836 }; const receiver: Receiver = { addressRaw: bob.addressRaw, type: AccountType.accountId32, - network: 0, + chain: 1836, }; const trappitProvider = new WsProvider("ws://127.0.0.1:9920"); @@ -171,9 +171,9 @@ describe("TransactionRouter e2e tests", () => { const receiverBalanceBefore = receiverAccountBefore ? parseInt(receiverAccountBefore.balance.replace(/,/g, "")) : 0; - // First lets add a network. - await addNetwork(identityContract, alice, { - rpcUrl: "ws://127.0.0.1:9920", + // First lets add a chain. + await addChain(identityContract, alice, 1836, { + rpcUrls: ["ws://127.0.0.1:9920"], accountType: AccountType.accountId32, }); @@ -189,7 +189,7 @@ describe("TransactionRouter e2e tests", () => { }, amount }; - const assetReserveChainId = 0; + const assetReserveChainId = 1836; await TransactionRouter.sendTokens( identityContract, @@ -220,14 +220,15 @@ describe("TransactionRouter e2e tests", () => { }, 180000); }); -const addNetwork = async ( +const addChain = async ( contract: IdentityContract, signer: KeyringPair, - network: NetworkInfo + chainId: number, + chain: ChainInfo ): Promise => { await contract .withSigner(signer) - .tx.addNetwork(network); + .tx.addChain(chainId, chain); }; const createAsset = async ( diff --git a/src/components/Cards/AddressCard/index.tsx b/src/components/Cards/AddressCard/index.tsx index d2dcbda..c01d7c9 100644 --- a/src/components/Cards/AddressCard/index.tsx +++ b/src/components/Cards/AddressCard/index.tsx @@ -64,10 +64,9 @@ export const AddressCard = ({ data, onEdit }: AddressCardProps) => { fetchAddresses(); } catch (e: any) { toastError( - `Failed to remove address. Error: ${ - e.errorMessage === 'Error' - ? 'Please check your balance.' - : e.errorMessage + `Failed to remove address. Error: ${e.errorMessage === 'Error' + ? 'Please check your balance.' + : e.errorMessage }` ); } diff --git a/src/contracts/identity/metadata.json b/src/contracts/identity/metadata.json index deb0ca4..09f8511 100644 --- a/src/contracts/identity/metadata.json +++ b/src/contracts/identity/metadata.json @@ -745,7 +745,7 @@ "label": "info", "type": { "displayName": [ - "NetworkInfo" + "ChainInfo" ], "type": 13 } @@ -1023,7 +1023,7 @@ "name": "account_type" } ], - "name": "NetworkInfo" + "name": "ChainInfo" } }, "root_key": "0x7e863377" @@ -1254,7 +1254,7 @@ "path": [ "common", "types", - "NetworkInfo" + "ChainInfo" ] } }, diff --git a/src/contracts/types.ts b/src/contracts/types.ts index af77a50..3b0e622 100644 --- a/src/contracts/types.ts +++ b/src/contracts/types.ts @@ -8,14 +8,14 @@ export type NetworkConsts = { paraId: number; } -export type NetworkInfo = NetworkConsts & { +export type ChainInfo = NetworkConsts & { rpcUrls: string[]; accountType: AccountType; } export type Network = { id: NetworkId; - name: NetworkInfo; + name: ChainInfo; } export type Address = { @@ -23,7 +23,7 @@ export type Address = { address: string; } -export type Networks = Record; +export type Networks = Record; export type IdentityNo = number | null; diff --git a/src/utils/transactionRouter/index.ts b/src/utils/transactionRouter/index.ts index 5378796..ba4f362 100644 --- a/src/utils/transactionRouter/index.ts +++ b/src/utils/transactionRouter/index.ts @@ -38,13 +38,13 @@ class TransactionRouter { reserveChainId: number, asset: Fungible ): Promise { - if (sender.network === receiver.network && sender.keypair.addressRaw === receiver.addressRaw) { + if (sender.chain === receiver.chain && sender.keypair.addressRaw === receiver.addressRaw) { throw new Error("Cannot send tokens to yourself"); } - // The simplest case, both the sender and the receiver are on the same network: - if (sender.network === receiver.network) { - const api = await this.getApi(identityContract, sender.network); + // The simplest case, both the sender and the receiver are on the same chain: + if (sender.chain === receiver.chain) { + const api = await this.getApi(identityContract, sender.chain); await TransferAsset.send( api, @@ -56,8 +56,8 @@ class TransactionRouter { return; } - const originApi = await this.getApi(identityContract, sender.network); - const destApi = await this.getApi(identityContract, receiver.network); + const originApi = await this.getApi(identityContract, sender.chain); + const destApi = await this.getApi(identityContract, receiver.chain); ensureContainsXcmPallet(destApi); @@ -79,7 +79,7 @@ class TransactionRouter { // The sender chain is the reserve chain of the asset. This will simply use the existing // `limitedReserveTransferAssets` extrinsic - if (sender.network == reserveChainId) { + if (sender.chain == reserveChainId) { await ReserveTransfer.sendFromReserveChain( originApi, destParaId, @@ -87,7 +87,7 @@ class TransactionRouter { receiver, asset ); - } else if (receiver.network == reserveChainId) { + } else if (receiver.chain == reserveChainId) { // The destination chain is the reserve chain of the asset: await ReserveTransfer.sendToReserveChain( originApi, @@ -117,9 +117,9 @@ class TransactionRouter { } // Simple helper function to get the api of a chain with the corresponding id. - private static async getApi(identityContract: IdentityContract, networkId: number): Promise { - const rpcUrl = (await identityContract.query.networkInfoOf(networkId)).value - .ok?.rpcUrl; + private static async getApi(identityContract: IdentityContract, chainId: number): Promise { + const rpcUrl = (await identityContract.query.chainInfoOf(chainId)).value + .ok?.rpcUrls[0]; // FIXME const wsProvider = new WsProvider(rpcUrl); const api = await ApiPromise.create({ provider: wsProvider }); @@ -180,14 +180,14 @@ export const getReceiverAccount = (receiver: Receiver): any => { if (receiver.type == AccountType.accountId32) { return { AccountId32: { - network: "Any", + chain: "Any", id: receiver.addressRaw, }, }; } else if (receiver.type == AccountType.accountKey20) { return { AccountKey20: { - network: "Any", + chain: "Any", id: receiver.addressRaw, }, }; diff --git a/src/utils/transactionRouter/types.ts b/src/utils/transactionRouter/types.ts index 0cb3604..80dd78c 100644 --- a/src/utils/transactionRouter/types.ts +++ b/src/utils/transactionRouter/types.ts @@ -7,13 +7,13 @@ export type NetworkId = number; export type Sender = { keypair: KeyringPair; - network: NetworkId; + chain: NetworkId; } export type Receiver = { addressRaw: AccountIdRaw; type: AccountType; - network: NetworkId; + chain: NetworkId; } export type Fungible = { diff --git a/types/build-extrinsic/identity.ts b/types/build-extrinsic/identity.ts index b4df9e4..c52f2ec 100644 --- a/types/build-extrinsic/identity.ts +++ b/types/build-extrinsic/identity.ts @@ -57,39 +57,39 @@ export default class Methods { } /** - * networkInfoOf + * chainInfoOf * - * @param { (number | string | BN) } networkId, + * @param { (number | string | BN) } chainId, */ - "networkInfoOf" ( - networkId: (number | string | BN), + "chainInfoOf" ( + chainId: (number | string | BN), __options: GasLimit, ){ - return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "networkInfoOf", [networkId], __options); + return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "chainInfoOf", [chainId], __options); } /** * transactionDestination * * @param { (number | string | BN) } receiver, - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, */ "transactionDestination" ( receiver: (number | string | BN), - network: (number | string | BN), + chain: (number | string | BN), __options: GasLimit, ){ - return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "transactionDestination", [receiver, network], __options); + return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "transactionDestination", [receiver, chain], __options); } /** - * availableNetworks + * availableChains * */ - "availableNetworks" ( + "availableChains" ( __options: GasLimit, ){ - return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "availableNetworks", [], __options); + return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "availableChains", [], __options); } /** @@ -105,41 +105,41 @@ export default class Methods { /** * addAddress * - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, * @param { Array<(number | string | BN)> } address, */ "addAddress" ( - network: (number | string | BN), + chain: (number | string | BN), address: Array<(number | string | BN)>, __options: GasLimit, ){ - return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "addAddress", [network, address], __options); + return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "addAddress", [chain, address], __options); } /** * updateAddress * - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, * @param { Array<(number | string | BN)> } address, */ "updateAddress" ( - network: (number | string | BN), + chain: (number | string | BN), address: Array<(number | string | BN)>, __options: GasLimit, ){ - return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "updateAddress", [network, address], __options); + return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "updateAddress", [chain, address], __options); } /** * removeAddress * - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, */ "removeAddress" ( - network: (number | string | BN), + chain: (number | string | BN), __options: GasLimit, ){ - return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "removeAddress", [network], __options); + return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "removeAddress", [chain], __options); } /** @@ -153,43 +153,45 @@ export default class Methods { } /** - * addNetwork + * addChain * - * @param { ArgumentTypes.NetworkInfo } info, + * @param { (number | string | BN) } chainId, + * @param { ArgumentTypes.ChainInfo } info, */ - "addNetwork" ( - info: ArgumentTypes.NetworkInfo, + "addChain" ( + chainId: (number | string | BN), + info: ArgumentTypes.ChainInfo, __options: GasLimit, ){ - return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "addNetwork", [info], __options); + return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "addChain", [chainId, info], __options); } /** - * updateNetwork + * updateChain * - * @param { (number | string | BN) } networkId, + * @param { (number | string | BN) } chainId, * @param { string | null } newRpcUrl, * @param { ArgumentTypes.AccountType | null } newAddressType, */ - "updateNetwork" ( - networkId: (number | string | BN), + "updateChain" ( + chainId: (number | string | BN), newRpcUrl: string | null, newAddressType: ArgumentTypes.AccountType | null, __options: GasLimit, ){ - return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "updateNetwork", [networkId, newRpcUrl, newAddressType], __options); + return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "updateChain", [chainId, newRpcUrl, newAddressType], __options); } /** - * removeNetwork + * removeChain * - * @param { (number | string | BN) } networkId, + * @param { (number | string | BN) } chainId, */ - "removeNetwork" ( - networkId: (number | string | BN), + "removeChain" ( + chainId: (number | string | BN), __options: GasLimit, ){ - return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "removeNetwork", [networkId], __options); + return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "removeChain", [chainId], __options); } /** diff --git a/types/constructors/identity.ts b/types/constructors/identity.ts index 7887d46..4207875 100644 --- a/types/constructors/identity.ts +++ b/types/constructors/identity.ts @@ -49,12 +49,14 @@ export default class Constructors { }; } /** - * initWithNetworks + * initWithChains * - * @param { Array } networks, + * @param { Array } chains, + * @param { Array<(number | string | BN)> } chainIds, */ - async "initWithNetworks" ( - networks: Array, + async "initWithChains" ( + chains: Array, + chainIds: Array<(number | string | BN)>, __options ? : ConstructorOptions, ) { const __contract = JSON.parse(ContractFile); @@ -62,7 +64,7 @@ export default class Constructors { const gasLimit = (await _genValidGasLimitAndValue(this.nativeAPI, __options)).gasLimit as WeightV2; const storageDepositLimit = __options?.storageDepositLimit; - const tx = code.tx["initWithNetworks"]!({ gasLimit, storageDepositLimit, value: __options?.value }, networks); + const tx = code.tx["initWithChains"]!({ gasLimit, storageDepositLimit, value: __options?.value }, chains, chainIds); let response; try { diff --git a/types/contract-info/address_book.ts b/types/contract-info/address_book.ts index b06d3d9..7e29dd6 100644 --- a/types/contract-info/address_book.ts +++ b/types/contract-info/address_book.ts @@ -1,2 +1,2 @@ -export const ContractAbi = `{"source":{"hash":"0xf7970b103d9644b533629c2938375218f75ee515fc2628648cf2b326f72a5232","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"address_book","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[{"label":"identity_contract","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":["Constructor","Instantiate with the address of \`Identity\` contract."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":20}},"events":[{"args":[{"docs":[" The owner of the newly created address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookCreated"},{"args":[{"docs":[" The owner of the removed address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookRemoved"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity added to the address book."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityAdded"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity that received a new nickname."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The new nickname."],"indexed":false,"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"docs":[],"label":"NickNameUpdated"},{"args":[{"docs":[],"indexed":false,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[" Returns the address of the identity contract."],"label":"identity_contract","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x69081926"},{"args":[],"default":false,"docs":[" Creates an address book for the caller."],"label":"create_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x07411baf"},{"args":[],"default":false,"docs":[" Removes the address book of the caller."],"label":"remove_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x1fe0816f"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Adds an identity to the user's address book."],"label":"add_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x83b06419"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Removes an identity from the user's address book."],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x08026740"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Update nickname of an identity."],"label":"update_nickname","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x484daeb1"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the identities stored in the address book of a user."],"label":"identities_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0x29daba02"},{"args":[],"default":false,"docs":[" Returns whether the user has created an address book or not"],"label":"has_address_book","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xc468ded4"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x02a833ee","ty":0}},"name":"identities"}],"name":"AddressBookInfo"}},"root_key":"0x02a833ee"}},"name":"address_book_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"identity_contract"}],"name":"AddressBook"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":4}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":4}],"path":["Option"]}},{"id":4,"type":{"def":{"primitive":"str"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":7}}}},{"id":7,"type":{"def":{"primitive":"u8"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":10}],"path":["Result"]}},{"id":9,"type":{"def":{"tuple":[]}}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"fields":[{"type":5}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":5},{"name":"E","type":10}],"path":["Result"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":13}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":13},{"name":"E","type":10}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":14}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AddressBookAlreadyCreated"},{"index":1,"name":"AddressBookDoesntExist"},{"index":2,"name":"IdentityDoesntExist"},{"index":3,"name":"IdentityNotAdded"},{"index":4,"name":"IdentityAlreadyAdded"},{"index":5,"name":"NickNameTooLong"}]}},"path":["address_book","Error"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":10}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u64"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; -export const ContractFile = `{"source":{"hash":"0xf528b03591d44535323428f598b308aa29db68ac941cd6aa658776a9195bf678","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","wasm":"0x0061736d01000000015a0e60037f7f7f017f60027f7f0060027f7f017f60037f7f7f0060047f7f7f7f0060057f7f7f7f7f0060017f0060047f7f7f7f017f60000060017f017e60087f7f7e7f7f7f7f7f017f6000017f60017f017f60067f7f7f7f7f7f0002ea010c057365616c310b6765745f73746f726167650007057365616c301176616c75655f7472616e736665727265640001057365616c310463616c6c000a057365616c3005696e7075740001057365616c300663616c6c65720001057365616c300d64656275675f6d6573736167650002057365616c300f686173685f626c616b65325f3235360003057365616c300d6465706f7369745f6576656e740004057365616c320b7365745f73746f726167650007057365616c310d636c6561725f73746f726167650002057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100361600001010100050004030503010101030101010201030301010303030501010601010106050b0c03060203080604030108010601030301080208020000030202040103020602090504020205070407050202030000050407040202020204040d04040501700111110608017f01418080040b0711020463616c6c0041066465706c6f7900430916010041010b101d5b5a33424d664f63644e46484965500acaab01602b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001100e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a4104100f450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a4102100f0d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220141808004492103200141027621010b2000200136020420002003360200200241206a24000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110112201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4801027f230041106b220224002002410036020c024020012002410c6a41041011450440200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6601027f230041106b2203240020002f01042104200041003a0004027f20044101710440200120044108763a00002000280200200341086a200120024101418c810410102003280208200328020c10110c010b20002802002001200210110b200341106a24000b4a01017f230041106b22052400200220034904402003200220041031000b200541086a2003200220011012200528020c21012000200528020836020020002001360204200541106a24000b6001047f230041106b22032400200028020422042002492205450440200341086a41002002200028020022061068200120022003280208200328020c419cb204102620032002200420061068200020032903003702000b200341106a240020050b1400200020012002200341ccab044180800410690b5001017f230041206b220324002003410c6a4101360200200341146a410036020020034184ac04360210200341003602002003200136021c200320003602182003200341186a36020820032002101e000b4b01017f230041106b22052400200120034d0440200541086a4100200120021012200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000b0e0020002001200241ec9b04106a0bec0401067f23004190016b22022400200241346a200141186a2900003702002002412c6a200141106a290000370200200241246a200141086a290000370200200241bc81043602182002200129000037021c2002410036024820024280800137027c200241f0b20436027841eee7a015200241f8006a22051017200241186a4104722005101820022002290378370340200241106a200241406b20022802800110192002280214210320022802102002280240210120022002280244220736027820032001200510002103200241086a20022802782001200741d486041014024002400240410c20032003410c4f1b0e0400020201020b200228020c210120022002280208360250200220013602542002200241d0006a100c024020022802000d00200241d8006a2002280254410476220320022802042201200120034b1b101a20010440200241f8006a41047221030340200241f8006a200241d0006a101b20022802780d02200241f0006a200341086a29020037030020022003290200370368200241d8006a200241e8006a101c200141016b22010d000b0b200228025c2204450d0020022802602101200228025821030c010b200241003a005820024184016a41013602002002418c016a4101360200200241e0810436028001200241003602782002410136026c2002200241e8006a360288012002200241d8006a360268200241f8006a41d08204101e000b20002001360208200020043602042000200336020020024190016a24000f0b20024184016a41013602002002418c016a4100360200200241e487043602800120024184ac043602880120024100360278200241f8006a41ec8704101e000b2601017f230041106b220224002002200036020c20012002410c6a41041024200241106a24000b0a0020012000412010240b4501017f2002200128020422034b044041acac04412341a0ae041013000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b800201047f02400240024002402001450440410421020c010b200141ffffff3f4b22020d01200141047422054100480d012005200141808080c000494102746a41016b4100417c20021b7122042005490d0241e8b204280200220220046a22032002490d0341ecb2042802002003490440200441ffff036a22022004490d042002411076220340002202417f46200241ffff0371200247720d042002411074220220034110746a22032002490d0441ecb2042003360200200220046a22032002490d040b41e8b20420033602002002450d030b2000410036020820002002360204200020013602000f0b1035000b41b0ab04411c4194ab041013000b20051036000bbc06010a7f230041206b22042400200441186a2001100e41012102024020042802180d00200428021c210a200441106a2001100d20042d00104101710d000240024020042d00110e020100020b200441086a2001100c20042802080d01200428020c220320012802044b0d0120042003102c2004280200210b200120042802042205200310110d012003450d00200341076b22014100200120034d1b2109200541036a417c7120056b2106410021020340024002400240024002400240024002400240200220056a2d00002207411874411875220841004e0440200620026b4103712006417f46720d0220022009490d010c060b02400240200741a4a4046a2d000041026b0e03040100060b200241016a220120034f0d05200120056a2c000021010240024002400240200741f0016b0e050100000002000b2008410f6a41ff017141024b200141004e720d0820014140490d020c080b200141f0006a41ff01714130490d010c070b2001418f7f4a0d060b200241026a220120034f0d05200120056a2c000041bf7f4a0d05200241036a220120034f0d05200120056a2c000041bf7f4c0d040c050b200241016a220120034f0d04200120056a2c00002101024002400240200741e001470440200741ed01460d012008411f6a41ff0171410c490d022008417e71416e47200141004e720d0820014140490d030c080b200141607141a07f460d020c070b200141a07f480d010c060b200141bf7f4a0d050b200241026a220120034f0d04200120056a2c000041bf7f4c0d030c040b0340200220056a2201280200200141046a28020072418081828478710d052002200241086a22014d044020012102200120094f0d070c010b0b41f09304411c4194a4041013000b200241016a21020c050b200241016a220120034f0d01200120056a2c000041bf7f4a0d010b200141016a21020c030b410121020c060b200221010b200120034f0d0120012003200120034b1b21020340200120056a2c00004100480440200121020c020b200141016a22012002470d000b0c010b20022003490d010b0b200321060b2000200a360204200041106a20063602002000410c6a2005360200200041086a200b360200410021020b20002002360200200441206a24000bb80201057f200028020822032000280200460440230041206b2202240002400240200341016a2204450d0002402000280200220320036a220520034f044041042005200420042005491b2204200441044d1b22044104742105200441808080c0004941027421060240200304402002200028020436021020024104360218200220034104743602140c010b200241003602180b200220052006200241106a10372002280200450d01200241086a280200450d0220022802041036000b41f08304412141d48e041013000b200228020421032000200436020020002003360204200241206a24000c010b1035000b200028020821030b200028020420034104746a22022001290200370200200241086a200141086a290200370200200341016a220145044041a08104411c41d093041013000b200020013602080bb60401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280200220341dfaf0441062001280204220528020c22041100000d0c024020012d0018410471450440200341dc9504410120041100000d0e200341acb20441052004110000450d010c0e0b200341da9504410220041100000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241acb2044105105e0d0d200241d895044102105e0d0d0b200341b194044101200411000021000c0c0b200128020041d2af04410d200128020428020c11000021000c0b0b200128020041c4af04410e200128020428020c11000021000c0a0b200128020041b9af04410b200128020428020c11000021000c090b2001280200419faf04411a200128020428020c11000021000c080b20012802004191af04410e200128020428020c11000021000c070b20012802004181af044110200128020428020c11000021000c060b200128020041f5ae04410c200128020428020c11000021000c050b200128020041eaae04410b200128020428020c11000021000c040b200128020041e3ae044107200128020428020c11000021000c030b200128020041d4ae04410f200128020428020c11000021000c020b200128020041c3ae044111200128020428020c11000021000c010b200128020041b0ae044113200128020428020c11000021000b200241106a240020000be10201017f230041206b22022400200241013a0018200220013602142002200036021020024190950436020c20024184ac04360208230041406a220124002001200241086a36020c2001410736022420012001410c6a360220410021004104210202400240024002400240034020002000200241d0ac046a2802006a22004b0d01200241086a22024114470d000b2001200041104f047f200020006a22024100200020024d1b0541000b103920014100360218200120012903003703102001410136023c20014102360234200141d0ac04360230200141003602282001200141206a360238200141106a200141286a10440d0141f0b2052d000045044041f1b2052d00004101710d050b410c20012802142001280218100522002000410c4f1b4109470d020c030b41808d04411c41f0a8041013000b41d090044133200141286a41c48d0441809204102e000b41f0b20541013a00000b41f1b20541013a00000b000bfc0102047f017e230041e0006b22032400200341346a200041186a2900003702002003412c6a200041106a290000370200200341246a200041086a290000370200200341bc81043602182003200029000037021c20034100360248200342808001370254200341f0b20436025041eee7a015200341d0006a22041017200341186a4104722004101820032003290350370340200341106a200341406b220520032802581019200328021421002003280210200329034021072003410036025820032007370350200120022004102020032003290350370340200341086a20052003280258101920002003280208200328020c10081a200341e0006a24000b430020012002102820010440200020014104746a21010340200028020020021017200041086a2802002000410c6a28020020021034200041106a22002001470d000b0b0bdc0102037f017e230041d0006b22022400200241106a22042000102220022903102105200241003602282002200537032020012802002001280204200241206a2203102320032001280208411c102420022002290320370310200241086a20042002280228101920032002280208200228020c102520022000280200220420002802042000280208220141fc8704101020024100360248200220022903003703402003200241406b10182001200120022802486a22034b044041a08104411c418c88041013000b2000200436020020002003360208200241d0006a24000b5201037f230041106b2202240020012802082203200128020422044b0440200320044190ae041031000b200241086a20032004200128020010672000200229030837020020004100360208200241106a24000b100020012002102820022000200110240b7901047f230041106b2203240002402000280208220520026a220420054f04402004200028020422064b0d01200341086a20052004200028020010672003280208200328020c2001200241f0ad04102620002004360208200341106a24000f0b4190ac04411c41d0ad041013000b2004200641e0ad041015000bcf0101077f230041306b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341286a22074200370300200341206a22084200370300200341186a220942003703002003420037031020012002200341106a1006200420072903003700002005200829030037000020062009290300370000200020032903103700000c010b200341086a20022000412041d0830410142003280208200328020c2001200241e0830410260b200341306a24000b85010020012003460440200020022001100b1a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4106360200200041f09e0436021020004100360208200041063602242000200041206a360218200020003602282000200041046a360220200041086a2004101e000b7701037f230041206b22022400200241086a2000280200220420002802042000280208220341fc8704101020024100360218200220022903083703102001200241106a10282003200320022802186a22014b044041a08104411c418c88041013000b2000200436020020002001360208200241206a24000b7401017f230041106b2202240002402000413f4d044020012000410274102a0c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210240c010b200041ffffffff034d04402000410274410272200110170c010b20014103102a2000200110170b200241106a24000b080020004101102a0ba10101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a41023602002000411c6a41023602002000412c6a4106360200200041e4940436021020004100360208200041063602242000200041206a360218200020003602282000200041046a360220200041086a4180ae04101e000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101145044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b5b01027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20012001417f73411f76104c200228020822030d0120011036000b1035000b2000200336020420002001360200200241106a24000ba70101017f230041306b2201240020014180800136020041f0b2042001100420014180800136022c200141f0b2043602282001200141286a102b20012d00000440200141003a000041e4860441c10020014194840441a88704102e000b20002001290102370001200041096a2001410a6a290100370000200041116a200141126a290100370000200041186a200141196a290000370000200020012d00013a0000200141306a24000b860101017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a41023602002005412c6a41023602002005413c6a4102360200200541c4950436022020054100360218200541033602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101e000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b1b002000418180014f044020004180800141b887041015000b20000b0e0020002001200241cc9b04106a0b5201017f230041206b220124002001410c6a4101360200200141146a410136020020014190a904360208200141003602002001410436021c200120003602182001200141186a360210200141808c04101e000b910101017f230041306b22022400200241146a41013602002002411c6a410136020020024190a9043602102002410036020820024103360224200220002d0000410274220041c0b2046a28020036022c2002200041d4b2046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a105d200241306a24000b1d00200045044020024100102a0f0b20024101102a20002001200210230b4601017f230041206b22002400200041146a41013602002000411c6a4100360200200041f88e0436021020004184ac0436021820004100360208200041086a41808f04101e000b5f01017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141b09004360218200141003602102001410636022c2001200141286a36022020012001410c6a360228200141106a41c09004101e000b890301077f230041106b220524002000027f0240027f02400240200204400240200141004e044020032802080d01200520012002104c2005280200210420052802040c050b200041086a41003602000c050b20032802042209450440200541086a20012002104c20052802082104200528020c0c040b200120026a41016b410020026b7122082001490d01200141e8b204280200220620086a22072006490d031a2003280200210a41ecb2042802002007490440200841ffff036a22032008490d032003411076220740002203417f46200341ffff0371200347720d032003411074220620074110746a22032006490d0341ecb20420033602002001200620086a22072006490d041a0b41e8b204200736020020012006450d031a2006200a2009100b210420010c030b20002001360204200041086a41003602000c030b41b0ab04411c4194ab041013000b20010b21072004044020002004360204200041086a200736020041000c020b20002001360204200041086a20023602000b41010b360200200541106a24000b5901037f230041106b2203240002402001450440200041003602040c010b200341086a20021039200328020821042000200328020c220536020420002004360200200520012002100b1a200020023602080b200341106a24000b3501017f230041106b22022400200241086a2001102c200228020c21012000200228020836020020002001360204200241106a24000b3501017f230041106b22002400200042808001370204200041f0b20436020020004101102a20001029410120002802081030103d000b4c01017f230041106b22022400200242808001370204200241f0b20436020020024100102a2002200141ff0171410647047f20024101102a20010541000b102a200020022802081030103d000ba20102057f017e230041306b2201240020014100360218200142808001370224200141f0b2043602204100200141206a2202101720012001290320370310200141086a200141106a220320012802281019200128020c2104200128020820012903102106200141003602282001200637032020002002101820012001290320370310200120032001280228101920042001280200200128020410081a200141306a24000b0d00200041f0b2042001100a000bf80102037f017e230041d0006b22032400200341106a22052001102220032903102106200341003602282003200637032020022802002002280204200341206a2204102320042002280208411f102420032003290320370310200341086a20052003280228101920042003280208200328020c102520032001280200220520012802042001280208220241fc8704101020034100360248200320032903003703402004200341406b10182002200220032802486a22044b044041a08104411c418c88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000bf60102037f017e230041d0006b22032400200341106a22052001102220032903102106200341003602282003200637032020022802002002280204200341206a2204102320022802082004101820032003290320370310200341086a20052003280228101920042003280208200328020c102520032001280200220520012802042001280208220241fc8704101020034100360248200320032903003703402004200341406b10182002200220032802486a22044b044041a08104411c418c88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101920022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000bab3602107f017e230041a0036b220024000240024002400240102f41ff017141054604402000418080013602f80141f0b204200041f8016a2201100320004190016a20002802f80141f0b2044180800141d48604101420002000290390013703c801200041003602f801200041c8016a2001410410110d0220002802f80122094118762101200941107621022009410876210302400240024002400240024002400240200941ff0171220941076b0e020104000b2009411f460d0120094129460d05200941c800460d04200941e9004704402009418301460d03200941c40147200341ff017141e8004772200241ff017141de0147200141d4014772720d0a410721010c090b200341ff0171410847200241ff0171411947722001412647720d09410021010c080b200341ff017141c10047200241ff0171411b4772200141af0147720d08410121010c070b200341ff017141e00147200241ff01714181014772200141ef0047720d07410221010c060b200341ff017141b00147200241ff017141e40047722001411947720d06200041f8016a200041c8016a101b20002802f8010d0620004188026a280200210520004184026a280200210720004180026a280200210820002802fc012106410321010c050b200341ff0171410247200241ff017141e7004772200141c00047720d0520004188016a200041c8016a100e2000280288010d05200028028c012106410421010c040b200341ff017141cd0047200241ff017141ae0147720d04200141b101460d010c040b200341ff017141da0147200241ff017141ba0147722001410247720d03200041f8016a200041c8016a102b20002d00f8010d0320002000418c026a2902003703e002200020004191026a2900003700e50220004188026a280200210520004184026a280200210720004180026a280200210820002802fc01210620002f01fa01210420002d00f901210b410621010c020b200041f8016a200041c8016a101b20002802f8010d0220004188026a280200210520004184026a280200210720004180026a280200210820002802fc012106410521010c010b200041043a00f801200041f8016a1032000b200041a0016a200041e8026a290300370300200020002903e00237039801200041003602e8022000428080013702fc01200041f0b2043602f8014100200041f8016a22031017200020002903f8013703e00220004180016a200041e0026a2000280280021019200028028401210920002802800120002802e0022102200020002802e402220c3602f80120092002200310002103200041f8006a20002802f8012002200c41d4860410140240024002400240410c20032003410c4f1b0e0401000002000b20004184026a41013602002000418c026a4100360200200041e487043602800220004184ac0436028802200041003602f801200041f8016a41ec8704101e000b200028027c2102200020002802783602c801200020023602cc01200041f8016a200041c8016a102b20002d00f801450d0120004184026a41013602002000418c026a4100360200200041b88c04360280020c030b20004184026a41013602002000418c026a4100360200200041d88c04360280020c020b200041b0016a220220004182026a2203290100370300200041b8016a220a2000418a026a220c290100370300200041bf016a220d20004191026a220e290000370000200020002901fa013703a80120002d00f90121090240024002400240027f02400240024002400240024002400240024002400240024002400240200141016b0e0706050001020304070b200041c8016a102d20004190026a2202200041e0016a29030037030020004188026a200041d8016a29030037030020004180026a200041d0016a290300370300200020002903c8013703f801200041e0026a200041f8016a101620002802e40222010440200020002d00e3023a00eb01200020002f00e1023b00e901200020002802e80222043602f001200020013602ec01200020002d00e0023a00e80120004181026a200041b0016a29030037000020004189026a200041b8016a2903003700002002200041bf016a290000370000200041a0026a4200370300200041a8026a4200370300200020093a00f801200020002903a8013700f901200041003602b802200042003703980220002006ad42208642cbfdefe70e843703b00220004100360288032000428080013702e402200041f0b2043602e002200041f8016a200041e0026a22021018200020002903e00237038003200041e0006a20004180036a220320002802e80210192000280260210b200029038003211020004100360298032000201037039003200042003703e802200042003703e00220004190036a200241101024200020002903900337038003200041d8006a200320002802980310192000280258210a2000290380032110200041003602e802200020103703e0022002200041b0026a41041024200620021017200020002903e00237038003200041d0006a200320002802e80210192000280254210c2000280250210d20002802800321032000200028028403220e3602e0024100200b4200200a200d200c2003200210022102200041c8006a20002802e0022003200e41d486041014410c20022002410c4f1b2202410d710d08200028024c2102200020002802483602e002200020023602e402200041406b200041e0026a100d02400240024020002d00404101710d000240024020002d00410e020001020b200041306a200041e0026a100d20002d00304101710d014102210320002d0031220241024f0d0120020d030c140b200041386a200041e0026a100d20002d00384101710d0020002d00394101460d010b410021010c110b2000410136028003200041ec026a4101360200200041f4026a4101360200200041d484043602e802200041003602e0022000410536029403200020004190036a3602f002200020004180036a36029003200041e0026a41d88504101e000b20044104742103024003402003450d01200341106b21032001280200200141106a21012006470d000b410421030c110b200041f8016a200720051038024020002802fc01450d002000280280024111490d00410521030c110b20004184026a200536020020004180026a22012007360200200020083602fc01200020063602f801200041e8016a200041f8016a2202101c20004190026a2203200041e0016a220429030037030020004188026a2205200041d8016a22072903003703002001200041d0016a2208290300370300200020002903c8013703f801200220002802ec0120002802f001101f200320042903003703002005200729030037030020012008290300370300200020002903c8013703f80120002006360298022000428080013702e402200041f0b2043602e002200041e0026a220241021027200041d8026a2206200041e8026a2204280200360200200020002903e0023703d00220004180036a2205200041d0026a1022200029038003211041002101200041003602e802200020103703e0024184ac04410020021023200241928a04411a1024200020002903e00237038003200041286a200520002802e802101920022000280228200028022c1025200041206a20002802d002220520002802d4022006280200220641fc8704101020004100360298032000200029032037039003200220004190036a1018200620062000280298036a22024b0d09200041c8026a2002360200200020053602d002200020002903d0023703c0022000412136029403200041ac8a04360290032000200041f8016a22023602980320004180036a2205200041c0026a20004190036a2207103f200041e0026a22062005104020004198036a2004280200360200200020002903e002221037039003200041f0026a280200210420002802ec02200041003602e802200020103703e00220022006101820002802980220061017200020002903e00237039003200041186a200720002802e802101920042000280218200028021c100720004181026a200041b0016a29030037000020004189026a200041b8016a2903003700002003200041bf016a290000370000200020093a00f801200020002903a8013700f9012002103c410621030c120b410121030c100b200041e0026a102d20004190026a200041f8026a29030037030020004188026a200041f0026a29030037030020004180026a200041e8026a290300370300200020002903e0023703f801200041c8016a200041f8016a1016027f20002802cc0122024504404101210341010c010b200041c8016a20002802d0012205101a20002802c801220420002802d0012201490d092005410474210820002802cc01210702402005452001200446720d00200220086a210b200720014104746a2103200041f8016a410472210a200120046b41016a2104200221010340200020012802003602f801200a200141086a2802002001410c6a2802001038200341086a20004180026a290300370200200320002903f8013702002004450d01200441016a2104200341106a2103200141106a2201200b470d000b0b024020050440200720086a210441002101410021030340200120076a22082802002006460d02200141106a2101200341016a2103200841106a2004470d000b0b4103210341010c010b200320054f0d0a200541047420016b41106b21030240200120026a2201200141106a22044d044003402003450d02200120042d00003a0000200441016a2104200141016a2101200341016b21030c000b000b200441016b2104200141016b210103402003450d01200120036a200320046a2d00003a0000200341016b21030c000b000b20004190026a2203200041f8026a220129030037030020004188026a2207200041f0026a220829030037030020004180026a220b200041e8026a220a290300370300200020002903e0023703f801200041f8016a22042002200541016b101f2003200129030037030020072008290300370300200b200a290300370300200020002903e0023703f80120002006360298022000428080013702cc01200041f0b2043602c801200041c8016a22014101102720004198036a2202200041d0016a2205280200360200200020002903c8013703900320004190036a220741b88b04102120004188036a2002280200360200200020002903900337038003200120004180036a104020022005280200360200200020002903c801221037039003200041d8016a280200210220002802d401200041003602d001200020103703c801200420011018200620011017200020002903c80137039003200041e8006a200720002802d001101920022000280268200028026c100720004181026a200041b0016a29030037000020004189026a200041b8016a2903003700002003200041bf016a290000370000200020093a00f801200020002903a8013700f9012004103c4106210341000b2003103b000b200041e0026a102d20004190026a200041f8026a29030037030020004188026a200041f0026a29030037030020004180026a200041e8026a290300370300200020002903e0023703f801200041c8016a200041f8016a101620002802cc01220a450440410121040c0b0b20002802d001210b200041c8016a200720051038200041f8016a20002802cc0120002802d0011038024020002802fc01450d002000280280024111490d00410521040c0b0b41032104200b450d0a200b410474210c4100210141002103034020062001200a6a2202280200470440200341016a2103200141106a2201200c470d010c0c0b0b200241086a2802001a20022006360200200241046a20002903c8013702002002410c6a200041d0016a220228020036020020004190026a2204200041f8026a220129030037030020004188026a220c200041f0026a220d29030037030020004180026a220e200041e8026a220f290300370300200020002903e0023703f801200041f8016a2203200a200b101f20042001290300370300200c200d290300370300200e200f290300370300200020002903e0023703f801200020053602a402200020073602a0022000200836029c0220002006360298022000428080013702cc01200041f0b2043602c801200041c8016a22014102102720004198036a22062002280200360200200020002903c8013703900320004190036a220541ec8a0410212002200628020036020020002000290390033703c8012000412336029403200041f88a0436029003200020033602980320004180036a220720012005103f20012007104020062002280200360200200020002903c801221037039003200041d8016a280200210220002802d401200041003602d001200020103703c8012003200110182000280298022001101720002802a00220002802a40220011034200020002903c80137039003200041f0006a200520002802d0011019200220002802702000280274100720002802a0021a20004181026a200041b0016a29030037000020004189026a200041b8016a2903003700002004200041bf016a290000370000200020093a00f801200020002903a8013700f9012003103c4106210441000c0b0b20004190026a200029009d0137000020002005360087022000200736008302200020083600ff01200020063600fb01200020043b00f9012000200b3a00f801200020002903980137008b02230041306b22012400200141286a200041f8016a220241186a290000370300200141206a200241106a290000370300200141186a200241086a290000370300200120022900003703102001200141106a101620012802002106200041e0026a220320012802084100200128020422021b36020820032002410420021b36020420032006410020021b360200200141306a240020002802e402210220002802e8022100230041106b22012400200142808001370204200141f0b20436020002402002044020014100102a20022000200110200c010b20014101102a200110290b0c110b230041d0006b220124002001102d200141c8006a200141186a290300370300200141406b200141106a290300370300200141386a200141086a29030037030020012001290300370330200141206a200141306a101620012802242100200141d0006a2400230041106b22012400200142808001370204200141f0b204360200230041106b2202240020014100102a200220004100473a000f20012002410f6a41011024200241106a24000c100b200041e0026a102d20004190026a2206200041f8026a220429030037030020004188026a200041f0026a29030037030020004180026a200041e8026a290300370300200020002903e0023703f801200041c8016a200041f8016a1016027f20002802cc012205044020004194026a20042903003702002000418c026a200041f0026a220729030037020020004184026a200041e8026a2208290300370200200020002903e0023702fc01200041bc81043602f80120004100360298032000428080013702cc01200041f0b2043602c80141eee7a015200041c8016a22011017200041f8016a220241047220011018200020002903c80137039003200041106a20004190036a220320002802d00110192000280210200028021410091a2006200429030037030020004188026a200729030037030020004180026a2008290300370300200020002903e0023703f8012000428080013702cc01200041f0b2043602c80120014102102720004198036a2204200041d0016a2207280200360200200020002903c801370390032001200341e08904103e2000412636029403200041ec890436029003200020023602980320004180036a220820012003103f20012008104020042007280200360200200020002903c801221037039003200041d8016a280200210420002802d401200041003602d001200020103703c801200220011018200020002903c80137039003200041086a200320002802d001101920042000280208200028020c100720004181026a200041b0016a29030037000020004189026a200041b8016a2903003700002006200041bf016a290000370000200020093a00f801200020002903a8013700f9012002103c41060c010b41010b21012005452001103b000b200041e0026a102d20004190026a2202200041f8026a220129030037030020004188026a200041f0026a29030037030020004180026a200041e8026a290300370300200020002903e0023703f801200041c8016a200041f8016a101620002802cc0122040440410021010c060b2002200129030037030020004188026a2206200041f0026a220529030037030020004180026a2207200041e8026a2208290300370300200020002903e0023703f801200041f8016a220341044100101f200220012903003703002006200529030037030020072008290300370300200020002903e0023703f8012000428080013702cc01200041f0b2043602c801200041c8016a22014102102720004198036a2205200041d0016a2207280200360200200020002903c80137039003200120004190036a2206418c8904103e200041263602940320004198890436029003200020033602980320004180036a220820012006103f20012008104020052007280200360200200020002903c801221037039003200041d8016a280200210520002802d401200041003602d001200020103703c801200320011018200020002903c801370390032000200620002802d0011019200520002802002000280204100720004181026a200041b0016a29030037000020004189026a200041b8016a2903003700002002200041bf016a290000370000200020093a00f801200020002903a8013700f9012003103c410621010c050b20032002290300370100200c200a290300370100200e200d290000370000200020093a00f901200020002903a8013701fa01200041003a00f801230041106b22012400200142808001370204200141f0b2043602000240200041f8016a22022d000045044020014100102a200241016a200110180c010b20014101102a200110290b0c0d0b200241b0b2046a2d000021010c060b41a08104411c418c88041013000b41808004412141a484041013000b230041306b220124002001200536020420012003360200200141146a41033602002001411c6a41023602002001412c6a4106360200200141b8930436021020014100360208200141063602242001200141206a3602182001200141046a36022820012001360220200141086a41dc8804101e000b20044100472001103b000b41010b2004103b000b200020013a008003200041ec026a4101360200200041f4026a4101360200200041d484043602e802200041003602e0022000410136029403200020004190036a3602f002200020004180036a36029003200041e0026a41c88504101e000b4101210120020d010b410121010b20012003103b000b103a000b20004184ac0436028802200041003602f801200041f8016a41808c04101e000b410020012802081030103d000b1800200128020041e5af044111200128020428020c1100000bdf0202047f027e230041e0006b220024000240102f41ff01712201410546044020004180800136023841f0b204200041386a22011003200041086a200028023841f0b2044180800141d48604101420002000290308370330200041003602380240200041306a2001410410110d002000280238419bddf6f405470d00200041386a200041306a102b20002d0038450d020b103a000b200020013a0038200041386a1032000b200041276a2201200041d1006a290000370000200041206a2202200041ca006a290100370300200041186a200041c2006a29010022043703002000200029013a220537031020002d00392103200041c1006a2004370000200041c9006a2002290300370000200041d0006a2001290000370000200020033a003820002005370039200041386a103c230041106b22002400200042808001370204200041f0b20436020020004100102a20004100102a410020002802081030103d000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41e08c04200241086a1045200241206a24000bee0301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1100000d040b200141086a2101200428020020042802042106200441086a2104200341186a2006110200450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1100000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a105c20032003290310370320200341086a2005200141046a105c20032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110200450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1100000d010b41000c010b41010b200341406b24000b0f00200028020020012002104741000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a200020032002104a2004280208200428020c104b200028020821030b200028020420036a20012002100b1a2003200220036a22014b044041808d04411c41e093041013000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10470c020b230041106b22042400200441086a200020034101104a2004280208200428020c104b200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41808d04411c41d093041013000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1044200241206a24000bdd0101027f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22052002490d0141082005200320032005491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200420032005200441106a103720042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41a08d04412141d48e041013000b1f00024020014181808080784704402001450d0120001036000b0f0b1035000bd00101037f02402001450440200221030c010b02402001200120026a41016b410020026b7122054d044041e8b204280200220220056a22042002490d0241ecb2042802002004490440200541ffff036a22022005490d022002411076220340002202417f46200241ffff0371200247720d022002411074220220034110746a22042002490d024100210341ecb2042004360200200220056a22042002490d030b41e8b2042004360200200221030c020b41b0ab04411c4194ab041013000b410021030b20002001360204200020033602000bd806020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e220641017441db96046a2f00003b0000200241026b2004200641e4006c6b41ffff037141017441db96046a2f00003b0000200041046b2100200e42ffc1d72f56200d210e0d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff037141017441db96046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a200241017441db96046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b210241002104200541047104404184ac04210420024184ac044184ac04105320026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a28020022012007200410560d01200220082006200128020c11000021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a2007200410560d02200341106a2001200920026b4101105720032802142202418080c400460d022003280210200520082006200a28020c1100000d0220022005200a10580d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a28020022012007200410560d01200220082006200128020c11000021000c010b41012100200341086a2001200920026b41011057200328020c2205418080c400460d00200328020820012802002202200141046a28020022012007200410560d00200220082006200128020c1100000d00200520022001105821000b200341406b240020000f0b41f09304411c41a499041013000b4190940441214180a9041013000b0300010b0e0020002802001a03400c000b000b0d0042f2e7eb9187bab2c1d1000b4a01017f230041106b22052400200220034904402003200220041031000b200541086a2003200220011052200528020c21012000200528020836020020002001360204200541106a24000b1400200020012002200341f8b0044190940410690ba704010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d002001200010542206200020016a22082004417c716a200441037110546a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41809d041055200328020c21052003280208210820032003280200200328020422002000417c7141909e041055200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41f09304411c4198a0041013000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441f09304411c41c8a0041013000b41f09304411c41a8a0041013000b41f09304411c41b8a0041013000b41f09304411c4188a0041013000b20012002105421020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41f09304411c41f0a8041013000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41acac04412320041013000b39000240027f2002418080c40047044041012000200220012802101102000d011a0b20030d0141000b0f0b200020034100200128020c1100000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41f09304411c41b499041013000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110200450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110200450d000b200441016b0b2000490b4b01017f230041106b22052400200120034d0440200541086a4100200120021052200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000bea04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11000021000c020b41f09304411c41d8a1041013000b200b450440200128020020032004200128020428020c11000021000c010b2001410c6a2802002200200320046a2003105322024b0440200941086a2001200020026b4100105741012100200928020c2202418080c400460d0120092802082001280200220520032004200141046a280200220128020c1100000d01200220052001105821000c010b200128020020032004200128020428020c11000021000b200941106a240020000b140020002802002001200028020428020c1102000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044108470d0120012802000b2802002104410121030b20002004360204200020033602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1045200341206a24000bda08010b7f23004190016b22032400200341003b0184012003410a3602800120034281808080a00137037820032002360274200341003602702003200236026c200320013602682003200236026420034100360260200028020421062000280200210720002802082108200341fc006a2109027f0340024002400240024020032d008501450440200341d8006a2003280268220c200328026c20032802702003280274105f0240024020032802582201450d00200328025c2100034002400240024002400240027f0240024002400240200328027822020440200220096a41016b2d00002104200041084f04402001200141036a417c712202460440200041086b210a410021020c040b200341d0006a200220016b22022000200020024b1b22022001200041c89a041059200341c8006a200420032802502003280254106020032802484101470d02200328024c21010c050b200341306a20042001200010602003280234210120032802300c050b41909404412141a8a7041013000b2002200041086b220a4b0d010b200441818284086c210b0340200241046a22052002490d04200120026a280200200b73220d417f73200d41818284086b71200120056a280200200b732205417f73200541818284086b7172418081828478710d012002200241086a22024b0d072002200a4d0d000b0b200341406b20012000200241f89a041051200341386a2004200328024020032802441060410020032802384101470d011a2002200328023c6a220120024f0d0041f09304411c41889b041013000b41010b4101460440200141016a2200450d022000200328027022006a22022000490d0320032002360270200220032802782200490d05200341286a2003280268200328026c200220006b2002105f20032802282202450d05200328022c2100200341206a20032802782009410441d8a704105920022000200328022020032802241061450d05200341186a200328026020032802702200200c106220032000360260200328021c2102200328021821000c080b200320032802743602700c060b41f09304411c41d89a041013000b41f09304411c41b8a7041013000b41f09304411c41c8a7041013000b41f09304411c41e89a041013000b200341106a2003280268200328026c20032802702003280274105f20032802142100200328021022010d000b0b4100210020032d0085010d00200341013a008501024020032d008401044020032802642101200328026021040c010b2003280264220120032802602204490d0420012004460d010b200341086a2004200120032802681062200328020c2102200328020821000b20000d010b41000c050b20082d0000450d01200741d495044104200628020c110000450d010c020b41909404412141e8a1041013000b2003410a36028c0120082002047f200320002002200241016b41a09e0410512003418c016a41012003280200200328020410610541000b3a0000200720002002200628020c110000450d010b0b41010b20034190016a24000b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011052200528020c2107200528020821060b2000200736020420002006360200200541106a24000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b4d01017f2001200346047f027f034041002001450d011a200141016b210120022d0000210320002d00002104200041016a2100200241016a210220032004460d000b200420036b0b0541010b450b1400200020012002200341fca2044190940410690b5801027f230041206b22022400200128020421032001280200200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1045200241206a24000b0b0020002802002001105a0b1800200128020041acb2044105200128020428020c1100000b990301037f230041406a22022400200028020021034101210002402001280200220441a09504410c200141046a280200220128020c1100000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241b0950436023020024100360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a105d450d010c020b20032802002200200328020428020c11090042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241b09504360230200241003602282002410a3602142002200241106a36023820022002410c6a36021020042001200241286a105d0d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4106360200200241346a4106360200200241f894043602182002410036021020022000410c6a3602382002200041086a3602302002410336022c200220003602282002200241286a36022020042001200241106a105d21000b200241406b240020000b1400200020012002200341ccab0441e0ab0410690b1400200020012002200341f8b0044190b10410690b2800200120024d04402000200220016b3602042000200120036a3602000f0b2005412120041013000b7301017f230041306b220424002004200136020420042000360200200441146a41023602002004411c6a41023602002004412c6a41063602002004200336021020044100360208200441063602242004200441206a3602182004200441046a36022820042004360220200441086a2002101e000b0b9d320700418080040bf50c617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6d706163742e727300210001006a000000420000002600000000000000617474656d707420746f206164642077697468206f766572666c6f77ee33a8024661696c656420746f206765742076616c756520696e204d617070696e673a20c0000100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d342e322e312f7372632f6c617a792f6d617070696e672e7273e8000100680000009c000000250000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e322e312f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273000000600101006d0000009d00000011000000600101006d0000009d00000030000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b000000010000000100000001000000100901007f000000c30800001100000043726f73732d636f6e74726163742063616c6c206661696c656420776974682034020100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e322e312f7372632f63616c6c2f63616c6c5f6275696c6465722e72730000005c0201006900000078000000110000005c020100690000007b000000110000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e322e312f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300e80201006b000000e40000001400000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000600101006d0000006b0100000e000000600101006d0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72c80301001c000000600101006d000000ed00000017000000601601006e000000c100000037000000601601006e000000c4000000090000002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f616464726573735f626f6f6b2f74797065732e727300001c0401003e000000330000001900000041646472657373426f6f6b3a3a41646472657373426f6f6b437265617465640004160100000000006c04010041646472657373426f6f6b3a3a41646472657373426f6f6b437265617465643a3a6f776e657241646472657373426f6f6b3a3a41646472657373426f6f6b52656d6f7665640000000416010000000000be04010041646472657373426f6f6b3a3a41646472657373426f6f6b52656d6f7665643a3a6f776e657241646472657373426f6f6b3a3a4964656e74697479416464656441646472657373426f6f6b3a3a4964656e7469747941646465643a3a6f776e657241646472657373426f6f6b3a3a4e69636b4e616d655570646174656400000004160100000000004d05010041646472657373426f6f6b3a3a4e69636b4e616d65557064617465643a3a6f776e657241646472657373426f6f6b3a3a4964656e7469747952656d6f7665640004160100000000009b0501002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f616464726573735f626f6f6b2f6c69622e7273c40501003c0000002e00000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900100601002700000073746f7261676520656e7472792077617320656d7074790040060100170000000b00000004000000040000000c0000000d0000000e0041808d040ba418617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b00000000000000010000000f0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300d40601007f0000008a0100001c0000006361706163697479206f766572666c6f770000006407010011000000d40601007f00000006020000050000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564000d08010015000000220801000d000000900701007d00000095010000090000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000830801007b00000064020000200000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273292073686f756c64206265203c206c656e202869732072656d6f76616c20696e646578202869732000a5090100120000008f09010016000000310a010001000000100901007f000000300700000d000000100901007f0000009e07000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320320a010020000000520a0100120000003a0000000416010000000000740a010001000000740a0100010000000b00000000000000010000001000000070616e69636b65642061742027272c20ac0a010001000000ad0a0100030000003a2000000416010000000000c00a010002000000202020202c0a280a282f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000230c01007e0000005d0500000d000000230c01007e000000ed050000380000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e727300c40c0100830000004e0000002f000000c40c0100830000005a0000001f000000c40c0100830000006300000009000000c40c0100830000006800000027000000c40c010083000000680000003e00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820980d010012000000aa0d01002200000072616e676520656e6420696e64657820dc0d010010000000aa0d0100220000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273000000fc0d010081000000c4050000250000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e7273900e010080000000fe0300002f000000900e010080000000de0800001e000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028300f010015000000450f01002b000000310a0100010000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273880f0100800000004700000015000000880f0100800000005400000011000000880f0100800000005a00000009000000880f0100800000006400000011000000880f010080000000660000000d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e727300581001007f0000009100000011000000581001007f0000004f0200002d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273000000f810010081000000ca000000130000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727300008c11010086000000e50000001500000001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041e6a5040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041a4a6040bfd042f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e727300002413010082000000a1010000470000002413010082000000b4010000200000002413010082000000b4010000110000002413010082000000b8010000260000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273e8130100880000009500000001000000dd0a01007e000000cd0100000500000004160100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e72730010150100830000002f010000180041b0ab040b51617474656d707420746f206164642077697468206f766572666c6f77f617010082000000900100004f00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f77004190ac040bf504617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290a04160100000000004f160100010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e322e312f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e72730000601601006e0000005a0000001c000000601601006e0000005a00000009000000601601006e0000005a00000031000000601601006e0000006500000009000000601601006e000000830000001a000000601601006e0000008d0000002100000045636473615265636f766572794661696c656443616c6c52756e74696d654661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f6465436f756c644e6f7452656164496e7075742f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e7273f6170100820000008201000047004190b1040bd701617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6465632e7273000000b118010068000000770000000e0000004572726f7201020304050607080a0b0c09000000190000001c000000160000001400000019000000f7140100db140100c5140100b1140100981401","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"address_book","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[{"label":"identity_contract","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":["Constructor","Instantiate with the address of \`Identity\` contract."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":20}},"events":[{"args":[{"docs":[" The owner of the newly created address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookCreated"},{"args":[{"docs":[" The owner of the removed address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookRemoved"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity added to the address book."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityAdded"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity that received a new nickname."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The new nickname."],"indexed":false,"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"docs":[],"label":"NickNameUpdated"},{"args":[{"docs":[],"indexed":false,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[" Returns the address of the identity contract."],"label":"identity_contract","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x69081926"},{"args":[],"default":false,"docs":[" Creates an address book for the caller."],"label":"create_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x07411baf"},{"args":[],"default":false,"docs":[" Removes the address book of the caller."],"label":"remove_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x1fe0816f"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Adds an identity to the user's address book."],"label":"add_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x83b06419"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Removes an identity from the user's address book."],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x08026740"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Update nickname of an identity."],"label":"update_nickname","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x484daeb1"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the identities stored in the address book of a user."],"label":"identities_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0x29daba02"},{"args":[],"default":false,"docs":[" Returns whether the user has created an address book or not"],"label":"has_address_book","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xc468ded4"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x02a833ee","ty":0}},"name":"identities"}],"name":"AddressBookInfo"}},"root_key":"0x02a833ee"}},"name":"address_book_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"identity_contract"}],"name":"AddressBook"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":4}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":4}],"path":["Option"]}},{"id":4,"type":{"def":{"primitive":"str"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":7}}}},{"id":7,"type":{"def":{"primitive":"u8"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":10}],"path":["Result"]}},{"id":9,"type":{"def":{"tuple":[]}}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"fields":[{"type":5}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":5},{"name":"E","type":10}],"path":["Result"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":13}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":13},{"name":"E","type":10}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":14}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AddressBookAlreadyCreated"},{"index":1,"name":"AddressBookDoesntExist"},{"index":2,"name":"IdentityDoesntExist"},{"index":3,"name":"IdentityNotAdded"},{"index":4,"name":"IdentityAlreadyAdded"},{"index":5,"name":"NickNameTooLong"}]}},"path":["address_book","Error"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":10}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u64"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file +export const ContractAbi = `{"source":{"hash":"0x4b89e660114f8ff737a566aceadf6e154e8eaa63fed72acf47bd2dafa4739605","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"address_book","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[{"label":"identity_contract","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":["Constructor","Instantiate with the address of \`Identity\` contract."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":20}},"events":[{"args":[{"docs":[" The owner of the newly created address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookCreated"},{"args":[{"docs":[" The owner of the removed address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookRemoved"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity added to the address book."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityAdded"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity that received a new nickname."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The new nickname."],"indexed":false,"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"docs":[],"label":"NicknameUpdated"},{"args":[{"docs":[],"indexed":false,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[" Returns the address of the identity contract."],"label":"identity_contract","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x69081926"},{"args":[],"default":false,"docs":[" Creates an address book for the caller."],"label":"create_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x07411baf"},{"args":[],"default":false,"docs":[" Removes the address book of the caller."],"label":"remove_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x1fe0816f"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Adds an identity to the user's address book."],"label":"add_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x83b06419"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Removes an identity from the user's address book."],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x08026740"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Update nickname of an identity."],"label":"update_nickname","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x484daeb1"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the identities stored in the address book of a user."],"label":"identities_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0x29daba02"},{"args":[],"default":false,"docs":[" Returns whether the user has created an address book or not"],"label":"has_address_book","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xc468ded4"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x02a833ee","ty":0}},"name":"identities"}],"name":"AddressBookInfo"}},"root_key":"0x02a833ee"}},"name":"address_book_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"identity_contract"}],"name":"AddressBook"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":4}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":4}],"path":["Option"]}},{"id":4,"type":{"def":{"primitive":"str"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":7}}}},{"id":7,"type":{"def":{"primitive":"u8"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":10}],"path":["Result"]}},{"id":9,"type":{"def":{"tuple":[]}}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"fields":[{"type":5}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":5},{"name":"E","type":10}],"path":["Result"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":13}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":13},{"name":"E","type":10}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":14}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AddressBookAlreadyCreated"},{"index":1,"name":"AddressBookDoesntExist"},{"index":2,"name":"IdentityDoesntExist"},{"index":3,"name":"IdentityNotAdded"},{"index":4,"name":"IdentityAlreadyAdded"},{"index":5,"name":"NickNameTooLong"}]}},"path":["address_book","Error"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":10}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u64"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; +export const ContractFile = `{"source":{"hash":"0x4b89e660114f8ff737a566aceadf6e154e8eaa63fed72acf47bd2dafa4739605","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","wasm":"0x0061736d01000000015a0e60037f7f7f017f60027f7f0060027f7f017f60037f7f7f0060047f7f7f7f0060057f7f7f7f7f0060017f0060047f7f7f7f017f60000060017f017e60087f7f7e7f7f7f7f7f017f6000017f60017f017f60067f7f7f7f7f7f0002ea010c057365616c310b6765745f73746f726167650007057365616c301176616c75655f7472616e736665727265640001057365616c310463616c6c000a057365616c3005696e7075740001057365616c300663616c6c65720001057365616c300d64656275675f6d6573736167650002057365616c300f686173685f626c616b65325f3235360003057365616c300d6465706f7369745f6576656e740004057365616c320b7365745f73746f726167650007057365616c310d636c6561725f73746f726167650002057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100362610001010100050004030503010101030101010201030301010303030501010601010106050b0c0306020308060403010603030108010601080208020000030202040103020602090504020205070407050202030000050407040202020204040d04040501700111110608017f01418080040b0711020463616c6c0042066465706c6f7900440916010041010b101d5c5b33434e675064654f47494a66510af1aa01612b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001100e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a4104100f450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a4102100f0d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220141808004492103200141027621010b2000200136020420002003360200200241206a24000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110112201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4801027f230041106b220224002002410036020c024020012002410c6a41041011450440200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6601027f230041106b2203240020002f01042104200041003a0004027f20044101710440200120044108763a00002000280200200341086a200120024101418c810410102003280208200328020c10110c010b20002802002001200210110b200341106a24000b4a01017f230041106b22052400200220034904402003200220041031000b200541086a2003200220011012200528020c21012000200528020836020020002001360204200541106a24000b6001047f230041106b22032400200028020422042002492205450440200341086a41002002200028020022061069200120022003280208200328020c419cb204102620032002200420061069200020032903003702000b200341106a240020050b1400200020012002200341ccab0441808004106a0b5001017f230041206b220324002003410c6a4101360200200341146a410036020020034184ac04360210200341003602002003200136021c200320003602182003200341186a36020820032002101e000b4b01017f230041106b22052400200120034d0440200541086a4100200120021012200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000b0e0020002001200241ec9b04106b0bec0401067f23004190016b22022400200241346a200141186a2900003702002002412c6a200141106a290000370200200241246a200141086a290000370200200241bc81043602182002200129000037021c2002410036024820024280800137027c200241f0b20436027841eee7a015200241f8006a22051017200241186a4104722005101820022002290378370340200241106a200241406b20022802800110192002280214210320022802102002280240210120022002280244220736027820032001200510002103200241086a20022802782001200741d486041014024002400240410c20032003410c4f1b0e0400020201020b200228020c210120022002280208360250200220013602542002200241d0006a100c024020022802000d00200241d8006a2002280254410476220320022802042201200120034b1b101a20010440200241f8006a41047221030340200241f8006a200241d0006a101b20022802780d02200241f0006a200341086a29020037030020022003290200370368200241d8006a200241e8006a101c200141016b22010d000b0b200228025c2204450d0020022802602101200228025821030c010b200241003a005820024184016a41013602002002418c016a4101360200200241e0810436028001200241003602782002410136026c2002200241e8006a360288012002200241d8006a360268200241f8006a41d08204101e000b20002001360208200020043602042000200336020020024190016a24000f0b20024184016a41013602002002418c016a4100360200200241e487043602800120024184ac043602880120024100360278200241f8006a41ec8704101e000b2601017f230041106b220224002002200036020c20012002410c6a41041024200241106a24000b0a0020012000412010240b4501017f2002200128020422034b044041acac04412341a0ae041013000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b800201047f02400240024002402001450440410421020c010b200141ffffff3f4b22020d01200141047422054100480d012005200141808080c000494102746a41016b4100417c20021b7122042005490d0241e8b204280200220220046a22032002490d0341ecb2042802002003490440200441ffff036a22022004490d042002411076220340002202417f46200241ffff0371200247720d042002411074220220034110746a22032002490d0441ecb2042003360200200220046a22032002490d040b41e8b20420033602002002450d030b2000410036020820002002360204200020013602000f0b1035000b41b0ab04411c4194ab041013000b20051036000bbc06010a7f230041206b22042400200441186a2001100e41012102024020042802180d00200428021c210a200441106a2001100d20042d00104101710d000240024020042d00110e020100020b200441086a2001100c20042802080d01200428020c220320012802044b0d0120042003102c2004280200210b200120042802042205200310110d012003450d00200341076b22014100200120034d1b2109200541036a417c7120056b2106410021020340024002400240024002400240024002400240200220056a2d00002207411874411875220841004e0440200620026b4103712006417f46720d0220022009490d010c060b02400240200741a4a4046a2d000041026b0e03040100060b200241016a220120034f0d05200120056a2c000021010240024002400240200741f0016b0e050100000002000b2008410f6a41ff017141024b200141004e720d0820014140490d020c080b200141f0006a41ff01714130490d010c070b2001418f7f4a0d060b200241026a220120034f0d05200120056a2c000041bf7f4a0d05200241036a220120034f0d05200120056a2c000041bf7f4c0d040c050b200241016a220120034f0d04200120056a2c00002101024002400240200741e001470440200741ed01460d012008411f6a41ff0171410c490d022008417e71416e47200141004e720d0820014140490d030c080b200141607141a07f460d020c070b200141a07f480d010c060b200141bf7f4a0d050b200241026a220120034f0d04200120056a2c000041bf7f4c0d030c040b0340200220056a2201280200200141046a28020072418081828478710d052002200241086a22014d044020012102200120094f0d070c010b0b41f09304411c4194a4041013000b200241016a21020c050b200241016a220120034f0d01200120056a2c000041bf7f4a0d010b200141016a21020c030b410121020c060b200221010b200120034f0d0120012003200120034b1b21020340200120056a2c00004100480440200121020c020b200141016a22012002470d000b0c010b20022003490d010b0b200321060b2000200a360204200041106a20063602002000410c6a2005360200200041086a200b360200410021020b20002002360200200441206a24000bb80201057f200028020822032000280200460440230041206b2202240002400240200341016a2204450d0002402000280200220320036a220520034f044041042005200420042005491b2204200441044d1b22044104742105200441808080c0004941027421060240200304402002200028020436021020024104360218200220034104743602140c010b200241003602180b200220052006200241106a10372002280200450d01200241086a280200450d0220022802041036000b41f08304412141d48e041013000b200228020421032000200436020020002003360204200241206a24000c010b1035000b200028020821030b200028020420034104746a22022001290200370200200241086a200141086a290200370200200341016a220145044041a08104411c41d093041013000b200020013602080bb60401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280200220341dfaf0441062001280204220528020c22041100000d0c024020012d0018410471450440200341dc9504410120041100000d0e200341acb20441052004110000450d010c0e0b200341da9504410220041100000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241acb2044105105f0d0d200241d895044102105f0d0d0b200341b194044101200411000021000c0c0b200128020041d2af04410d200128020428020c11000021000c0b0b200128020041c4af04410e200128020428020c11000021000c0a0b200128020041b9af04410b200128020428020c11000021000c090b2001280200419faf04411a200128020428020c11000021000c080b20012802004191af04410e200128020428020c11000021000c070b20012802004181af044110200128020428020c11000021000c060b200128020041f5ae04410c200128020428020c11000021000c050b200128020041eaae04410b200128020428020c11000021000c040b200128020041e3ae044107200128020428020c11000021000c030b200128020041d4ae04410f200128020428020c11000021000c020b200128020041c3ae044111200128020428020c11000021000c010b200128020041b0ae044113200128020428020c11000021000b200241106a240020000be10201017f230041206b22022400200241013a0018200220013602142002200036021020024190950436020c20024184ac04360208230041406a220124002001200241086a36020c2001410736022420012001410c6a360220410021004104210202400240024002400240034020002000200241d0ac046a2802006a22004b0d01200241086a22024114470d000b2001200041104f047f200020006a22024100200020024d1b0541000b103920014100360218200120012903003703102001410136023c20014102360234200141d0ac04360230200141003602282001200141206a360238200141106a200141286a10450d0141f0b2052d000045044041f1b2052d00004101710d050b410c20012802142001280218100522002000410c4f1b4109470d020c030b41808d04411c41f0a8041013000b41d090044133200141286a41c48d0441809204102e000b41f0b20541013a00000b41f1b20541013a00000b000bfc0102047f017e230041e0006b22032400200341346a200041186a2900003702002003412c6a200041106a290000370200200341246a200041086a290000370200200341bc81043602182003200029000037021c20034100360248200342808001370254200341f0b20436025041eee7a015200341d0006a22041017200341186a4104722004101820032003290350370340200341106a200341406b220520032802581019200328021421002003280210200329034021072003410036025820032007370350200120022004102020032003290350370340200341086a20052003280258101920002003280208200328020c10081a200341e0006a24000b430020012002102820010440200020014104746a21010340200028020020021017200041086a2802002000410c6a28020020021034200041106a22002001470d000b0b0bdc0102037f017e230041d0006b22022400200241106a22042000102220022903102105200241003602282002200537032020012802002001280204200241206a2203102320032001280208411c102420022002290320370310200241086a20042002280228101920032002280208200228020c102520022000280200220420002802042000280208220141fc8704101020024100360248200220022903003703402003200241406b10182001200120022802486a22034b044041a08104411c418c88041013000b2000200436020020002003360208200241d0006a24000b5201037f230041106b2202240020012802082203200128020422044b0440200320044190ae041031000b200241086a20032004200128020010682000200229030837020020004100360208200241106a24000b100020012002102820022000200110240b7901047f230041106b2203240002402000280208220520026a220420054f04402004200028020422064b0d01200341086a20052004200028020010682003280208200328020c2001200241f0ad04102620002004360208200341106a24000f0b4190ac04411c41d0ad041013000b2004200641e0ad041015000bcf0101077f230041306b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341286a22074200370300200341206a22084200370300200341186a220942003703002003420037031020012002200341106a1006200420072903003700002005200829030037000020062009290300370000200020032903103700000c010b200341086a20022000412041d0830410142003280208200328020c2001200241e0830410260b200341306a24000b85010020012003460440200020022001100b1a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4106360200200041f09e0436021020004100360208200041063602242000200041206a360218200020003602282000200041046a360220200041086a2004101e000b7701037f230041206b22022400200241086a2000280200220420002802042000280208220341fc8704101020024100360218200220022903083703102001200241106a10282003200320022802186a22014b044041a08104411c418c88041013000b2000200436020020002001360208200241206a24000b7401017f230041106b2202240002402000413f4d044020012000410274102a0c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210240c010b200041ffffffff034d04402000410274410272200110170c010b20014103102a2000200110170b200241106a24000b080020004101102a0ba10101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a41023602002000411c6a41023602002000412c6a4106360200200041e4940436021020004100360208200041063602242000200041206a360218200020003602282000200041046a360220200041086a4180ae04101e000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101145044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b5b01027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20012001417f73411f76104d200228020822030d0120011036000b1035000b2000200336020420002001360200200241106a24000ba70101017f230041306b2201240020014180800136020041f0b2042001100420014180800136022c200141f0b2043602282001200141286a102b20012d00000440200141003a000041e4860441c10020014194840441a88704102e000b20002001290102370001200041096a2001410a6a290100370000200041116a200141126a290100370000200041186a200141196a290000370000200020012d00013a0000200141306a24000b860101017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a41023602002005412c6a41023602002005413c6a4102360200200541c4950436022020054100360218200541033602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101e000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b1b002000418180014f044020004180800141b887041015000b20000b0e0020002001200241cc9b04106b0b5201017f230041206b220124002001410c6a4101360200200141146a410136020020014190a904360208200141003602002001410436021c200120003602182001200141186a360210200141808c04101e000b910101017f230041306b22022400200241146a41013602002002411c6a410136020020024190a9043602102002410036020820024103360224200220002d0000410274220041c0b2046a28020036022c2002200041d4b2046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a105e200241306a24000b1d00200045044020024100102a0f0b20024101102a20002001200210230b4601017f230041206b22002400200041146a41013602002000411c6a4100360200200041f88e0436021020004184ac0436021820004100360208200041086a41808f04101e000b5f01017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141b09004360218200141003602102001410636022c2001200141286a36022020012001410c6a360228200141106a41c09004101e000b890301077f230041106b220524002000027f0240027f02400240200204400240200141004e044020032802080d01200520012002104d2005280200210420052802040c050b200041086a41003602000c050b20032802042209450440200541086a20012002104d20052802082104200528020c0c040b200120026a41016b410020026b7122082001490d01200141e8b204280200220620086a22072006490d031a2003280200210a41ecb2042802002007490440200841ffff036a22032008490d032003411076220740002203417f46200341ffff0371200347720d032003411074220620074110746a22032006490d0341ecb20420033602002001200620086a22072006490d041a0b41e8b204200736020020012006450d031a2006200a2009100b210420010c030b20002001360204200041086a41003602000c030b41b0ab04411c4194ab041013000b20010b21072004044020002004360204200041086a200736020041000c020b20002001360204200041086a20023602000b41010b360200200541106a24000b5901037f230041106b2203240002402001450440200041003602040c010b200341086a20021039200328020821042000200328020c220536020420002004360200200520012002100b1a200020023602080b200341106a24000b3501017f230041106b22022400200241086a2001102c200228020c21012000200228020836020020002001360204200241106a24000bf80902047f017e230041b0016b22012400200141186a20004134100b1a024002400240024002400240024020012d001841016b0e0401020304000b200142808001370274200141f0b204360270200141f0006a220041021027200141a8016a200141f8006a280200360200200120012903703703a0012000200141a0016a2203418c8904103b2001200141186a4101723602a801200141263602a4012001419889043602a00120014190016a220220002003103c20002002103d0c040b200142808001370274200141f0b204360270200141f0006a220041021027200141a8016a200141f8006a280200360200200120012903703703a0012000200141a0016a220341e08904103b2001200141186a4101723602a801200141263602a401200141ec89043602a00120014190016a220220002003103c20002002103d0c030b200142808001370274200141f0b204360270200141f0006a220241021027200141e8006a2200200141f8006a2802003602002001200129037037036020014190016a2203200141e0006a1022200129039001210520014100360278200120053703704184ac04410020021023200241928a04411a10242001200129037037039001200141106a2003200128027810192002200128021020012802141025200141086a2001280260220320012802642000280200220041fc87041010200141003602a801200120012903083703a0012002200141a0016a10182000200020012802a8016a22004b0d03200141d8006a200036020020012003360260200120012903603703502001200141186a4104723602a801200141213602a401200141ac8a043602a00120014190016a2200200141d0006a200141a0016a103c200141f0006a2000103d0c020b200142808001370274200141f0b204360270200141f0006a220241021027200141a8016a2200200141f8006a2203280200360200200120012903703703a001200141a0016a220441ec8a04102120032000280200360200200120012903a0013703702001200141186a4104723602a801200141233602a401200141f88a043602a00120014190016a220020022004103c20022000103d0c010b200142808001370274200141f0b204360270200141f0006a220341011027200141a8016a2200200141f8006a280200360200200120012903703703a001200141a0016a41b88b04102120014198016a2000280200360200200120012903a00137039001200320014190016a103d0b200141a8016a200141f8006a2802003602002001200129037022053703a00120014180016a2802002100200128027c200141003602782001200537037002400240024002400240024020012d001841016b0e0401020304000b200141f0006a22024100102a200141186a410172200210180c040b200141f0006a22024101102a200141186a410172200210180c030b200141f0006a22024102102a200141186a410472200210182001413c6a280200200210170c020b200141f0006a22024103102a200141186a410472200210182001413c6a28020020021017200141c4006a280200200141c8006a280200200210340c010b200141f0006a22024104102a200141186a410472200210182001413c6a280200200210170b200120012903703703a0012001200141a0016a20012802781019200020012802002001280204100720012d00184103460440200141c4006a2802001a0b200141b0016a24000f0b41a08104411c418c88041013000bf80102037f017e230041d0006b22032400200341106a22052001102220032903102106200341003602282003200637032020022802002002280204200341206a2204102320042002280208411f102420032003290320370310200341086a20052003280228101920042003280208200328020c102520032001280200220520012802042001280208220241fc8704101020034100360248200320032903003703402004200341406b10182002200220032802486a22044b044041a08104411c418c88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000bf60102037f017e230041d0006b22032400200341106a22052001102220032903102106200341003602282003200637032020022802002002280204200341206a2204102320022802082004101820032003290320370310200341086a20052003280228101920042003280208200328020c102520032001280200220520012802042001280208220241fc8704101020034100360248200320032903003703402004200341406b10182002200220032802486a22044b044041a08104411c418c88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101920022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b3501017f230041106b22002400200042808001370204200041f0b20436020020004101102a200010294101200028020810301041000b4c01017f230041106b22022400200242808001370204200241f0b20436020020024100102a2002200141ff0171410647047f20024101102a20010541000b102a2000200228020810301041000ba20102057f017e230041306b2201240020014100360218200142808001370224200141f0b2043602204100200141206a2202101720012001290320370310200141086a200141106a220320012802281019200128020c2104200128020820012903102106200141003602282001200637032020002002101820012001290320370310200120032001280228101920042001280200200128020410081a200141306a24000b0d00200041f0b2042001100a000bd82b020f7f017e230041c0026b220024000240024002400240102f41ff017141054604402000418080013602a00141f0b204200041a0016a22011003200041d8006a20002802a00141f0b2044180800141d48604101420002000290358370370200041003602a001200041f0006a2001410410110d0220002802a00122074118762101200741107621032007410876210202400240024002400240024002400240200741ff0171220741076b0e020104000b2007411f460d0120074129460d05200741c800460d04200741e9004704402007418301460d03200741c40147200241ff017141e8004772200341ff017141de0147200141d4014772720d0a410721010c090b200241ff0171410847200341ff0171411947722001412647720d09410021010c080b200241ff017141c10047200341ff0171411b4772200141af0147720d08410121010c070b200241ff017141e00147200341ff01714181014772200141ef0047720d07410221010c060b200241ff017141b00147200341ff017141e40047722001411947720d06200041a0016a200041f0006a101b20002802a0010d06200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a4012105410321010c050b200241ff0171410247200341ff017141e7004772200141c00047720d05200041d0006a200041f0006a100e20002802500d0520002802542105410421010c040b200241ff017141cd0047200341ff017141ae0147720d04200141b101460d010c040b200241ff017141da0147200341ff017141ba0147722001410247720d03200041a0016a200041f0006a102b20002d00a0010d032000200041b4016a2902003703a0022000200041b9016a2900003700a502200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a401210520002f01a201210420002d00a101210b410621010c020b200041a0016a200041f0006a101b20002802a0010d02200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a4012105410521010c010b200041043a00a001200041a0016a1032000b200041e8006a200041a8026a290300370300200020002903a002370360200041003602a8022000428080013702a401200041f0b2043602a0014100200041a0016a22021017200020002903a0013703a002200041c8006a200041a0026a20002802a8011019200028024c2107200028024820002802a0022103200020002802a402220c3602a00120072003200210002102200041406b20002802a0012003200c41d4860410140240024002400240410c20022002410c4f1b0e0401000002000b200041ac016a4101360200200041b4016a4100360200200041e487043602a80120004184ac043602b001200041003602a001200041a0016a41ec8704101e000b20002802442103200020002802403602f801200020033602fc01200041a0016a200041f8016a102b20002d00a001450d01200041ac016a4101360200200041b4016a4100360200200041b88c043602a8010c030b200041ac016a4101360200200041b4016a4100360200200041d88c043602a8010c020b200041f8006a2203200041aa016a220229010037030020004180016a220a200041b2016a220c29010037030020004187016a220d200041b9016a220e290000370000200020002901a20137037020002d00a1012107027f024002400240027f02400240024002400240024002400240024002400240024002400240200141016b0e0707060001020304080b200041a0026a102d200041b8016a2203200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc0122010440200020002d00fb013a009301200020002f00f9013b00910120002000280280022204360298012000200136029401200020002d00f8013a009001200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200320004187016a290000370000200041c8016a4200370300200041d0016a4200370300200020073a00a001200020002903703700a101200041003602e001200042003703c00120002005ad42208642cbfdefe70e843703d801200041003602f0012000428080013702fc01200041f0b2043602f801200041a0016a200041f8016a22031018200020002903f8013703e801200041386a200041e8016a220220002802800210192000280238210b20002903e801210f20004100360298022000200f370390022000420037038002200042003703f80120004190026a20034110102420002000290390023703e801200041306a200220002802980210192000280230210a20002903e801210f20004100360280022000200f3703f8012003200041d8016a41041024200520031017200020002903f8013703e801200041286a20022000280280021019200028022c210c2000280228210d20002802e8012102200020002802ec01220e3602f8014100200b4200200a200d200c2002200310022103200041206a20002802f8012002200e41d486041014410c20032003410c4f1b2203410d710d0920002802242103200020002802203602f801200020033602fc01200041186a200041f8016a100d02400240024020002d00184101710d000240024020002d00190e020001020b200041086a200041f8016a100d20002d00084101710d014102210220002d0009220341024f0d0120030d030c140b200041106a200041f8016a100d20002d00104101710d0020002d00114101460d010b410021010c110b200041013602e80120004184026a41013602002000418c026a4101360200200041d4840436028002200041003602f8012000410536029402200020004190026a360288022000200041e8016a36029002200041f8016a41d88504101e000b20044104742102024003402002450d01200241106b21022001280200200141106a21012005470d000b410421020c110b200041a0016a20082006103820002802a401450d0520002802a8014111490d05410521020c100b410121020c100b200041a0026a102d200041b8016a200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a1016027f20002802fc0122034504404101210241010c010b200041f8016a2000280280022206101a20002802f80122042000280280022201490d092006410474210920002802fc01210802402006452001200446720d00200320096a210b200820014104746a2102200041a0016a410472210a200120046b41016a2104200321010340200020012802003602a001200a200141086a2802002001410c6a2802001038200241086a200041a8016a290300370200200220002903a0013702002004450d01200441016a2104200241106a2102200141106a2201200b470d000b0b024020060440200820096a210441002101410021020340200120086a22092802002005460d02200141106a2101200241016a2102200941106a2004470d000b0b4103210241010c010b200220064f0d0a200641047420016b41106b21020240200120036a2201200141106a22044d044003402002450d02200120042d00003a0000200441016a2104200141016a2101200241016b21020c000b000b200441016b2104200141016b210103402002450d01200120026a200220046a2d00003a0000200241016b21020c000b000b200041b8016a2202200041b8026a2204290300370300200041b0016a200041b0026a2208290300370300200041a8016a200041a8026a2209290300370300200020002903a0023703a001200041a0016a22012003200641016b101f200041bc016a2004290300370200200041b4016a2008290300370200200041ac016a2009290300370200200041c4016a2005360200200020002903a0023702a401200041043a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200220004187016a290000370000200020073a00a001200020002903703700a101200110404106210241000b2002103f000b200041a0026a102d200041b8016a200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc01220a450440410121040c0b0b200028028002210b200041f8016a200820061038200041a0016a20002802fc012000280280021038024020002802a401450d0020002802a8014111490d00410521040c0b0b41032104200b450d0a200b410474210c4100210141002102034020052001200a6a2203280200470440200241016a2102200141106a2201200c470d010c0c0b0b200341086a2802001a20032005360200200341046a20002903f8013702002003410c6a20004180026a280200360200200041b8016a2203200041b8026a2202290300370300200041b0016a200041b0026a2204290300370300200041a8016a200041a8026a220c290300370300200020002903a0023703a001200041a0016a2201200a200b101f200041bc016a2002290300370200200041b4016a2004290300370200200041ac016a200c290300370200200041d0016a2006360200200041cc016a2008360200200041c8016a2009360200200041c4016a2005360200200020002903a0023702a401200041033a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200320004187016a290000370000200020073a00a001200020002903703700a101200110404106210441000c0b0b200041b8016a2000290065370000200020063600af01200020083600ab01200020093600a701200020053600a301200020043b00a1012000200b3a00a001200020002903603700b301230041306b22012400200141286a200041a0016a220341186a290000370300200141206a200341106a290000370300200141186a200341086a290000370300200120032900003703102001200141106a101620012802002104200041a0026a220220012802084100200128020422031b36020820022003410420031b36020420022004410020031b360200200141306a240020002802a402210320002802a8022100230041106b22012400200142808001370204200141f0b20436020002402003044020014100102a20032000200110200c010b20014101102a200110290b0c110b230041d0006b220124002001102d200141c8006a200141186a290300370300200141406b200141106a290300370300200141386a200141086a29030037030020012001290300370330200141206a200141306a101620012802242100200141d0006a2400230041106b22012400200142808001370204200141f0b204360200230041106b2203240020014100102a200320004100473a000f20012003410f6a41011024200341106a24000c100b200041ac016a22032006360200200041a8016a22022008360200200020093602a401200020053602a00120004190016a200041a0016a2201101c200041b8016a2204200041b8026a2206290300370300200041b0016a200041b0026a22082903003703002002200041a8026a2202290300370300200020002903a0023703a0012001200028029401200028029801101f200041bc016a2006290300370200200041b4016a200829030037020020032002290300370200200041c4016a2005360200200020002903a0023702a401200041023a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200420004187016a290000370000200020073a00a001200020002903703700a101200110404106210241000c0c0b200041a0026a102d200041b8016a2202200041b8026a2201290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a1016027f20002802fc0122040440200041bc016a2001290300370200200041b4016a200041b0026a2205290300370200200041ac016a200041a8026a2206290300370200200020002903a0023702a401200041bc81043602a00120004100360298022000428080013702fc01200041f0b2043602f80141eee7a015200041f8016a22081017200041a0016a220341047220081018200020002903f80137039002200020004190026a20002802800210192000280200200028020410091a200041b9016a2001290300370000200041b1016a22012005290300370000200041a9016a22052006290300370000200020002903a0023700a101200041013a00a0012003103a2005200041f8006a290300370000200120004180016a290300370000200220004187016a290000370000200020073a00a001200020002903703700a1012003104041060c010b41010b21012004452001103f000b200041a0026a102d200041b8016a2201200041b8026a2203290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc0122040440410021010c050b20012003290300370300200041b0016a200041b0026a2205290300370300200041a8016a200041a8026a2206290300370300200020002903a0023703a001200041a0016a220241044100101f200041b9016a2003290300370000200041b1016a22032005290300370000200041a9016a22052006290300370000200020002903a0023700a101200041003a00a0012002103a2005200041f8006a290300370000200320004180016a290300370000200120004187016a290000370000200020073a00a001200020002903703700a10120021040410621010c040b20022003290300370100200c200a290300370100200e200d290000370000200020073a00a101200020002903703701a201200041003a00a001230041106b22012400200142808001370204200141f0b2043602000240200041a0016a22032d000045044020014100102a200341016a200110180c010b20014101102a200110290b0c0c0b200341b0b2046a2d000021010c050b41808004412141a484041013000b230041306b220124002001200636020420012002360200200141146a41033602002001411c6a41023602002001412c6a4106360200200141b8930436021020014100360208200141063602242001200141206a3602182001200141046a36022820012001360220200141086a41dc8804101e000b20044100472001103f000b41010b2004103f000b200020013a00e80120004184026a41013602002000418c026a4101360200200041d4840436028002200041003602f8012000410136029402200020004190026a360288022000200041e8016a36029002200041f8016a41c88504101e000b410120030d011a0b41010b2002103f000b103e000b20004184ac043602b001200041003602a001200041a0016a41808c04101e000b4100200128020810301041000b1800200128020041e5af044111200128020428020c1100000bdf0202047f027e230041e0006b220024000240102f41ff01712201410546044020004180800136023841f0b204200041386a22011003200041086a200028023841f0b2044180800141d48604101420002000290308370330200041003602380240200041306a2001410410110d002000280238419bddf6f405470d00200041386a200041306a102b20002d0038450d020b103e000b200020013a0038200041386a1032000b200041276a2201200041d1006a290000370000200041206a2202200041ca006a290100370300200041186a200041c2006a29010022043703002000200029013a220537031020002d00392103200041c1006a2004370000200041c9006a2002290300370000200041d0006a2001290000370000200020033a003820002005370039200041386a1040230041106b22002400200042808001370204200041f0b20436020020004100102a20004100102a4100200028020810301041000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41e08c04200241086a1046200241206a24000bee0301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1100000d040b200141086a2101200428020020042802042106200441086a2104200341186a2006110200450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1100000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a105d20032003290310370320200341086a2005200141046a105d20032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110200450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1100000d010b41000c010b41010b200341406b24000b0f00200028020020012002104841000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a200020032002104b2004280208200428020c104c200028020821030b200028020420036a20012002100b1a2003200220036a22014b044041808d04411c41e093041013000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10480c020b230041106b22042400200441086a200020034101104b2004280208200428020c104c200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41808d04411c41d093041013000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1045200241206a24000bdd0101027f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22052002490d0141082005200320032005491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200420032005200441106a103720042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41a08d04412141d48e041013000b1f00024020014181808080784704402001450d0120001036000b0f0b1035000bd00101037f02402001450440200221030c010b02402001200120026a41016b410020026b7122054d044041e8b204280200220220056a22042002490d0241ecb2042802002004490440200541ffff036a22022005490d022002411076220340002202417f46200241ffff0371200247720d022002411074220220034110746a22042002490d024100210341ecb2042004360200200220056a22042002490d030b41e8b2042004360200200221030c020b41b0ab04411c4194ab041013000b410021030b20002001360204200020033602000bd806020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e220641017441db96046a2f00003b0000200241026b2004200641e4006c6b41ffff037141017441db96046a2f00003b0000200041046b2100200e42ffc1d72f56200d210e0d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff037141017441db96046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a200241017441db96046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b210241002104200541047104404184ac04210420024184ac044184ac04105420026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a28020022012007200410570d01200220082006200128020c11000021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a2007200410570d02200341106a2001200920026b4101105820032802142202418080c400460d022003280210200520082006200a28020c1100000d0220022005200a10590d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a28020022012007200410570d01200220082006200128020c11000021000c010b41012100200341086a2001200920026b41011058200328020c2205418080c400460d00200328020820012802002202200141046a28020022012007200410570d00200220082006200128020c1100000d00200520022001105921000b200341406b240020000f0b41f09304411c41a499041013000b4190940441214180a9041013000b0300010b0e0020002802001a03400c000b000b0d0042f2e7eb9187bab2c1d1000b4a01017f230041106b22052400200220034904402003200220041031000b200541086a2003200220011053200528020c21012000200528020836020020002001360204200541106a24000b1400200020012002200341f8b00441909404106a0ba704010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d002001200010552206200020016a22082004417c716a200441037110556a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41809d041056200328020c21052003280208210820032003280200200328020422002000417c7141909e041056200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41f09304411c4198a0041013000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441f09304411c41c8a0041013000b41f09304411c41a8a0041013000b41f09304411c41b8a0041013000b41f09304411c4188a0041013000b20012002105521020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41f09304411c41f0a8041013000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41acac04412320041013000b39000240027f2002418080c40047044041012000200220012802101102000d011a0b20030d0141000b0f0b200020034100200128020c1100000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41f09304411c41b499041013000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110200450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110200450d000b200441016b0b2000490b4b01017f230041106b22052400200120034d0440200541086a4100200120021053200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000bea04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11000021000c020b41f09304411c41d8a1041013000b200b450440200128020020032004200128020428020c11000021000c010b2001410c6a2802002200200320046a2003105422024b0440200941086a2001200020026b4100105841012100200928020c2202418080c400460d0120092802082001280200220520032004200141046a280200220128020c1100000d01200220052001105921000c010b200128020020032004200128020428020c11000021000b200941106a240020000b140020002802002001200028020428020c1102000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044108470d0120012802000b2802002104410121030b20002004360204200020033602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1046200341206a24000bda08010b7f23004190016b22032400200341003b0184012003410a3602800120034281808080a00137037820032002360274200341003602702003200236026c200320013602682003200236026420034100360260200028020421062000280200210720002802082108200341fc006a2109027f0340024002400240024020032d008501450440200341d8006a2003280268220c200328026c2003280270200328027410600240024020032802582201450d00200328025c2100034002400240024002400240027f0240024002400240200328027822020440200220096a41016b2d00002104200041084f04402001200141036a417c712202460440200041086b210a410021020c040b200341d0006a200220016b22022000200020024b1b22022001200041c89a04105a200341c8006a200420032802502003280254106120032802484101470d02200328024c21010c050b200341306a20042001200010612003280234210120032802300c050b41909404412141a8a7041013000b2002200041086b220a4b0d010b200441818284086c210b0340200241046a22052002490d04200120026a280200200b73220d417f73200d41818284086b71200120056a280200200b732205417f73200541818284086b7172418081828478710d012002200241086a22024b0d072002200a4d0d000b0b200341406b20012000200241f89a041052200341386a2004200328024020032802441061410020032802384101470d011a2002200328023c6a220120024f0d0041f09304411c41889b041013000b41010b4101460440200141016a2200450d022000200328027022006a22022000490d0320032002360270200220032802782200490d05200341286a2003280268200328026c200220006b2002106020032802282202450d05200328022c2100200341206a20032802782009410441d8a704105a20022000200328022020032802241062450d05200341186a200328026020032802702200200c106320032000360260200328021c2102200328021821000c080b200320032802743602700c060b41f09304411c41d89a041013000b41f09304411c41b8a7041013000b41f09304411c41c8a7041013000b41f09304411c41e89a041013000b200341106a2003280268200328026c20032802702003280274106020032802142100200328021022010d000b0b4100210020032d0085010d00200341013a008501024020032d008401044020032802642101200328026021040c010b2003280264220120032802602204490d0420012004460d010b200341086a2004200120032802681063200328020c2102200328020821000b20000d010b41000c050b20082d0000450d01200741d495044104200628020c110000450d010c020b41909404412141e8a1041013000b2003410a36028c0120082002047f200320002002200241016b41a09e0410522003418c016a41012003280200200328020410620541000b3a0000200720002002200628020c110000450d010b0b41010b20034190016a24000b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011053200528020c2107200528020821060b2000200736020420002006360200200541106a24000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b4d01017f2001200346047f027f034041002001450d011a200141016b210120022d0000210320002d00002104200041016a2100200241016a210220032004460d000b200420036b0b0541010b450b1400200020012002200341fca20441909404106a0b5801027f230041206b22022400200128020421032001280200200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1046200241206a24000b0b0020002802002001105b0b1800200128020041acb2044105200128020428020c1100000b990301037f230041406a22022400200028020021034101210002402001280200220441a09504410c200141046a280200220128020c1100000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241b0950436023020024100360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a105e450d010c020b20032802002200200328020428020c11090042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241b09504360230200241003602282002410a3602142002200241106a36023820022002410c6a36021020042001200241286a105e0d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4106360200200241346a4106360200200241f894043602182002410036021020022000410c6a3602382002200041086a3602302002410336022c200220003602282002200241286a36022020042001200241106a105e21000b200241406b240020000b1400200020012002200341ccab0441e0ab04106a0b1400200020012002200341f8b0044190b104106a0b2800200120024d04402000200220016b3602042000200120036a3602000f0b2005412120041013000b7301017f230041306b220424002004200136020420042000360200200441146a41023602002004411c6a41023602002004412c6a41063602002004200336021020044100360208200441063602242004200441206a3602182004200441046a36022820042004360220200441086a2002101e000b0b9d320700418080040bf50c617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6d706163742e727300210001006a000000420000002600000000000000617474656d707420746f206164642077697468206f766572666c6f77ee33a8024661696c656420746f206765742076616c756520696e204d617070696e673a20c0000100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e7273e8000100680000009c000000250000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273000000600101006d0000009d00000011000000600101006d0000009d00000030000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b000000010000000100000001000000100901007f000000c30800001100000043726f73732d636f6e74726163742063616c6c206661696c656420776974682034020100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f63616c6c2f63616c6c5f6275696c6465722e72730000005c0201006900000078000000110000005c020100690000007b000000110000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300e80201006b000000e40000001400000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000600101006d0000006b0100000e000000600101006d0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72c80301001c000000600101006d000000ed00000017000000601601006e000000c100000037000000601601006e000000c4000000090000002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f616464726573735f626f6f6b2f74797065732e727300001c0401003e000000330000001900000041646472657373426f6f6b3a3a41646472657373426f6f6b437265617465640004160100000000006c04010041646472657373426f6f6b3a3a41646472657373426f6f6b437265617465643a3a6f776e657241646472657373426f6f6b3a3a41646472657373426f6f6b52656d6f7665640000000416010000000000be04010041646472657373426f6f6b3a3a41646472657373426f6f6b52656d6f7665643a3a6f776e657241646472657373426f6f6b3a3a4964656e74697479416464656441646472657373426f6f6b3a3a4964656e7469747941646465643a3a6f776e657241646472657373426f6f6b3a3a4e69636b6e616d655570646174656400000004160100000000004d05010041646472657373426f6f6b3a3a4e69636b6e616d65557064617465643a3a6f776e657241646472657373426f6f6b3a3a4964656e7469747952656d6f7665640004160100000000009b0501002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f616464726573735f626f6f6b2f6c69622e7273c40501003c0000002e00000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900100601002700000073746f7261676520656e7472792077617320656d7074790040060100170000000b00000004000000040000000c0000000d0000000e0041808d040ba418617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b00000000000000010000000f0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300d40601007f0000008a0100001c0000006361706163697479206f766572666c6f770000006407010011000000d40601007f00000006020000050000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564000d08010015000000220801000d000000900701007d00000095010000090000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000830801007b00000064020000200000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273292073686f756c64206265203c206c656e202869732072656d6f76616c20696e646578202869732000a5090100120000008f09010016000000310a010001000000100901007f000000300700000d000000100901007f0000009e07000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320320a010020000000520a0100120000003a0000000416010000000000740a010001000000740a0100010000000b00000000000000010000001000000070616e69636b65642061742027272c20ac0a010001000000ad0a0100030000003a2000000416010000000000c00a010002000000202020202c0a280a282f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000230c01007e0000005d0500000d000000230c01007e000000ed050000380000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e727300c40c0100830000004e0000002f000000c40c0100830000005a0000001f000000c40c0100830000006300000009000000c40c0100830000006800000027000000c40c010083000000680000003e00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820980d010012000000aa0d01002200000072616e676520656e6420696e64657820dc0d010010000000aa0d0100220000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273000000fc0d010081000000c4050000250000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e7273900e010080000000fe0300002f000000900e010080000000de0800001e000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028300f010015000000450f01002b000000310a0100010000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273880f0100800000004700000015000000880f0100800000005400000011000000880f0100800000005a00000009000000880f0100800000006400000011000000880f010080000000660000000d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e727300581001007f0000009100000011000000581001007f0000004f0200002d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273000000f810010081000000ca000000130000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727300008c11010086000000e50000001500000001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041e6a5040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041a4a6040bfd042f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e727300002413010082000000a1010000470000002413010082000000b4010000200000002413010082000000b4010000110000002413010082000000b8010000260000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273e8130100880000009500000001000000dd0a01007e000000cd0100000500000004160100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e72730010150100830000002f010000180041b0ab040b51617474656d707420746f206164642077697468206f766572666c6f77f617010082000000900100004f00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f77004190ac040bf504617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290a04160100000000004f160100010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e72730000601601006e0000005a0000001c000000601601006e0000005a00000009000000601601006e0000005a00000031000000601601006e0000006500000009000000601601006e000000830000001a000000601601006e0000008d0000002100000045636473615265636f766572794661696c656443616c6c52756e74696d654661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f6465436f756c644e6f7452656164496e7075742f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e7273f6170100820000008201000047004190b1040bd701617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6465632e7273000000b118010068000000770000000e0000004572726f7201020304050607080a0b0c09000000190000001c000000160000001400000019000000f7140100db140100c5140100b1140100981401","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"address_book","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[{"label":"identity_contract","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":["Constructor","Instantiate with the address of \`Identity\` contract."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":20}},"events":[{"args":[{"docs":[" The owner of the newly created address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookCreated"},{"args":[{"docs":[" The owner of the removed address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookRemoved"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity added to the address book."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityAdded"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity that received a new nickname."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The new nickname."],"indexed":false,"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"docs":[],"label":"NicknameUpdated"},{"args":[{"docs":[],"indexed":false,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[" Returns the address of the identity contract."],"label":"identity_contract","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x69081926"},{"args":[],"default":false,"docs":[" Creates an address book for the caller."],"label":"create_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x07411baf"},{"args":[],"default":false,"docs":[" Removes the address book of the caller."],"label":"remove_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x1fe0816f"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Adds an identity to the user's address book."],"label":"add_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x83b06419"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Removes an identity from the user's address book."],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x08026740"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Update nickname of an identity."],"label":"update_nickname","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x484daeb1"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the identities stored in the address book of a user."],"label":"identities_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0x29daba02"},{"args":[],"default":false,"docs":[" Returns whether the user has created an address book or not"],"label":"has_address_book","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xc468ded4"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x02a833ee","ty":0}},"name":"identities"}],"name":"AddressBookInfo"}},"root_key":"0x02a833ee"}},"name":"address_book_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"identity_contract"}],"name":"AddressBook"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":4}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":4}],"path":["Option"]}},{"id":4,"type":{"def":{"primitive":"str"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":7}}}},{"id":7,"type":{"def":{"primitive":"u8"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":10}],"path":["Result"]}},{"id":9,"type":{"def":{"tuple":[]}}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"fields":[{"type":5}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":5},{"name":"E","type":10}],"path":["Result"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":13}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":13},{"name":"E","type":10}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":14}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AddressBookAlreadyCreated"},{"index":1,"name":"AddressBookDoesntExist"},{"index":2,"name":"IdentityDoesntExist"},{"index":3,"name":"IdentityNotAdded"},{"index":4,"name":"IdentityAlreadyAdded"},{"index":5,"name":"NickNameTooLong"}]}},"path":["address_book","Error"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":10}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u64"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file diff --git a/types/contract-info/identity.ts b/types/contract-info/identity.ts index f7c235b..035423c 100644 --- a/types/contract-info/identity.ts +++ b/types/contract-info/identity.ts @@ -1,2 +1,2 @@ -export const ContractAbi = `{"source":{"hash":"0xee17bba51b46f56affec703536dcecd32824105ca8fb9bb2a86d11e7c93c99bc","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","build_info":{"build_mode":"Release","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"identity","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"},{"args":[{"label":"networks","type":{"displayName":["Vec"],"type":11}}],"default":false,"docs":[],"label":"init_with_networks","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x056543ac"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":35},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":38},"hash":{"displayName":["Hash"],"type":36},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":37}},"events":[{"args":[{"docs":[" Owner of the created identity."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The \`IdentityNo\` associated with the created identity."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":["Events"],"label":"IdentityCreated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The network on which a new address has been added."],"indexed":false,"label":"network","type":{"displayName":["NetworkId"],"type":2}},{"docs":[" The newly added address."],"indexed":false,"label":"address","type":{"displayName":["NetworkAddress"],"type":3}}],"docs":[],"label":"AddressAdded"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The network on which the address has been updated."],"indexed":false,"label":"network","type":{"displayName":["NetworkId"],"type":2}},{"docs":[" The updated address value."],"indexed":false,"label":"updated_address","type":{"displayName":["NetworkAddress"],"type":3}}],"docs":[],"label":"AddressUpdated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The network on which the address has been removed."],"indexed":false,"label":"network","type":{"displayName":["NetworkId"],"type":2}}],"docs":[],"label":"AddressRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got removed."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"},{"args":[{"docs":[" The \`NetworkId\` that is associated with the newly added network."],"indexed":true,"label":"network_id","type":{"displayName":["NetworkId"],"type":2}},{"docs":[" The rpc url of the network that got added."],"indexed":false,"label":"rpc_url","type":{"displayName":["String"],"type":7}},{"docs":[" The address type used on the network."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":13}}],"docs":[],"label":"NetworkAdded"},{"args":[{"docs":[" The \`NetworkId\` that is associated with the updated network."],"indexed":true,"label":"network_id","type":{"displayName":["NetworkId"],"type":2}},{"docs":[" The rpc url of the updated network."],"indexed":false,"label":"rpc_url","type":{"displayName":["String"],"type":7}},{"docs":[" The address type used on the updated network."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":13}}],"docs":[],"label":"NetworkUpdated"},{"args":[{"docs":[" The \`NetworkId\` that is associated with the network that got"," removed."],"indexed":true,"label":"network_id","type":{"displayName":["NetworkId"],"type":2}}],"docs":[],"label":"NetworkRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that set a recovery account."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The newly set recovery account."],"indexed":false,"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"RecoveryAccountSet"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the \`IdentityInfo\` of an identity that is associated with"," the provided \`IdentityNo\`."],"label":"identity","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":14},"selector":"0xcbfefbec"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"owner_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0x99720c1e"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"identity_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x713ca232"},{"args":[{"label":"network_id","type":{"displayName":["NetworkId"],"type":2}}],"default":false,"docs":[" Returns the network name that is associated with the specified \`NetworkId\`."],"label":"network_info_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":21},"selector":"0x3dffc61c"},{"args":[{"label":"receiver","type":{"displayName":["IdentityNo"],"type":2}},{"label":"network","type":{"displayName":["NetworkId"],"type":2}}],"default":false,"docs":[" Returns the destination address of a transaction that needs to be"," routed to the specified identity on the specified network."],"label":"transaction_destination","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":23},"selector":"0x525505e4"},{"args":[],"default":false,"docs":[" A list of all the available networks each associated with a \`NetworkId\`."],"label":"available_networks","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":26},"selector":"0xbd5ddfcd"},{"args":[],"default":false,"docs":[" Creates an identity and returns the \`IdentityNo\`.",""," A user can only create one identity."],"label":"create_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":29},"selector":"0xfb893664"},{"args":[{"label":"network","type":{"displayName":["NetworkId"],"type":2}},{"label":"address","type":{"displayName":["NetworkAddress"],"type":3}}],"default":false,"docs":[" Adds an address for a given network"],"label":"add_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x71cc798d"},{"args":[{"label":"network","type":{"displayName":["NetworkId"],"type":2}},{"label":"address","type":{"displayName":["NetworkAddress"],"type":3}}],"default":false,"docs":[" Updates the address of the given network"],"label":"update_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x892f75e4"},{"args":[{"label":"network","type":{"displayName":["NetworkId"],"type":2}}],"default":false,"docs":[" Removes the address by network"],"label":"remove_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xdca7a60f"},{"args":[],"default":false,"docs":[" Removes an identity"],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x08026740"},{"args":[{"label":"info","type":{"displayName":["NetworkInfo"],"type":12}}],"default":false,"docs":[],"label":"add_network","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":29},"selector":"0x97a3ee09"},{"args":[{"label":"network_id","type":{"displayName":["NetworkId"],"type":2}},{"label":"new_rpc_url","type":{"displayName":["Option"],"type":33}},{"label":"new_address_type","type":{"displayName":["Option"],"type":34}}],"default":false,"docs":[],"label":"update_network","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xcfbe8bcc"},{"args":[{"label":"network_id","type":{"displayName":["NetworkId"],"type":2}}],"default":false,"docs":[],"label":"remove_network","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x14b17dbe"},{"args":[{"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Sets the recovery account that will be able to change the ownership"," of the identity.",""," Only callable by the identity owner."],"label":"set_recovery_account","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xd3b93403"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Transfers the ownership of an identity to another account.",""," Only callable by the identity owner or any account that the identity"," owner added as a proxy."],"label":"transfer_ownership","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x107e33ea"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d5e603b","ty":0}},"name":"addresses"}],"name":"IdentityInfo"}},"root_key":"0x7d5e603b"}},"name":"number_to_identity"},{"layout":{"root":{"layout":{"leaf":{"key":"0xca45e900","ty":5}},"root_key":"0xca45e900"}},"name":"owner_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x7cd66cb1","ty":2}},"root_key":"0x7cd66cb1"}},"name":"identity_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x3373bd6d","ty":5}},"root_key":"0x3373bd6d"}},"name":"recovery_account_of"},{"layout":{"leaf":{"key":"0x00000000","ty":2}},"name":"latest_identity_no"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7e863377","ty":7}},"name":"rpc_url"},{"layout":{"enum":{"dispatchKey":"0x7e863377","name":"AccountType","variants":{"0":{"fields":[],"name":"AccountId32"},"1":{"fields":[],"name":"AccountKey20"}}}},"name":"account_type"}],"name":"NetworkInfo"}},"root_key":"0x7e863377"}},"name":"network_info_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"admin"},{"layout":{"leaf":{"key":"0x00000000","ty":2}},"name":"network_id_count"}],"name":"Identity"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"u8"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":4}}}},{"id":7,"type":{"def":{"primitive":"str"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":10}],"path":["Result"]}},{"id":9,"type":{"def":{"tuple":[]}}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"sequence":{"type":12}}}},{"id":12,"type":{"def":{"composite":{"fields":[{"name":"rpc_url","type":7,"typeName":"String"},{"name":"account_type","type":13,"typeName":"AccountType"}]}},"path":["common","types","NetworkInfo"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AccountId32"},{"index":1,"name":"AccountKey20"}]}},"path":["common","types","AccountType"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"fields":[{"type":15}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":15},{"name":"E","type":10}],"path":["Result"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":16}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":16}],"path":["Option"]}},{"id":16,"type":{"def":{"composite":{"fields":[{"name":"addresses","type":0,"typeName":"Vec<(NetworkId, NetworkAddress)>"}]}},"path":["identity","types","IdentityInfo"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"fields":[{"type":18}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":18},{"name":"E","type":10}],"path":["Result"]}},{"id":18,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":5}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":5}],"path":["Option"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":10}],"path":["Result"]}},{"id":20,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":2}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":2}],"path":["Option"]}},{"id":21,"type":{"def":{"variant":{"variants":[{"fields":[{"type":22}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":22},{"name":"E","type":10}],"path":["Result"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":12}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":12}],"path":["Option"]}},{"id":23,"type":{"def":{"variant":{"variants":[{"fields":[{"type":24}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":24},{"name":"E","type":10}],"path":["Result"]}},{"id":24,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":25}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":25}],"path":["Result"]}},{"id":25,"type":{"def":{"variant":{"variants":[{"index":0,"name":"NotAllowed"},{"index":1,"name":"IdentityDoesntExist"},{"index":2,"name":"AddressAlreadyAdded"},{"index":3,"name":"InvalidNetwork"},{"index":4,"name":"AddressSizeExceeded"},{"index":5,"name":"NetworkNameTooLong"},{"index":6,"name":"NetworkRpcUrlTooLong"},{"index":7,"name":"AlreadyIdentityOwner"}]}},"path":["identity","Error"]}},{"id":26,"type":{"def":{"variant":{"variants":[{"fields":[{"type":27}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":27},{"name":"E","type":10}],"path":["Result"]}},{"id":27,"type":{"def":{"sequence":{"type":28}}}},{"id":28,"type":{"def":{"tuple":[2,12]}}},{"id":29,"type":{"def":{"variant":{"variants":[{"fields":[{"type":30}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":30},{"name":"E","type":10}],"path":["Result"]}},{"id":30,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":25}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":25}],"path":["Result"]}},{"id":31,"type":{"def":{"variant":{"variants":[{"fields":[{"type":32}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":32},{"name":"E","type":10}],"path":["Result"]}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":25}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":25}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":7}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":7}],"path":["Option"]}},{"id":34,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":13}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":13}],"path":["Option"]}},{"id":35,"type":{"def":{"primitive":"u128"}}},{"id":36,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":37,"type":{"def":{"primitive":"u64"}}},{"id":38,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; -export const ContractFile = `{"source":{"hash":"0x64d213e0b2204ed9b07671df375cb5eff055cf61c575f9ca8d4098d694574be9","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","wasm":"0x0061736d01000000014e0d60027f7f0060037f7f7f017f60027f7f017f60037f7f7f0060047f7f7f7f0060017f0060057f7f7f7f7f0060047f7f7f7f017f60000060017f017f60017f017e6000017f60067f7f7f7f7f7f0002dd010b057365616c310b6765745f73746f726167650007057365616c301176616c75655f7472616e736665727265640000057365616c3005696e7075740000057365616c300663616c6c65720000057365616c300d64656275675f6d6573736167650002057365616c300f686173685f626c616b65325f3235360003057365616c300d6465706f7369745f6576656e740004057365616c320b7365745f73746f726167650007057365616c310d636c6561725f73746f726167650002057365616c300b7365616c5f72657475726e000303656e76066d656d6f72790201021003830181010101000000010601040306030000000000030002000000000005000000030003030503060500050000000305060b0002040008050000000005030903050200000303000900000503000003030308000003050000080003020802010103020204030205020a0604020206070407060202030101060407040202020204040c030404040501700110100608017f01418080040b0711020463616c6c005e066465706c6f7900620919010041010b0f1d7978476b84016d810182016c65676883016e0aabef0181012b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001100e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a4104100f450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a4102100f0d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220141808004492103200141027621010b2000200136020420002003360200200241206a24000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110112201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4801027f230041106b220224002002410036020c024020012002410c6a41041011450440200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6601027f230041106b2203240020002f01042104200041003a0004027f20044101710440200120044108763a00002000280200200341086a200120024101418c810410102003280208200328020c10110c010b20002802002001200210110b200341106a24000b4a01017f230041106b22052400200220034904402003200220041045000b200541086a2003200220011012200528020c21012000200528020836020020002001360204200541106a24000b6201047f230041106b22032400200028020422042002492205450440200341086a4100200220002802002206108601200120022003280208200328020c418cb404102d2003200220042006108601200020032903003702000b200341106a240020050b1500200020012002200341ccad04418080041087010b5001017f230041206b220324002003410c6a4101360200200341146a410036020020034184ae04360210200341003602002003200136021c200320003602182003200341186a36020820032002101c000b4b01017f230041106b22052400200120034d0440200541086a4100200120021012200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000b0f0020002001200241ec9d041089010bb70101067f230041206b220324000240024020012802002202200128020422044904402004200220022004491b2106200341086a410472210503402001200241016a220436020020052002101720032d001822074102470d02200422022006470d000b0b200041023a00100c010b200020032f00193b001120002005290200370204200041136a2003411b6a2d00003a00002000410c6a200541086a280200360200200020073a0010200020023602000b200341206a24000bfc0301067f230041e0006b220224002002410036023820024280800137024c200241d4b40436024841f7e698f407200241c8006a2205101920012005101920022002290348370330200241106a200241306a2002280250101b2002280214210320022802102002280230210120022002280234220736024820032001200510002103200241086a20022802482001200741b0860410140240024002400240410c20032003410c4f1b0e0401000002000b200241d4006a4101360200200241dc006a4100360200200241c0870436025020024184ae0436025820024100360248200241c8006a41c88704101c000b200228020821012002200228020c36024420022001360240200241c8006a200241406b101e20022d0054220141024704402002411e6a200241d7006a2d00003a000020022002290049370320200220022f00553b011c2002200241d0006a28000036002720022d004821040c020b200241003a0020200241d4006a4101360200200241dc006a410136020020024190820436025020024100360248200241013602342002200241306a3602582002200241206a360230200241c8006a41808304101c000b410221010b200020043a000020002002290320370001200020013a000c200020022f011c3b000d200041086a20022800273600002000410f6a2002411e6a2d00003a0000200241e0006a24000be00301067f230041f0006b220224002002413c6a200141186a290000370200200241346a200141106a2900003702002002412c6a200141086a290000370200200241dc8104360220200220012900003702242002410036025020024280800137025c200241d4b40436025841b1d9d9e607200241d8006a22051019200241206a4104722005101a20022002290358370348200241186a200241c8006a2002280260101b200228021c21032002280218200228024821012002200228024c220736025820032001200510002103200241106a20022802582001200741b08604101402402000027f024002400240410c20032003410c4f1b0e0402000001000b200241e4006a4101360200200241ec006a4100360200200241c0870436026020024184ae0436026820024100360258200241d8006a41c88704101c000b41000c010b20022802142101200220022802103602582002200136025c200241086a200241d8006a100e20022802080d0141012104200228020c0b36020420002004360200200241f0006a24000f0b200241003a0057200241e4006a4101360200200241ec006a4101360200200241908204360260200241003602582002410136024c2002200241c8006a3602682002200241d7006a360248200241d8006a41808304101c000b2601017f230041106b220224002002200036020c20012002410c6a41041034200241106a24000b0a0020012000412010340b4501017f2002200128020422034b044041acae04412341a0b0041013000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000be10201017f230041206b22022400200241013a0018200220013602142002200036021020024190970436020c20024184ae04360208230041406a220124002001200241086a36020c2001410636022420012001410c6a360220410021004104210202400240024002400240034020002000200241d0ae046a2802006a22004b0d01200241086a22024114470d000b2001200041104f047f200020006a22024100200020024d1b0541000b104c20014100360218200120012903003703102001410136023c20014102360234200141d0ae04360230200141003602282001200141206a360238200141106a200141286a10630d0141d4b4052d000045044041d5b4052d00004101710d050b410c20012802142001280218100422002000410c4f1b4109470d020c030b41c08f04411c41f0aa041013000b419093044133200141286a4184900441c094041036000b41d4b40541013a00000b41d5b40541013a00000b000bb60401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280200220341dfb10441062001280204220528020c22041101000d0c024020012d0018410471450440200341dc9704410120041101000d0e2003419cb40441052004110100450d010c0e0b200341da9704410220041101000d0d2002200536020420022003360200200241013a000f20022002410f6a3602082002419cb4044105107c0d0d200241d897044102107c0d0d0b200341b196044101200411010021000c0c0b200128020041d2b104410d200128020428020c11010021000c0b0b200128020041c4b104410e200128020428020c11010021000c0a0b200128020041b9b104410b200128020428020c11010021000c090b2001280200419fb104411a200128020428020c11010021000c080b20012802004191b104410e200128020428020c11010021000c070b20012802004181b1044110200128020428020c11010021000c060b200128020041f5b004410c200128020428020c11010021000c050b200128020041eab004410b200128020428020c11010021000c040b200128020041e3b0044107200128020428020c11010021000c030b200128020041d4b004410f200128020428020c11010021000c020b200128020041c3b0044111200128020428020c11010021000c010b200128020041b0b0044113200128020428020c11010021000b200241106a240020000b6c02027f017e230041106b2202240020022001104e02402002280204044020022902042104200228020021032001104d41ff017122014102470440200020013a000c20002004370204200020033602000c020b200041023a000c0c010b200041023a000c0b200241106a24000b9f0401067f230041f0006b220224002002410036022820024280800137025c200241d4b40436025841bbc0f9ea07200241d8006a2205101920012005101920022002290358370320200241186a200241206a2002280260101b200228021c210320022802182002280220210120022002280224220736025820032001200510002103200241106a20022802582001200741b086041014024002400240410c20032003410c4f1b0e0400020201020b200228021421012002200228021036023020022001360234200241086a200241306a100c024020022802080d00200241386a20022802344104762203200228020c2201200120034b1b10200240200104400340200241d8006a200241306a102120022802602203450d02200220022802643602542002200336025020022002290358370348200241386a200241c8006a1022200141016b22010d000b0b200228023c2204450d0120022802402101200228023821030c020b200241386a10230b200241003a0038200241e4006a4101360200200241ec006a4101360200200241908204360260200241003602582002410136024c2002200241c8006a3602682002200241386a360248200241d8006a41808304101c000b200020013602082000200436020420002003360200200241f0006a24000f0b200241e4006a4101360200200241ec006a4100360200200241c0870436026020024184ae0436026820024100360258200241d8006a41c88704101c000b7101037f230041106b220224000240024002402001450440410421030c010b200241086a20011041200228020c2203450d01200228020822044100480d012004200310392203450d020b200041003602082000200336020420002001360200200241106a24000f0b103c000b2004103d000b7401027f230041206b22022400200241086a2001100e02402002280208450440200228020c2103200241106a200110332002280214044020002003360200200020022903103702042000410c6a200241186a2802003602000c020b200041003602080c010b200041003602080b200241206a24000b6501027f200028020822022000280200460440200020021049200028020821020b200028020420024104746a22032001290200370200200341086a200141086a290200370200200241016a220145044041a08104411c41d095041013000b200020013602080b11002000280200200041046a28020010400bac0102047f017e230041306b2202240020024100360218200242808001370224200241d4b40436022041f7e698f407200241206a2203101920002003101920022002290320370310200241086a200241106a22042002280228101b200228020c2100200228020820022903102106200241003602282002200637032020012003102520022002290320370310200220042002280228101b20002002280200200228020410071a200241306a24000b1f00200041046a280200200041086a2802002001104a200120002d000c10310b0c0041e081042000200110270ba80102037f017e230041306b2203240020034100360218200342808001370224200341d4b4043602202000200341206a2204104820012004101920032003290320370310200341086a200341106a22052003280228101b200328020c2100200328020820032903102106200341003602282003200637032020022004101a20032003290320370310200320052003280228101b20002003280200200328020410071a200341306a24000bfb0102047f017e230041e0006b22022400200241346a200041186a2900003702002002412c6a200041106a290000370200200241246a200041086a290000370200200241dc81043602182002200029000037021c20024100360248200242808001370254200241d4b40436025041b1d9d9e607200241d0006a22031019200241186a4104722003101a20022002290350370340200241106a200241406b22042002280258101b20022802142100200228021020022903402106200241003602582002200637035020012003101920022002290350370340200241086a20042002280258101b20002002280208200228020c10071a200241e0006a24000bae0102047f017e230041306b2203240020034100360218200342808001370224200341d4b40436022041bbc0f9ea07200341206a2204101920002004101920032003290320370310200341086a200341106a22052003280228101b200328020c21002003280208200329031021072003410036022820032007370320200120022004102a20032003290320370310200320052003280228101b20002003280200200328020410071a200341306a24000b430020012002102f20010440200020014104746a21010340200028020020021019200041086a2802002000410c6a2802002002104a200041106a22002001470d000b0b0bb20101017f230041d0006b22012400200141246a200041186a2900003702002001411c6a200041106a290000370200200141146a200041086a290000370200200141dc81043602082001200029000037020c20014100360238200142808001370244200141d4b40436024041b1d9d9e607200141406b22001019200141086a4104722000101a200120012903403703302001200141306a2001280248101b2001280200200128020410081a200141d0006a24000bcf0101077f230041306b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341286a22074200370300200341206a22084200370300200341186a220942003703002003420037031020012002200341106a1005200420072903003700002005200829030037000020062009290300370000200020032903103700000c010b200341086a2002200041204180840410142003280208200328020c2001200241908404102d0b200341306a24000b85010020012003460440200020022001100a1a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4105360200200041f0a00436021020004100360208200041053602242000200041206a360218200020003602282000200041046a360220200041086a2004101c000b7701047f230041206b22012400200141086a2000280200220320002802042000280208220241d88704101020014100360218200120012903083703104102200141106a102f2002200220012802186a22044b044041a08104411c41e887041013000b2000200336020020002004360208200141206a24000b7401017f230041106b2202240002402000413f4d04402001200041027410310c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210340c010b200041ffffffff034d04402000410274410272200110190c010b2001410310312000200110190b200241106a24000b08002000410110310b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b200220034180b0041060000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101145044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b7e01037f230041106b22022400200241086a2001100c024020022802084504400240200228020c220320012802044b0d0020022003104f20022802002104200120022802042201200310110d002000200336020820002001360204200020043602000c020b200041003602040c010b200041003602040b200241106a24000b7a01047f230041106b2203240002402000280208220520026a220420054f04402004200028020422064b0d01200341086a2005200420002802001085012003280208200328020c2001200241f0af04102d20002004360208200341106a24000f0b4190ae04411c41d0af041013000b2004200641e0af041015000ba70101017f230041306b2201240020014180800136020041d4b4042001100320014180800136022c200141d4b4043602282001200141286a103220012d00000440200141003a000041c0860441c100200141d48404418487041036000b20002001290102370001200041096a2001410a6a290100370000200041116a200141126a290100370000200041186a200141196a290000370000200020012d00013a0000200141306a24000b860101017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a41023602002005412c6a41023602002005413c6a4102360200200541c4970436022020054100360218200541033602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101c000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b0b002000200141141088010bbe0101027f200045044020010f0b02402000200020016a41016b410020016b7122014d0440024041ccb404280200220020016a22032000490d0041d0b4042802002003490440200141ffff036a22002001490d032000411076220240002200417f46200041ffff0371200047720d032000411074220020024110746a22032000490d034100210241d0b4042003360200200020016a22032000490d010b41ccb4042003360200200021020b20020f0b41b0ad04411c4194ad041013000b41000b890301077f230041106b220524002000027f0240027f02400240200204400240200141004e044020032802080d01200520012002106a2005280200210420052802040c050b200041086a41003602000c050b20032802042209450440200541086a20012002106a20052802082104200528020c0c040b200120026a41016b410020026b7122082001490d01200141ccb404280200220620086a22072006490d031a2003280200210a41d0b4042802002007490440200841ffff036a22032008490d032003411076220740002203417f46200341ffff0371200347720d032003411074220620074110746a22032006490d0341d0b40420033602002001200620086a22072006490d041a0b41ccb404200736020020012006450d031a2006200a2009100a210420010c030b20002001360204200041086a41003602000c030b41b0ad04411c4194ad041013000b20010b21072004044020002004360204200041086a200736020041000c020b20002001360204200041086a20023602000b41010b360200200541106a24000b1f00024020014181808080784704402001450d012000103d000b0f0b103c000b4601017f230041206b22002400200041146a41013602002000411c6a4100360200200041b8910436021020004184ae0436021820004100360208200041086a41c09104101c000b5f01017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141f09204360218200141003602102001410536022c2001200141286a36022020012001410c6a360228200141106a41809304101c000b6401017f230041306b22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a101820002002290308370300200241306a24000b910101017f230041d0006b22022400200241086a41e081042001105a20022d00084102460440200220022d00093a002f2002413c6a4101360200200241c4006a4101360200200241908204360238200241003602302002410136024c2002200241c8006a36024020022002412f6a360248200241306a41808304101c000b2000200241086a4121100a1a200241d0006a24000b2000230041106b2201240020000440200141086a200010410b200141106a24000b0b002000200141101088010b0e002000280200200028020c10400b5201017e0240200241fcffffff0720016e4b0440410021010c010b2001ad2002ad7e22034220885004402003a72102410421010c010b41a08404412141c484041013000b20002001360204200020023602000b1b002000418180014f0440200041808001419487041015000b20000b0f0020002001200241cc9d041089010b5201017f230041206b220124002001410c6a4101360200200141146a410136020020014190ab04360208200141003602002001410436021c200120003602182001200141186a3602102001418c8e04101c000b910101017f230041306b22022400200241146a41013602002002411c6a410136020020024190ab043602102002410036020820024103360224200220002d0000410274220041a4b4046a28020036022c2002200041b8b4046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a107b200241306a24000b0b002000280200200110190bf30101057f230041306b220224000240027f4100200141016a2201450d001a2000280200220320036a22042003490d01200241086a41042004200120012004491b2201200141044d1b22041041200228020c210120022802082105024020030440200041046a280200210620022003104120022006360220200220022903003702240c010b200241003602280b200241106a20052001200241206a103a20022802104504402002280214210120002004360200200041046a20013602004181808080780c010b20022802142101200241186a2802000b210320012003103b200241306a24000f0b41a084044121419491041013000b100020012002102f20022000200110340bed0101087f230041106b2206240020002002102020002802002205200028020822034f044002402002452003200546720d00200120024104746a2108200028020420034104746a2104200320056b41016a21030340200141086a280200210720012802002109200641086a2001410c6a2802002205104c2006280208210a200628020c20072005100a21072004410c6a2005360200200441086a2007360200200441046a200a360200200420093602002003450d01200341016a2103200441106a2104200141106a22012008470d000b0b20002002360208200641106a24000f0b41808004412141b485041013000b3501017f230041106b22022400200241086a2001104f200228020c21012000200228020836020020002001360204200241106a24000b4201027f230041106b22012400200141086a2000100d20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0bc60501097f230041106b2205240020052001103302402005280204220404402005280200210a024020052802082203450d00200341076b22014100200120034d1b2108200441036a417c7120046b2109034002400240024002400240024002400240200220046a2d00002206411874411875220741004e0440200920026b4103712009417f46720d0220022008490d010c060b02400240200641a4a6046a2d000041026b0e03040100060b200241016a220120034f0d05200120046a2c000021010240024002400240200641f0016b0e050100000002000b2007410f6a41ff017141024b200141004e720d0820014140490d020c080b200141f0006a41ff01714130490d010c070b2001418f7f4a0d060b200241026a220120034f0d05200120046a2c000041bf7f4a0d05200241036a220120034f0d05200120046a2c000041bf7f4c0d040c050b200241016a220120034f0d04200120046a2c00002101024002400240200641e001470440200641ed01460d012007411f6a41ff0171410c490d022007417e71416e47200141004e720d0820014140490d030c080b200141607141a07f460d020c070b200141a07f480d010c060b200141bf7f4a0d050b200241026a220120034f0d04200120046a2c000041bf7f4c0d030c040b0340200220046a2201280200200141046a28020072418081828478710d052002200241086a22014d04402008200122024d0d070c010b0b41f09504411c4194a6041013000b200241016a21020c050b200241016a220120034f0d01200120046a2c000041bf7f4a0d010b200141016a21020c030b200041003602040c060b200221010b200120034f0d0220012003200120034b1b21020340200120046a2c00004100480440200121020c020b2002200141016a2201470d000b0c020b20022003490d000b0b20002003360208200020043602042000200a3602000c010b200041003602040b200541106a24000b5b01027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20012001417f73411f76106a200228020822030d012001103d000b103c000b2000200336020420002001360200200241106a24000b851102047f017e230041b0016b22012400200141286a20004128100a1a024002400240024002400240024002400240024002400240200128022841016b0e080102030405060708000b20014280800137028401200141d4b4043602800120014180016a2202102e200141a8016a20014188016a28020036020020012001290380013703a001200141e0006a2200200141a0016a220441e088041051200141f0006a220320001052200129037021052001410036028801200120053703800141ec880441202002104a200141286a4104722002101a2001200129038001370370200141106a2003200128028801101b200220012802102001280214102c200141086a2001280260220320012802642001280268220041d887041010200141003602a801200120012903083703a00120022004101a2000200020012802a8016a22004b0d09200141d8006a2000360200200120033602602001200129036037035020014180016a200141d0006a10530c080b20014280800137028401200141d4b4043602800120014180016a2200102e200141a8016a20014188016a28020036020020012001290380013703a0012000200141a0016a220341a4890410542001200141286a4104723602a801200141233602a401200141b089043602a001200141f0006a22022000200310552000200210530c070b20014280800137028401200141d4b4043602800120014180016a2200102e200141a8016a20014188016a28020036020020012001290380013703a0012000200141a0016a220341ec890410562001200141286a4104723602a801200141253602a401200141f889043602a001200141f0006a22022000200310552000200210530c060b20014280800137028401200141d4b4043602800120014180016a2200102e200141a8016a20014188016a28020036020020012001290380013703a0012000200141a0016a220341b88a0410562001200141286a4104723602a801200141253602a401200141c48a043602a001200141f0006a22022000200310552000200210530c050b20014280800137028401200141d4b4043602800120014180016a2200102e200141a8016a20014188016a28020036020020012001290380013703a0012000200141a0016a220341848b0410512001200141286a4104723602a801200141263602a401200141908b043602a001200141f0006a22022000200310552000200210530c040b20014280800137028401200141d4b4043602800120014180016a2200102e200141a8016a20014188016a28020036020020012001290380013703a0012000200141a0016a220341cc8b0410542001200141286a4104723602a801200141223602a401200141d88b043602a001200141f0006a22022000200310552000200210530c030b20014280800137028401200141d4b4043602800120014180016a2200102e200141a8016a20014188016a28020036020020012001290380013703a0012000200141a0016a220341948c0410562001200141286a4104723602a801200141243602a401200141a08c043602a001200141f0006a22022000200310552000200210530c020b20014280800137028401200141d4b4043602800120014180016a2200102e200141a8016a20014188016a28020036020020012001290380013703a0012000200141a0016a220341dc8c0410562001200141286a4104723602a801200141243602a401200141e88c043602a001200141f0006a22022000200310552000200210530c010b20014280800137028401200141d4b4043602800120014180016a2202102e200141e8006a220020014188016a2802003602002001200129038001370360200141f0006a2203200141e0006a105220012903702105200141003602880120012005370380014184ae0441002002104a2002418c8d04411c10342001200129038001370370200141206a2003200128028801101b200220012802202001280224102c200141186a2001280260220320012802642000280200220041d887041010200141003602a801200120012903183703a0012002200141a0016a101a2000200020012802a8016a22004b0d02200141d8006a200036020020012003360260200120012903603703502001200141286a4104723602a801200141293602a401200141a88d043602a001200141f0006a2200200141d0006a200141a0016a105520014180016a200010530b200141a8016a20014188016a280200360200200120012903800122053703a00120014190016a2802002100200128028c01200141003602880120012005370380010240024002400240024002400240024002400240200128022841016b0e080102030405060708000b20014180016a220241001031200141286a4104722002101a200141cc006a280200200210190c080b20014180016a220241011031200128022c20021019200141306a28020020021019200141386a2802002001413c6a2802002002104a0c070b20014180016a220241021031200128022c20021019200141306a28020020021019200141386a2802002001413c6a2802002002104a0c060b20014180016a220241031031200128022c20021019200141306a280200200210190c050b20014180016a220241041031200128022c200210190c040b20014180016a220241051031200128022c20021019200141346a280200200141386a2802002002104a20022001413c6a2d000010310c030b20014180016a220241061031200128022c20021019200141346a280200200141386a2802002002104a20022001413c6a2d000010310c020b20014180016a220241071031200128022c200210190c010b20014180016a220241081031200128022c20021019200141306a2002101a0b20012001290380013703a0012001200141a0016a200128028801101b200020012802002001280204100620012802281a200141b0016a24000f0b41a08104411c41e887041013000b41a08104411c41e887041013000b0d002000200120024119108a010b5301037f230041106b2202240020012802082203200128020422044b0440200320044190b0041045000b200241086a2003200420012802001085012000200229030837020020004100360208200241106a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101b20022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b0d002000200120024116108a010bf90102037f017e230041d0006b22032400200341106a22052001105220032903102106200341003602282003200637032020022802002002280204200341206a2204104a20022802082802002004101920032003290320370310200341086a20052003280228101b20042003280208200328020c102c20032001280200220520012802042001280208220241d88704101020034100360248200320032903003703402004200341406b101a2002200220032802486a22044b044041a08104411c41e887041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b0d002000200120024118108a010b3501017f230041106b22002400200042808001370204200041d4b40436020020004101103120001030410120002802081044105d000b4c01017f230041106b22022400200242808001370204200241d4b4043602002002410010312002200141ff0171410847047f20024101103120010541000b1031200020022802081044105d000b7301027f230041106b22022400200242808001370204200241d4b404360200024020012d00002203410247044020024100103120034504402002410010312001280204200210190c020b200241011031200220012d000110310c010b200241011031200210300b200020022802081044105d000beb0201047f230041d0006b2203240020034100360218200342808001370224200341d4b4043602202001200341206a2204104820022004101920032003290320370310200341086a200341106a2003280228101b200328020c210220032802082003280210210120032003280214220636022020022001200410002102200320032802202001200641b0860410140240024002400240410c20022002410c4f1b0e0402010100010b200041003a00000c020b2003412c6a4101360200200341346a4100360200200341c0870436022820034184ae0436023020034100360220200341206a41c88704101c000b200328020021012003200328020436024c20032001360248200341206a200341c8006a103220032d00200440200041023b00000c010b20002003290021370001200041196a200341396a290000370000200041116a200341316a290000370000200041096a200341296a290000370000200041013a00000b200341d0006a24000bb40102057f017e230041306b2201240020014100360218200142808001370224200141d4b4043602204100200141206a2202101920012001290320370310200141086a200141106a22032001280228101b200128020c2104200128020820012903102106200141003602282001200637032020002802202002101920002002101a20002802242002101920012001290320370310200120032001280228101b20042001280200200128020410071a200141306a24000b6601017f230041306b2202240020024100360218200242808001370224200241d4b4043602202000200241206a2200104820012000101920022002290320370310200241086a200241106a2002280228101b2002280208200228020c10081a200241306a24000b0d00200041d4b40420011009000b854702127f037e230041b0036b22002400024002400240024002400240024002400240024002400240024002400240027f0240103741ff017141054604402000418080013602880341d4b40420004188036a22011002200041d0016a20002802880341d4b4044180800141b086041014200020002903d0013703d8022000410036028803200041d8026a2001410410110d0e200028028803220741187621042007411076210120074108762106027f02400240024002400240024002400240200741ff0171220741106b0e050317171701000b0240024002400240024002400240024002400240024020074197016b0e03092101000b0240200741cf016b0e050a2121210c000b20074108460d072007413d460d02200741d200460d03200741f100460d012007418901460d05200741bd01460d04200741cb01470440200741dc01460d07200741fb0147200641ff01714189014772200141ff0171413647200441e4004772720d2141060c120b200641ff017141fe0147200141ff017141fb014772200441ec0147720d20200041f8006a200041d8026a100e20002802780d20200028027c2202410876210341000c110b200641ff017141f20047200141ff0171410c47722004411e47720d1f20004180016a200041d8026a100e2000280280010d1f2000280284012202410876210341010c100b200641ff01712202413c460d0e200241cc0147200141ff017141f90047722004418d0147720d1e20004188036a200041d8026a10212000280290032208450d1e2000280294032209410876210a20002f00890320002d008b03411074722103200028028c03210420002d008803210241070c0f0b200641ff017141ff0147200141ff017141c60147722004411c47720d1d20004188016a200041d8026a100e2000280288010d1d200028028c012202410876210341030c0e0b200641ff017141d50047200141ff017141054772200441e40147720d1c20004198016a200041d8026a100e2000280298010d1c200028029c01210220004190016a200041d8026a100e2000280290010d1c20002802940121042002410876210341040c0d0b200641ff017141dd0047200141ff017141df014772200441cd0147720d1b41050c0c0b200641ff0171412f47200141ff017141f5004772200441e40147720d1a20004188036a200041d8026a10212000280290032208450d1a2000280294032209410876210a20002f00890320002d008b03411074722103200028028c03210420002d008803210241080c0b0b200641ff017141a70147200141ff017141a60147722004410f47720d19200041a0016a200041d8026a100e20002802a0010d1920002802a4012202410876210341090c0a0b200641ff0171410247200141ff017141e7004772200441c00047720d18410a0c090b200641ff017141a30147200141ff017141ee0147722004410947720d1720004188036a200041d8026a101e20002d00940322094102460d1720002f00890320002d008b0341107472210320002f00950320004197036a2d000041107472210a2000280290032108200028028c03210420002d0088032102410b0c080b200641ff017141be0147200141ff0171418b014772200441cc0147720d16200041b8016a200041d8026a100e20002802b8010d1620002802bc012102200041b0016a200041d8026a100d20002d00b0014101710d1620002d00b1010e020504160b200641ff017141b10147200141ff017141fd004772200441be0147720d15200041c0016a200041d8026a100e20002802c0010d1520002802c40122024108762103410d0c060b200641ff017141b90147200141ff0171413447720d1420044103460d010c140b200641ff017141fe0047200141ff017141334772200441ea0147720d13200041c8016a200041d8026a100e20002802c8010d1320002802cc01210220004188036a200041d8026a103220002d0088030d13200041f8016a2000419e036a290100370300200041ff016a200041a5036a280000360000200020004196036a2901003703f0012002410876210320004191036a2800002209410876210a20004195036a2d00002105200028008d0321082000280089032104410f0c040b20004188036a200041d8026a103220002d0088030d12200041f8016a200041a5036a28000036020020002000419d036a2900003703f001200028028c032202410876210320004198036a2802002209410876210a2000419c036a2d0000210520004194036a280200210820004190036a280200210420002f018a03210b20002d008903210c410e0c030b20004188036a200041d8026a104e200028028c032208450d11200028029003210920002802880321040b200041a8016a200041d8026a100d20002d00a8014101710d10410221050240024020002d00a9010e020100120b200041d8026a104d41ff017122014102460d11200141017121050b2009410876210a20024108762103410c0c010b200141ff017141a201472004413247720d0f20004188036a200041d8026a103220002d0088030d0f200041f8016a200041a5036a28000036020020002000419d036a2900003703f001200028028c032202410876210320004198036a2802002209410876210a2000419c036a2d0000210520004194036a280200210820004190036a280200210420002f018a03210b20002d008903210c41020b210f200041e7016a200041ff016a280000360000200041e0016a200041f8016a290300370300200020002903f0013703d801200041003602c00220004280800137028c03200041d4b40436028803410020004188036a2206101920002000290388033703b802200041f0006a200041b8026a200028029003101b20002802742107200028027020002802b8022101200020002802bc02220e3602880320072001200610002106200041e8006a2000280288032001200e41b0860410140240024002400240410c20062006410c4f1b0e0400030301030b200028026c210120002000280268360298022000200136029c02200041e0006a20004198026a100e024020002802600d002000280264210120004188036a20004198026a103220002d0088030d00200041e0026a220d20004192036a290100370300200041e8026a220e2000419a036a290100370300200041ef026a2210200041a1036a2900003700002000200029018a033703d80220002d0089032111200041d8006a20004198026a100e2000280258450d020b20004194036a41013602002000419c036a4100360200200041c48e04360290030c120b20004194036a41013602002000419c036a4100360200200041e48e04360290030c110b200941ff0171200a410874722107200241ff01712003410874722106200028025c210220004188026a201029000037000020004181026a200e290300370000200041f9016a200d290300370000200020002903d8023700f1012000200136029002200020113a00f0012000200236029402024002400240024002400240024002400240200f41016b0e0f010203040d0e050607111615141312000b200041d8026a2006101f20004194036a200041e0026a280200360200200020002903d80237028c032000410036028803230041106b22012400200142808001370204200141d4b404360200024020004188036a2202280200450440200141001031200241086a28020022054504402001410010310c020b20014101103120052002410c6a2802002001102a0c010b200141011031200110300b0c1a0b200041d8026a22022006103f20004188036a220141017220024121100a1a200041003a008803230041106b22022400200242808001370204200241d4b404360200024020012d000045044020024100103120012d00014504402002410010310c020b200241011031200141026a2002101a0c010b200241011031200210300b410020022802081044105d000b200041a4036a200041e0016a280200360200200020053a009b03200020073600970320002008360093032000200436008f032000200636008b032000200b3b0089032000200c3a008803200020002903d80137029c03230041306b22012400200141286a20004188036a220241186a290000370300200141206a200241106a290000370300200141186a200241086a29000037030020012002290000370310200141086a200141106a103e200041086a2001290308370300200141306a240020002802082102200028020c2105230041106b22012400200142808001370204200141d4b404360200200141001031024020024504402001410010310c010b2001410110312005200110190b0c180b200041d8026a2006101720004190036a200041e0026a290300370300200020002903d80237038803230041106b22012400200142808001370204200141d4b404360200024020004188036a22022d000c22054103470440200141001031200541024604402001410010310c020b2001410110312002200110250c010b200141011031200110300b0c170b20004188036a2006101f200028028c032201450d062000280290032102200020002802880336028803200020013602940320002001200241047422056a220636029003027f0240027f02402002044020004188036a410472210303402000200128020822023602d8022002450d02200420012902002212a7460d04200141106a2101200541106b22050d000b0b2000200636028c03200041d8026a210341000c010b200141106a0b210120032001360200410021024100210441030c010b2000200141106a36028c032012422888a72104200128020c21012012422088a70b210520004188036a10422002450c070b200041d8026a1035200041a0036a200041f0026a29030037030020004198036a2202200041e8026a220329030037030020004190036a2209200041e0026a220a290300370300200020002903d80237038803200041206a20004188036a1018410021010240027f024002402000280220450d0020002802242105200041a0036a200041f0026a290300370300200220032903003703002009200a290300370300200020002903d80237038803200041b8026a20004188036a105f20002d00b802210120002802bc022202450d00200020002d00bb023a009b02200020002f00b9023b009902200020002802c0023602a0022000200236029c02200020013a009802200041186a2007104c20002802182109200028021c20082007100a210a4104210120074180014d0440200041b8026a200028029c0220002802a002104b200020002802bc02220136029403200020002802b802360288032000200120002802c002220341047422026a220b3602900302402003044020004188036a4104722103034020002001280208220c3602b802200c450d0520012802002006460d02200141106a2101200241106b22020d000b0b2000200b36028c03200041b8026a210341000c040b2000200141106a36028c0320004188036a1042410221010b20004198026a10230b41012102200141ff01714108460d020c170b200141106a0b21012003200136020020004188036a2201104220004194036a2202200736020020004190036a2203200a3602002000200936028c03200020063602880320004198026a2209200110222005200028029c0220002802a00210292000419c036a200736020020004198036a200836020020022004360200200320063602002000200536028c03200041013602880320011050200910230b20004188036a2201200041f0016a4128100a1a2001105b41082101410021020c140b200041d8026a1035200041a0036a200041f0026a29030037030020004198036a2202200041e8026a220329030037030020004190036a2209200041e0026a220a290300370300200020002903d80237038803200041306a20004188036a10184100210102402000280230450d0020002802342105200041a0036a200041f0026a290300370300200220032903003703002009200a290300370300200020002903d80237038803200041b8026a20004188036a105f20002d00b802210120002802bc022209450d00200020002d00bb023a009b02200020002f00b9023b009902200020002802c002220a3602a0022000200936029c02200020013a009802200041286a2007104c2000280228210f200028022c20082007100a210d024020074180014d0440200041b8026a200028029c02220e20002802a0022210104b200020002802bc02220c36029403200020002802b802360288032000200c20002802c002220141047422116a220b36029003027f024002402001450d00410021014100210303402001200c6a220241086a280200044020022802002006460d03200341016a21032011200141106a2201470d010c020b0b200241106a210b0b2000200b36028c034100210241030c010b2000200241106a36028c032003200a4f0d05200120096a220120063602002001410c6a2007360200200141086a200d360200200141046a200f3602004101210241080b210120004188036a10422002450d012005200e201010292000419c036a200736020020004198036a200836020020004194036a200436020020004190036a20063602002000200536028c03200041023602880320004188036a105020004198026a10230c130b410421010b20004198026a10230b41012102200141ff01714108460d100c130b200041d8026a1035200041a0036a200041f0026a29030037030020004198036a2201200041e8026a220229030037030020004190036a2205200041e0026a2204290300370300200020002903d80237038803200041386a20004188036a10182000280238047f200028023c2108200041a0036a200041f0026a2903003703002001200229030037030020052004290300370300200020002903d80237038803200041b8026a20004188036a105f20002d00b802210120002802bc022205450d08200020002d00bb023a009b02200020002f00b9023b0099022000200536029c02200020013a009802024020002802c00222040440410021022005210103402006200128020046044041012103200241016a220104402001200447044003400240024002402006200520014104746a2202280200460440200141016a2201450d01200341016a22030d0341a08104411c41f484041013000b20012003490d012005200120036b4104746a22072002290200370200200741086a200241086a290200370200200141016a22010d0241a08104411c419485041013000b41a08104411c41e484041013000b418080044121418485041013000b20012004470d000b0b024020034100200320044b1b450440200320044d0d0141808004412141cc81041013000b41808004412141bc81041013000b2000200420036b22013602a0022003450d04200820052001102920004190036a20063602002000200836028c03200041033602880320004188036a105020004198026a10230c0e0b41a08104411c41e484041013000b200141106a21012004200241016a2202470d000b0b200020043602a0020b20004198026a102341030541000b2101410121020c120b2003200a41b488041060000b20004194036a41013602002000419c036a4100360200200041c087043602900320004184ae0436029803200041003602880320004188036a41c88704101c000b200041043a00880320004188036a1046000b41002104410121054100210241010b20004194036a200136020020004190036a200236020020004100360288032000200541ff017120044108747236028c03230041106b22012400200142808001370204200141d4b404360200024020004188036a2202280200450440200141001031200241086a2802002205044020014100103120052002410c6a2802002001104a0c020b200141011031200120022d000410310c010b200141011031200110300b20012802081044105d000b20004188036a2108230041f0006b22032400200041f0016a22012802242102200320013602202003200236021c20034100360218200341386a200341186a101602400240024002400240024020032d004841024604402008410036020820084280808080c0003702000c010b200341106a4104103820032802142202450d01200328021022014100480d012001200210392206450d0220062003290338370200200641106a200341c8006a2209280200360200200641086a200341406b220a290300370200200341306a200341206a28020036020020032003290318370328200341386a200341286a1016024020032d0048410246044041042102410121050c010b41042101410121040340200441016a22054521070240200120044704402006200441146c6a22022003290338370200200241106a2009280200360200200241086a200a29030037020020070d08200121020c010b027f20070440417f21022005210441000c010b200120016a22022001490d07200341086a410420022005200220054b1b2202200241044d1b22021038200328020c210b200328020821042003200110382003200636026020032003290300370264200341d0006a2004200b200341e0006a103a2003280250450440200328025421064181808080780c010b200328025421042001210220032802580b210b2004200b103b2006200141146c6a22012003290338370200200141106a2009280200360200200141086a200a29030037020020070d070b200341386a200341286a1016200221012005210420032d00484102470d000b0b2008200536020820082006360204200820023602000b200341f0006a24000c040b103c000b2001103d000b41a084044121419491041013000b41a08104411c41a485041013000b200028028c0321022000280290032105230041106b22012400200142808001370204200141d4b40436020002402002044020014100103120052001102f2005450d012002200541146c6a21050340200228020020011019200241046a20011025200241146a22022005470d000b0c010b200141011031200110300b0c0d0b200041d8026a1035200041a0036a200041f0026a29030037030020004198036a2202200041e8026a220529030037030020004190036a2203200041e0026a2204290300370300200020002903d80237038803200041106a20004188036a1018200020002802102206410146047e42810e05200041003602c00220004280808080c0003703b8022001410441001029200041a0036a200041f0026a22082903003703002002200529030037030020032004290300370300200020002903d8023703880320004188036a2202200110282001200041d8026a10262000200141016a2203417f20031b36029002200041a4036a20082903003702002000419c036a200529030037020020004194036a2004290300370200200041ac036a2001360200200020002903d80237028c03200041003602880320021050200041b8026a10232002200041f0016a4128100a1a2002105b2001ad42208642800e840b37038803200641014620004188036a1059000b41012102200141ff01714108470d0a0b20004188036a2201200041f0016a4128100a1a2001105b41082101410021020c090b200041d8026a1035200041a0036a200041f0026a29030037030020004198036a2205200041e8026a22042903003703004108210120004190036a2203200041e0026a2206290300370300200020002903d80237038803200041406b20004188036a1018024020002802402208450440410021010c010b20002802442102200041a0036a200041f0026a2903003703002005200429030037030020032006290300370300200020002903d8023703880320004188036a2205102b41e081042002105c41ec81042002105c20004104360288032000200236028c03200510502005200041f0016a4128100a1a2005105b0b20084520011058000b200041ad026a200041e0016a290300370000200041b4026a200041e7016a280000360000200020053a00a402200020073602a0022000200836029c022000200436029802200020002903d8013700a502200041b8026a103520004188036a41e881042006105a20002d0088034102470440200041d8026a20004188036a4121100a1a200041a1036a200041d0026a29030037000020004199036a200041c8026a29030037000020004191036a200041c0026a290300370000200020002903b8023700890341012102200041013a00880320002d00d8020440200041d8026a41017220004188036a410172106141017321020b20004188036a2006103f027f027f20002d0088030440200041f0026a200041a1036a290000370300200041e8026a20004199036a290000370300200041e0026a20004191036a29000037030020002000290089033703d80241002002200041d8026a200041b8026a1061410173710d011a200041a0036a200041b0026a29030037030020004198036a200041a8026a29030037030020004190036a200041a0026a290300370300200020002903980237038803200041d0006a20004188036a103e410720002802504101460d011a200041a0036a2205200041f0026a29030037030020004198036a2204200041e8026a2903003703004108210120004190036a2203200041e0026a290300370300200020002903d8023703880320004188036a2202102b2005200041b0026a2903003703002004200041a8026a2903003703002003200041a0026a290300370300200020002903980237038803200220061028200620004198026a10262002200041f0016a4128100a1a2002105b41000c020b41000b210141010b20011058000b200020002d0089033a00ff02200041e4026a4101360200200041ec026a41013602002000419082043602e002200041003602d8022000410136028403200020004180036a3602e8022000200041ff026a36028003200041d8026a41808304101c000b41082101200041d4026a200041e0016a280200360200200020053a00cb02200020073600c702200020083600c302200020043600bf02200020063600bb022000200b3b00b9022000200c3a00b802200020002903d8013702cc02200041d8026a1035200041a0036a200041f0026a29030037030020004198036a2202200041e8026a29030037030020004190036a2205200041e0026a290300370300200020002903d80237038803200041c8006a20004188036a1018024020002802482204450440410021010c010b41e88104200028024c2203200041b8026a1027200520002903b8023703002002200041c0026a290300370300200041a0036a200041c8026a290300370300200041a8036a200041d0026a2903003703002000200336028c03200041083602880320004188036a220210502002200041f0016a4128100a1a2002105b0b20044520011058000b200041d8026a2202103541002101027f02402002200041f0016a10610440200041b8026a2006101720002d00c4024102470d01410321010b41010c010b41e481042006105c20004107360288032000200636028c0320004188036a220110502001200041f0016a4128100a1a2001105b4108210141000b20011058000b200041d8026a22011035027f027f41002001200041f0016a1061450d001a20004188036a2006101720002d00940322024102470440200041c0026a20004190036a280000360000200041c7026a20004197036a2d00003a000020002000290089033700b902200020002f0095033b00c502200020023a00c402200020002d0088033a00b802024020080440200741c0004b0d01200020073602c002200020083602bc02200020043602b8020b20054102470440200020053a00c402200521020b2006200041b8026a10244108210120004190036a20002903b80237030020004198036a200041c0026a2802003602002000419c036a20023a00002000200636028c03200041063602880320004188036a220210502002200041f0016a4128100a1a2002105b41000c030b41060c010b41030b210141010b20011058000b200020073602c402200020083602c002200020043602bc02200020063602b802200041d8026a22011035027f02402001200041f0016a1061044042800c2112200841c100490d010b4201211341010c010b2002200041b8026a10242000200241016a2201417f20011b3602940220004190036a20002903b80237030020004198036a200041c0026a2802003602002000419c036a20093a00002000200236028c03200041053602880320004188036a220110502001200041f0016a4128100a1a2002ad42208621142001105b4200211241000b2000201242800e832013842014843703880320004188036a1059000b20004188036a2201200041f0016a4128100a1a2001105b41082101410021020c020b1057000b20004184ae0436029803200041003602880320004188036a418c8e04101c000b200220011058000b410020012802081044105d000bb60101017f230041306b22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a1018024020022802080440200241106a200228020c101f2002280214220104402000200228021836020820002001360204200020022802103602000c020b20004100360204200041013a00000c010b20004100360204200041013a00000b200241306a24000b7501017f230041306b220324002003200136020420032000360200200341146a41023602002003411c6a41023602002003412c6a4105360200200341e4960436021020034100360208200341053602242003200341206a360218200320033602282003200341046a360220200341086a2002101c000b0b00200020014120100b450bd209020f7f017e23004190016b22002400024002400240024002400240103741ff01712201410546044020004180800136025841d4b404200041d8006a22011002200041186a200028025841d4b4044180800141b0860410142000200029031837032020004100360258200041206a2001410410110d032000280258220141187621042001411076210220014108762103200141ff0171220141054704402001419b0147200341ff017141ae014772200241ff0171419d0147200441de004772720d04200041306a22011035200042003703500c070b200341ff017141e50047200241ff017141c3004772200441ac0147720d03200041106a200041206a100c20002802100d0320004180016a200028022441047622012000280214220320012003491b10202003450d01200041e5006a21040340200041d8006a200041206a101e0240024020002d006422054102470440200041386a2206200041e0006a2802003602002000412e6a2207200441026a2d00003a000020002000290358370330200020042f00003b012c2000280288012202200028028001460d010c020b20004180016a10230c060b20004180016a2002104920002802880121020b200028028401220820024104746a22012000290330370200200120053a000c200120002f012c3b000d200141086a20062802003602002001410f6a20072d00003a0000200241016a220504402000200536028801200341016b22030d010c040b0b41a08104411c41d095041013000b200020013a0058200041d8006a1046000b200028028801210520002802840121080b2000412a6a220120002d0083013a0000200020002f0081013b01282008450d0020002d00800121042000412e6a20012d000022013a0000200020002f012822023b012c200020043a008001200020023b008101200020013a00830120002005360288012000200836028401200041d8006a200510202000280258220620002802602201490d01200028025c210402402005452001200646720d00200420014104746a210a200120066b41016a2103200541047441106b210b41002102200041326a210c0340200220086a220741046a2802002101200041086a200741086a2802002209104c2000280208210d200028020c20012009100a210e2002200a6a2201410c6a2007410c6a2d00003a0000200141086a2009360200200141046a200e3602002001200d3602002001410d6a20002f00303b00002001410f6a200c2d00003a00002003450d01200341016a21032002200b47200241106a21020d000b0b02402005450d00200541047421034100210220042101034020012d000c4102460d01200041386a200141086a290200220f37030020002001290200370330200fa741c1004f0d04200141106a21012002200041306a1024200241016a2102200341106b22030d000b0b200620041040200041306a22011035200020053602542000410036025020004180016a10230c030b1057000b41808004412141b485041013000b200041e4006a4101360200200041ec006a4100360200200041888f0436026020004184ae0436026820004100360258200041d8006a41908f04101c000b200041d8006a220420014128100a1a2004105b230041106b22012400200142808001370204200141d4b404360200200141001031200141001031410020012802081044105d000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41a08f04200241086a1064200241206a24000bee0301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1101000d040b200141086a2101200428020020042802042106200441086a2104200341186a2006110200450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1101000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a107a20032003290310370320200341086a2005200141046a107a20032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110200450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1101000d010b41000c010b41010b200341406b24000b0f00200028020020012002106641000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a20002003200210692004280208200428020c103b200028020821030b200028020420036a20012002100a1a2003200220036a22014b044041c08f04411c41e095041013000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10660c020b230041106b22042400200441086a20002003410110692004280208200428020c103b200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41c08f04411c41d095041013000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1063200241206a24000bdd0101027f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22052002490d0141082005200320032005491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200420032005200441106a103a20042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41e08f044121419491041013000bd00101037f02402001450440200221030c010b02402001200120026a41016b410020026b7122054d044041ccb404280200220220056a22042002490d0241d0b4042802002004490440200541ffff036a22022005490d022002411076220340002202417f46200241ffff0371200247720d022002411074220220034110746a22042002490d024100210341d0b4042004360200200220056a22042002490d030b41ccb4042004360200200221030c020b41b0ad04411c4194ad041013000b410021030b20002001360204200020033602000bd806020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e220641017441db98046a2f00003b0000200241026b2004200641e4006c6b41ffff037141017441db98046a2f00003b0000200041046b2100200e42ffc1d72f56200d210e0d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff037141017441db98046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a200241017441db98046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b210241002104200541047104404184ae04210420024184ae044184ae04107120026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a28020022012007200410740d01200220082006200128020c11010021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a2007200410740d02200341106a2001200920026b4101107520032802142202418080c400460d022003280210200520082006200a28020c1101000d0220022005200a10760d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a28020022012007200410740d01200220082006200128020c11010021000c010b41012100200341086a2001200920026b41011075200328020c2205418080c400460d00200328020820012802002202200141046a28020022012007200410740d00200220082006200128020c1101000d00200520022001107621000b200341406b240020000f0b41f09504411c41a49b041013000b4190960441214180ab041013000b0300010b0e0020002802001a03400c000b000b0d0042f2e7eb9187bab2c1d1000b4a01017f230041106b22052400200220034904402003200220041045000b200541086a2003200220011070200528020c21012000200528020836020020002001360204200541106a24000b1500200020012002200341e8b204419096041087010ba704010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d002001200010722206200020016a22082004417c716a200441037110726a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41809f041073200328020c21052003280208210820032003280200200328020422002000417c714190a0041073200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41f09504411c4198a2041013000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441f09504411c41c8a2041013000b41f09504411c41a8a2041013000b41f09504411c41b8a2041013000b41f09504411c4188a2041013000b20012002107221020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41f09504411c41f0aa041013000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41acae04412320041013000b39000240027f2002418080c40047044041012000200220012802101102000d011a0b20030d0141000b0f0b200020034100200128020c1101000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41f09504411c41b49b041013000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110200450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110200450d000b200441016b0b2000490b4b01017f230041106b22052400200120034d0440200541086a4100200120021070200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000bea04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11010021000c020b41f09504411c41d8a3041013000b200b450440200128020020032004200128020428020c11010021000c010b2001410c6a2802002200200320046a2003107122024b0440200941086a2001200020026b4100107541012100200928020c2202418080c400460d0120092802082001280200220520032004200141046a280200220128020c1101000d01200220052001107621000c010b200128020020032004200128020428020c11010021000b200941106a240020000b140020002802002001200028020428020c1102000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044107470d0120012802000b2802002104410121030b20002004360204200020033602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1064200341206a24000bdc08010b7f23004190016b22032400200341003b0184012003410a3602800120034281808080a00137037820032002360274200341003602702003200236026c200320013602682003200236026420034100360260200028020421062000280200210720002802082108200341fc006a2109027f0340024002400240024020032d008501450440200341d8006a2003280268220c200328026c20032802702003280274107d0240024020032802582201450d00200328025c2100034002400240024002400240027f0240024002400240200328027822020440200220096a41016b2d00002104200041084f04402001200141036a417c712202460440200041086b210a410021020c040b200341d0006a200220016b22022000200020024b1b22022001200041c89c041077200341c8006a200420032802502003280254107e20032802484101470d02200328024c21010c050b200341306a200420012000107e2003280234210120032802300c050b41909604412141a8a9041013000b2002200041086b220a4b0d010b200441818284086c210b0340200241046a22052002490d04200120026a280200200b73220d417f73200d41818284086b71200120056a280200200b732205417f73200541818284086b7172418081828478710d012002200241086a22024b0d072002200a4d0d000b0b200341406b20012000200241f89c04106f200341386a200420032802402003280244107e410020032802384101470d011a2002200328023c6a220120024f0d0041f09504411c41889d041013000b41010b4101460440200141016a2200450d022000200328027022006a22022000490d0320032002360270200220032802782200490d05200341286a2003280268200328026c200220006b2002107d20032802282202450d05200328022c2100200341206a20032802782009410441d8a90410772002200020032802202003280224107f450d05200341186a200328026020032802702200200c10800120032000360260200328021c2102200328021821000c080b200320032802743602700c060b41f09504411c41d89c041013000b41f09504411c41b8a9041013000b41f09504411c41c8a9041013000b41f09504411c41e89c041013000b200341106a2003280268200328026c20032802702003280274107d20032802142100200328021022010d000b0b4100210020032d0085010d00200341013a008501024020032d008401044020032802642101200328026021040c010b2003280264220120032802602204490d0420012004460d010b200341086a200420012003280268108001200328020c2102200328020821000b20000d010b41000c050b20082d0000450d01200741d497044104200628020c110100450d010c020b41909604412141e8a3041013000b2003410a36028c0120082002047f200320002002200241016b41a0a004106f2003418c016a410120032802002003280204107f0541000b3a0000200720002002200628020c110100450d010b0b41010b20034190016a24000b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011070200528020c2107200528020821060b2000200736020420002006360200200541106a24000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b1801017f2001200346047f200020022001100b0541010b450b1500200020012002200341fca404419096041087010b5801027f230041206b22022400200128020421032001280200200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1064200241206a24000b0b002000280200200110780b18002001280200419cb4044105200128020428020c1101000b990301037f230041406a22022400200028020021034101210002402001280200220441a09704410c200141046a280200220128020c1101000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241b0970436023020024100360228200241083602142002200241106a36023820022002410c6a36021020042001200241286a107b450d010c020b20032802002200200328020428020c110a0042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241b0970436023020024100360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a107b0d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4105360200200241346a4105360200200241f896043602182002410036021020022000410c6a3602382002200041086a3602302002410336022c200220003602282002200241286a36022020042001200241106a107b21000b200241406b240020000b1500200020012002200341ccad0441e0ad041087010b1500200020012002200341e8b2044180b3041087010b2800200120024d04402000200220016b3602042000200120036a3602000f0b2005412120041013000b3701017f230041106b22032400200341086a200220011043200328020c21012000200328020836020020002001360204200341106a24000b7301017f230041306b220424002004200136020420042000360200200441146a41023602002004411c6a41023602002004412c6a41053602002004200336021020044100360208200441053602242004200441206a3602182004200441046a36022820042004360220200441086a2002101c000bf80102037f017e230041d0006b22042400200441106a22062001105220042903102107200441003602282004200737032020022802002002280204200441206a2205104a200520022802082003103420042004290320370310200441086a20062004280228101b20052004280208200428020c102c20042001280200220620012802042001280208220241d88704101020044100360248200420042903003703402005200441406b101a2002200220042802486a22054b044041a08104411c41e887041013000b20012006360200200141086a22022005360200200041086a200228020036020020002001290200370200200441d0006a24000b0b81340700418080040bb50f617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6d706163742e727300210001006a000000420000002600000000000000617474656d707420746f206164642077697468206f766572666c6f77500a01007f0000005206000035000000500a01007f0000005906000024000000b16cd67c00e945ca7733867e6dbd73333b605e7d4661696c656420746f206765742076616c756520696e204d617070696e673a20f0000100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d342e322e312f7372632f6c617a792f6d617070696e672e727318010100680000009c000000250000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e322e312f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273000000900101006d0000009d00000011000000900101006d0000009d00000030000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000001016010083000000c80100001e0000000a000000010000000100000001000000500a01007f0000006c06000015000000500a01007f0000006d06000015000000500a01007f0000007b0600003e000000500a01007f0000007f06000011000000500a01007f0000002b0b00001e000000500a01007f000000c3080000110000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e322e312f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300c40201006b000000e40000001400000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000900101006d0000006b0100000e000000900101006d0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72a40301001c000000900101006d000000ed00000017000000601701006e000000c100000037000000601701006e000000c4000000090000002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f6964656e746974792f74797065732e72730000f80301003a0000002e0000000d0000004964656e746974793a3a4964656e74697479437265617465640000000417010000000000440401004964656e746974793a3a4964656e74697479437265617465643a3a6f776e65724964656e746974793a3a416464726573734164646564000004170100000000008c0401004964656e746974793a3a4164647265737341646465643a3a6964656e746974795f6e6f4964656e746974793a3a4164647265737355706461746564000417010000000000d30401004964656e746974793a3a41646472657373557064617465643a3a6964656e746974795f6e6f4964656e746974793a3a4164647265737352656d6f76656400000004170100000000001d0501004964656e746974793a3a4164647265737352656d6f7665643a3a6964656e746974795f6e6f4964656e746974793a3a4964656e7469747952656d6f76656400000417010000000000690501004964656e746974793a3a4964656e7469747952656d6f7665643a3a6964656e746974795f6e6f4964656e746974793a3a4e6574776f726b41646465640417010000000000b60501004964656e746974793a3a4e6574776f726b41646465643a3a6e6574776f726b5f69644964656e746974793a3a4e6574776f726b5570646174656400000417010000000000fa0501004964656e746974793a3a4e6574776f726b557064617465643a3a6e6574776f726b5f69644964656e746974793a3a4e6574776f726b52656d6f7665640417010000000000440601004964656e746974793a3a4e6574776f726b52656d6f7665643a3a6e6574776f726b5f69644964656e746974793a3a5265636f766572794163636f756e745365744964656e746974793a3a5265636f766572794163636f756e745365743a3a6964656e746974795f6e6f2f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f6964656e746974792f6c69622e7273000000d1060100380000002b00000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279001c0701002700000073746f7261676520656e7472792077617320656d707479004c070100170000004e6574776f726b207270632075726c20697320746f6f206c6f6e67006c0701001b000000d106010038000000c7000000110000000a00000004000000040000000b0000000c0000000d0041c08f040be417617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000a00000000000000010000000e0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300140801007f0000008a0100001c0000006361706163697479206f766572666c6f77000000a408010011000000140801007f00000006020000050000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564004d09010015000000620901000d000000d00801007d00000095010000090000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000c30901007b00000064020000200000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e727300500a01007f000000300700000d000000500a01007f0000009e07000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320320b010020000000520b0100120000003a0000000417010000000000740b010001000000740b0100010000000a00000000000000010000000f00000070616e69636b65642061742027272c20ac0b010001000000ad0b0100030000003a2000000417010000000000c00b010002000000202020202c0a280a282f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000230d01007e0000005d0500000d000000230d01007e000000ed050000380000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e727300c40d0100830000004e0000002f000000c40d0100830000005a0000001f000000c40d0100830000006300000009000000c40d0100830000006800000027000000c40d010083000000680000003e00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820980e010012000000aa0e01002200000072616e676520656e6420696e64657820dc0e010010000000aa0e0100220000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273000000fc0e010081000000c4050000250000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e7273900f010080000000fe0300002f000000900f010080000000de0800001e000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e67746820283010010015000000451001002b000000310b0100010000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273881001008000000047000000150000008810010080000000540000001100000088100100800000005a00000009000000881001008000000064000000110000008810010080000000660000000d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e727300581101007f0000009100000011000000581101007f0000004f0200002d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273000000f811010081000000ca000000130000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727300008c12010086000000e50000001500000001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041e6a7040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041a4a8040bfd042f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e727300002414010082000000a1010000470000002414010082000000b4010000200000002414010082000000b4010000110000002414010082000000b8010000260000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273e8140100880000009500000001000000dd0b01007e000000cd0100000500000004170100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e72730010160100830000002f010000180041b0ad040b51617474656d707420746f206164642077697468206f766572666c6f77e518010082000000900100004f00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f77004190ae040be504617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290a04170100000000004f170100010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e322e312f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e72730000601701006e0000005a0000001c000000601701006e0000005a00000009000000601701006e0000005a00000031000000601701006e0000006500000009000000601701006e000000830000001a000000601701006e0000008d0000002100000045636473615265636f766572794661696c656443616c6c52756e74696d654661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f64652f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e727300e5180100820000008201000047004180b3040bcb01617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6465632e7273000000a119010068000000770000000e0000004572726f72000000190000001c000000160000001400000019000000f7150100db150100c5150100b1150100981501","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"identity","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"},{"args":[{"label":"networks","type":{"displayName":["Vec"],"type":11}}],"default":false,"docs":[],"label":"init_with_networks","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x056543ac"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":35},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":38},"hash":{"displayName":["Hash"],"type":36},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":37}},"events":[{"args":[{"docs":[" Owner of the created identity."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The \`IdentityNo\` associated with the created identity."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":["Events"],"label":"IdentityCreated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The network on which a new address has been added."],"indexed":false,"label":"network","type":{"displayName":["NetworkId"],"type":2}},{"docs":[" The newly added address."],"indexed":false,"label":"address","type":{"displayName":["NetworkAddress"],"type":3}}],"docs":[],"label":"AddressAdded"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The network on which the address has been updated."],"indexed":false,"label":"network","type":{"displayName":["NetworkId"],"type":2}},{"docs":[" The updated address value."],"indexed":false,"label":"updated_address","type":{"displayName":["NetworkAddress"],"type":3}}],"docs":[],"label":"AddressUpdated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The network on which the address has been removed."],"indexed":false,"label":"network","type":{"displayName":["NetworkId"],"type":2}}],"docs":[],"label":"AddressRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got removed."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"},{"args":[{"docs":[" The \`NetworkId\` that is associated with the newly added network."],"indexed":true,"label":"network_id","type":{"displayName":["NetworkId"],"type":2}},{"docs":[" The rpc url of the network that got added."],"indexed":false,"label":"rpc_url","type":{"displayName":["String"],"type":7}},{"docs":[" The address type used on the network."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":13}}],"docs":[],"label":"NetworkAdded"},{"args":[{"docs":[" The \`NetworkId\` that is associated with the updated network."],"indexed":true,"label":"network_id","type":{"displayName":["NetworkId"],"type":2}},{"docs":[" The rpc url of the updated network."],"indexed":false,"label":"rpc_url","type":{"displayName":["String"],"type":7}},{"docs":[" The address type used on the updated network."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":13}}],"docs":[],"label":"NetworkUpdated"},{"args":[{"docs":[" The \`NetworkId\` that is associated with the network that got"," removed."],"indexed":true,"label":"network_id","type":{"displayName":["NetworkId"],"type":2}}],"docs":[],"label":"NetworkRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that set a recovery account."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The newly set recovery account."],"indexed":false,"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"RecoveryAccountSet"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the \`IdentityInfo\` of an identity that is associated with"," the provided \`IdentityNo\`."],"label":"identity","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":14},"selector":"0xcbfefbec"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"owner_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0x99720c1e"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"identity_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x713ca232"},{"args":[{"label":"network_id","type":{"displayName":["NetworkId"],"type":2}}],"default":false,"docs":[" Returns the network name that is associated with the specified \`NetworkId\`."],"label":"network_info_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":21},"selector":"0x3dffc61c"},{"args":[{"label":"receiver","type":{"displayName":["IdentityNo"],"type":2}},{"label":"network","type":{"displayName":["NetworkId"],"type":2}}],"default":false,"docs":[" Returns the destination address of a transaction that needs to be"," routed to the specified identity on the specified network."],"label":"transaction_destination","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":23},"selector":"0x525505e4"},{"args":[],"default":false,"docs":[" A list of all the available networks each associated with a \`NetworkId\`."],"label":"available_networks","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":26},"selector":"0xbd5ddfcd"},{"args":[],"default":false,"docs":[" Creates an identity and returns the \`IdentityNo\`.",""," A user can only create one identity."],"label":"create_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":29},"selector":"0xfb893664"},{"args":[{"label":"network","type":{"displayName":["NetworkId"],"type":2}},{"label":"address","type":{"displayName":["NetworkAddress"],"type":3}}],"default":false,"docs":[" Adds an address for a given network"],"label":"add_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x71cc798d"},{"args":[{"label":"network","type":{"displayName":["NetworkId"],"type":2}},{"label":"address","type":{"displayName":["NetworkAddress"],"type":3}}],"default":false,"docs":[" Updates the address of the given network"],"label":"update_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x892f75e4"},{"args":[{"label":"network","type":{"displayName":["NetworkId"],"type":2}}],"default":false,"docs":[" Removes the address by network"],"label":"remove_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xdca7a60f"},{"args":[],"default":false,"docs":[" Removes an identity"],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x08026740"},{"args":[{"label":"info","type":{"displayName":["NetworkInfo"],"type":12}}],"default":false,"docs":[],"label":"add_network","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":29},"selector":"0x97a3ee09"},{"args":[{"label":"network_id","type":{"displayName":["NetworkId"],"type":2}},{"label":"new_rpc_url","type":{"displayName":["Option"],"type":33}},{"label":"new_address_type","type":{"displayName":["Option"],"type":34}}],"default":false,"docs":[],"label":"update_network","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xcfbe8bcc"},{"args":[{"label":"network_id","type":{"displayName":["NetworkId"],"type":2}}],"default":false,"docs":[],"label":"remove_network","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x14b17dbe"},{"args":[{"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Sets the recovery account that will be able to change the ownership"," of the identity.",""," Only callable by the identity owner."],"label":"set_recovery_account","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xd3b93403"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Transfers the ownership of an identity to another account.",""," Only callable by the identity owner or any account that the identity"," owner added as a proxy."],"label":"transfer_ownership","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x107e33ea"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d5e603b","ty":0}},"name":"addresses"}],"name":"IdentityInfo"}},"root_key":"0x7d5e603b"}},"name":"number_to_identity"},{"layout":{"root":{"layout":{"leaf":{"key":"0xca45e900","ty":5}},"root_key":"0xca45e900"}},"name":"owner_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x7cd66cb1","ty":2}},"root_key":"0x7cd66cb1"}},"name":"identity_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x3373bd6d","ty":5}},"root_key":"0x3373bd6d"}},"name":"recovery_account_of"},{"layout":{"leaf":{"key":"0x00000000","ty":2}},"name":"latest_identity_no"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7e863377","ty":7}},"name":"rpc_url"},{"layout":{"enum":{"dispatchKey":"0x7e863377","name":"AccountType","variants":{"0":{"fields":[],"name":"AccountId32"},"1":{"fields":[],"name":"AccountKey20"}}}},"name":"account_type"}],"name":"NetworkInfo"}},"root_key":"0x7e863377"}},"name":"network_info_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"admin"},{"layout":{"leaf":{"key":"0x00000000","ty":2}},"name":"network_id_count"}],"name":"Identity"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"u8"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":4}}}},{"id":7,"type":{"def":{"primitive":"str"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":10}],"path":["Result"]}},{"id":9,"type":{"def":{"tuple":[]}}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"sequence":{"type":12}}}},{"id":12,"type":{"def":{"composite":{"fields":[{"name":"rpc_url","type":7,"typeName":"String"},{"name":"account_type","type":13,"typeName":"AccountType"}]}},"path":["common","types","NetworkInfo"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AccountId32"},{"index":1,"name":"AccountKey20"}]}},"path":["common","types","AccountType"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"fields":[{"type":15}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":15},{"name":"E","type":10}],"path":["Result"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":16}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":16}],"path":["Option"]}},{"id":16,"type":{"def":{"composite":{"fields":[{"name":"addresses","type":0,"typeName":"Vec<(NetworkId, NetworkAddress)>"}]}},"path":["identity","types","IdentityInfo"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"fields":[{"type":18}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":18},{"name":"E","type":10}],"path":["Result"]}},{"id":18,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":5}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":5}],"path":["Option"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":10}],"path":["Result"]}},{"id":20,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":2}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":2}],"path":["Option"]}},{"id":21,"type":{"def":{"variant":{"variants":[{"fields":[{"type":22}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":22},{"name":"E","type":10}],"path":["Result"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":12}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":12}],"path":["Option"]}},{"id":23,"type":{"def":{"variant":{"variants":[{"fields":[{"type":24}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":24},{"name":"E","type":10}],"path":["Result"]}},{"id":24,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":25}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":25}],"path":["Result"]}},{"id":25,"type":{"def":{"variant":{"variants":[{"index":0,"name":"NotAllowed"},{"index":1,"name":"IdentityDoesntExist"},{"index":2,"name":"AddressAlreadyAdded"},{"index":3,"name":"InvalidNetwork"},{"index":4,"name":"AddressSizeExceeded"},{"index":5,"name":"NetworkNameTooLong"},{"index":6,"name":"NetworkRpcUrlTooLong"},{"index":7,"name":"AlreadyIdentityOwner"}]}},"path":["identity","Error"]}},{"id":26,"type":{"def":{"variant":{"variants":[{"fields":[{"type":27}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":27},{"name":"E","type":10}],"path":["Result"]}},{"id":27,"type":{"def":{"sequence":{"type":28}}}},{"id":28,"type":{"def":{"tuple":[2,12]}}},{"id":29,"type":{"def":{"variant":{"variants":[{"fields":[{"type":30}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":30},{"name":"E","type":10}],"path":["Result"]}},{"id":30,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":25}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":25}],"path":["Result"]}},{"id":31,"type":{"def":{"variant":{"variants":[{"fields":[{"type":32}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":32},{"name":"E","type":10}],"path":["Result"]}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":25}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":25}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":7}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":7}],"path":["Option"]}},{"id":34,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":13}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":13}],"path":["Option"]}},{"id":35,"type":{"def":{"primitive":"u128"}}},{"id":36,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":37,"type":{"def":{"primitive":"u64"}}},{"id":38,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file +export const ContractAbi = `{"source":{"hash":"0x37a6b9845f34663b4b59b2b47c63e6caa530ed5025380727a05b157306875332","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"identity","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x9bae9d5e"},{"args":[{"label":"chains","type":{"displayName":["Vec"],"type":13}},{"label":"chain_ids","type":{"displayName":["Vec"],"type":9}}],"default":false,"docs":[],"label":"init_with_chains","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x0935da88"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":37},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":40},"hash":{"displayName":["Hash"],"type":38},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":39}},"events":[{"args":[{"docs":[" Owner of the created identity."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The \`IdentityNo\` associated with the created identity."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":["Events"],"label":"IdentityCreated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which a new address has been added."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The newly added address."],"indexed":false,"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressAdded"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been updated."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The updated address value."],"indexed":false,"label":"updated_address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressUpdated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been removed."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"AddressRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got removed."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"},{"args":[{"docs":[" The \`ChainId\` that is associated with the newly added chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The rpc url of the chain that got added."],"indexed":false,"label":"rpc_urls","type":{"displayName":["Vec"],"type":7}},{"docs":[" The address type used on the chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainAdded"},{"args":[{"docs":[" The \`ChainId\` that is associated with the updated chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The rpc url of the updated chain."],"indexed":false,"label":"rpc_urls","type":{"displayName":["Vec"],"type":7}},{"docs":[" The address type used on the updated chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainUpdated"},{"args":[{"docs":[" The \`ChainId\` that is associated with the chain that got"," removed."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"ChainRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that set a recovery account."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The newly set recovery account."],"indexed":false,"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"RecoveryAccountSet"}],"lang_error":{"displayName":["ink","LangError"],"type":12},"messages":[{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the \`IdentityInfo\` of an identity that is associated with"," the provided \`IdentityNo\`."],"label":"identity","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xcbfefbec"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"owner_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x99720c1e"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"identity_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":21},"selector":"0x713ca232"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the chain name that is associated with the specified \`ChainId\`."],"label":"chain_info_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":23},"selector":"0x59d847e9"},{"args":[{"label":"receiver","type":{"displayName":["IdentityNo"],"type":2}},{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the destination address of a transaction that needs to be"," routed to the specified identity on the specified chain."],"label":"transaction_destination","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":25},"selector":"0x525505e4"},{"args":[],"default":false,"docs":[" A list of all the available chains each associated with a \`ChainId\`."],"label":"available_chains","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0xa5cf243e"},{"args":[],"default":false,"docs":[" Creates an identity and returns the \`IdentityNo\`.",""," A user can only create one identity."],"label":"create_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xfb893664"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Adds an address for a given chain"],"label":"add_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x71cc798d"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Updates the address of the given chain"],"label":"update_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x892f75e4"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Removes the address by chain"],"label":"remove_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xdca7a60f"},{"args":[],"default":false,"docs":[" Removes an identity"],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x08026740"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"info","type":{"displayName":["ChainInfo"],"type":14}}],"default":false,"docs":[],"label":"add_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x1cd09676"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"new_rpc_url","type":{"displayName":["Option"],"type":35}},{"label":"new_address_type","type":{"displayName":["Option"],"type":36}}],"default":false,"docs":[],"label":"update_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x7d5eea00"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[],"label":"remove_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x5b23980f"},{"args":[{"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Sets the recovery account that will be able to change the ownership"," of the identity.",""," Only callable by the identity owner."],"label":"set_recovery_account","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xd3b93403"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Transfers the ownership of an identity to another account.",""," Only callable by the identity owner or any account that the identity"," owner added as a proxy."],"label":"transfer_ownership","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x107e33ea"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d5e603b","ty":0}},"name":"addresses"}],"name":"IdentityInfo"}},"root_key":"0x7d5e603b"}},"name":"number_to_identity"},{"layout":{"root":{"layout":{"leaf":{"key":"0xca45e900","ty":5}},"root_key":"0xca45e900"}},"name":"owner_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x7cd66cb1","ty":2}},"root_key":"0x7cd66cb1"}},"name":"identity_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x3373bd6d","ty":5}},"root_key":"0x3373bd6d"}},"name":"recovery_account_of"},{"layout":{"leaf":{"key":"0x00000000","ty":2}},"name":"latest_identity_no"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x793e0339","ty":7}},"name":"rpc_urls"},{"layout":{"enum":{"dispatchKey":"0x793e0339","name":"AccountType","variants":{"0":{"fields":[],"name":"AccountId32"},"1":{"fields":[],"name":"AccountKey20"}}}},"name":"account_type"}],"name":"ChainInfo"}},"root_key":"0x793e0339"}},"name":"chain_info_of"},{"layout":{"leaf":{"key":"0x00000000","ty":9}},"name":"chain_ids"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"admin"}],"name":"Identity"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"u8"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":4}}}},{"id":7,"type":{"def":{"sequence":{"type":8}}}},{"id":8,"type":{"def":{"primitive":"str"}}},{"id":9,"type":{"def":{"sequence":{"type":2}}}},{"id":10,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":12}],"path":["Result"]}},{"id":11,"type":{"def":{"tuple":[]}}},{"id":12,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":13,"type":{"def":{"sequence":{"type":14}}}},{"id":14,"type":{"def":{"composite":{"fields":[{"name":"rpc_urls","type":7,"typeName":"Vec"},{"name":"account_type","type":15,"typeName":"AccountType"}]}},"path":["common","types","ChainInfo"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AccountId32"},{"index":1,"name":"AccountKey20"}]}},"path":["common","types","AccountType"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":12}],"path":["Result"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":18}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":18}],"path":["Option"]}},{"id":18,"type":{"def":{"composite":{"fields":[{"name":"addresses","type":0,"typeName":"Vec<(ChainId, EncryptedAddress)>"}]}},"path":["identity","types","IdentityInfo"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":12}],"path":["Result"]}},{"id":20,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":5}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":5}],"path":["Option"]}},{"id":21,"type":{"def":{"variant":{"variants":[{"fields":[{"type":22}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":22},{"name":"E","type":12}],"path":["Result"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":2}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":2}],"path":["Option"]}},{"id":23,"type":{"def":{"variant":{"variants":[{"fields":[{"type":24}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":24},{"name":"E","type":12}],"path":["Result"]}},{"id":24,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":14}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":14}],"path":["Option"]}},{"id":25,"type":{"def":{"variant":{"variants":[{"fields":[{"type":26}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":26},{"name":"E","type":12}],"path":["Result"]}},{"id":26,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":27}],"path":["Result"]}},{"id":27,"type":{"def":{"variant":{"variants":[{"index":0,"name":"NotAllowed"},{"index":1,"name":"IdentityDoesntExist"},{"index":2,"name":"AddressAlreadyAdded"},{"index":3,"name":"InvalidChain"},{"index":4,"name":"AddressSizeExceeded"},{"index":5,"name":"ChainNameTooLong"},{"index":6,"name":"ChainRpcUrlTooLong"},{"index":7,"name":"AlreadyIdentityOwner"}]}},"path":["identity","Error"]}},{"id":28,"type":{"def":{"variant":{"variants":[{"fields":[{"type":29}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":29},{"name":"E","type":12}],"path":["Result"]}},{"id":29,"type":{"def":{"sequence":{"type":30}}}},{"id":30,"type":{"def":{"tuple":[2,14]}}},{"id":31,"type":{"def":{"variant":{"variants":[{"fields":[{"type":32}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":32},{"name":"E","type":12}],"path":["Result"]}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":27}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"fields":[{"type":34}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":34},{"name":"E","type":12}],"path":["Result"]}},{"id":34,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":27}],"path":["Result"]}},{"id":35,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":8}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":8}],"path":["Option"]}},{"id":36,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":15}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":15}],"path":["Option"]}},{"id":37,"type":{"def":{"primitive":"u128"}}},{"id":38,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":39,"type":{"def":{"primitive":"u64"}}},{"id":40,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; +export const ContractFile = `{"source":{"hash":"0x8c146eb955ae4a5bebe3b61558026219e4856594743c8ebcafa0499e22a58bb4","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","wasm":"0x0061736d01000000014e0d60027f7f0060037f7f7f017f60037f7f7f0060027f7f017f60017f0060047f7f7f7f0060057f7f7f7f7f0060047f7f7f7f017f60000060017f017f60017f017e6000017f60067f7f7f7f7f7f0002dd010b057365616c310b6765745f73746f726167650007057365616c301176616c75655f7472616e736665727265640000057365616c3005696e7075740000057365616c300663616c6c65720000057365616c300d64656275675f6d6573736167650003057365616c300f686173685f626c616b65325f3235360002057365616c300d6465706f7369745f6576656e740005057365616c320b7365745f73746f726167650007057365616c310d636c6561725f73746f726167650003057365616c300b7365616c5f72657475726e000203656e76066d656d6f72790201021003930191010101000000010601050206020000000200000300000000000004000200000002020402060400040000000204060b020000020500040804000000000400040004000402090204030002020000000502020000090000040200000202020808000204000008000203030803010102030305020304030a0605030306070507060303020101060507050303030305050c020505040501700110100608017f01418080040b0711020463616c6c006d066465706c6f790072091b010041010b0f1c89018801507b94017d910192017c75777893017e0ab4880291012b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001100e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a4104100f450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a4102100f0d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220141808004492103200141027621010b2000200136020420002003360200200241206a24000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110112201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4801027f230041106b220224002002410036020c024020012002410c6a41041011450440200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6601027f230041106b2203240020002f01042104200041003a0004027f20044101710440200120044108763a00002000280200200341086a200120024101418c810410102003280208200328020c10110c010b20002802002001200210110b200341106a24000b4a01017f230041106b2205240020022003490440200320022004104e000b200541086a2003200220011012200528020c21012000200528020836020020002001360204200541106a24000b6201047f230041106b22032400200028020422042002492205450440200341086a4100200220002802002206109601200120022003280208200328020c41bcb504102d2003200220042006109601200020032903003702000b200341106a240020050b1500200020012002200341fcae04418080041097010b5001017f230041206b220324002003410c6a4101360200200341146a4100360200200341b4af04360210200341003602002003200136021c200320003602182003200341186a36020820032002101a000b4b01017f230041106b22052400200120034d0440200541086a4100200120021012200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000b0f00200020012002419c9f041099010bb00101067f230041206b22022400024002402001280204220320012802082205470440200241086a410472210403402001200341046a2206360204200420032802002203101720022d001822074102470d02200622032005470d000b0b200041023a00100c010b200020022f00193b001120002004290200370204200041136a2002411b6a2d00003a00002000410c6a200441086a280200360200200020073a0010200020033602000b200241206a24000bfc0301067f230041e0006b220224002002410036023820024280800137024c20024184b60436024841b986f8c907200241c8006a2205101820012005101820022002290348370330200241106a200241306a200228025010192002280214210320022802102002280230210120022002280234220736024820032001200510002103200241086a20022802482001200741a4870410140240024002400240410c20032003410c4f1b0e0401000002000b200241d4006a4101360200200241dc006a4100360200200241b48804360250200241b4af0436025820024100360248200241c8006a41bc8804101a000b200228020821012002200228020c36024420022001360240200241c8006a200241406b101b20022d0054220141024704402002411e6a200241d7006a2d00003a000020022002290049370320200220022f00553b011c2002200241d0006a28000036002720022d004821040c020b200241003a0020200241d4006a4101360200200241dc006a410136020020024190820436025020024100360248200241013602342002200241306a3602582002200241206a360230200241c8006a41808304101a000b410221010b200020043a000020002002290320370001200020013a000c200020022f011c3b000d200041086a20022800273600002000410f6a2002411e6a2d00003a0000200241e0006a24000b2601017f230041106b220224002002200036020c20012002410c6a41041034200241106a24000b4501017f2002200128020422034b044041dcaf04412341d0b1041013000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000be10201017f230041206b22022400200241013a00182002200136021420022000360210200241c0980436020c200241b4af04360208230041406a220124002001200241086a36020c2001410636022420012001410c6a36022041002100410421020240024002400240024003402000200020024180b0046a2802006a22004b0d01200241086a22024114470d000b2001200041104f047f200020006a22024100200020024d1b0541000b105a20014100360218200120012903003703102001410136023c2001410236023420014180b004360230200141003602282001200141206a360238200141106a200141286a10730d014184b6052d00004504404185b6052d00004101710d050b410c20012802142001280218100422002000410c4f1b4109470d020c030b41f09004411c41a0ac041013000b41c094044133200141286a41b4910441f095041036000b4184b60541013a00000b4185b60541013a00000b000bac0202037f017e230041e0006b22022400200241086a2001100c02400240024020022802080d00200241306a2001280204410c6e2204200228020c2203200320044b1b10540240200304400340200241d0006a2001105b20022802542204450d02200220022802583602482002200436024420022002280250360240200241306a200241406b1055200341016b22030d000b0b20022802342203450d01200228023021042002200228023836022820022003360224200220043602202001105c41ff017122014102460d02200241186a200241286a2802002203360200200220022903202205370310200041086a200336020020002005370200200020013a000c0c030b200241306a10450b200041023a000c0c010b200041023a000c200241206a10450b200241e0006a24000bb80401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b4101210020012802002203418fb30441062001280204220528020c22041101000d0c024020012d00184104714504402003418c9904410120041101000d0e200341ccb50441052004110100450d010c0e0b2003418a9904410220041101000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241ccb5044105108c010d0d2002418899044102108c010d0d0b200341e197044101200411010021000c0c0b20012802004182b304410d200128020428020c11010021000c0b0b200128020041f4b204410e200128020428020c11010021000c0a0b200128020041e9b204410b200128020428020c11010021000c090b200128020041cfb204411a200128020428020c11010021000c080b200128020041c1b204410e200128020428020c11010021000c070b200128020041b1b2044110200128020428020c11010021000c060b200128020041a5b204410c200128020428020c11010021000c050b2001280200419ab204410b200128020428020c11010021000c040b20012802004193b2044107200128020428020c11010021000c030b20012802004184b204410f200128020428020c11010021000c020b200128020041f3b1044111200128020428020c11010021000c010b200128020041e0b1044113200128020428020c11010021000b200241106a240020000be00301067f230041f0006b220224002002413c6a200141186a290000370200200241346a200141106a2900003702002002412c6a200141086a290000370200200241e88104360220200220012900003702242002410036025020024280800137025c20024184b60436025841b1d9d9e607200241d8006a22051018200241206a4104722005101e20022002290358370348200241186a200241c8006a20022802601019200228021c21032002280218200228024821012002200228024c220736025820032001200510002103200241106a20022802582001200741a48704101402402000027f024002400240410c20032003410c4f1b0e0402000001000b200241e4006a4101360200200241ec006a4100360200200241b48804360260200241b4af0436026820024100360258200241d8006a41bc8804101a000b41000c010b20022802142101200220022802103602582002200136025c200241086a200241d8006a100e20022802080d0141012104200228020c0b36020420002004360200200241f0006a24000f0b200241003a0057200241e4006a4101360200200241ec006a4101360200200241908204360260200241003602582002410136024c2002200241c8006a3602682002200241d7006a360248200241d8006a41808304101a000b0a0020012000412010340b9f0401067f230041f0006b220224002002410036022820024280800137025c20024184b60436025841bbc0f9ea07200241d8006a2205101820012005101820022002290358370320200241186a200241206a20022802601019200228021c210320022802182002280220210120022002280224220736025820032001200510002103200241106a20022802582001200741a487041014024002400240410c20032003410c4f1b0e0400020201020b200228021421012002200228021036023020022001360234200241086a200241306a100c024020022802080d00200241386a20022802344104762203200228020c2201200120034b1b10200240200104400340200241d8006a200241306a102120022802602203450d02200220022802643602542002200336025020022002290358370348200241386a200241c8006a1022200141016b22010d000b0b200228023c2204450d0120022802402101200228023821030c020b200241386a10230b200241003a0038200241e4006a4101360200200241ec006a4101360200200241908204360260200241003602582002410136024c2002200241c8006a3602682002200241386a360248200241d8006a41808304101a000b200020013602082000200436020420002003360200200241f0006a24000f0b200241e4006a4101360200200241ec006a4100360200200241b48804360260200241b4af0436026820024100360258200241d8006a41bc8804101a000b7801037f230041106b220224000240024002402001450440410421030c010b200241086a2001104a200228020c2203450d01200228020822044100480d01200220042003103b20022802002203450d020b200041003602082000200336020420002001360200200241106a24000f0b103f000b20041040000b7401027f230041206b22022400200241086a2001100e02402002280208450440200228020c2103200241106a200110332002280214044020002003360200200020022903103702042000410c6a200241186a2802003602000c020b200041003602080c010b200041003602080b200241206a24000b6501027f200028020822022000280200460440200020021056200028020821020b200028020420024104746a22032001290200370200200341086a200141086a290200370200200241016a220145044041a08104411c418097041013000b200020013602080b11002000280200200041046a28020010480b0c0041e481042000200110250ba80102037f017e230041306b220324002003410036021820034280800137022420034184b6043602202000200341206a2204105120012004101820032003290320370310200341086a200341106a220520032802281019200328020c2100200328020820032903102106200341003602282003200637032020022004101e20032003290320370310200320052003280228101920002003280200200328020410071a200341306a24000bfb0102047f017e230041e0006b22022400200241346a200041186a2900003702002002412c6a200041106a290000370200200241246a200041086a290000370200200241e881043602182002200029000037021c2002410036024820024280800137025420024184b60436025041b1d9d9e607200241d0006a22031018200241186a4104722003101e20022002290350370340200241106a200241406b22042002280258101920022802142100200228021020022903402106200241003602582002200637035020012003101820022002290350370340200241086a20042002280258101920002002280208200228020c10071a200241e0006a24000bac0102047f017e230041306b220224002002410036021820024280800137022420024184b60436022041b986f8c907200241206a2203101820002003101820022002290320370310200241086a200241106a220420022802281019200228020c2100200228020820022903102106200241003602282002200637032020012003102820022002290320370310200220042002280228101920002002280200200228020410071a200241306a24000b1f00200041046a280200200041086a28020020011052200120002d000c10310bae0102047f017e230041306b220324002003410036021820034280800137022420034184b60436022041bbc0f9ea07200341206a2204101820002004101820032003290320370310200341086a200341106a220520032802281019200328020c21002003280208200329031021072003410036022820032007370320200120022004102a20032003290320370310200320052003280228101920002003280200200328020410071a200341306a24000b430020012002102f20010440200020014104746a21010340200028020020021018200041086a2802002000410c6a28020020021053200041106a22002001470d000b0b0bb20101017f230041d0006b22012400200141246a200041186a2900003702002001411c6a200041106a290000370200200141146a200041086a290000370200200141e881043602082001200029000037020c2001410036023820014280800137024420014184b60436024041b1d9d9e607200141406b22001018200141086a4104722000101e200120012903403703302001200141306a200128024810192001280200200128020410081a200141d0006a24000bcf0101077f230041306b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341286a22074200370300200341206a22084200370300200341186a220942003703002003420037031020012002200341106a1005200420072903003700002005200829030037000020062009290300370000200020032903103700000c010b200341086a2002200041204180840410142003280208200328020c2001200241908404102d0b200341306a24000b85010020012003460440200020022001100a1a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4105360200200041a0a20436021020004100360208200041053602242000200041206a360218200020003602282000200041046a360220200041086a2004101a000b7701047f230041206b22012400200141086a2000280200220320002802042000280208220241cc8804101020014100360218200120012903083703104102200141106a102f2002200220012802186a22044b044041a08104411c41dc88041013000b2000200336020020002004360208200141206a24000b7401017f230041106b2202240002402000413f4d04402001200041027410310c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210340c010b200041ffffffff034d04402000410274410272200110180c010b2001410310312000200110180b200241106a24000b08002000410110310b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b2002200341b0b104106f000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101145044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b7e01037f230041106b22022400200241086a2001100c024020022802084504400240200228020c220320012802044b0d0020022003105d20022802002104200120022802042201200310110d002000200336020820002001360204200020043602000c020b200041003602040c010b200041003602040b200241106a24000b7a01047f230041106b2203240002402000280208220520026a220420054f04402004200028020422064b0d01200341086a2005200420002802001095012003280208200328020c2001200241a0b104102d20002004360208200341106a24000f0b41c0af04411c4180b1041013000b200420064190b1041015000ba70101017f230041306b220124002001418080013602004184b6042001100320014180800136022c20014184b6043602282001200141286a103220012d00000440200141003a000041b4870441c100200141d4840441f887041036000b20002001290102370001200041096a2001410a6a290100370000200041116a200141126a290100370000200041186a200141196a290000370000200020012d00013a0000200141306a24000b860101017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a41023602002005412c6a41023602002005413c6a4102360200200541f4980436022020054100360218200541033602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101a000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b4c01037f230041106b22032400200341086a200241001058200328020821042000200328020c220536020420002004360200200520012002410274100a1a20002002360208200341106a24000b2000230041106b2201240020000440200141086a200010430b200141106a24000b0b002000200141141098010b3901017f230041106b22032400200341086a2001200241001057200328020c21012000200328020836020020002001360204200341106a24000b890301077f230041106b220524002000027f0240027f02400240200204400240200141004e044020032802080d01200520012002107a2005280200210420052802040c050b200041086a41003602000c050b20032802042209450440200541086a20012002107a20052802082104200528020c0c040b200120026a41016b410020026b7122082001490d01200141fcb504280200220620086a22072006490d031a2003280200210a4180b6042802002007490440200841ffff036a22032008490d032003411076220740002203417f46200341ffff0371200347720d032003411074220620074110746a22032006490d034180b60420033602002001200620086a22072006490d041a0b41fcb504200736020020012006450d031a2006200a2009100a210420010c030b20002001360204200041086a41003602000c030b41e0ae04411c41c4ae041013000b20010b21072004044020002004360204200041086a200736020041000c020b20002001360204200041086a20023602000b41010b360200200541106a24000b1f00024020014181808080784704402001450d0120001040000b0f0b103f000b140020002d00104102470440200041046a10450b0b4601017f230041206b22002400200041146a41013602002000411c6a4100360200200041e89204360210200041b4af0436021820004100360208200041086a41f09204101a000b5f01017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141a09404360218200141003602102001410536022c2001200141286a36022020012001410c6a360228200141106a41b09404101a000b6401017f230041306b22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a101d20002002290308370300200241306a24000b910101017f230041d0006b22022400200241086a41e481042001106920022d00084102460440200220022d00093a002f2002413c6a4101360200200241c4006a4101360200200241908204360238200241003602302002410136024c2002200241c8006a36024020022002412f6a360248200241306a41808304101a000b2000200241086a4121100a1a200241d0006a24000b0b002000200141041098010b25002001044020014104742101034020001045200041106a2100200141106b22010d000b0b0b2701017f230041106b22012400200028020022000440200141086a200010460b200141106a24000b0b0020002001410c1098010b2101017f200041046a2201280200200028020810442000280200200128020010480b2000230041106b2201240020000440200141086a2000104a0b200141106a24000b110020002d000c4102470440200010450b0b0b002000200141101098010b0e002000280200200028020c10480b5201017e0240200241fcffffff0720016e4b0440410021010c010b2001ad2002ad7e22034220885004402003a72102410421010c010b41a08404412141c484041013000b20002001360204200020023602000b1b002000418180014f0440200041808001418888041015000b20000b0f0020002001200241fc9e041099010b5201017f230041206b220124002001410c6a4101360200200141146a4101360200200141c0ac04360208200141003602002001410436021c200120003602182001200141186a360210200141e48e04101a000b920101017f230041306b22022400200241146a41013602002002411c6a4101360200200241c0ac043602102002410036020820024103360224200220002d0000410274220041d4b5046a28020036022c2002200041e8b5046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a108b01200241306a24000b0b002000280200200110180b4101017f20012002102f200104402001410c6c2103200041086a21010340200141046b2802002001280200200210532001410c6a21012003410c6b22030d000b0b0b100020012002102f20022000200110340b7801037f230041106b220224000240024002402001450440410421030c010b200241086a20011046200228020c2203450d01200228020822044100480d01200220042003103b20022802002203450d020b200041003602082000200336020420002001360200200241106a24000f0b103f000b20041040000bd20201067f200028020822032000280200460440230041306b2202240002400240027f4100200341016a2203450d001a2000280200220420046a22052004490d01200241086a41042005200320032005491b2203200341044d1b22051046200228020c210320022802082106024020040440200041046a280200210720022004104620022007360220200220022903003702240c010b200241003602280b200241106a20062003200241206a103c20022802104504402002280214210320002005360200200041046a20033602004181808080780c010b20022802142103200241186a2802000b210420032004103d200241306a24000c010b41a08404412141c492041013000b200028020821030b20002802042003410c6c6a22022001290200370200200241086a200141086a280200360200200341016a220145044041a08104411c418097041013000b200020013602080bf30101057f230041306b220224000240027f4100200141016a2201450d001a2000280200220320036a22042003490d01200241086a41042004200120012004491b2201200141044d1b2204104a200228020c210120022802082105024020030440200041046a280200210620022003104a20022006360220200220022903003702240c010b200241003602280b200241106a20052001200241206a103c20022802104504402002280214210120002004360200200041046a20013602004181808080780c010b20022802142101200241186a2802000b210320012003103d200241306a24000f0b41a08404412141c492041013000bf40101027f02402001450d00200120026a41016b410020026b712205200149210241fcb50428020021040240024002400240200345044020020d020c010b20020d020b41002102200420056a22032004490d034180b6042802002003490440200541ffff036a22022005490d032002411076220340002202417f46200241ffff0371200247720d032002411074220420034110746a22032004490d03410021024180b6042003360200200420056a22032004490d040b41fcb5042003360200200421020c030b41e0ae04411c41c4ae041013000b41e0ae04411c41c4ae041013000b410021020b20002001360204200020023602000b8c0101037f230041206b2203240002402001450440410421020c010b200341186a200110430240200328021c2205450d00200328021822044100480d00027f2002450440200341106a20042005103b20032802100c010b200341086a200420054101105720032802080b22020d0120041040000b103f000b2000200236020420002001360200200341206a24000bed0101087f230041106b2206240020002002102020002802002205200028020822034f044002402002452003200546720d00200120024104746a2108200028020420034104746a2104200320056b41016a21030340200141086a280200210720012802002109200641086a2001410c6a2802002205105a2006280208210a200628020c20072005100a21072004410c6a2005360200200441086a2007360200200441046a200a360200200420093602002003450d01200341016a2103200441106a2104200141106a22012008470d000b0b20002002360208200641106a24000f0b41808004412141a886041013000b3501017f230041106b22022400200241086a2001105d200228020c21012000200228020836020020002001360204200241106a24000bc60501097f230041106b2205240020052001103302402005280204220404402005280200210a024020052802082203450d00200341076b22014100200120034d1b2108200441036a417c7120046b2109034002400240024002400240024002400240200220046a2d00002206411874411875220741004e0440200920026b4103712009417f46720d0220022008490d010c060b02400240200641d4a7046a2d000041026b0e03040100060b200241016a220120034f0d05200120046a2c000021010240024002400240200641f0016b0e050100000002000b2007410f6a41ff017141024b200141004e720d0820014140490d020c080b200141f0006a41ff01714130490d010c070b2001418f7f4a0d060b200241026a220120034f0d05200120046a2c000041bf7f4a0d05200241036a220120034f0d05200120046a2c000041bf7f4c0d040c050b200241016a220120034f0d04200120046a2c00002101024002400240200641e001470440200641ed01460d012007411f6a41ff0171410c490d022007417e71416e47200141004e720d0820014140490d030c080b200141607141a07f460d020c070b200141a07f480d010c060b200141bf7f4a0d050b200241026a220120034f0d04200120046a2c000041bf7f4c0d030c040b0340200220046a2201280200200141046a28020072418081828478710d052002200241086a22014d04402008200122024d0d070c010b0b41a09704411c41c4a7041013000b200241016a21020c050b200241016a220120034f0d01200120046a2c000041bf7f4a0d010b200141016a21020c030b200041003602040c060b200221010b200120034f0d0220012003200120034b1b21020340200120046a2c00004100480440200121020c020b2002200141016a2201470d000b0c020b20022003490d000b0b20002003360208200020043602042000200a3602000c010b200041003602040b200541106a24000b4201027f230041106b22012400200141086a2000100d20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b5b01027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20012001417f73411f76107a200228020822030d0120011040000b103f000b2000200336020420002001360200200241106a24000b9d0101047f230041106b22022400200241086a2001100c0240024020022802084504400240200228020c220341ffffffff03712003470d002003410274220520012802044b0d0020022003410110582002280200210420012002280204220120051011450d022004200110390b200041003602040c020b200041003602040c010b2000200336020820002001360204200020043602000b200241106a24000bec1202047f017e230041c0016b22012400200141386a20004128100a1a02400240024002400240024002400240024002400240200128023841016b0e080102030405060708000b2001428080013702940120014184b6043602900120014190016a2202102e200141b8016a20014198016a28020036020020012001290390013703b001200141f0006a2200200141b0016a220441d48904106020014180016a22032000106120012903800121052001410036029801200120053703900141e08904412020021053200141386a4104722002101e200120012903900137038001200141106a20032001280298011019200220012802102001280214102c200141086a2001280270220320012802742001280278220041cc88041010200141003602b801200120012903083703b00120022004101e2000200020012802b8016a22004b0d09200141e8006a2000360200200120033602702001200129037037036020014190016a200141e0006a10620c080b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341988a0410632001200141386a4104723602b801200141233602b401200141a48a043602b00120014180016a22022000200310642000200210620c070b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341e08a0410652001200141386a4104723602b801200141253602b401200141ec8a043602b00120014180016a22022000200310642000200210620c060b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341ac8b0410652001200141386a4104723602b801200141253602b401200141b88b043602b00120014180016a22022000200310642000200210620c050b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341f88b0410602001200141386a4104723602b801200141263602b401200141848c043602b00120014180016a22022000200310642000200210620c040b2001428080013702940120014184b6043602900120014190016a2202102e200141f8006a220020014198016a280200360200200120012903900137037020014180016a2203200141f0006a106120012903800121052001410036029801200120053703900141b4af04410020021053200241aa8c0441141034200120012903900137038001200141206a20032001280298011019200220012802202001280224102c200141186a2001280270220320012802742000280200220041cc88041010200141003602b801200120012903183703b0012002200141b0016a101e2000200020012802b8016a22004b0d04200141e8006a200036020020012003360270200120012903703703602001200141386a4104723602b8012001411e3602b401200141be8c043602b00120014180016a2200200141e0006a200141b0016a106420014190016a200010620c030b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341f48c0410632001200141386a4104723602b801200141203602b401200141808d043602b00120014180016a22022000200310642000200210620c020b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341b88d0410632001200141386a4104723602b801200141203602b401200141c48d043602b00120014180016a22022000200310642000200210620c010b2001428080013702940120014184b6043602900120014190016a2202102e200141f8006a220020014198016a280200360200200120012903900137037020014180016a2203200141f0006a106120012903800121052001410036029801200120053703900141b4af04410020021053200241e48d04411c1034200120012903900137038001200141306a20032001280298011019200220012802302001280234102c200141286a2001280270220320012802742000280200220041cc88041010200141003602b801200120012903283703b0012002200141b0016a101e2000200020012802b8016a22004b0d01200141e8006a200036020020012003360270200120012903703703602001200141386a4104723602b801200141293602b401200141808e043602b00120014180016a2200200141e0006a200141b0016a106420014190016a200010620b200141b8016a20014198016a280200360200200120012903900122053703b001200141a0016a2802002100200128029c01200141003602980120012005370390010240024002400240024002400240024002400240200128023841016b0e080102030405060708000b20014190016a220241001031200141386a4104722002101e200141dc006a280200200210180c080b20014190016a220241011031200128023c20021018200141406b28020020021018200141c8006a280200200141cc006a280200200210530c070b20014190016a220241021031200128023c20021018200141406b28020020021018200141c8006a280200200141cc006a280200200210530c060b20014190016a220241031031200128023c20021018200141406b280200200210180c050b20014190016a220241041031200128023c200210180c040b20014190016a220241051031200128023c20021018200141c4006a280200200141c8006a280200200210522002200141cc006a2d000010310c030b20014190016a220241061031200128023c20021018200141c4006a280200200141c8006a280200200210522002200141cc006a2d000010310c020b20014190016a220241071031200128023c200210180c010b20014190016a220241081031200128023c20021018200141406b2002101e0b20012001290390013703b0012001200141b0016a20012802980110192000200128020020012802041006024002400240200128023841056b0e020001020b200141406b10450c010b200141406b10450b200141c0016a24000f0b41a08104411c41dc88041013000b0d002000200120024119109a010b5301037f230041106b2202240020012802082203200128020422044b04402003200441c0b104104e000b200241086a2003200420012802001095012000200229030837020020004100360208200241106a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101920022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b0d002000200120024116109a010bf90102037f017e230041d0006b22032400200341106a22052001106120032903102106200341003602282003200637032020022802002002280204200341206a2204105320022802082802002004101820032003290320370310200341086a20052003280228101920042003280208200328020c102c20032001280200220520012802042001280208220241cc8804101020034100360248200320032903003703402004200341406b101e2002200220032802486a22044b044041a08104411c41dc88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b0d002000200120024118109a010b3501017f230041106b2200240020004280800137020420004184b6043602002000410110312000103041012000280208104d106c000b3701017f230041106b2200240020004280800137020420004184b60436020020004100103120004100103141002000280208104d106c000b4c01017f230041106b2202240020024280800137020420024184b6043602002002410010312002200141ff0171410847047f20024101103120010541000b103120002002280208104d106c000beb0201047f230041d0006b220324002003410036021820034280800137022420034184b6043602202001200341206a2204105120022004101820032003290320370310200341086a200341106a20032802281019200328020c210220032802082003280210210120032003280214220636022020022001200410002102200320032802202001200641a4870410140240024002400240410c20022002410c4f1b0e0402010100010b200041003a00000c020b2003412c6a4101360200200341346a4100360200200341b48804360228200341b4af0436023020034100360220200341206a41bc8804101a000b200328020021012003200328020436024c20032001360248200341206a200341c8006a103220032d00200440200041023b00000c010b20002003290021370001200041196a200341396a290000370000200041116a200341316a290000370000200041096a200341296a290000370000200041013a00000b200341d0006a24000bf30102067f017e230041306b220124002001410036021820014280800137022420014184b6043602204100200141206a2202101820012001290320370310200141086a200141106a20012802281019200128020c21042001280208200129031021072001410036022820012007370320200028020020021018200041086a28020021062000410c6a28020022032002102f200341ffffffff0371200347044041a08404412141c885041013000b200141206a2202200620034102741034200041106a2002101e200120012903203703102001200141106a2001280228101920042001280200200128020410071a200141306a24000b6601017f230041306b220224002002410036021820024280800137022420024184b6043602202000200241206a2200105120012000101820022002290320370310200241086a200241106a200228022810192002280208200228020c10081a200241306a24000b0d0020004184b60420011009000bcf4e02127f027e230041c0036b220024000240024002400240024002400240024002400240024002400240024002400240027f0240103741ff017141054604402000418080013602a0024184b604200041a0026a22011002200041d0016a20002802a0024184b6044180800141a487041014200020002903d00137039003200041003602a00220004190036a2001410410110d0e20002802a002220141187621042001411076210320014108762102027f0240024002400240024002400240024002400240024002400240024002400240200141ff0171220141d9006b0e03011f09000b20014108460d0520014110460d0a2001411c460d06200141d200460d01200141f100470440200141fd00460d082001418901460d042001419901470440200141a501460d04200141cb01470440200141d301460d0c200141dc01460d07200141fb0147200241ff01714189014772200341ff0171413647200441e4004772720d2141060c120b200241ff017141fe0147200341ff017141fb014772200441ec0147720d20200041f0006a20004190036a100e20002802700d202000280274220d410876210641000c110b200241ff017141f20047200341ff0171410c47722004411e47720d1f200041f8006a20004190036a100e20002802780d1f200028027c220d410876210641010c100b200241ff01712201413c460d0e200141cc0147200341ff017141f90047722004418d0147720d1e200041a0026a20004190036a102120002802a802220e450d1e20002f00a10220002d00a30241107472210620002802ac02210820002802a402210420002d00a002210d41070c0f0b200241ff017141d80147200341ff017141c7004772200441e90147720d1d20004180016a20004190036a100e2000280280010d1d200028028401220d410876210641030c0e0b200241ff017141d50047200341ff017141054772200441e40147720d1c20004190016a20004190036a100e2000280290010d1c200028029401210d20004188016a20004190036a100e2000280288010d1c200028028c012104200d410876210641040c0d0b200241ff017141cf0147200341ff0171412447722004413e47720d1b41050c0c0b200241ff0171412f47200341ff017141f5004772200441e40147720d1a200041a0026a20004190036a102120002802a802220e450d1a20002f00a10220002d00a30241107472210620002802ac02210820002802a402210420002d00a002210d41080c0b0b200241ff017141a70147200341ff017141a60147722004410f47720d1920004198016a20004190036a100e2000280298010d19200028029c01220d410876210641090c0a0b200241ff0171410247200341ff017141e7004772200441c00047720d18410a0c090b200241ff017141d00147200341ff01714196014772200441f60047720d17200041a0016a20004190036a100e20002802a0010d1720002802a401210d200041a0026a20004190036a101b20002d00ac0222054102460d17200041f2026a200041af026a2d00003a0000200020002f00ad023b01f002200d410876210620002802a802210820002802a402210e20002802a0022104410b0c080b2004200241ff017141de0047200341ff017141ea014772720d16200041b8016a20004190036a100e20002802b8010d1620002802bc01210d200041b0016a20004190036a100d20002d00b0014101710d1620002d00b1010e020504160b200241ff0171412347200341ff017141980147722004410f47720d15200041c0016a20004190036a100e20002802c0010d1520002802c401220d4108762106410d0c060b200241ff017141b90147200341ff0171413447720d1420044103460d010c140b200241ff017141fe0047200341ff017141334772200441ea0147720d13200041c8016a20004190036a100e20002802c8010d1320002802cc01210d200041a0026a20004190036a103220002d00a0020d13200041f2026a200041b0026a2d00003a0000200041f8016a200041b9026a2900003703002000200041ae026a2f01003b01f0022000200041b1026a2900003703f001200d4108762106200041ad026a2d00002105200041a9026a280000210820002800a502210e20002800a1022104410f0c040b200041a0026a20004190036a103220002d00a0020d12200041f2026a200041b7026a2d00003a0000200041f8016a200041c0026a2d00003a00002000200041b5026a2f00003b01f0022000200041b8026a2903003703f00120002802a402220d4108762106200041b4026a2d00002105200041b0026a2802002108200041ac026a280200210e200041a8026a280200210420002f01a202211120002d00a102210a410e0c030b200041a0026a20004190036a105b20002802a402220e450d1120002802a802210820002802a00221040b200041a8016a20004190036a100d20002d00a8014101710d10410221050240024020002d00a9010e020100120b20004190036a105c41ff017122014102460d11200141017121050b200d4108762106410c0c010b200341ff017141a201472004413247720d0f200041a0026a20004190036a103220002d00a0020d0f200041f2026a200041b7026a2d00003a0000200041f8016a200041c0026a2d00003a00002000200041b5026a2f00003b01f0022000200041b8026a2903003703f00120002802a402220d4108762106200041b4026a2d00002105200041b0026a2802002108200041ac026a280200210e200041a8026a280200210420002f01a202211120002d00a102210a41020b210c200041ee016a200041f2026a2d00003a0000200041e0016a200041f8016a290300370300200020002f01f0023b01ec01200020002903f0013703d80120004100360298032000428080013702a40220004184b6043602a0024100200041a0026a22071018200020002903a00237039003200041e8006a20004190036a20002802a8021019200028026c21032000280268200028029003210f200020002802940322013602a0022003200f200710002102200041e0006a20002802a002200f200141a4870410140240024002400240410c20022002410c4f1b0e0400030301030b20002802642101200020002802603602f002200020013602f402200041d8006a200041f0026a100e024020002802580d00200028025c2110200041a0026a200041f0026a105e20002802a4022202450d0020002802a802210b20002802a002210f200041a0026a200041f0026a103220002d00a002450d02200f200210390b200041ac026a4101360200200041b4026a41003602002000419c8f043602a8020c120b200041ac026a4101360200200041b4026a4100360200200041bc8f043602a8020c110b200d41ff0171200641087472210920004198026a200041b9026a29000037030020004190026a200041b1026a29000037030020004188026a200041a9026a290000370300200020002900a102370380022000200b3602fc01200020023602f80120002010ad2212200fad422086843703f00120004180026a2107024002400240024002400240024002400240200c41016b0e0f010203040d0e050607111615141312000b20004190036a2009101f200041ac026a20004198036a28020036020020002000290390033702a402200041003602a002230041106b2203240020034280800137020420034184b6043602000240200041a0026a2202280200450440200341001031200241086a28020022014504402003410010310c020b20034101103120012002410c6a2802002003102a0c010b200341011031200310300b0c1b0b20004190036a220220091042200041a0026a220141017220024121100a1a200041003a00a002230041106b2202240020024280800137020420024184b604360200024020012d000045044020024100103120012d00014504402002410010310c020b200241011031200141026a2002101e0c010b200241011031200210300b41002002280208104d106c000b200041b6026a200041ee016a2d00003a0000200041bf026a200041e0016a2d00003a0000200020053a00b302200020083600af022000200e3600ab02200020043600a702200020093600a302200020113b00a1022000200a3a00a002200020002f01ec013b01b402200020002903d8013700b702230041306b22022400200241286a200041a0026a220141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a1041200041086a2002290308370300200241306a240020002802082102200028020c2101230041106b2203240020034280800137020420034184b604360200200341001031024020024504402003410010310c010b2003410110312001200310180b0c190b20004190036a20091017200041a8026a20004198036a29030037030020002000290390033703a002230041106b2203240020034280800137020420034184b6043602000240200041a0026a22022d000c22014103470440200341001031200141024604402003410010310c020b2003410110312002200310280c010b200341011031200310300b0c180b200041a0026a2009101f20002802a4022201450d0620002802a8022102200020002802a0023602a002200020013602ac0220002001200241047422066a22033602a802027f0240027f024020020440200041a0026a410472210b0340200020012802082202360290032002450d02200420012902002212a7460d04200141106a2101200641106b22060d000b0b200020033602a40220004190036a210b41000c010b200141106a0b2101200b2001360200410021024103210641000c010b2000200141106a3602a4022012422088a72106200128020c21012012422888a70b2104200041a0026a104b2002450c070b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220320004198036a220229030037030020002000290390033703a002200041206a200041a0026a101d410021010240027f024002402000280220450d002000280224210a200041b8026a200041a8036a290300370300200041b0026a200041a0036a2903003703002003200229030037030020002000290390033703a002200041f0026a200041a0026a106e20002d00f002210120002802f4022202450d00200020002d00f3023a00d302200020002f00f1023b00d102200020002802f8023602d802200020023602d402200020013a00d002200041186a2008105a2000280218210c200028021c200e2008100a21074104210120084180014d0440200041f0026a20002802d40220002802d8021059200020002802f40222013602ac02200020002802f0023602a0022000200120002802f802220241047422066a22033602a802024020020440200041a0026a410472210503402000200128020822023602f0022002450d0520012802002009460d02200141106a2101200641106b22060d000b0b200020033602a402200041f0026a210541000c040b2000200141106a3602a402200041a0026a104b410221010b200041d0026a10230b41012102200141ff01714108460d020c180b200141106a0b210120052001360200200041a0026a220f104b200041ac026a22032008360200200041a8026a220220073602002000200c3602a402200020093602a002200041d0026a2201200f1022200a20002802d40220002802d8021029200041b4026a2008360200200041b0026a200e36020020032004360200200220093602002000200a3602a402200041013602a002200f105f200110230b200041a0026a2201200041f0016a4130100a1a2001106a41082101410021020c150b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220320004198036a220229030037030020002000290390033703a002200041306a200041a0026a101d4100210102402000280230450d002000280234210d200041b8026a200041a8036a290300370300200041b0026a200041a0036a2903003703002003200229030037030020002000290390033703a002200041f0026a200041a0026a106e20002d00f002210120002802f4022205450d00200020002d00f3023a00d302200020002f00f1023b00d102200020002802f80222103602d802200020053602d402200020013a00d002200041286a2008105a2000280228210f200028022c200e2008100a210c024020084180014d0440200041f0026a20002802d402220720002802d80222031059200020002802f402220a3602ac02200020002802f0023602a0022000200a20002802f802220141047422026a22113602a802027f024002402001450d00410021014100210b03402001200a6a220641086a280200044020062802002009460d03200b41016a210b2002200141106a2201470d010c020b0b200641106a21110b200020113602a4024100210641030c010b2000200641106a3602a402200b20104f0d05200120056a220120093602002001410c6a2008360200200141086a200c360200200141046a200f3602004101210641080b2101200041a0026a104b2006450d01200d200720031029200041b4026a2008360200200041b0026a200e360200200041ac026a2004360200200041a8026a20093602002000200d3602a402200041023602a002200041a0026a105f200041d0026a10230c130b410421010b200041d0026a10230b41012102200141ff01714108460d100c140b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220220004198036a220129030037030020002000290390033703a002200041386a200041a0026a101d2000280238047f200028023c2107200041b8026a200041a8036a290300370300200041b0026a200041a0036a2903003703002002200129030037030020002000290390033703a002200041f0026a200041a0026a106e20002d00f002210120002802f4022202450d08200020002d00f3023a00d302200020002f00f1023b00d102200020023602d402200020013a00d002024020002802f802220c044041002106200221010340200920012802004604404101210b200641016a220104402001200c470440034002402009200220014104746a2204280200460440200141016a2201450d1c200b41016a220b0d0141a08104411c41e885041013000b2001200b4f044020022001200b6b4104746a22032004290200370200200341086a200441086a290200370200200141016a22010d0141a08104411c418886041013000b41808004412141f885041013000b2001200c470d000b0b0240200b4100200b200c4b1b450440200b200c4d0d0141808004412141cc81041013000b41808004412141bc81041013000b2000200c200b6b22013602d802200b450d042007200220011029200041a8026a2009360200200020073602a402200041033602a002200041a0026a105f200041d0026a10230c0e0b0c170b200141106a2101200c200641016a2206470d000b0b2000200c3602d8020b200041d0026a102341030541000b2101410121020c130b200b201041a88904106f000b200041ac026a4101360200200041b4026a4100360200200041b488043602a802200041b4af043602b002200041003602a002200041a0026a41bc8804101a000b200041043a00a002200041a0026a104f000b41002104410121064100210241010b200041ac026a2001360200200041a8026a2002360200200041003602a0022000200641ff01712004410874723602a402230041106b2204240020044280800137020420044184b6043602000240200041a0026a2203280200450440200441001031200341086a2802002202044020044100103120022003410c6a280200200410530c020b200441011031200420032d000410310c010b200441011031200410300b2004280208104d106c000b200041a0026a211023004190016b22052400200541d8006a2203200041f0016a220441086a2802002004410c6a28020010382005280258210220052802602101200528025c210720052004360238200520073602342005200720014102746a3602302005200736022c200520023602282003200541286a101602400240024002400240024020052d006841024604402010410036020820104280808080c0003702002005280228200528023410390c010b200541206a4104103a20052802242201450d01200528022022024100480d01200541186a20022001103b20052802182208450d02200541e0006a220f290300211320052903582112200841106a200541e8006a220c280200360200200841086a201337020020082012370200200541d0006a200541386a280200360200200541c8006a200541306a29030037030020052005290328370340200541d8006a200541406b1016024020052d0068410246044041042102410121040c010b41042101410121030340200341016a220445210a0240200120034704402008200341146c6a22022005290358370200200241106a200c280200360200200241086a200f290300370200200a0d08200121020c010b027f200a0440417f21022004210341000c010b200120016a22022001490d07200541106a410420022004200220044b1b2202200241044d1b2202103a2005280214210720052802102103200541086a2001103a20052008360280012005200529030837028401200541f0006a2003200720054180016a103c2005280270450440200528027421084181808080780c010b200528027421032001210220052802780b210720032007103d2008200141146c6a22012005290358370200200141106a200c280200360200200141086a200f290300370200200a0d070b200541d8006a200541406b1016200221012004210320052d00684102470d000b0b200541d8006a103e2005280240200528024c10392010200436020820102008360204201020023602000b20054190016a24000c040b103f000b20021040000b41a08404412141c492041013000b41a08104411c419886041013000b20002802a402210220002802a8022101230041106b2203240020034280800137020420034184b60436020002402002044020034100103120012003102f2001450d012002200141146c6a21010340200228020020031018200241046a20031028200241146a22022001470d000b0c010b200341011031200310300b0c0e0b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220120004198036a220729030037030020002000290390033703a002200041106a200041a0026a101d200020002802102204410146047e42810e05200041003602f80220004280808080c0003703f0022010410441001029200041b8026a200041a8036a2203290300370300200041b0026a200041a0036a22022903003703002001200729030037030020002000290390033703a002200041a0026a220c20101026201020004190036a10242000201041016a2201417f20011b3602f001200041bc026a2003290300370200200041b4026a2002290300370200200041ac026a2007290300370200200041c4026a201036020020002000290390033702a402200041003602a002200c105f200041f0026a1023200c200041f0016a4130100a1a200c106a201242208642800e840b3703a0022004410146230041106b2204240020044280800137020420044184b6043602000240200041a0026a22032d00002201410247044020044100103120014504402004410010312003280204200410180c020b200441011031200420032d000110310c010b200441011031200410300b2004280208104d106c000b41012102200141ff01714108470d0b0b200041a0026a2201200041f0016a4130100a1a2001106a41082101410021020c0a0b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a29030037030041082101200041a8026a220420004198036a220329030037030020002000290390033703a002200041406b200041a0026a101d024020002802402202450440410021010c010b20002802442107200041b8026a200041a8036a290300370300200041b0026a200041a0036a2903003703002004200329030037030020002000290390033703a002200041a0026a2203102b41e481042007106b41ec81042007106b200041043602a002200020073602a4022003105f2003200041f0016a4130100a1a2003106a0b20024520011068000b200041df026a200041ee016a2d00003a0000200041e8026a200041e0016a290300370300200020053a00dc02200020083602d8022000200e3602d402200020043602d002200020002f01ec013b00dd02200020002903d8013703e002200041f0026a1035200041a0026a41dc81042009106920002d00a002410247044020004190036a200041a0026a4121100a1a200041b9026a20004188036a290300370000200041b1026a20004180036a290300370000200041a9026a200041f8026a290300370000200020002903f0023700a10241012106200041013a00a00220002d009003044020004190036a410172200041a0026a410172107041017321060b200041a0026a20091042027f027f20002d00a0020440200041a8036a200041b9026a290000370300200041a0036a200041b1026a29000037030020004198036a200041a9026a290000370300200020002900a102370390034100200620004190036a200041f0026a1070410173710d011a200041b8026a200041e8026a290300370300200041b0026a200041e0026a290300370300200041a8026a200041d8026a290300370300200020002903d0023703a002200041d0006a200041a0026a1041410720002802504101460d011a200041b8026a2204200041a8036a290300370300200041b0026a2203200041a0036a29030037030041082101200041a8026a220220004198036a29030037030020002000290390033703a002200041a0026a2207102b2004200041e8026a2903003703002003200041e0026a2903003703002002200041d8026a290300370300200020002903d0023703a0022007200910262009200041d0026a10242007200041f0016a4130100a1a2007106a41000c020b41000b210141010b20011068000b200020002d00a1023a00b7032000419c036a4101360200200041a4036a4101360200200041908204360298032000410036029003200041013602bc032000200041b8036a3602a0032000200041b7036a3602b80320004190036a41808304101a000b20004186036a200041ee016a2d00003a0000410821012000418f036a200041e0016a2d00003a0000200020053a008303200020083600ff022000200e3600fb02200020043600f702200020093600f302200020113b00f1022000200a3a00f002200020002f01ec013b018403200020002903d8013700870320004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220420004198036a29030037030020002000290390033703a002200041c8006a200041a0026a101d024020002802482203450440410021010c010b41dc8104200028024c2202200041f0026a1025200420002903f002370300200041b0026a200041f8026a290300370300200041b8026a20004180036a290300370300200041c0026a20004188036a290300370300200020023602a402200041083602a002200041a0026a2202105f2002200041f0016a4130100a1a2002106a0b20034520011068000b20004190036a220310354100210102402003200710700440200041f0026a2009101720002d00fc02410247044041e081042009106b4100210d410021040240200b450d00410021062002210103402009200128020046044041012104200641016a220104402001200b470440034002402009200220014102746a2802002203460440200141016a2201450d10200441016a22040d0141a08104411c41e885041013000b200120044f04402002200120046b4102746a2003360200200141016a22010d0141a08104411c418886041013000b41808004412141f885041013000b2001200b470d000b0b200441002004200b4b1b4504402004200b4d0d0441808004412141cc81041013000b41808004412141bc81041013000b0c0b0b200141046a2101200b200641016a2206470d000b0b2000200b20046b3602fc01200041073602a002200020093602a402200041a0026a2201105f200041f0026a10492001200041f0016a4130100a1a2001106a410821010c020b200041f0026a1049410321010b4101210d0b200d20011068000b20004190036a22011035027f027f4100200120071070450d001a200041a0026a2009101720002d00ac0222014102470440200041f8026a200041a8026a280000360000200041ff026a200041af026a2d00003a0000200020002900a1023700f102200020002f00ad023b00fd02200020013a00fc02200020002d00a0023a00f002024002400240200e0440200841c0004b0d01200020083602a8022000200e3602a402200020043602a002200041f0026a200041a0026a10550b200541ff01714102470d0120002d00fc0221050c020b200041f0026a104541060c030b200020053a00fc020b2009200041f0026a102741082101200041a8026a20002903f002370300200041b0026a200041f8026a280200360200200041b4026a20053a0000200020093602a402200041063602a002200041a0026a2202105f2002200041f0016a4130100a1a2002106a41000c020b41030b210141010b20011068000b200041ff026a200041ee016a2d00003a0000200020053a00fc02200020083602f8022000200e3602f402200020043602f002200020002f01ec013b00fd0220004190036a2203103541002101027f0240200320071070044041062101200e200810710d010b200041f0026a104541010c010b2009200041f0026a1027200b200f460440200041f0016a410472210c230041306b220a240002400240027f4100200f41016a2202450d001a200c280200220720076a22012007490d01200a41086a410420012002200120024b1b2201200141044d1b22041043200a28020c2103200a2802082102024020070440200c41046a2802002101200a20071043200a2001360220200a200a2903003702240c010b200a41003602280b200a41106a20022003200a41206a103c200a280210450440200a2802142102200c2004360200200c41046a20023602004181808080780c010b200a2802142102200a41186a2802000b210120022001103d200a41306a24000c010b41a08404412141c492041013000b20002802fc01210b20002802f80121020b2002200b4102746a200936020020002802fc0141016a220145044041a08104411c418097041013000b200020013602fc0141082101200041a8026a20002903f002370300200041b0026a200041f8026a280200360200200041b4026a20053a0000200020093602a402200041053602a002200041a0026a2202105f2002200041f0016a4130100a1a2002106a41000b20011068000b200041a0026a2201200041f0016a4130100a1a2001106a41082101410021020c030b1066000b200041b4af043602b002200041003602a002200041a0026a41e48e04101a000b41a08104411c41d885041013000b200220011068000b41002003280208104d106c000bb60101017f230041306b22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a101d024020022802080440200241106a200228020c101f2002280214220104402000200228021836020820002001360204200020022802103602000c020b20004100360204200041013a00000c010b20004100360204200041013a00000b200241306a24000b7501017f230041306b220324002003200136020420032000360200200341146a41023602002003411c6a41023602002003412c6a410536020020034194980436021020034100360208200341053602242003200341206a360218200320033602282003200341046a360220200341086a2002101a000b0b00200020014120100b450b3101027f2001410c6c210103402001220204402002410c6b210120002802082000410c6a210041c100490d010b0b2002450bc40d021a7f017e230041b0016b2200240002400240027f0240103741ff0171220141054604402000418080013602604184b604200041e0006a22011002200041186a20002802604184b6044180800141a4870410142000200029031837032020004100360260200041206a2001410410110d032000280260220141187621022001411076210420014108762103200141ff0171220141094704402001419b0147200341ff017141ae014772200441ff0171419d0147200241de004772720d04200041406b1035200041386a420437030020004200370330200041e0006a2201200041306a4130100a1a2001106a1067000b200341ff0171413547200441ff017141da014772200241880147720d03200041106a200041206a100c20002802100d03200041a0016a200028022441047622012000280214220520012005491b10202005450d01200041ed006a210202400340200041e0006a200041206a101b0240024020002d006c22044102470440200041386a2203200041e8006a2802003602002000412e6a2201200241026a2d00003a000020002000290360370330200020022f00003b012c20002802a801220920002802a001460d010c020b200041a0016a10470c070b200041a0016a2009105620002802a80121090b20002802a401220620094104746a22072000290330370200200720043a000c200720002f012c3b000d200741086a20032802003602002007410f6a20012d00003a0000200941016a2208450d01200020083602a801200541016b22050d000b20002802a0010c030b41a08104411c418097041013000b200020013a0060200041e0006a104f000b20002802a4012206450d0120002802a801210820002802a0010b2102200020083602980120002006360294012000200236029001200041e0006a200041206a105e200028026422130d0120004190016a10470b1066000b2000412e6a20002d00930122043a0000200020002f00910122033b012c200028026021182000280268200020023a009001200020033b009101200020043a009301200020063602940120002008360298012008460440200041e0006a201320081038200028026821142000280264211520002802602119200041a0016a200810200240024020002802a001221620002802a80122014f04402008410474211720002802a40121040240201620016b2210450d00200620176a210d200420014104746a210e034020062201200d460d0120012802042111200041e0006a2001280208220f10542000280260220320002802682202490d03201041016b2110200e200a4104746a21120240200f452002200346720d0020002802642002410c6c6a2106200220036b41016a2109200f410c6c410c6b210c410021020340200220116a220741046a2802002103200041086a200741086a2802002205105a20002802082107200028020c20032005100a2103200220066a220b41086a2005360200200b41046a2003360200200b20073602002009450d01200941016a21092002200c472002410c6a21020d000b0b200a41016a210a200141106a2106200041386a200f36020020002000290360221a37033020012d000c2101201241086a200f3602002012201a370200201220013a000c20100d000b0b200420176a21072004210102402014450d00200041306a410472210b200041c1006a210d200441106a210a20084104742105201441027421062015210c200421020340200a21012005450440200721010c020b200241106a210320022d000c22114102460440200321010c020b200c280200210e200d20022f000d3b0000200b2002290200370200200d41026a2002410f6a2d00003a0000200b41086a220a200241086a2802003602002000200e360230200020113a0040200041a8016a200a290200221a3703002000200b2902003703a00120002802a401201aa71071450d04200c41046a210c200e200041a0016a22021027200141106a210a200541106b21052002104520032102200641046b22060d000b0b200041023a0040200041306a2203103e2019201510392001200720016b4104761044201620041048200041406b10352000413c6a2008360200200041386a2013360200200020183602342000410036023020004190016a1047200041e0006a220120034130100a1a2001106a1067000b41808004412141a886041013000b41808004412141a886041013000b200041ec006a4101360200200041f4006a4100360200200041b49004360268200041b4af0436027020004100360260200041e0006a41bc9004101a000b200041ec006a4101360200200041f4006a4100360200200041809004360268200041b4af0436027020004100360260200041e0006a41889004101a000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41cc9004200241086a1074200241206a24000bf00301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1101000d040b200141086a2101200428020020042802042106200441086a2104200341186a2006110300450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1101000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a108a0120032003290310370320200341086a2005200141046a108a0120032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110300450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1101000d010b41000c010b41010b200341406b24000b0f00200028020020012002107641000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a20002003200210792004280208200428020c103d200028020821030b200028020420036a20012002100a1a2003200220036a22014b044041f09004411c419097041013000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10760c020b230041106b22042400200441086a20002003410110792004280208200428020c103d200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41f09004411c418097041013000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1073200241206a24000bdd0101027f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22052002490d0141082005200320032005491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200420032005200441106a103c20042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41909104412141c492041013000bd00101037f02402001450440200221030c010b02402001200120026a41016b410020026b7122054d044041fcb504280200220220056a22042002490d024180b6042802002004490440200541ffff036a22022005490d022002411076220340002202417f46200241ffff0371200247720d022002411074220220034110746a22042002490d02410021034180b6042004360200200220056a22042002490d030b41fcb5042004360200200221030c020b41e0ae04411c41c4ae041013000b410021030b20002001360204200020033602000be106020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e2206410174418b9a046a2f00003b0000200241026b2004200641e4006c6b41ffff0371410174418b9a046a2f00003b0000200041046b2100200e42ffc1d72f56200d210e0d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff0371410174418b9a046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a2002410174418b9a046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b2102410021042005410471044041b4af042104200241b4af0441b4af0410810120026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a2802002201200720041084010d01200220082006200128020c11010021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a200720041084010d02200341106a2001200920026b410110850120032802142202418080c400460d022003280210200520082006200a28020c1101000d0220022005200a1086010d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a2802002201200720041084010d01200220082006200128020c11010021000c010b41012100200341086a2001200920026b4101108501200328020c2205418080c400460d00200328020820012802002202200141046a2802002201200720041084010d00200220082006200128020c1101000d0020052002200110860121000b200341406b240020000f0b41a09704411c41d49c041013000b41c09704412141b0ac041013000b0300010b0e0020002802001a03400c000b000b0d0042f2e7eb9187bab2c1d1000b4b01017f230041106b2205240020022003490440200320022004104e000b200541086a200320022001108001200528020c21012000200528020836020020002001360204200541106a24000b150020002001200220034198b40441c097041097010bac04010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d00200120001082012206200020016a22082004417c716a20044103711082016a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41b0a004108301200328020c21052003280208210820032003280200200328020422002000417c7141c0a104108301200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41a09704411c41c8a3041013000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441a09704411c41f8a3041013000b41a09704411c41d8a3041013000b41a09704411c41e8a3041013000b41a09704411c41b8a3041013000b2001200210820121020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41a09704411c41a0ac041013000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41dcaf04412320041013000b39000240027f2002418080c40047044041012000200220012802101103000d011a0b20030d0141000b0f0b200020034100200128020c1101000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41a09704411c41e49c041013000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110300450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110300450d000b200441016b0b2000490b4c01017f230041106b22052400200120034d0440200541086a410020012002108001200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000bed04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11010021000c020b41a09704411c4188a5041013000b200b450440200128020020032004200128020428020c11010021000c010b2001410c6a2802002200200320046a200310810122024b0440200941086a2001200020026b410010850141012100200928020c2202418080c400460d0120092802082001280200220520032004200141046a280200220128020c1101000d0120022005200110860121000c010b200128020020032004200128020428020c11010021000b200941106a240020000b140020002802002001200028020428020c1103000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044107470d0120012802000b2802002104410121030b20002004360204200020033602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1074200341206a24000be608010b7f23004190016b22032400200341003b0184012003410a3602800120034281808080a00137037820032002360274200341003602702003200236026c200320013602682003200236026420034100360260200028020421062000280200210720002802082108200341fc006a2109027f0340024002400240024020032d008501450440200341d8006a2003280268220c200328026c20032802702003280274108d010240024020032802582201450d00200328025c2100034002400240024002400240027f0240024002400240200328027822020440200220096a41016b2d00002104200041084f04402001200141036a417c712202460440200041086b210a410021020c040b200341d0006a200220016b22022000200020024b1b22022001200041f89d04108701200341c8006a200420032802502003280254108e0120032802484101470d02200328024c21010c050b200341306a200420012000108e012003280234210120032802300c050b41c09704412141d8aa041013000b2002200041086b220a4b0d010b200441818284086c210b0340200241046a22052002490d04200120026a280200200b73220d417f73200d41818284086b71200120056a280200200b732205417f73200541818284086b7172418081828478710d012002200241086a22024b0d072002200a4d0d000b0b200341406b20012000200241a89e04107f200341386a200420032802402003280244108e01410020032802384101470d011a2002200328023c6a220120024f0d0041a09704411c41b89e041013000b41010b4101460440200141016a2200450d022000200328027022006a22022000490d0320032002360270200220032802782200490d05200341286a2003280268200328026c200220006b2002108d0120032802282202450d05200328022c2100200341206a2003280278200941044188ab041087012002200020032802202003280224108f01450d05200341186a200328026020032802702200200c10900120032000360260200328021c2102200328021821000c080b200320032802743602700c060b41a09704411c41889e041013000b41a09704411c41e8aa041013000b41a09704411c41f8aa041013000b41a09704411c41989e041013000b200341106a2003280268200328026c20032802702003280274108d0120032802142100200328021022010d000b0b4100210020032d0085010d00200341013a008501024020032d008401044020032802642101200328026021040c010b2003280264220120032802602204490d0420012004460d010b200341086a200420012003280268109001200328020c2102200328020821000b20000d010b41000c050b20082d0000450d012007418499044104200628020c110100450d010c020b41c0970441214198a5041013000b2003410a36028c0120082002047f200320002002200241016b41d0a104107f2003418c016a410120032802002003280204108f010541000b3a0000200720002002200628020c110100450d010b0b41010b20034190016a24000b4d01037f230041106b220524002002200449200320044b72450440200541086a200320042001108001200528020c2107200528020821060b2000200736020420002006360200200541106a24000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b1801017f2001200346047f200020022001100b0541010b450b1500200020012002200341aca60441c097041097010b5801027f230041206b22022400200128020421032001280200200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1074200241206a24000b0c00200028020020011088010b1800200128020041ccb5044105200128020428020c1101000b9c0301037f230041406a22022400200028020021034101210002402001280200220441d09804410c200141046a280200220128020c1101000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241e0980436023020024100360228200241083602142002200241106a36023820022002410c6a36021020042001200241286a108b01450d010c020b20032802002200200328020428020c110a0042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241e0980436023020024100360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a108b010d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4105360200200241346a4105360200200241a898043602182002410036021020022000410c6a3602382002200041086a3602302002410336022c200220003602282002200241286a36022020042001200241106a108b0121000b200241406b240020000b1500200020012002200341fcae044190af041097010b150020002001200220034198b40441b0b4041097010b2800200120024d04402000200220016b3602042000200120036a3602000f0b2005412120041013000b3701017f230041106b22032400200341086a20022001104c200328020c21012000200328020836020020002001360204200341106a24000b7301017f230041306b220424002004200136020420042000360200200441146a41023602002004411c6a41023602002004412c6a41053602002004200336021020044100360208200441053602242004200441206a3602182004200441046a36022820042004360220200441086a2002101a000bf80102037f017e230041d0006b22042400200441106a22062001106120042903102107200441003602282004200737032020022802002002280204200441206a22051053200520022802082003103420042004290320370310200441086a20062004280228101920052004280208200428020c102c20042001280200220620012802042001280208220241cc8804101020044100360248200420042903003703402005200441406b101e2002200220042802486a22054b044041a08104411c41dc88041013000b20012006360200200141086a22022005360200200041086a200228020036020020002001290200370200200441d0006a24000b0bad350700418080040be110617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6d706163742e727300210001006a000000420000002600000000000000617474656d707420746f206164642077697468206f766572666c6f77000b01007f0000005206000035000000000b01007f00000059060000240000006dbd733339033e7900e945cab16cd67c3b605e7d4661696c656420746f206765742076616c756520696e204d617070696e673a20f0000100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e727318010100680000009c000000250000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273000000900101006d0000009d00000011000000900101006d0000009d00000030000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f77000000c016010083000000c80100001e0000000a0000000100000001000000010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f627974652d736c6963652d636173742d312e322e322f7372632f6c69622e7273006402010063000000ea01000001000000000b01007f0000006c06000015000000000b01007f0000006d06000015000000000b01007f0000007b0600003e000000000b01007f0000007f06000011000000000b01007f0000002b0b00001e000000000b01007f000000c3080000110000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300380301006b000000e40000001400000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000900101006d0000006b0100000e000000900101006d0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72180401001c000000900101006d000000ed00000017000000101801006e000000c100000037000000101801006e000000c4000000090000002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f6964656e746974792f74797065732e727300006c0401003a0000002a0000000d0000004964656e746974793a3a4964656e7469747943726561746564000000b417010000000000b80401004964656e746974793a3a4964656e74697479437265617465643a3a6f776e65724964656e746974793a3a4164647265737341646465640000b417010000000000000501004964656e746974793a3a4164647265737341646465643a3a6964656e746974795f6e6f4964656e746974793a3a416464726573735570646174656400b417010000000000470501004964656e746974793a3a41646472657373557064617465643a3a6964656e746974795f6e6f4964656e746974793a3a4164647265737352656d6f766564000000b417010000000000910501004964656e746974793a3a4164647265737352656d6f7665643a3a6964656e746974795f6e6f4964656e746974793a3a4964656e7469747952656d6f7665640000b417010000000000dd0501004964656e746974793a3a4964656e7469747952656d6f7665643a3a6964656e746974795f6e6f4964656e746974793a3a436861696e41646465644964656e746974793a3a436861696e41646465643a3a636861696e5f69644964656e746974793a3a436861696e557064617465640000b4170100000000005c0601004964656e746974793a3a436861696e557064617465643a3a636861696e5f69644964656e746974793a3a436861696e52656d6f7665640000b417010000000000a00601004964656e746974793a3a436861696e52656d6f7665643a3a636861696e5f69644964656e746974793a3a5265636f766572794163636f756e745365744964656e746974793a3a5265636f766572794163636f756e745365743a3a6964656e746974795f6e6f2f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f6964656e746974792f6c69622e727300000029070100380000002b00000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900740701002700000073746f7261676520656e7472792077617320656d70747900a4070100170000004561636820636861696e206e6565647320746f2068617665206120636f72726573706f6e64696e6720636861696e206964207370656369666965642ec40701003c0000002907010038000000c80000000d000000436861696e207270632075726c20697320746f6f206c6f6e6700000018080100190000002907010038000000d1000000150000000a00000004000000040000000b0000000c0000000d0041f090040be417617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000a00000000000000010000000e0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300c40801007f0000008a0100001c0000006361706163697479206f766572666c6f770000005409010011000000c40801007f00000006020000050000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c656400fd09010015000000120a01000d000000800901007d00000095010000090000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000730a01007b00000064020000200000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e727300000b01007f000000300700000d000000000b01007f0000009e07000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320e20b010020000000020c0100120000003a000000b417010000000000240c010001000000240c0100010000000a00000000000000010000000f00000070616e69636b65642061742027272c205c0c0100010000005d0c0100030000003a200000b417010000000000700c010002000000202020202c0a280a282f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000d30d01007e0000005d0500000d000000d30d01007e000000ed050000380000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e727300740e0100830000004e0000002f000000740e0100830000005a0000001f000000740e0100830000006300000009000000740e0100830000006800000027000000740e010083000000680000003e00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820480f0100120000005a0f01002200000072616e676520656e6420696e646578208c0f0100100000005a0f0100220000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273000000ac0f010081000000c4050000250000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72734010010080000000fe0300002f0000004010010080000000de0800001e000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028e010010015000000f51001002b000000e10b0100010000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273381101008000000047000000150000003811010080000000540000001100000038110100800000005a00000009000000381101008000000064000000110000003811010080000000660000000d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e727300081201007f0000009100000011000000081201007f0000004f0200002d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273000000a812010081000000ca000000130000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727300003c13010086000000e5000000150000000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101004196a9040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041d4a9040bfd042f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72730000d414010082000000a101000047000000d414010082000000b401000020000000d414010082000000b401000011000000d414010082000000b8010000260000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273981501008800000095000000010000008d0c01007e000000cd01000005000000b4170100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e727300c0160100830000002f010000180041e0ae040b51617474656d707420746f206164642077697468206f766572666c6f779519010082000000900100004f00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f770041c0af040be504617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290ab417010000000000ff170100010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e72730000101801006e0000005a0000001c000000101801006e0000005a00000009000000101801006e0000005a00000031000000101801006e0000006500000009000000101801006e000000830000001a000000101801006e0000008d0000002100000045636473615265636f766572794661696c656443616c6c52756e74696d654661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f64652f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e727300951901008200000082010000470041b0b4040bcb01617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6465632e7273000000511a010068000000770000000e0000004572726f72000000190000001c000000160000001400000019000000a71601008b1601007516010061160100481601","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"identity","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x9bae9d5e"},{"args":[{"label":"chains","type":{"displayName":["Vec"],"type":13}},{"label":"chain_ids","type":{"displayName":["Vec"],"type":9}}],"default":false,"docs":[],"label":"init_with_chains","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x0935da88"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":37},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":40},"hash":{"displayName":["Hash"],"type":38},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":39}},"events":[{"args":[{"docs":[" Owner of the created identity."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The \`IdentityNo\` associated with the created identity."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":["Events"],"label":"IdentityCreated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which a new address has been added."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The newly added address."],"indexed":false,"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressAdded"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been updated."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The updated address value."],"indexed":false,"label":"updated_address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressUpdated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been removed."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"AddressRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got removed."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"},{"args":[{"docs":[" The \`ChainId\` that is associated with the newly added chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The rpc url of the chain that got added."],"indexed":false,"label":"rpc_urls","type":{"displayName":["Vec"],"type":7}},{"docs":[" The address type used on the chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainAdded"},{"args":[{"docs":[" The \`ChainId\` that is associated with the updated chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The rpc url of the updated chain."],"indexed":false,"label":"rpc_urls","type":{"displayName":["Vec"],"type":7}},{"docs":[" The address type used on the updated chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainUpdated"},{"args":[{"docs":[" The \`ChainId\` that is associated with the chain that got"," removed."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"ChainRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that set a recovery account."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The newly set recovery account."],"indexed":false,"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"RecoveryAccountSet"}],"lang_error":{"displayName":["ink","LangError"],"type":12},"messages":[{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the \`IdentityInfo\` of an identity that is associated with"," the provided \`IdentityNo\`."],"label":"identity","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xcbfefbec"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"owner_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x99720c1e"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"identity_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":21},"selector":"0x713ca232"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the chain name that is associated with the specified \`ChainId\`."],"label":"chain_info_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":23},"selector":"0x59d847e9"},{"args":[{"label":"receiver","type":{"displayName":["IdentityNo"],"type":2}},{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the destination address of a transaction that needs to be"," routed to the specified identity on the specified chain."],"label":"transaction_destination","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":25},"selector":"0x525505e4"},{"args":[],"default":false,"docs":[" A list of all the available chains each associated with a \`ChainId\`."],"label":"available_chains","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0xa5cf243e"},{"args":[],"default":false,"docs":[" Creates an identity and returns the \`IdentityNo\`.",""," A user can only create one identity."],"label":"create_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xfb893664"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Adds an address for a given chain"],"label":"add_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x71cc798d"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Updates the address of the given chain"],"label":"update_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x892f75e4"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Removes the address by chain"],"label":"remove_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xdca7a60f"},{"args":[],"default":false,"docs":[" Removes an identity"],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x08026740"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"info","type":{"displayName":["ChainInfo"],"type":14}}],"default":false,"docs":[],"label":"add_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x1cd09676"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"new_rpc_url","type":{"displayName":["Option"],"type":35}},{"label":"new_address_type","type":{"displayName":["Option"],"type":36}}],"default":false,"docs":[],"label":"update_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x7d5eea00"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[],"label":"remove_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x5b23980f"},{"args":[{"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Sets the recovery account that will be able to change the ownership"," of the identity.",""," Only callable by the identity owner."],"label":"set_recovery_account","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xd3b93403"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Transfers the ownership of an identity to another account.",""," Only callable by the identity owner or any account that the identity"," owner added as a proxy."],"label":"transfer_ownership","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x107e33ea"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d5e603b","ty":0}},"name":"addresses"}],"name":"IdentityInfo"}},"root_key":"0x7d5e603b"}},"name":"number_to_identity"},{"layout":{"root":{"layout":{"leaf":{"key":"0xca45e900","ty":5}},"root_key":"0xca45e900"}},"name":"owner_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x7cd66cb1","ty":2}},"root_key":"0x7cd66cb1"}},"name":"identity_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x3373bd6d","ty":5}},"root_key":"0x3373bd6d"}},"name":"recovery_account_of"},{"layout":{"leaf":{"key":"0x00000000","ty":2}},"name":"latest_identity_no"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x793e0339","ty":7}},"name":"rpc_urls"},{"layout":{"enum":{"dispatchKey":"0x793e0339","name":"AccountType","variants":{"0":{"fields":[],"name":"AccountId32"},"1":{"fields":[],"name":"AccountKey20"}}}},"name":"account_type"}],"name":"ChainInfo"}},"root_key":"0x793e0339"}},"name":"chain_info_of"},{"layout":{"leaf":{"key":"0x00000000","ty":9}},"name":"chain_ids"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"admin"}],"name":"Identity"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"u8"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":4}}}},{"id":7,"type":{"def":{"sequence":{"type":8}}}},{"id":8,"type":{"def":{"primitive":"str"}}},{"id":9,"type":{"def":{"sequence":{"type":2}}}},{"id":10,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":12}],"path":["Result"]}},{"id":11,"type":{"def":{"tuple":[]}}},{"id":12,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":13,"type":{"def":{"sequence":{"type":14}}}},{"id":14,"type":{"def":{"composite":{"fields":[{"name":"rpc_urls","type":7,"typeName":"Vec"},{"name":"account_type","type":15,"typeName":"AccountType"}]}},"path":["common","types","ChainInfo"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AccountId32"},{"index":1,"name":"AccountKey20"}]}},"path":["common","types","AccountType"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":12}],"path":["Result"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":18}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":18}],"path":["Option"]}},{"id":18,"type":{"def":{"composite":{"fields":[{"name":"addresses","type":0,"typeName":"Vec<(ChainId, EncryptedAddress)>"}]}},"path":["identity","types","IdentityInfo"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":12}],"path":["Result"]}},{"id":20,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":5}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":5}],"path":["Option"]}},{"id":21,"type":{"def":{"variant":{"variants":[{"fields":[{"type":22}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":22},{"name":"E","type":12}],"path":["Result"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":2}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":2}],"path":["Option"]}},{"id":23,"type":{"def":{"variant":{"variants":[{"fields":[{"type":24}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":24},{"name":"E","type":12}],"path":["Result"]}},{"id":24,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":14}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":14}],"path":["Option"]}},{"id":25,"type":{"def":{"variant":{"variants":[{"fields":[{"type":26}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":26},{"name":"E","type":12}],"path":["Result"]}},{"id":26,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":27}],"path":["Result"]}},{"id":27,"type":{"def":{"variant":{"variants":[{"index":0,"name":"NotAllowed"},{"index":1,"name":"IdentityDoesntExist"},{"index":2,"name":"AddressAlreadyAdded"},{"index":3,"name":"InvalidChain"},{"index":4,"name":"AddressSizeExceeded"},{"index":5,"name":"ChainNameTooLong"},{"index":6,"name":"ChainRpcUrlTooLong"},{"index":7,"name":"AlreadyIdentityOwner"}]}},"path":["identity","Error"]}},{"id":28,"type":{"def":{"variant":{"variants":[{"fields":[{"type":29}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":29},{"name":"E","type":12}],"path":["Result"]}},{"id":29,"type":{"def":{"sequence":{"type":30}}}},{"id":30,"type":{"def":{"tuple":[2,14]}}},{"id":31,"type":{"def":{"variant":{"variants":[{"fields":[{"type":32}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":32},{"name":"E","type":12}],"path":["Result"]}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":27}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"fields":[{"type":34}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":34},{"name":"E","type":12}],"path":["Result"]}},{"id":34,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":27}],"path":["Result"]}},{"id":35,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":8}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":8}],"path":["Option"]}},{"id":36,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":15}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":15}],"path":["Option"]}},{"id":37,"type":{"def":{"primitive":"u128"}}},{"id":38,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":39,"type":{"def":{"primitive":"u64"}}},{"id":40,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file diff --git a/types/data/identity.json b/types/data/identity.json index 04c87b3..04dfeaf 100644 --- a/types/data/identity.json +++ b/types/data/identity.json @@ -111,18 +111,46 @@ "isConvertable": false }, "7": { + "name": "Array", + "body": { + "0": { + "name": "string", + "isResult": false, + "isPrimitive": true, + "isConvertable": false + } + }, + "isResult": false, + "isPrimitive": false, + "isConvertable": false + }, + "8": { "name": "string", "isResult": false, "isPrimitive": true, "isConvertable": false }, "9": { + "name": "Array", + "body": { + "0": { + "name": "number", + "isResult": false, + "isPrimitive": true, + "isConvertable": false + } + }, + "isResult": false, + "isPrimitive": false, + "isConvertable": false + }, + "11": { "name": "null", "isResult": false, "isPrimitive": true, "isConvertable": false }, - "10": { + "12": { "name": "LangError", "body": { "CouldNotReadInput": null @@ -131,16 +159,24 @@ "isPrimitive": false, "isConvertable": false }, - "11": { + "13": { "name": "Array", "body": { "0": { - "name": "NetworkInfo", + "name": "ChainInfo", "body": { - "rpcUrl": { - "name": "string", + "rpcUrls": { + "name": "Array", + "body": { + "0": { + "name": "string", + "isResult": false, + "isPrimitive": true, + "isConvertable": false + } + }, "isResult": false, - "isPrimitive": true, + "isPrimitive": false, "isConvertable": false }, "accountType": { @@ -163,13 +199,21 @@ "isPrimitive": false, "isConvertable": false }, - "12": { - "name": "NetworkInfo", + "14": { + "name": "ChainInfo", "body": { - "rpcUrl": { - "name": "string", + "rpcUrls": { + "name": "Array", + "body": { + "0": { + "name": "string", + "isResult": false, + "isPrimitive": true, + "isConvertable": false + } + }, "isResult": false, - "isPrimitive": true, + "isPrimitive": false, "isConvertable": false }, "accountType": { @@ -187,7 +231,7 @@ "isPrimitive": false, "isConvertable": false }, - "13": { + "15": { "name": "AccountType", "body": { "AccountId32": null, @@ -197,7 +241,7 @@ "isPrimitive": false, "isConvertable": false }, - "14": { + "16": { "name": "Result; } export interface AddressUpdated { identityNo: number; - network: number; + chain: number; updatedAddress: Array; } export interface AddressRemoved { identityNo: number; - network: number; + chain: number; } export interface IdentityRemoved { identityNo: number; } -export interface NetworkAdded { - networkId: number; - rpcUrl: string; +export interface ChainAdded { + chainId: number; + rpcUrls: Array; accountType: ReturnTypes.AccountType; } -export interface NetworkUpdated { - networkId: number; - rpcUrl: string; +export interface ChainUpdated { + chainId: number; + rpcUrls: Array; accountType: ReturnTypes.AccountType; } -export interface NetworkRemoved { - networkId: number; +export interface ChainRemoved { + chainId: number; } export interface RecoveryAccountSet { diff --git a/types/events/address_book.ts b/types/events/address_book.ts index 19ff03c..cbf4d65 100644 --- a/types/events/address_book.ts +++ b/types/events/address_book.ts @@ -59,7 +59,7 @@ export default class EventsClass { return this.__subscribeOnEvent(callbackWrapper, (eventName : string) => eventName == 'IdentityAdded'); } - public subscribeOnNickNameUpdatedEvent(callback : (event : EventTypes.NickNameUpdated) => void) { + public subscribeOnNicknameUpdatedEvent(callback : (event : EventTypes.NicknameUpdated) => void) { const callbackWrapper = (args: any[], event: any) => { const _event: Record < string, any > = {}; @@ -67,10 +67,10 @@ export default class EventsClass { _event[event.args[i]!.name] = args[i]!.toJSON(); } - callback(handleEventReturn(_event, getEventTypeDescription('NickNameUpdated', EVENT_DATA_TYPE_DESCRIPTIONS)) as EventTypes.NickNameUpdated); + callback(handleEventReturn(_event, getEventTypeDescription('NicknameUpdated', EVENT_DATA_TYPE_DESCRIPTIONS)) as EventTypes.NicknameUpdated); }; - return this.__subscribeOnEvent(callbackWrapper, (eventName : string) => eventName == 'NickNameUpdated'); + return this.__subscribeOnEvent(callbackWrapper, (eventName : string) => eventName == 'NicknameUpdated'); } public subscribeOnIdentityRemovedEvent(callback : (event : EventTypes.IdentityRemoved) => void) { diff --git a/types/events/identity.ts b/types/events/identity.ts index b84a1d5..3ef12a8 100644 --- a/types/events/identity.ts +++ b/types/events/identity.ts @@ -87,7 +87,7 @@ export default class EventsClass { return this.__subscribeOnEvent(callbackWrapper, (eventName : string) => eventName == 'IdentityRemoved'); } - public subscribeOnNetworkAddedEvent(callback : (event : EventTypes.NetworkAdded) => void) { + public subscribeOnChainAddedEvent(callback : (event : EventTypes.ChainAdded) => void) { const callbackWrapper = (args: any[], event: any) => { const _event: Record < string, any > = {}; @@ -95,13 +95,13 @@ export default class EventsClass { _event[event.args[i]!.name] = args[i]!.toJSON(); } - callback(handleEventReturn(_event, getEventTypeDescription('NetworkAdded', EVENT_DATA_TYPE_DESCRIPTIONS)) as EventTypes.NetworkAdded); + callback(handleEventReturn(_event, getEventTypeDescription('ChainAdded', EVENT_DATA_TYPE_DESCRIPTIONS)) as EventTypes.ChainAdded); }; - return this.__subscribeOnEvent(callbackWrapper, (eventName : string) => eventName == 'NetworkAdded'); + return this.__subscribeOnEvent(callbackWrapper, (eventName : string) => eventName == 'ChainAdded'); } - public subscribeOnNetworkUpdatedEvent(callback : (event : EventTypes.NetworkUpdated) => void) { + public subscribeOnChainUpdatedEvent(callback : (event : EventTypes.ChainUpdated) => void) { const callbackWrapper = (args: any[], event: any) => { const _event: Record < string, any > = {}; @@ -109,13 +109,13 @@ export default class EventsClass { _event[event.args[i]!.name] = args[i]!.toJSON(); } - callback(handleEventReturn(_event, getEventTypeDescription('NetworkUpdated', EVENT_DATA_TYPE_DESCRIPTIONS)) as EventTypes.NetworkUpdated); + callback(handleEventReturn(_event, getEventTypeDescription('ChainUpdated', EVENT_DATA_TYPE_DESCRIPTIONS)) as EventTypes.ChainUpdated); }; - return this.__subscribeOnEvent(callbackWrapper, (eventName : string) => eventName == 'NetworkUpdated'); + return this.__subscribeOnEvent(callbackWrapper, (eventName : string) => eventName == 'ChainUpdated'); } - public subscribeOnNetworkRemovedEvent(callback : (event : EventTypes.NetworkRemoved) => void) { + public subscribeOnChainRemovedEvent(callback : (event : EventTypes.ChainRemoved) => void) { const callbackWrapper = (args: any[], event: any) => { const _event: Record < string, any > = {}; @@ -123,10 +123,10 @@ export default class EventsClass { _event[event.args[i]!.name] = args[i]!.toJSON(); } - callback(handleEventReturn(_event, getEventTypeDescription('NetworkRemoved', EVENT_DATA_TYPE_DESCRIPTIONS)) as EventTypes.NetworkRemoved); + callback(handleEventReturn(_event, getEventTypeDescription('ChainRemoved', EVENT_DATA_TYPE_DESCRIPTIONS)) as EventTypes.ChainRemoved); }; - return this.__subscribeOnEvent(callbackWrapper, (eventName : string) => eventName == 'NetworkRemoved'); + return this.__subscribeOnEvent(callbackWrapper, (eventName : string) => eventName == 'ChainRemoved'); } public subscribeOnRecoveryAccountSetEvent(callback : (event : EventTypes.RecoveryAccountSet) => void) { diff --git a/types/mixed-methods/identity.ts b/types/mixed-methods/identity.ts index c2485c2..a2b54e2 100644 --- a/types/mixed-methods/identity.ts +++ b/types/mixed-methods/identity.ts @@ -47,7 +47,7 @@ export default class Methods { identityNo: (number | string | BN), __options: GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identity", [identityNo], __options, (result) => { return handleReturnType(result, getTypeDescription(14, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identity", [identityNo], __options, (result) => { return handleReturnType(result, getTypeDescription(16, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -60,7 +60,7 @@ export default class Methods { identityNo: (number | string | BN), __options: GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "ownerOf", [identityNo], __options, (result) => { return handleReturnType(result, getTypeDescription(17, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "ownerOf", [identityNo], __options, (result) => { return handleReturnType(result, getTypeDescription(19, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -73,46 +73,46 @@ export default class Methods { owner: ArgumentTypes.AccountId, __options: GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identityOf", [owner], __options, (result) => { return handleReturnType(result, getTypeDescription(19, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identityOf", [owner], __options, (result) => { return handleReturnType(result, getTypeDescription(21, DATA_TYPE_DESCRIPTIONS)); }); } /** - * networkInfoOf + * chainInfoOf * - * @param { (number | string | BN) } networkId, - * @returns { Result } + * @param { (number | string | BN) } chainId, + * @returns { Result } */ - "networkInfoOf" ( - networkId: (number | string | BN), + "chainInfoOf" ( + chainId: (number | string | BN), __options: GasLimit, - ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "networkInfoOf", [networkId], __options, (result) => { return handleReturnType(result, getTypeDescription(21, DATA_TYPE_DESCRIPTIONS)); }); + ): Promise< QueryReturnType< Result > >{ + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "chainInfoOf", [chainId], __options, (result) => { return handleReturnType(result, getTypeDescription(23, DATA_TYPE_DESCRIPTIONS)); }); } /** * transactionDestination * * @param { (number | string | BN) } receiver, - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, * @returns { Result, ReturnTypes.Error>, ReturnTypes.LangError> } */ "transactionDestination" ( receiver: (number | string | BN), - network: (number | string | BN), + chain: (number | string | BN), __options: GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.Error>, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "transactionDestination", [receiver, network], __options, (result) => { return handleReturnType(result, getTypeDescription(23, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "transactionDestination", [receiver, chain], __options, (result) => { return handleReturnType(result, getTypeDescription(25, DATA_TYPE_DESCRIPTIONS)); }); } /** - * availableNetworks + * availableChains * - * @returns { Result, ReturnTypes.LangError> } + * @returns { Result, ReturnTypes.LangError> } */ - "availableNetworks" ( + "availableChains" ( __options: GasLimit, - ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "availableNetworks", [], __options, (result) => { return handleReturnType(result, getTypeDescription(26, DATA_TYPE_DESCRIPTIONS)); }); + ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "availableChains", [], __options, (result) => { return handleReturnType(result, getTypeDescription(28, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -131,50 +131,50 @@ export default class Methods { /** * addAddress * - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, * @param { Array<(number | string | BN)> } address, * @returns { void } */ "addAddress" ( - network: (number | string | BN), + chain: (number | string | BN), address: Array<(number | string | BN)>, __options: GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "addAddress", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [network, address], __options); + }, [chain, address], __options); } /** * updateAddress * - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, * @param { Array<(number | string | BN)> } address, * @returns { void } */ "updateAddress" ( - network: (number | string | BN), + chain: (number | string | BN), address: Array<(number | string | BN)>, __options: GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "updateAddress", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [network, address], __options); + }, [chain, address], __options); } /** * removeAddress * - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, * @returns { void } */ "removeAddress" ( - network: (number | string | BN), + chain: (number | string | BN), __options: GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "removeAddress", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [network], __options); + }, [chain], __options); } /** @@ -191,52 +191,54 @@ export default class Methods { } /** - * addNetwork + * addChain * - * @param { ArgumentTypes.NetworkInfo } info, + * @param { (number | string | BN) } chainId, + * @param { ArgumentTypes.ChainInfo } info, * @returns { void } */ - "addNetwork" ( - info: ArgumentTypes.NetworkInfo, + "addChain" ( + chainId: (number | string | BN), + info: ArgumentTypes.ChainInfo, __options: GasLimit, ){ - return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "addNetwork", (events: EventRecord) => { + return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "addChain", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [info], __options); + }, [chainId, info], __options); } /** - * updateNetwork + * updateChain * - * @param { (number | string | BN) } networkId, + * @param { (number | string | BN) } chainId, * @param { string | null } newRpcUrl, * @param { ArgumentTypes.AccountType | null } newAddressType, * @returns { void } */ - "updateNetwork" ( - networkId: (number | string | BN), + "updateChain" ( + chainId: (number | string | BN), newRpcUrl: string | null, newAddressType: ArgumentTypes.AccountType | null, __options: GasLimit, ){ - return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "updateNetwork", (events: EventRecord) => { + return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "updateChain", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [networkId, newRpcUrl, newAddressType], __options); + }, [chainId, newRpcUrl, newAddressType], __options); } /** - * removeNetwork + * removeChain * - * @param { (number | string | BN) } networkId, + * @param { (number | string | BN) } chainId, * @returns { void } */ - "removeNetwork" ( - networkId: (number | string | BN), + "removeChain" ( + chainId: (number | string | BN), __options: GasLimit, ){ - return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "removeNetwork", (events: EventRecord) => { + return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "removeChain", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [networkId], __options); + }, [chainId], __options); } /** diff --git a/types/query/identity.ts b/types/query/identity.ts index dede6d4..a23ff48 100644 --- a/types/query/identity.ts +++ b/types/query/identity.ts @@ -39,7 +39,7 @@ export default class Methods { identityNo: (number | string | BN), __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identity", [identityNo], __options , (result) => { return handleReturnType(result, getTypeDescription(14, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identity", [identityNo], __options , (result) => { return handleReturnType(result, getTypeDescription(16, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -52,7 +52,7 @@ export default class Methods { identityNo: (number | string | BN), __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "ownerOf", [identityNo], __options , (result) => { return handleReturnType(result, getTypeDescription(17, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "ownerOf", [identityNo], __options , (result) => { return handleReturnType(result, getTypeDescription(19, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -65,46 +65,46 @@ export default class Methods { owner: ArgumentTypes.AccountId, __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identityOf", [owner], __options , (result) => { return handleReturnType(result, getTypeDescription(19, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identityOf", [owner], __options , (result) => { return handleReturnType(result, getTypeDescription(21, DATA_TYPE_DESCRIPTIONS)); }); } /** - * networkInfoOf + * chainInfoOf * - * @param { (number | string | BN) } networkId, - * @returns { Result } + * @param { (number | string | BN) } chainId, + * @returns { Result } */ - "networkInfoOf" ( - networkId: (number | string | BN), + "chainInfoOf" ( + chainId: (number | string | BN), __options ? : GasLimit, - ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "networkInfoOf", [networkId], __options , (result) => { return handleReturnType(result, getTypeDescription(21, DATA_TYPE_DESCRIPTIONS)); }); + ): Promise< QueryReturnType< Result > >{ + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "chainInfoOf", [chainId], __options , (result) => { return handleReturnType(result, getTypeDescription(23, DATA_TYPE_DESCRIPTIONS)); }); } /** * transactionDestination * * @param { (number | string | BN) } receiver, - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, * @returns { Result, ReturnTypes.Error>, ReturnTypes.LangError> } */ "transactionDestination" ( receiver: (number | string | BN), - network: (number | string | BN), + chain: (number | string | BN), __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.Error>, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "transactionDestination", [receiver, network], __options , (result) => { return handleReturnType(result, getTypeDescription(23, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "transactionDestination", [receiver, chain], __options , (result) => { return handleReturnType(result, getTypeDescription(25, DATA_TYPE_DESCRIPTIONS)); }); } /** - * availableNetworks + * availableChains * - * @returns { Result, ReturnTypes.LangError> } + * @returns { Result, ReturnTypes.LangError> } */ - "availableNetworks" ( + "availableChains" ( __options ? : GasLimit, - ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "availableNetworks", [], __options , (result) => { return handleReturnType(result, getTypeDescription(26, DATA_TYPE_DESCRIPTIONS)); }); + ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "availableChains", [], __options , (result) => { return handleReturnType(result, getTypeDescription(28, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -115,50 +115,50 @@ export default class Methods { "createIdentity" ( __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "createIdentity", [], __options , (result) => { return handleReturnType(result, getTypeDescription(29, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "createIdentity", [], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); } /** * addAddress * - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, * @param { Array<(number | string | BN)> } address, * @returns { Result, ReturnTypes.LangError> } */ "addAddress" ( - network: (number | string | BN), + chain: (number | string | BN), address: Array<(number | string | BN)>, __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "addAddress", [network, address], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "addAddress", [chain, address], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** * updateAddress * - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, * @param { Array<(number | string | BN)> } address, * @returns { Result, ReturnTypes.LangError> } */ "updateAddress" ( - network: (number | string | BN), + chain: (number | string | BN), address: Array<(number | string | BN)>, __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "updateAddress", [network, address], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "updateAddress", [chain, address], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** * removeAddress * - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, * @returns { Result, ReturnTypes.LangError> } */ "removeAddress" ( - network: (number | string | BN), + chain: (number | string | BN), __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "removeAddress", [network], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "removeAddress", [chain], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -169,50 +169,52 @@ export default class Methods { "removeIdentity" ( __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "removeIdentity", [], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "removeIdentity", [], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** - * addNetwork + * addChain * - * @param { ArgumentTypes.NetworkInfo } info, - * @returns { Result, ReturnTypes.LangError> } + * @param { (number | string | BN) } chainId, + * @param { ArgumentTypes.ChainInfo } info, + * @returns { Result, ReturnTypes.LangError> } */ - "addNetwork" ( - info: ArgumentTypes.NetworkInfo, + "addChain" ( + chainId: (number | string | BN), + info: ArgumentTypes.ChainInfo, __options ? : GasLimit, - ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "addNetwork", [info], __options , (result) => { return handleReturnType(result, getTypeDescription(29, DATA_TYPE_DESCRIPTIONS)); }); + ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "addChain", [chainId, info], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** - * updateNetwork + * updateChain * - * @param { (number | string | BN) } networkId, + * @param { (number | string | BN) } chainId, * @param { string | null } newRpcUrl, * @param { ArgumentTypes.AccountType | null } newAddressType, * @returns { Result, ReturnTypes.LangError> } */ - "updateNetwork" ( - networkId: (number | string | BN), + "updateChain" ( + chainId: (number | string | BN), newRpcUrl: string | null, newAddressType: ArgumentTypes.AccountType | null, __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "updateNetwork", [networkId, newRpcUrl, newAddressType], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "updateChain", [chainId, newRpcUrl, newAddressType], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** - * removeNetwork + * removeChain * - * @param { (number | string | BN) } networkId, + * @param { (number | string | BN) } chainId, * @returns { Result, ReturnTypes.LangError> } */ - "removeNetwork" ( - networkId: (number | string | BN), + "removeChain" ( + chainId: (number | string | BN), __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "removeNetwork", [networkId], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "removeChain", [chainId], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -225,7 +227,7 @@ export default class Methods { recoveryAccount: ArgumentTypes.AccountId, __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "setRecoveryAccount", [recoveryAccount], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "setRecoveryAccount", [recoveryAccount], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -240,7 +242,7 @@ export default class Methods { newOwner: ArgumentTypes.AccountId, __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "transferOwnership", [identityNo, newOwner], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "transferOwnership", [identityNo, newOwner], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } } \ No newline at end of file diff --git a/types/tx-sign-and-send/identity.ts b/types/tx-sign-and-send/identity.ts index 8698e12..ced5120 100644 --- a/types/tx-sign-and-send/identity.ts +++ b/types/tx-sign-and-send/identity.ts @@ -71,43 +71,43 @@ export default class Methods { } /** - * networkInfoOf + * chainInfoOf * - * @param { (number | string | BN) } networkId, + * @param { (number | string | BN) } chainId, */ - "networkInfoOf" ( - networkId: (number | string | BN), + "chainInfoOf" ( + chainId: (number | string | BN), __options ? : GasLimit, ){ - return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "networkInfoOf", (events: EventRecord) => { + return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "chainInfoOf", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [networkId], __options); + }, [chainId], __options); } /** * transactionDestination * * @param { (number | string | BN) } receiver, - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, */ "transactionDestination" ( receiver: (number | string | BN), - network: (number | string | BN), + chain: (number | string | BN), __options ? : GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "transactionDestination", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [receiver, network], __options); + }, [receiver, chain], __options); } /** - * availableNetworks + * availableChains * */ - "availableNetworks" ( + "availableChains" ( __options ? : GasLimit, ){ - return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "availableNetworks", (events: EventRecord) => { + return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "availableChains", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); }, [], __options); } @@ -127,47 +127,47 @@ export default class Methods { /** * addAddress * - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, * @param { Array<(number | string | BN)> } address, */ "addAddress" ( - network: (number | string | BN), + chain: (number | string | BN), address: Array<(number | string | BN)>, __options ? : GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "addAddress", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [network, address], __options); + }, [chain, address], __options); } /** * updateAddress * - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, * @param { Array<(number | string | BN)> } address, */ "updateAddress" ( - network: (number | string | BN), + chain: (number | string | BN), address: Array<(number | string | BN)>, __options ? : GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "updateAddress", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [network, address], __options); + }, [chain, address], __options); } /** * removeAddress * - * @param { (number | string | BN) } network, + * @param { (number | string | BN) } chain, */ "removeAddress" ( - network: (number | string | BN), + chain: (number | string | BN), __options ? : GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "removeAddress", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [network], __options); + }, [chain], __options); } /** @@ -183,49 +183,51 @@ export default class Methods { } /** - * addNetwork + * addChain * - * @param { ArgumentTypes.NetworkInfo } info, + * @param { (number | string | BN) } chainId, + * @param { ArgumentTypes.ChainInfo } info, */ - "addNetwork" ( - info: ArgumentTypes.NetworkInfo, + "addChain" ( + chainId: (number | string | BN), + info: ArgumentTypes.ChainInfo, __options ? : GasLimit, ){ - return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "addNetwork", (events: EventRecord) => { + return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "addChain", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [info], __options); + }, [chainId, info], __options); } /** - * updateNetwork + * updateChain * - * @param { (number | string | BN) } networkId, + * @param { (number | string | BN) } chainId, * @param { string | null } newRpcUrl, * @param { ArgumentTypes.AccountType | null } newAddressType, */ - "updateNetwork" ( - networkId: (number | string | BN), + "updateChain" ( + chainId: (number | string | BN), newRpcUrl: string | null, newAddressType: ArgumentTypes.AccountType | null, __options ? : GasLimit, ){ - return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "updateNetwork", (events: EventRecord) => { + return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "updateChain", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [networkId, newRpcUrl, newAddressType], __options); + }, [chainId, newRpcUrl, newAddressType], __options); } /** - * removeNetwork + * removeChain * - * @param { (number | string | BN) } networkId, + * @param { (number | string | BN) } chainId, */ - "removeNetwork" ( - networkId: (number | string | BN), + "removeChain" ( + chainId: (number | string | BN), __options ? : GasLimit, ){ - return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "removeNetwork", (events: EventRecord) => { + return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "removeChain", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [networkId], __options); + }, [chainId], __options); } /** diff --git a/types/types-arguments/identity.ts b/types/types-arguments/identity.ts index 4155926..899c078 100644 --- a/types/types-arguments/identity.ts +++ b/types/types-arguments/identity.ts @@ -6,8 +6,8 @@ export enum LangError { couldNotReadInput = 'CouldNotReadInput' } -export type NetworkInfo = { - rpcUrl: string, +export type ChainInfo = { + rpcUrls: Array, accountType: AccountType } @@ -24,10 +24,10 @@ export enum Error { notAllowed = 'NotAllowed', identityDoesntExist = 'IdentityDoesntExist', addressAlreadyAdded = 'AddressAlreadyAdded', - invalidNetwork = 'InvalidNetwork', + invalidChain = 'InvalidChain', addressSizeExceeded = 'AddressSizeExceeded', - networkNameTooLong = 'NetworkNameTooLong', - networkRpcUrlTooLong = 'NetworkRpcUrlTooLong', + chainNameTooLong = 'ChainNameTooLong', + chainRpcUrlTooLong = 'ChainRpcUrlTooLong', alreadyIdentityOwner = 'AlreadyIdentityOwner' } diff --git a/types/types-returns/identity.ts b/types/types-returns/identity.ts index 8d9ca47..e369eea 100644 --- a/types/types-returns/identity.ts +++ b/types/types-returns/identity.ts @@ -7,8 +7,8 @@ export enum LangError { couldNotReadInput = 'CouldNotReadInput' } -export type NetworkInfo = { - rpcUrl: string, +export type ChainInfo = { + rpcUrls: Array, accountType: AccountType } @@ -25,10 +25,10 @@ export enum Error { notAllowed = 'NotAllowed', identityDoesntExist = 'IdentityDoesntExist', addressAlreadyAdded = 'AddressAlreadyAdded', - invalidNetwork = 'InvalidNetwork', + invalidChain = 'InvalidChain', addressSizeExceeded = 'AddressSizeExceeded', - networkNameTooLong = 'NetworkNameTooLong', - networkRpcUrlTooLong = 'NetworkRpcUrlTooLong', + chainNameTooLong = 'ChainNameTooLong', + chainRpcUrlTooLong = 'ChainRpcUrlTooLong', alreadyIdentityOwner = 'AlreadyIdentityOwner' } From 2a0dddd2236baad45583cc1c7ef6f77fa375d8b7 Mon Sep 17 00:00:00 2001 From: Sergej Sakac Date: Sat, 26 Aug 2023 14:15:46 +0200 Subject: [PATCH 02/11] rename the rest --- __tests__/identityKey.test.ts | 76 +++++++++---------- src/components/Cards/AddressCard/index.tsx | 26 +++---- src/components/Modals/AddAddress/index.tsx | 63 ++++++++------- src/components/Modals/EditAddress/index.tsx | 33 ++++---- src/components/Modals/ShareIdentity/index.tsx | 14 ++-- src/contracts/identity/context.tsx | 46 +++++------ src/contracts/types.ts | 14 ++-- src/pages/identity.tsx | 10 +-- src/utils/assetRegistry.ts | 2 +- src/utils/identityKey.ts | 50 ++++++------ src/utils/index.ts | 6 +- 11 files changed, 169 insertions(+), 171 deletions(-) diff --git a/__tests__/identityKey.test.ts b/__tests__/identityKey.test.ts index a2b97cf..2fa28e0 100644 --- a/__tests__/identityKey.test.ts +++ b/__tests__/identityKey.test.ts @@ -1,86 +1,86 @@ import IdentityKey from "../src/utils/identityKey"; -describe("IdentityKey",() => { +describe("IdentityKey", () => { test("Creating a new cipher works", () => { // Identity key would be stored in `window.localStorage`, but in the tests it // will simply be stored locally. let identityKey = ""; - const polkadotNetworkId = 0; - identityKey = IdentityKey.newCipher(identityKey, polkadotNetworkId); + const polkadotChainId = 0; + identityKey = IdentityKey.newCipher(identityKey, polkadotChainId); - containsNetworkAndCipher(identityKey, polkadotNetworkId); + containsChainAndCipher(identityKey, polkadotChainId); - const moonbeamNetworkId = 1; - // Generate a new cipher for the Moonbeam network. - identityKey = IdentityKey.newCipher(identityKey, moonbeamNetworkId); + const moonbeamChainId = 1; + // Generate a new cipher for the Moonbeam chain. + identityKey = IdentityKey.newCipher(identityKey, moonbeamChainId); // The identity Key should still have the Polkadot cipher. - containsNetworkAndCipher(identityKey, polkadotNetworkId); + containsChainAndCipher(identityKey, polkadotChainId); - containsNetworkAndCipher(identityKey, moonbeamNetworkId); + containsChainAndCipher(identityKey, moonbeamChainId); // Ciphers are randomly generated so the two ciphers cannot be the same. - const polkadotCipher = IdentityKey.getNetworkCipher(identityKey, polkadotNetworkId); - const moonbeamCipher = IdentityKey.getNetworkCipher(identityKey, moonbeamNetworkId); + const polkadotCipher = IdentityKey.getChainCipher(identityKey, polkadotChainId); + const moonbeamCipher = IdentityKey.getChainCipher(identityKey, moonbeamChainId); expect(polkadotCipher).not.toBe(moonbeamCipher); - // Cannot create a new Cipher for the same network twice. - expect(() => IdentityKey.newCipher(identityKey, moonbeamNetworkId)) - .toThrow("There already exists a cipher that is attached to the provided networkId"); + // Cannot create a new Cipher for the same chain twice. + expect(() => IdentityKey.newCipher(identityKey, moonbeamChainId)) + .toThrow("There already exists a cipher that is attached to the provided chainId"); }); test("Updating cipher works", () => { let identityKey = ""; - const polkadotNetworkId = 0; - const moonbeamNetworkId = 1; + const polkadotChainId = 0; + const moonbeamChainId = 1; - identityKey = IdentityKey.newCipher(identityKey, polkadotNetworkId); - identityKey = IdentityKey.newCipher(identityKey, moonbeamNetworkId); + identityKey = IdentityKey.newCipher(identityKey, polkadotChainId); + identityKey = IdentityKey.newCipher(identityKey, moonbeamChainId); - containsNetworkAndCipher(identityKey, polkadotNetworkId); - containsNetworkAndCipher(identityKey, moonbeamNetworkId); + containsChainAndCipher(identityKey, polkadotChainId); + containsChainAndCipher(identityKey, moonbeamChainId); - const polkadotCipher = IdentityKey.getNetworkCipher(identityKey, polkadotNetworkId); - const moonbeamCipher = IdentityKey.getNetworkCipher(identityKey, moonbeamNetworkId); + const polkadotCipher = IdentityKey.getChainCipher(identityKey, polkadotChainId); + const moonbeamCipher = IdentityKey.getChainCipher(identityKey, moonbeamChainId); - identityKey = IdentityKey.updateCipher(identityKey, moonbeamNetworkId); - const newMoonbeamCipher = IdentityKey.getNetworkCipher(identityKey, moonbeamNetworkId); + identityKey = IdentityKey.updateCipher(identityKey, moonbeamChainId); + const newMoonbeamCipher = IdentityKey.getChainCipher(identityKey, moonbeamChainId); - // The moonbeam network cipher should be updated. + // The moonbeam chain cipher should be updated. expect(moonbeamCipher).not.toBe(newMoonbeamCipher); // The polkadot cipher shouldn't be affected. - expect(IdentityKey.getNetworkCipher(identityKey, polkadotNetworkId)).toBe(polkadotCipher); + expect(IdentityKey.getChainCipher(identityKey, polkadotChainId)).toBe(polkadotCipher); - // Cannot update a cipher of a network that does not exist. - expect(() => IdentityKey.updateCipher(identityKey, 42)).toThrow("Cannot find networkId"); + // Cannot update a cipher of a chain that does not exist. + expect(() => IdentityKey.updateCipher(identityKey, 42)).toThrow("Cannot find chainId"); }); test("Encryption and decryption works", () => { let identityKey = ""; - const polkadotNetworkId = 0; - identityKey = IdentityKey.newCipher(identityKey, polkadotNetworkId); + const polkadotChainId = 0; + identityKey = IdentityKey.newCipher(identityKey, polkadotChainId); - containsNetworkAndCipher(identityKey, polkadotNetworkId); + containsChainAndCipher(identityKey, polkadotChainId); const polkadotAddress = "126X27SbhrV19mBFawys3ovkyBS87SGfYwtwa8J2FjHrtbmA"; - const encryptedAddress = IdentityKey.encryptAddress(identityKey, polkadotNetworkId, polkadotAddress); - const decryptedAddress = IdentityKey.decryptAddress(identityKey, polkadotNetworkId, encryptedAddress); + const encryptedAddress = IdentityKey.encryptAddress(identityKey, polkadotChainId, polkadotAddress); + const decryptedAddress = IdentityKey.decryptAddress(identityKey, polkadotChainId, encryptedAddress); expect(polkadotAddress).toBe(decryptedAddress); }); }); -const containsNetworkAndCipher = (identityKey: string, networkId: number) => { - const containsNetwork = new RegExp(`\\b${networkId}:`, "g"); - expect(containsNetwork.test(identityKey)).toBe(true); +const containsChainAndCipher = (identityKey: string, chainId: number) => { + const containsChain = new RegExp(`\\b${chainId}:`, "g"); + expect(containsChain.test(identityKey)).toBe(true); - const networkCipher = IdentityKey.getNetworkCipher(identityKey, networkId); - expect(cipherSize(networkCipher)).toBe(16); + const chainCipher = IdentityKey.getChainCipher(identityKey, chainId); + expect(cipherSize(chainCipher)).toBe(16); } const cipherSize = (cipher: string) => Buffer.from(cipher, "base64").length; diff --git a/src/components/Cards/AddressCard/index.tsx b/src/components/Cards/AddressCard/index.tsx index c01d7c9..075c8e6 100644 --- a/src/components/Cards/AddressCard/index.tsx +++ b/src/components/Cards/AddressCard/index.tsx @@ -19,7 +19,7 @@ import KeyStore from '@/utils/keyStore'; import { useToast } from '@/contexts/Toast'; import { useIdentity } from '@/contracts'; -import { Address, NetworkId } from '@/contracts/types'; +import { Address, ChainId } from '@/contracts/types'; import styles from './index.module.scss'; interface AddressCardProps { @@ -36,16 +36,16 @@ export const AddressCard = ({ data, onEdit }: AddressCardProps) => { const confirm = useConfirm(); const { api, activeAccount } = useInkathon(); const { toastSuccess, toastError } = useToast(); - const { identityNo, networks, contract, fetchAddresses } = useIdentity(); + const { identityNo, chains, contract, fetchAddresses } = useIdentity(); const [working, setWorking] = useState(false); - const { networkId, address } = data; + const { chainId, address } = data; - const removeAddress = async (networkId: NetworkId) => { + const removeAddress = async (chainId: ChainId) => { if (!api || !activeAccount || !contract) { toastError( - 'Cannot remove address. Please check if you are connected to the network' + 'Cannot remove address. Please check if you are connected to the chain' ); return; } @@ -57,7 +57,7 @@ export const AddressCard = ({ data, onEdit }: AddressCardProps) => { contract, 'remove_address', {}, - [networkId] + [chainId] ); toastSuccess('Address is removed successfully.'); @@ -75,17 +75,17 @@ export const AddressCard = ({ data, onEdit }: AddressCardProps) => { const decryptAddress = ( address: string, - networkId: number + chainId: number ): DecryptionResult => { if (identityNo === null) return { success: false, value: '' }; const identityKey = KeyStore.readIdentityKey(identityNo) || ''; let decryptedAddress = address; - if (IdentityKey.containsNetworkId(identityKey, networkId)) { + if (IdentityKey.containsChainId(identityKey, chainId)) { decryptedAddress = IdentityKey.decryptAddress( identityKey, - networkId, + chainId, address ); @@ -101,13 +101,13 @@ export const AddressCard = ({ data, onEdit }: AddressCardProps) => { }; }; - const addressDecrypted = decryptAddress(address, networkId); + const addressDecrypted = decryptAddress(address, chainId); return ( - + - {networks[networkId].name} + {chains[chainId].name} @@ -135,7 +135,7 @@ export const AddressCard = ({ data, onEdit }: AddressCardProps) => { confirm({ description: 'This will remove your address and cannot be undone.', - }).then(() => removeAddress(networkId)); + }).then(() => removeAddress(chainId)); }} disabled={working} > diff --git a/src/components/Modals/AddAddress/index.tsx b/src/components/Modals/AddAddress/index.tsx index 859ee58..839018b 100644 --- a/src/components/Modals/AddAddress/index.tsx +++ b/src/components/Modals/AddAddress/index.tsx @@ -20,7 +20,7 @@ import KeyStore from '@/utils/keyStore'; import { useToast } from '@/contexts/Toast'; import { useIdentity } from '@/contracts'; -import { NetworkId } from '@/contracts/types'; +import { ChainId } from '@/contracts/types'; interface AddAddressModalProps { open: boolean; @@ -29,11 +29,11 @@ interface AddAddressModalProps { export const AddAddressModal = ({ open, onClose }: AddAddressModalProps) => { const { api, activeAccount } = useInkathon(); - const { identityNo, networks, contract } = useIdentity(); + const { identityNo, chains, contract } = useIdentity(); const { toastError, toastSuccess } = useToast(); - const [networkId, setNetworkId] = useState(); - const [networkAddress, setNetworkAddress] = useState(); + const [chainId, setChainId] = useState(); + const [chainAddress, setChainAddress] = useState(); const [working, setWorking] = useState(false); const onSubmit = async () => { @@ -41,23 +41,23 @@ export const AddAddressModal = ({ open, onClose }: AddAddressModalProps) => { toastError("You don't have an identity yet."); return; } - if (!networkAddress || networkAddress.trim().length === 0) { + if (!chainAddress || chainAddress.trim().length === 0) { toastError('Please input your address'); return; } - if (networkId == undefined) { - toastError('Please specify the network'); + if (chainId == undefined) { + toastError('Please specify the chain'); return; } - if (!isValidAddress(networkAddress, networks[networkId].ss58Prefix)) { + if (!isValidAddress(chainAddress, chains[chainId].ss58Prefix)) { toastError('Invalid address'); return; } if (!api || !activeAccount || !contract) { toastError( - 'Cannot add an address. Please check if you are connected to the network' + 'Cannot add an address. Please check if you are connected to the chain' ); return; } @@ -65,15 +65,15 @@ export const AddAddressModal = ({ open, onClose }: AddAddressModalProps) => { let identityKey = KeyStore.readIdentityKey(identityNo) || ''; - if (!IdentityKey.containsNetworkId(identityKey, networkId)) { - identityKey = IdentityKey.newCipher(identityKey, networkId); + if (!IdentityKey.containsChainId(identityKey, chainId)) { + identityKey = IdentityKey.newCipher(identityKey, chainId); KeyStore.updateIdentityKey(identityNo, identityKey); } const encryptedAddress = IdentityKey.encryptAddress( identityKey, - networkId, - networkAddress + chainId, + chainAddress ); try { @@ -83,7 +83,7 @@ export const AddAddressModal = ({ open, onClose }: AddAddressModalProps) => { contract, 'add_address', {}, - [networkId, encryptedAddress] + [chainId, encryptedAddress] ); toastSuccess('Successfully added your address.'); @@ -91,10 +91,9 @@ export const AddAddressModal = ({ open, onClose }: AddAddressModalProps) => { onClose(); } catch (e: any) { toastError( - `Failed to add address. Error: ${ - e.errorMessage === 'Error' - ? 'Please check your balance.' - : e.errorMessage + `Failed to add address. Error: ${e.errorMessage === 'Error' + ? 'Please check your balance.' + : e.errorMessage }` ); setWorking(false); @@ -102,8 +101,8 @@ export const AddAddressModal = ({ open, onClose }: AddAddressModalProps) => { }; useEffect(() => { - setNetworkId(undefined); - setNetworkAddress(undefined); + setChainId(undefined); + setChainAddress(undefined); setWorking(false); }, [open]); @@ -114,22 +113,22 @@ export const AddAddressModal = ({ open, onClose }: AddAddressModalProps) => { - List of networks + List of chains setNetworkId(Number(e.target.value))} + value={chainId || ""} + onChange={(e) => setChainId(Number(e.target.value))} > - {Object.entries(networks).map(([id, network], index) => ( + {Object.entries(chains).map(([id, chain], index) => ( - {network.name} + {chain.name} ))} - {networkId !== undefined && ( + {chainId !== undefined && (
{ margin: 0, }} > - {`Ss58 prefix: ${networks[networkId].ss58Prefix}`} + {`Ss58 prefix: ${chains[chainId].ss58Prefix}`}
)} @@ -151,9 +150,9 @@ export const AddAddressModal = ({ open, onClose }: AddAddressModalProps) => { maxLength: 64, }} required - value={networkAddress || ""} - error={networkAddress === ''} - onChange={(e) => setNetworkAddress(e.target.value)} + value={chainAddress || ""} + error={chainAddress === ''} + onChange={(e) => setChainAddress(e.target.value)} /> { }} > Maximum 64 characters - {`${(networkAddress || '').length}/64`} + {`${(chainAddress || '').length}/64`}
diff --git a/src/components/Modals/EditAddress/index.tsx b/src/components/Modals/EditAddress/index.tsx index ad30a53..46ab3ad 100644 --- a/src/components/Modals/EditAddress/index.tsx +++ b/src/components/Modals/EditAddress/index.tsx @@ -21,20 +21,20 @@ import KeyStore from '@/utils/keyStore'; import { useToast } from '@/contexts/Toast'; import { useIdentity } from '@/contracts'; -import { NetworkId } from '@/contracts/types'; +import { ChainId } from '@/contracts/types'; interface EditAddressModalProps { open: boolean; onClose: () => void; - networkId?: NetworkId; + chainId?: ChainId; } export const EditAddressModal = ({ - networkId, + chainId, open, onClose, }: EditAddressModalProps) => { const { api, activeAccount } = useInkathon(); - const { contract, identityNo, networks } = useIdentity(); + const { contract, identityNo, chains } = useIdentity(); const { toastError, toastSuccess } = useToast(); const [newAddress, setNewAddress] = useState(''); const [working, setWorking] = useState(false); @@ -45,8 +45,8 @@ export const EditAddressModal = ({ toastError("You don't have an identity yet."); return; } - if (networkId === undefined) { - toastError('Invalid network'); + if (chainId === undefined) { + toastError('Invalid chain'); return; } if (!newAddress || newAddress.trim().length === 0) { @@ -54,14 +54,14 @@ export const EditAddressModal = ({ return; } - if (!isValidAddress(newAddress, networks[networkId].ss58Prefix)) { + if (!isValidAddress(newAddress, chains[chainId].ss58Prefix)) { toastError('Invalid address'); return; } if (!api || !activeAccount || !contract) { toastError( - 'Cannot update address. Please check if you are connected to the network' + 'Cannot update address. Please check if you are connected to the chain' ); return; } @@ -69,17 +69,17 @@ export const EditAddressModal = ({ let identityKey = KeyStore.readIdentityKey(identityNo) || ''; - if (!IdentityKey.containsNetworkId(identityKey, networkId)) { - identityKey = IdentityKey.newCipher(identityKey, networkId); + if (!IdentityKey.containsChainId(identityKey, chainId)) { + identityKey = IdentityKey.newCipher(identityKey, chainId); KeyStore.updateIdentityKey(identityNo, identityKey); } if (regenerate) - identityKey = IdentityKey.updateCipher(identityKey, networkId); + identityKey = IdentityKey.updateCipher(identityKey, chainId); const encryptedAddress = IdentityKey.encryptAddress( identityKey, - networkId, + chainId, newAddress ); @@ -90,7 +90,7 @@ export const EditAddressModal = ({ contract, 'update_address', {}, - [networkId, encryptedAddress] + [chainId, encryptedAddress] ); // Update the identity key when the user has updated his on-chain data KeyStore.updateIdentityKey(identityNo, identityKey); @@ -100,10 +100,9 @@ export const EditAddressModal = ({ onClose(); } catch (e: any) { toastError( - `Failed to update address. Error: ${ - e.errorMessage === 'Error' - ? 'Please check your balance.' - : e.errorMessage + `Failed to update address. Error: ${e.errorMessage === 'Error' + ? 'Please check your balance.' + : e.errorMessage }` ); setWorking(false); diff --git a/src/components/Modals/ShareIdentity/index.tsx b/src/components/Modals/ShareIdentity/index.tsx index ac81c20..458e7b3 100644 --- a/src/components/Modals/ShareIdentity/index.tsx +++ b/src/components/Modals/ShareIdentity/index.tsx @@ -31,7 +31,7 @@ export const ShareIdentityModal = ({ open, onClose, }: ShareIdentityModalProps) => { - const { identityNo, addresses, networks } = useIdentity(); + const { identityNo, addresses, chains } = useIdentity(); const { toastError, toastSuccess } = useToast(); const [checks, setChecks] = useState>({}); const [sharedKey, setSharedKey] = useState(''); @@ -39,14 +39,14 @@ export const ShareIdentityModal = ({ useEffect(() => { if (identityNo === null) return; - const selectedNetworks = Object.entries(checks) + const selectedChains = Object.entries(checks) .filter((item) => item[1]) .map((item) => Number(item[0])); const identityKey = KeyStore.readIdentityKey(identityNo) || ''; try { - const sharedKey = IdentityKey.getSharedKey(identityKey, selectedNetworks); + const sharedKey = IdentityKey.getSharedKey(identityKey, selectedChains); setSharedKey(sharedKey); } catch (e: any) { toastError(`Failed to get the identity key. Error: ${e.message}`); @@ -74,20 +74,20 @@ export const ShareIdentityModal = ({
- Specify the networks that the receiver of the identity key will be + Specify the chains that the receiver of the identity key will be able to access: - {addresses.map(({ networkId }, index) => ( + {addresses.map(({ chainId }, index) => ( setChecks({ ...checks, - [networkId]: e.target.checked, + [chainId]: e.target.checked, }) } /> diff --git a/src/contracts/identity/context.tsx b/src/contracts/identity/context.tsx index 5cf935c..ea778f7 100644 --- a/src/contracts/identity/context.tsx +++ b/src/contracts/identity/context.tsx @@ -22,14 +22,14 @@ import { CONTRACT_IDENTITY } from '..'; import { Address, IdentityNo, - NetworkConsts, - NetworkId, - Networks, + ChainConsts, + ChainId, + Chains, } from '../types'; interface IdentityContract { identityNo: number | null; - networks: Networks; + chains: Chains; addresses: Array
; contract: ContractPromise | undefined; fetchIdentityNo: () => Promise; @@ -39,7 +39,7 @@ interface IdentityContract { const defaultIdentity: IdentityContract = { identityNo: null, - networks: {}, + chains: {}, addresses: [], contract: undefined, @@ -62,10 +62,10 @@ const IdentityContractProvider = ({ children }: Props) => { const { contract } = useContract(IdentityMetadata, CONTRACT_IDENTITY); const { api, activeAccount } = useInkathon(); const [identityNo, setIdentityNo] = useState(null); - const [networks, setNetworks] = useState({}); + const [chains, setChains] = useState({}); const [addresses, setAddresses] = useState>([]); const [loadingIdentityNo, setLoadingIdentityNo] = useState(false); - const [loadingNetworks, setLoadingNetworks] = useState(false); + const [loadingChains, setLoadingChains] = useState(false); const { toastError } = useToast(); const fetchIdentityNo = useCallback(async () => { @@ -92,15 +92,15 @@ const IdentityContractProvider = ({ children }: Props) => { setLoadingIdentityNo(false); }, [activeAccount, api, contract]); - const fetchNetworks = useCallback(async () => { + const fetchChains = useCallback(async () => { if (!api || !contract) { - setNetworks({}); + setChains({}); return; } const getChainInfo = async ( rpcUrls: string[] - ): Promise => { + ): Promise => { const count = rpcUrls.length; const rpcIndex = Math.min(Math.floor(Math.random() * count), count - 1); const rpc = rpcUrls[rpcIndex]; @@ -130,40 +130,40 @@ const IdentityContractProvider = ({ children }: Props) => { } }; - setLoadingNetworks(true); + setLoadingChains(true); try { const result = await contractQuery( api, '', contract, - 'available_networks', + 'available_chains', {} ); const { output, isError, decodedOutput } = decodeOutput( result, contract, - 'available_networks' + 'available_chains' ); if (isError) throw new Error(decodedOutput); - const _networks: Networks = {}; + const _chains: Chains = {}; for await (const item of output) { - const networkId = Number(item[0]); + const chainId = Number(item[0]); const { accountType, rpcUrls } = item[1]; const info = await getChainInfo(rpcUrls); if (info) - _networks[networkId] = { + _chains[chainId] = { rpcUrls, accountType, ...info, }; } - setNetworks(_networks); + setChains(_chains); } catch (e: any) { toastError(e.toString()); } - setLoadingNetworks(false); + setLoadingChains(false); }, [api, contract, toastError]); const fetchAddresses = useCallback(async () => { @@ -185,10 +185,10 @@ const IdentityContractProvider = ({ children }: Props) => { const _addresses: Array
= []; for (let idx = 0; idx < records.length; ++idx) { const record = records[idx]; - const networkId: NetworkId = Number(record[0]); + const chainId: ChainId = Number(record[0]); const address = record[1]; // FIXME: Decode address here _addresses.push({ - networkId, + chainId, address, }); } @@ -207,7 +207,7 @@ const IdentityContractProvider = ({ children }: Props) => { }, [api, contract, activeAccount]); useEffect(() => { - fetchNetworks(); + fetchChains(); }, [api?.isReady, contract?.address]); return ( @@ -216,10 +216,10 @@ const IdentityContractProvider = ({ children }: Props) => { contract, identityNo, addresses, - networks, + chains, fetchAddresses, fetchIdentityNo, - loading: loadingIdentityNo || loadingNetworks, + loading: loadingIdentityNo || loadingChains, }} > {children} diff --git a/src/contracts/types.ts b/src/contracts/types.ts index 3b0e622..de36912 100644 --- a/src/contracts/types.ts +++ b/src/contracts/types.ts @@ -1,29 +1,29 @@ -export type NetworkId = number; +export type ChainId = number; export type AccountType = 'AccountId32' | 'AccountId20'; -export type NetworkConsts = { +export type ChainConsts = { name: string; ss58Prefix: number; paraId: number; } -export type ChainInfo = NetworkConsts & { +export type ChainInfo = ChainConsts & { rpcUrls: string[]; accountType: AccountType; } -export type Network = { - id: NetworkId; +export type Chain = { + id: ChainId; name: ChainInfo; } export type Address = { - networkId: NetworkId; + chainId: ChainId; address: string; } -export type Networks = Record; +export type Chains = Record; export type IdentityNo = number | null; diff --git a/src/pages/identity.tsx b/src/pages/identity.tsx index 0168520..cfbe081 100644 --- a/src/pages/identity.tsx +++ b/src/pages/identity.tsx @@ -27,7 +27,7 @@ const IdentityPage = () => { const [newAddrModal, openAddAddr] = useState(false); - const [networkId, setNetworkId] = useState(undefined); + const [chainId, setChainId] = useState(undefined); const [editModalOpen, openEditModal] = useState(false); const [importModalOpen, openImportModal] = useState(false); const [shareModalOpen, openShareModal] = useState(false); @@ -90,15 +90,15 @@ const IdentityPage = () => { <> {`Wallet Addresses(${addresses.length})`} - {addresses.map(({ address, networkId }, index) => ( + {addresses.map(({ address, chainId }, index) => ( { - setNetworkId(networkId); + setChainId(chainId); openEditModal(true); }} /> @@ -118,7 +118,7 @@ const IdentityPage = () => { openEditModal(false); fetchAddresses(); }} - networkId={networkId} + chainId={chainId} /> = 0) { const newCipher = this.generateCipher(); const endIndex = identityKey.indexOf(";", startIndex); identityKey = - identityKey.substring(0, startIndex + networkId.toString().length + 1) + newCipher + identityKey.substring(endIndex); + identityKey.substring(0, startIndex + chainId.toString().length + 1) + newCipher + identityKey.substring(endIndex); } else { - throw new Error("Cannot find networkId"); + throw new Error("Cannot find chainId"); } return identityKey; } - public static encryptAddress(identityKey: string, networkId: number, address: string): string { - const cipher = this.getNetworkCipher(identityKey, networkId); + public static encryptAddress(identityKey: string, chainId: number, address: string): string { + const cipher = this.getChainCipher(identityKey, chainId); const cipherBase64 = Buffer.from(cipher, "base64"); const aesCtr = new aesjs.ModeOfOperation.ctr(cipherBase64); @@ -40,8 +40,8 @@ class IdentityKey { return Buffer.from(encryptedAddress).toString("base64"); } - public static decryptAddress(identityKey: string, networkId: number, address: string): string { - const cipher = this.getNetworkCipher(identityKey, networkId); + public static decryptAddress(identityKey: string, chainId: number, address: string): string { + const cipher = this.getChainCipher(identityKey, chainId); const cipherBase64 = Buffer.from(cipher, "base64"); const aesCtr = new aesjs.ModeOfOperation.ctr(cipherBase64); @@ -50,35 +50,35 @@ class IdentityKey { return Buffer.from(decryptedAddress.buffer).toString(); } - public static getNetworkCipher(identityKey: string, networkId: number): string { - const startIndex = identityKey.indexOf(`${networkId}:`); + public static getChainCipher(identityKey: string, chainId: number): string { + const startIndex = identityKey.indexOf(`${chainId}:`); if (startIndex >= 0) { const endIndex = identityKey.indexOf(";", startIndex); - return identityKey.substring(startIndex + networkId.toString().length + 1, endIndex - 1); + return identityKey.substring(startIndex + chainId.toString().length + 1, endIndex - 1); } else { - throw new Error("Cannot find networkId"); + throw new Error("Cannot find chainId"); } } - public static getSharedKey(identityKey: string, selectedNetworks: number[]): string { + public static getSharedKey(identityKey: string, selectedChains: number[]): string { let sharedKey = ""; - selectedNetworks.forEach((networkId) => { - if (!IdentityKey.containsNetworkId(identityKey, networkId)) { - identityKey = IdentityKey.newCipher(identityKey, networkId); - throw new Error(`Cipher for network #${networkId} not found`); + selectedChains.forEach((chainId) => { + if (!IdentityKey.containsChainId(identityKey, chainId)) { + identityKey = IdentityKey.newCipher(identityKey, chainId); + throw new Error(`Cipher for chain #${chainId} not found`); } - sharedKey += `${networkId}:${IdentityKey.getNetworkCipher( + sharedKey += `${chainId}:${IdentityKey.getChainCipher( identityKey, - networkId + chainId )};`; }); return sharedKey; } - public static containsNetworkId(identityKey: string, networkId: number): boolean { - const startIndex = identityKey.indexOf(`${networkId}:`); + public static containsChainId(identityKey: string, chainId: number): boolean { + const startIndex = identityKey.indexOf(`${chainId}:`); return startIndex >= 0 ? true : false; } diff --git a/src/utils/index.ts b/src/utils/index.ts index 5bf97e3..29fbc94 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -12,10 +12,10 @@ export const clipAddress = (val: string) => { )}`; }; -export const isValidAddress = (networkAddress: string, ss58Prefix: number) => { - if (isHex(networkAddress)) return false; +export const isValidAddress = (chainAddress: string, ss58Prefix: number) => { + if (isHex(chainAddress)) return false; try { - validateAddress(networkAddress, true, ss58Prefix); + validateAddress(chainAddress, true, ss58Prefix); return true; } catch { return false; From 97188426c0dd48a4b46b24c77b253f42ac448f16 Mon Sep 17 00:00:00 2001 From: Sergej Sakac Date: Sat, 26 Aug 2023 14:17:51 +0200 Subject: [PATCH 03/11] fix lint errors --- src/contracts/identity/context.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contracts/identity/context.tsx b/src/contracts/identity/context.tsx index ea778f7..db9f677 100644 --- a/src/contracts/identity/context.tsx +++ b/src/contracts/identity/context.tsx @@ -21,10 +21,10 @@ import { IdentityMetadata } from '.'; import { CONTRACT_IDENTITY } from '..'; import { Address, - IdentityNo, ChainConsts, ChainId, Chains, + IdentityNo, } from '../types'; interface IdentityContract { From 09b54b2953b712c4bd232608cc07d32b7d21df70 Mon Sep 17 00:00:00 2001 From: Sergej Sakac Date: Sat, 26 Aug 2023 14:27:05 +0200 Subject: [PATCH 04/11] fix --- src/utils/transactionRouter/types.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/transactionRouter/types.ts b/src/utils/transactionRouter/types.ts index 80dd78c..75b602f 100644 --- a/src/utils/transactionRouter/types.ts +++ b/src/utils/transactionRouter/types.ts @@ -3,17 +3,17 @@ import { KeyringPair } from "@polkadot/keyring/types"; import { AccountType } from "../../../types/types-arguments/identity"; export type AccountIdRaw = Uint8Array; -export type NetworkId = number; +export type ChainId = number; export type Sender = { keypair: KeyringPair; - chain: NetworkId; + chain: ChainId; } export type Receiver = { addressRaw: AccountIdRaw; type: AccountType; - chain: NetworkId; + chain: ChainId; } export type Fungible = { From c424d2abd50d499b3117191cee0f7371a66fa6a0 Mon Sep 17 00:00:00 2001 From: Sergej Sakac Date: Sat, 26 Aug 2023 14:56:07 +0200 Subject: [PATCH 05/11] change API --- __tests__/crossChainRouter.test.ts | 30 ++++++++-- __tests__/teleport.test.ts | 7 ++- __tests__/transactionRouter.test.ts | 36 ++++++++---- src/utils/transactionRouter/index.ts | 58 +++++++------------ .../transactionRouter/reserveTransfer.test.ts | 40 ++++++------- .../transactionRouter/reserveTransfer.ts | 26 ++++----- src/utils/transactionRouter/types.ts | 8 +++ 7 files changed, 118 insertions(+), 87 deletions(-) diff --git a/__tests__/crossChainRouter.test.ts b/__tests__/crossChainRouter.test.ts index 1013c87..b0aa570 100644 --- a/__tests__/crossChainRouter.test.ts +++ b/__tests__/crossChainRouter.test.ts @@ -137,11 +137,14 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { }; await TransactionRouter.sendTokens( - identityContract, sender, receiver, assetReserveChainId, - asset + asset, + { + originApi: assetHubApi, + destApi: trappistApi + } ); const senderBalanceAfter = await getAssetBalance(assetHubApi, USDT_ASSET_ID, alice.address); @@ -231,7 +234,16 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { const receiverBalanceBefore = await getAssetBalance(assetHubApi, USDT_ASSET_ID, charlie.address); // Transfer the tokens to charlies's account on asset hub: - await TransactionRouter.sendTokens(identityContract, sender, receiver, receiver.chain, asset); + await TransactionRouter.sendTokens( + sender, + receiver, + receiver.chain, + asset, + { + originApi: trappistApi, + destApi: assetHubApi + } + ); // We need to wait a bit more to actually receive the assets on the base chain. await delay(5000); @@ -333,7 +345,17 @@ describe("TransactionRouter Cross-chain reserve transfer", () => { const receiverBalanceBefore = await getAssetBalance(baseApi, USDT_ASSET_ID, bob.address); // Transfer the tokens to bob's account on base: - await TransactionRouter.sendTokens(identityContract, sender, receiver, assetReserveChainId, asset); + await TransactionRouter.sendTokens( + sender, + receiver, + assetReserveChainId, + asset, + { + originApi: trappistApi, + destApi: baseApi, + reserveApi: assetHubApi + } + ); // We need to wait a bit more to actually receive the assets on the base chain. await delay(12000); diff --git a/__tests__/teleport.test.ts b/__tests__/teleport.test.ts index be1c8bb..d73f5e0 100644 --- a/__tests__/teleport.test.ts +++ b/__tests__/teleport.test.ts @@ -87,11 +87,14 @@ describe("TransactionRouter Cross-chain teleport", () => { }; await TransactionRouter.sendTokens( - identityContract, sender, receiver, assetReserveChainId, - asset + asset, + { + originApi: rococoApi, + destApi: assetHubApi + } ); // Delay a bit just to be safe. diff --git a/__tests__/transactionRouter.test.ts b/__tests__/transactionRouter.test.ts index 7a4d197..c4729f8 100644 --- a/__tests__/transactionRouter.test.ts +++ b/__tests__/transactionRouter.test.ts @@ -36,20 +36,20 @@ describe("TransactionRouter e2e tests", () => { it("Can't send tokens to yourself", async () => { // First lets add a chain and create an identity. - await addChain(identityContract, alice, 1000, { + await addChain(identityContract, alice, 1836, { rpcUrls: ["ws://127.0.0.1:9910"], accountType: AccountType.accountId32, }); const sender: Sender = { keypair: alice, - chain: 1000 + chain: 1836 }; const receiver: Receiver = { addressRaw: alice.addressRaw, type: AccountType.accountId32, - chain: 1000, + chain: 1836, }; const asset: Fungible = { @@ -57,18 +57,26 @@ describe("TransactionRouter e2e tests", () => { amount: 1000 }; - const assetReserveChainId = 1000; + const assetReserveChainId = 1836; + + const trappitProvider = new WsProvider("ws://127.0.0.1:9920"); + const trappistApi = await ApiPromise.create({ + provider: trappitProvider, + }); await expect( TransactionRouter.sendTokens( - identityContract, sender, receiver, assetReserveChainId, - asset + asset, + { + originApi: trappistApi, + destApi: trappistApi + } ) ).rejects.toThrow("Cannot send tokens to yourself"); - }); + }, 60000); it("Sending native asset on the same chain works", async () => { const sender: Sender = { @@ -108,11 +116,14 @@ describe("TransactionRouter e2e tests", () => { const assetReserveChainId = 0; await TransactionRouter.sendTokens( - identityContract, sender, receiver, assetReserveChainId, - asset + asset, + { + originApi: rococoApi, + destApi: rococoApi + } ); const { data: newBalance } = (await rococoApi.query.system.account( @@ -192,11 +203,14 @@ describe("TransactionRouter e2e tests", () => { const assetReserveChainId = 1836; await TransactionRouter.sendTokens( - identityContract, sender, receiver, assetReserveChainId, - asset + asset, + { + originApi: trappistApi, + destApi: trappistApi + } ); const senderAccountAfter: any = (await trappistApi.query.assets.account( diff --git a/src/utils/transactionRouter/index.ts b/src/utils/transactionRouter/index.ts index ba4f362..3db96ff 100644 --- a/src/utils/transactionRouter/index.ts +++ b/src/utils/transactionRouter/index.ts @@ -1,13 +1,11 @@ -import { ApiPromise, WsProvider } from "@polkadot/api"; +import { ApiPromise } from "@polkadot/api"; import ReserveTransfer from "./reserveTransfer"; import { TeleportableRoute, teleportableRoutes } from "./teleportableRoutes"; import TeleportTransfer from "./teleportTransfer"; -import TransferAsset from "./transferAsset"; -import { Fungible, Receiver, Sender } from "./types"; -import { getParaId } from ".."; -import IdentityContract from "../../../types/contracts/identity"; +import { Fungible, Receiver, Sender, TransferRpcApis } from "./types"; import { AccountType } from "../../../types/types-arguments/identity"; +import TransferAsset from "./transferAsset"; // Responsible for handling all the transfer logic. // @@ -32,11 +30,11 @@ class TransactionRouter { // being that we deposit the assets to the receiver's chain sovereign account on the reserve chain and then // do a separate `DepositAsset` instruction on the destination chain. public static async sendTokens( - identityContract: IdentityContract, sender: Sender, receiver: Receiver, reserveChainId: number, - asset: Fungible + asset: Fungible, + transferRpcApis: TransferRpcApis ): Promise { if (sender.chain === receiver.chain && sender.keypair.addressRaw === receiver.addressRaw) { throw new Error("Cannot send tokens to yourself"); @@ -44,10 +42,8 @@ class TransactionRouter { // The simplest case, both the sender and the receiver are on the same chain: if (sender.chain === receiver.chain) { - const api = await this.getApi(identityContract, sender.chain); - await TransferAsset.send( - api, + transferRpcApis.originApi, sender.keypair, receiver, asset @@ -56,13 +52,10 @@ class TransactionRouter { return; } - const originApi = await this.getApi(identityContract, sender.chain); - const destApi = await this.getApi(identityContract, receiver.chain); + ensureContainsXcmPallet(transferRpcApis.destApi); - ensureContainsXcmPallet(destApi); - - const originParaId = await getParaId(originApi); - const destParaId = await getParaId(destApi); + const originParaId = sender.chain; + const destParaId = receiver.chain; const maybeTeleportableRoute: TeleportableRoute = { relayChain: process.env.RELAY_CHAIN ? process.env.RELAY_CHAIN : "rococo", @@ -73,7 +66,7 @@ class TransactionRouter { if (teleportableRoutes.some(route => JSON.stringify(route) === JSON.stringify(maybeTeleportableRoute))) { // The asset is allowed to be teleported between the origin and the destination. - await TeleportTransfer.send(originApi, destApi, sender.keypair, receiver, asset); + await TeleportTransfer.send(transferRpcApis.originApi, transferRpcApis.destApi, sender.keypair, receiver, asset); return; } @@ -81,18 +74,18 @@ class TransactionRouter { // `limitedReserveTransferAssets` extrinsic if (sender.chain == reserveChainId) { await ReserveTransfer.sendFromReserveChain( - originApi, + transferRpcApis.originApi, destParaId, - sender.keypair, + sender, receiver, asset ); } else if (receiver.chain == reserveChainId) { // The destination chain is the reserve chain of the asset: await ReserveTransfer.sendToReserveChain( - originApi, + transferRpcApis.originApi, destParaId, - sender.keypair, + sender, receiver, asset ); @@ -100,32 +93,23 @@ class TransactionRouter { // The most complex case, the reserve chain is neither the sender or the destination chain. // For this we will have to send tokens accross the reserve chain. - const reserveChain = await this.getApi(identityContract, reserveChainId); - ensureContainsXcmPallet(reserveChain); + if (!transferRpcApis.reserveApi) { + throw new Error("The reserve api must be specified when doing two hop reserve transfers"); + } - const reserveParaId = await getParaId(reserveChain); + ensureContainsXcmPallet(transferRpcApis.reserveApi); + const reserveParaId = reserveChainId; await ReserveTransfer.sendAcrossReserveChain( - originApi, + transferRpcApis.originApi, destParaId, reserveParaId, - sender.keypair, + sender, receiver, asset ); } } - - // Simple helper function to get the api of a chain with the corresponding id. - private static async getApi(identityContract: IdentityContract, chainId: number): Promise { - const rpcUrl = (await identityContract.query.chainInfoOf(chainId)).value - .ok?.rpcUrls[0]; // FIXME - - const wsProvider = new WsProvider(rpcUrl); - const api = await ApiPromise.create({ provider: wsProvider }); - - return api; - } } export default TransactionRouter; diff --git a/src/utils/transactionRouter/reserveTransfer.test.ts b/src/utils/transactionRouter/reserveTransfer.test.ts index 0734a67..3119257 100644 --- a/src/utils/transactionRouter/reserveTransfer.test.ts +++ b/src/utils/transactionRouter/reserveTransfer.test.ts @@ -61,7 +61,7 @@ describe("TransactionRouter unit tests", () => { const receiverAccId32: Receiver = { addressRaw: alice.addressRaw, - network: 0, + chain: 0, type: AccountType.accountId32, }; @@ -73,7 +73,7 @@ describe("TransactionRouter unit tests", () => { interior: { X1: { AccountId32: { - network: "Any", + chain: "Any", id: receiverAccId32.addressRaw, }, }, @@ -83,7 +83,7 @@ describe("TransactionRouter unit tests", () => { const receiverAccKey20: Receiver = { addressRaw: bob.addressRaw, - network: 0, + chain: 0, type: AccountType.accountKey20, }; @@ -95,7 +95,7 @@ describe("TransactionRouter unit tests", () => { interior: { X1: { AccountKey20: { - network: "Any", + chain: "Any", id: receiverAccKey20.addressRaw, }, }, @@ -310,7 +310,7 @@ describe("TransactionRouter unit tests", () => { const receiver: Receiver = { addressRaw: bob.addressRaw, type: AccountType.accountId32, - network: 0, + chain: 0, }; // eslint-disable-next-line @typescript-eslint/ban-ts-comment @@ -324,7 +324,7 @@ describe("TransactionRouter unit tests", () => { X1: { AccountId32: { id: receiver.addressRaw, - network: "Any" + chain: "Any" } } }, @@ -340,7 +340,7 @@ describe("TransactionRouter unit tests", () => { const receiver: Receiver = { addressRaw: bob.addressRaw, type: AccountType.accountKey20, - network: 0, + chain: 0, }; // eslint-disable-next-line @typescript-eslint/ban-ts-comment @@ -354,7 +354,7 @@ describe("TransactionRouter unit tests", () => { X1: { AccountKey20: { id: receiver.addressRaw, - network: "Any" + chain: "Any" } } }, @@ -487,7 +487,7 @@ describe("TransactionRouter unit tests", () => { const destParaId = 2002; const beneficiary: Receiver = { addressRaw: bob.addressRaw, - network: 1, + chain: 1, type: AccountType.accountId32, }; @@ -582,7 +582,7 @@ describe("TransactionRouter unit tests", () => { X1: { AccountId32: { id: bob.addressRaw, - network: "Any", + chain: "Any", }, }, }, @@ -604,7 +604,7 @@ describe("TransactionRouter unit tests", () => { const destParaId = 0; const beneficiary: Receiver = { addressRaw: bob.addressRaw, - network: 1, + chain: 1, type: AccountType.accountId32, }; @@ -690,7 +690,7 @@ describe("TransactionRouter unit tests", () => { X1: { AccountId32: { id: bob.addressRaw, - network: "Any", + chain: "Any", }, }, }, @@ -712,7 +712,7 @@ describe("TransactionRouter unit tests", () => { const destParaId = 1000; const beneficiary: Receiver = { addressRaw: bob.addressRaw, - network: 1, + chain: 1, type: AccountType.accountId32, }; @@ -803,7 +803,7 @@ describe("TransactionRouter unit tests", () => { X1: { AccountId32: { id: bob.addressRaw, - network: "Any", + chain: "Any", }, }, }, @@ -828,7 +828,7 @@ describe("TransactionRouter unit tests", () => { const destParaId = 2002; const beneficiary: Receiver = { addressRaw: bob.addressRaw, - network: 1, + chain: 1, type: AccountType.accountId32, }; @@ -939,7 +939,7 @@ describe("TransactionRouter unit tests", () => { X1: { AccountId32: { id: bob.addressRaw, - network: "Any", + chain: "Any", }, }, }, @@ -965,7 +965,7 @@ describe("TransactionRouter unit tests", () => { const destParaId = 2002; const beneficiary: Receiver = { addressRaw: bob.addressRaw, - network: 1, + chain: 1, type: AccountType.accountId32, }; @@ -1055,7 +1055,7 @@ describe("TransactionRouter unit tests", () => { X1: { AccountId32: { id: bob.addressRaw, - network: "Any", + chain: "Any", }, }, }, @@ -1081,7 +1081,7 @@ describe("TransactionRouter unit tests", () => { const destParaId = 2000; const beneficiary: Receiver = { addressRaw: bob.addressRaw, - network: 1, + chain: 1, type: AccountType.accountId32, }; @@ -1192,7 +1192,7 @@ describe("TransactionRouter unit tests", () => { X1: { AccountId32: { id: bob.addressRaw, - network: "Any", + chain: "Any", }, }, }, diff --git a/src/utils/transactionRouter/reserveTransfer.ts b/src/utils/transactionRouter/reserveTransfer.ts index 593a5c0..d8740cf 100644 --- a/src/utils/transactionRouter/reserveTransfer.ts +++ b/src/utils/transactionRouter/reserveTransfer.ts @@ -2,7 +2,7 @@ import { ApiPromise } from "@polkadot/api"; import { KeyringPair } from "@polkadot/keyring/types"; import { getDestination, getMultiAsset, getReceiverAccount, getTransferBeneficiary } from "."; -import { Fungible, Receiver } from "./types"; +import { Fungible, Receiver, Sender } from "./types"; class ReserveTransfer { // Transfers assets from the sender to the receiver. @@ -11,12 +11,12 @@ class ReserveTransfer { public static async sendFromReserveChain( originApi: ApiPromise, destParaId: number, - sender: KeyringPair, + sender: Sender, receiver: Receiver, asset: Fungible ): Promise { - // eslint-disable-next-line no-prototype-builtins - const isOriginPara = originApi.query.hasOwnProperty("parachainInfo"); + // Chain represents the para id and in case of a relay chain it is zero. + const isOriginPara = sender.chain > 0; const destination = getDestination(isOriginPara, destParaId, destParaId > 0); const beneficiary = getTransferBeneficiary(receiver); @@ -37,7 +37,7 @@ class ReserveTransfer { // eslint-disable-next-line no-async-promise-executor return new Promise(async (resolve) => { - const unsub = await reserveTransfer.signAndSend(sender, (result: any) => { + const unsub = await reserveTransfer.signAndSend(sender.keypair, (result: any) => { if (result.status.isFinalized) { unsub(); resolve(); @@ -53,13 +53,13 @@ class ReserveTransfer { public static async sendToReserveChain( originApi: ApiPromise, destParaId: number, - sender: KeyringPair, + sender: Sender, receiver: Receiver, asset: Fungible ): Promise { - // eslint-disable-next-line no-prototype-builtins - const isOriginPara = originApi.query.hasOwnProperty("parachainInfo"); + // Chain represents the para id and in case of a relay chain it is zero. + const isOriginPara = sender.chain > 0; const xcmProgram = this.getSendToReserveChainInstructions(asset, destParaId, receiver, isOriginPara); const xcmPallet = originApi.tx.xcmPallet || originApi.tx.polkadotXcm; @@ -71,7 +71,7 @@ class ReserveTransfer { // eslint-disable-next-line no-async-promise-executor return new Promise(async (resolve) => { - const unsub = await reserveTransfer.signAndSend(sender, (result: any) => { + const unsub = await reserveTransfer.signAndSend(sender.keypair, (result: any) => { if (result.status.isFinalized) { unsub(); resolve(); @@ -87,13 +87,13 @@ class ReserveTransfer { originApi: ApiPromise, destParaId: number, reserveParaId: number, - sender: KeyringPair, + sender: Sender, receiver: Receiver, asset: Fungible ): Promise { - // eslint-disable-next-line no-prototype-builtins - const isOriginPara = originApi.query.hasOwnProperty("parachainInfo"); + // Chain represents the para id and in case of a relay chain it is zero. + const isOriginPara = sender.chain > 0; const xcmProgram = this.getTwoHopTransferInstructions(asset, reserveParaId, destParaId, receiver, isOriginPara); const xcmPallet = originApi.tx.xcmPallet || originApi.tx.polkadotXcm; @@ -104,7 +104,7 @@ class ReserveTransfer { }); // eslint-disable-next-line no-async-promise-executor return new Promise(async (resolve) => { - const unsub = await reserveTransfer.signAndSend(sender, (result: any) => { + const unsub = await reserveTransfer.signAndSend(sender.keypair, (result: any) => { if (result.status.isFinalized) { unsub(); resolve(); diff --git a/src/utils/transactionRouter/types.ts b/src/utils/transactionRouter/types.ts index 75b602f..2c70e94 100644 --- a/src/utils/transactionRouter/types.ts +++ b/src/utils/transactionRouter/types.ts @@ -1,6 +1,7 @@ import { KeyringPair } from "@polkadot/keyring/types"; import { AccountType } from "../../../types/types-arguments/identity"; +import { ApiPromise } from "@polkadot/api"; export type AccountIdRaw = Uint8Array; export type ChainId = number; @@ -20,3 +21,10 @@ export type Fungible = { multiAsset: any, amount: number } + +// All the rpc apis needed for all types of transfers. +export type TransferRpcApis = { + originApi: ApiPromise, + destApi: ApiPromise, + reserveApi?: ApiPromise +} From b4dd5ab22e5934ba084454e7ca60bb7f35e71d90 Mon Sep 17 00:00:00 2001 From: Sergej Sakac Date: Sat, 26 Aug 2023 15:02:04 +0200 Subject: [PATCH 06/11] lint error fixes --- src/utils/transactionRouter/index.ts | 2 +- src/utils/transactionRouter/reserveTransfer.ts | 1 - src/utils/transactionRouter/types.ts | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/utils/transactionRouter/index.ts b/src/utils/transactionRouter/index.ts index 3db96ff..7d677ed 100644 --- a/src/utils/transactionRouter/index.ts +++ b/src/utils/transactionRouter/index.ts @@ -3,9 +3,9 @@ import { ApiPromise } from "@polkadot/api"; import ReserveTransfer from "./reserveTransfer"; import { TeleportableRoute, teleportableRoutes } from "./teleportableRoutes"; import TeleportTransfer from "./teleportTransfer"; +import TransferAsset from "./transferAsset"; import { Fungible, Receiver, Sender, TransferRpcApis } from "./types"; import { AccountType } from "../../../types/types-arguments/identity"; -import TransferAsset from "./transferAsset"; // Responsible for handling all the transfer logic. // diff --git a/src/utils/transactionRouter/reserveTransfer.ts b/src/utils/transactionRouter/reserveTransfer.ts index d8740cf..a0628f9 100644 --- a/src/utils/transactionRouter/reserveTransfer.ts +++ b/src/utils/transactionRouter/reserveTransfer.ts @@ -1,5 +1,4 @@ import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@polkadot/keyring/types"; import { getDestination, getMultiAsset, getReceiverAccount, getTransferBeneficiary } from "."; import { Fungible, Receiver, Sender } from "./types"; diff --git a/src/utils/transactionRouter/types.ts b/src/utils/transactionRouter/types.ts index 2c70e94..fce52ce 100644 --- a/src/utils/transactionRouter/types.ts +++ b/src/utils/transactionRouter/types.ts @@ -1,7 +1,7 @@ +import { ApiPromise } from "@polkadot/api"; import { KeyringPair } from "@polkadot/keyring/types"; import { AccountType } from "../../../types/types-arguments/identity"; -import { ApiPromise } from "@polkadot/api"; export type AccountIdRaw = Uint8Array; export type ChainId = number; From dc7ac2e793394cd28fa5e15aa8142e2e208afaef Mon Sep 17 00:00:00 2001 From: Sergej Sakac Date: Sat, 26 Aug 2023 15:40:54 +0200 Subject: [PATCH 07/11] fix metadata & rpc --- src/contracts/addressbook/metadata.json | 12 +- src/contracts/identity/context.tsx | 11 +- src/contracts/identity/metadata.json | 410 +++++++++++++----------- src/pages/_app.tsx | 12 +- 4 files changed, 242 insertions(+), 203 deletions(-) diff --git a/src/contracts/addressbook/metadata.json b/src/contracts/addressbook/metadata.json index dcd81dc..25e3cc6 100644 --- a/src/contracts/addressbook/metadata.json +++ b/src/contracts/addressbook/metadata.json @@ -1,12 +1,12 @@ { "source": { - "hash": "0x8dc8d21880cc15012552148eb6551379525ee975554f1f87b61470a487333135", + "hash": "0x4b89e660114f8ff737a566aceadf6e154e8eaa63fed72acf47bd2dafa4739605", "language": "ink! 4.2.0", "compiler": "rustc 1.68.0-nightly", "build_info": { - "build_mode": "Release", - "cargo_contract_version": "2.2.1", - "rust_toolchain": "nightly-x86_64-unknown-linux-gnu", + "build_mode": "Debug", + "cargo_contract_version": "2.0.0-rc.1", + "rust_toolchain": "nightly-aarch64-apple-darwin", "wasm_opt_settings": { "keep_debug_symbols": false, "optimization_passes": "Z" @@ -182,7 +182,7 @@ " The identity that received a new nickname." ], "indexed": false, - "label": "identity_no", + "label": "identity", "type": { "displayName": [ "IdentityNo" @@ -205,7 +205,7 @@ } ], "docs": [], - "label": "NickNameUpdated" + "label": "NicknameUpdated" }, { "args": [ diff --git a/src/contracts/identity/context.tsx b/src/contracts/identity/context.tsx index db9f677..81ae5a8 100644 --- a/src/contracts/identity/context.tsx +++ b/src/contracts/identity/context.tsx @@ -75,6 +75,7 @@ const IdentityContractProvider = ({ children }: Props) => { } setLoadingIdentityNo(true); try { + console.log(activeAccount.address); const result = await contractQuery(api, '', contract, 'identity_of', {}, [ activeAccount.address, ]); @@ -83,6 +84,7 @@ const IdentityContractProvider = ({ children }: Props) => { contract, 'identity_of' ); + console.log(decodedOutput); if (isError) throw new Error(decodedOutput); if (!output) setIdentityNo(null); else setIdentityNo(Number(output)); @@ -99,7 +101,8 @@ const IdentityContractProvider = ({ children }: Props) => { } const getChainInfo = async ( - rpcUrls: string[] + rpcUrls: string[], + chainId: number ): Promise => { const count = rpcUrls.length; const rpcIndex = Math.min(Math.floor(Math.random() * count), count - 1); @@ -113,9 +116,7 @@ const IdentityContractProvider = ({ children }: Props) => { const ss58Prefix: number = api.consts.system.ss58Prefix.toPrimitive() as number; const name = (await api.rpc.system.chain()).toString(); - const paraId = ( - await api.query.parachainInfo.parachainId() - ).toPrimitive() as number; + const paraId = chainId; await api.disconnect(); @@ -151,7 +152,7 @@ const IdentityContractProvider = ({ children }: Props) => { for await (const item of output) { const chainId = Number(item[0]); const { accountType, rpcUrls } = item[1]; - const info = await getChainInfo(rpcUrls); + const info = await getChainInfo(rpcUrls, chainId); if (info) _chains[chainId] = { rpcUrls, diff --git a/src/contracts/identity/metadata.json b/src/contracts/identity/metadata.json index 09f8511..37bf8ab 100644 --- a/src/contracts/identity/metadata.json +++ b/src/contracts/identity/metadata.json @@ -1,12 +1,12 @@ { "source": { - "hash": "0x88c447bd99dfd32a8a36cfa6ab8b958a20f718209e85d45b427ef7785a12afc1", + "hash": "0x37a6b9845f34663b4b59b2b47c63e6caa530ed5025380727a05b157306875332", "language": "ink! 4.2.0", "compiler": "rustc 1.68.0-nightly", "build_info": { - "build_mode": "Release", - "cargo_contract_version": "2.2.1", - "rust_toolchain": "nightly-x86_64-unknown-linux-gnu", + "build_mode": "Debug", + "cargo_contract_version": "2.0.0-rc.1", + "rust_toolchain": "nightly-aarch64-apple-darwin", "wasm_opt_settings": { "keep_debug_symbols": false, "optimization_passes": "Z" @@ -33,34 +33,43 @@ "ink_primitives", "ConstructorResult" ], - "type": 9 + "type": 10 }, "selector": "0x9bae9d5e" }, { "args": [ { - "label": "networks", + "label": "chains", "type": { "displayName": [ "Vec" ], - "type": 12 + "type": 13 + } + }, + { + "label": "chain_ids", + "type": { + "displayName": [ + "Vec" + ], + "type": 9 } } ], "default": false, "docs": [], - "label": "init_with_networks", + "label": "init_with_chains", "payable": false, "returnType": { "displayName": [ "ink_primitives", "ConstructorResult" ], - "type": 9 + "type": 10 }, - "selector": "0x056543ac" + "selector": "0x0935da88" } ], "docs": [], @@ -75,7 +84,7 @@ "displayName": [ "Balance" ], - "type": 36 + "type": 37 }, "blockNumber": { "displayName": [ @@ -87,20 +96,20 @@ "displayName": [ "ChainExtension" ], - "type": 39 + "type": 40 }, "hash": { "displayName": [ "Hash" ], - "type": 37 + "type": 38 }, "maxEventTopics": 4, "timestamp": { "displayName": [ "Timestamp" ], - "type": 38 + "type": 39 } }, "events": [ @@ -155,13 +164,13 @@ }, { "docs": [ - " The network on which a new address has been added." + " The chain on which a new address has been added." ], "indexed": false, - "label": "network", + "label": "chain", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } @@ -174,7 +183,7 @@ "label": "address", "type": { "displayName": [ - "NetworkAddress" + "EncryptedAddress" ], "type": 3 } @@ -200,13 +209,13 @@ }, { "docs": [ - " The network on which the address has been updated." + " The chain on which the address has been updated." ], "indexed": false, - "label": "network", + "label": "chain", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } @@ -219,7 +228,7 @@ "label": "updated_address", "type": { "displayName": [ - "NetworkAddress" + "EncryptedAddress" ], "type": 3 } @@ -245,13 +254,13 @@ }, { "docs": [ - " The network on which the address has been removed." + " The chain on which the address has been removed." ], "indexed": false, - "label": "network", + "label": "chain", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } @@ -283,20 +292,20 @@ "args": [ { "docs": [ - " The `NetworkId` that is associated with the newly added network." + " The `ChainId` that is associated with the newly added chain." ], "indexed": true, - "label": "network_id", + "label": "chain_id", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } }, { "docs": [ - " The rpc url of the network that got added." + " The rpc url of the chain that got added." ], "indexed": false, "label": "rpc_urls", @@ -309,7 +318,7 @@ }, { "docs": [ - " The address type used on the network." + " The address type used on the chain." ], "indexed": false, "label": "account_type", @@ -317,31 +326,31 @@ "displayName": [ "AccountType" ], - "type": 14 + "type": 15 } } ], "docs": [], - "label": "NetworkAdded" + "label": "ChainAdded" }, { "args": [ { "docs": [ - " The `NetworkId` that is associated with the updated network." + " The `ChainId` that is associated with the updated chain." ], "indexed": true, - "label": "network_id", + "label": "chain_id", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } }, { "docs": [ - " The rpc url of the updated network." + " The rpc url of the updated chain." ], "indexed": false, "label": "rpc_urls", @@ -354,7 +363,7 @@ }, { "docs": [ - " The address type used on the updated network." + " The address type used on the updated chain." ], "indexed": false, "label": "account_type", @@ -362,32 +371,32 @@ "displayName": [ "AccountType" ], - "type": 14 + "type": 15 } } ], "docs": [], - "label": "NetworkUpdated" + "label": "ChainUpdated" }, { "args": [ { "docs": [ - " The `NetworkId` that is associated with the network that got", + " The `ChainId` that is associated with the chain that got", " removed." ], "indexed": true, - "label": "network_id", + "label": "chain_id", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } } ], "docs": [], - "label": "NetworkRemoved" + "label": "ChainRemoved" }, { "args": [ @@ -427,7 +436,7 @@ "ink", "LangError" ], - "type": 11 + "type": 12 }, "messages": [ { @@ -455,7 +464,7 @@ "ink", "MessageResult" ], - "type": 15 + "type": 16 }, "selector": "0xcbfefbec" }, @@ -483,7 +492,7 @@ "ink", "MessageResult" ], - "type": 18 + "type": 19 }, "selector": "0x99720c1e" }, @@ -511,17 +520,17 @@ "ink", "MessageResult" ], - "type": 20 + "type": 21 }, "selector": "0x713ca232" }, { "args": [ { - "label": "network_id", + "label": "chain_id", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } @@ -529,9 +538,9 @@ ], "default": false, "docs": [ - " Returns the network name that is associated with the specified `NetworkId`." + " Returns the chain name that is associated with the specified `ChainId`." ], - "label": "network_info_of", + "label": "chain_info_of", "mutates": false, "payable": false, "returnType": { @@ -539,9 +548,9 @@ "ink", "MessageResult" ], - "type": 22 + "type": 23 }, - "selector": "0x3dffc61c" + "selector": "0x59d847e9" }, { "args": [ @@ -555,10 +564,10 @@ } }, { - "label": "network", + "label": "chain", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } @@ -567,7 +576,7 @@ "default": false, "docs": [ " Returns the destination address of a transaction that needs to be", - " routed to the specified identity on the specified network." + " routed to the specified identity on the specified chain." ], "label": "transaction_destination", "mutates": false, @@ -577,7 +586,7 @@ "ink", "MessageResult" ], - "type": 24 + "type": 25 }, "selector": "0x525505e4" }, @@ -585,9 +594,9 @@ "args": [], "default": false, "docs": [ - " A list of all the available networks each associated with a `NetworkId`." + " A list of all the available chains each associated with a `ChainId`." ], - "label": "available_networks", + "label": "available_chains", "mutates": false, "payable": false, "returnType": { @@ -595,9 +604,9 @@ "ink", "MessageResult" ], - "type": 27 + "type": 28 }, - "selector": "0xbd5ddfcd" + "selector": "0xa5cf243e" }, { "args": [], @@ -615,17 +624,17 @@ "ink", "MessageResult" ], - "type": 30 + "type": 31 }, "selector": "0xfb893664" }, { "args": [ { - "label": "network", + "label": "chain", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } @@ -634,7 +643,7 @@ "label": "address", "type": { "displayName": [ - "NetworkAddress" + "EncryptedAddress" ], "type": 3 } @@ -642,7 +651,7 @@ ], "default": false, "docs": [ - " Adds an address for a given network" + " Adds an address for a given chain" ], "label": "add_address", "mutates": true, @@ -652,17 +661,17 @@ "ink", "MessageResult" ], - "type": 32 + "type": 33 }, "selector": "0x71cc798d" }, { "args": [ { - "label": "network", + "label": "chain", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } @@ -671,7 +680,7 @@ "label": "address", "type": { "displayName": [ - "NetworkAddress" + "EncryptedAddress" ], "type": 3 } @@ -679,7 +688,7 @@ ], "default": false, "docs": [ - " Updates the address of the given network" + " Updates the address of the given chain" ], "label": "update_address", "mutates": true, @@ -689,17 +698,17 @@ "ink", "MessageResult" ], - "type": 32 + "type": 33 }, "selector": "0x892f75e4" }, { "args": [ { - "label": "network", + "label": "chain", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } @@ -707,7 +716,7 @@ ], "default": false, "docs": [ - " Removes the address by network" + " Removes the address by chain" ], "label": "remove_address", "mutates": true, @@ -717,7 +726,7 @@ "ink", "MessageResult" ], - "type": 32 + "type": 33 }, "selector": "0xdca7a60f" }, @@ -735,25 +744,34 @@ "ink", "MessageResult" ], - "type": 32 + "type": 33 }, "selector": "0x08026740" }, { "args": [ + { + "label": "chain_id", + "type": { + "displayName": [ + "ChainId" + ], + "type": 2 + } + }, { "label": "info", "type": { "displayName": [ "ChainInfo" ], - "type": 13 + "type": 14 } } ], "default": false, "docs": [], - "label": "add_network", + "label": "add_chain", "mutates": true, "payable": false, "returnType": { @@ -761,17 +779,17 @@ "ink", "MessageResult" ], - "type": 30 + "type": 33 }, - "selector": "0x97a3ee09" + "selector": "0x1cd09676" }, { "args": [ { - "label": "network_id", + "label": "chain_id", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } @@ -782,7 +800,7 @@ "displayName": [ "Option" ], - "type": 34 + "type": 35 } }, { @@ -791,13 +809,13 @@ "displayName": [ "Option" ], - "type": 35 + "type": 36 } } ], "default": false, "docs": [], - "label": "update_network", + "label": "update_chain", "mutates": true, "payable": false, "returnType": { @@ -805,17 +823,17 @@ "ink", "MessageResult" ], - "type": 32 + "type": 33 }, - "selector": "0xcfbe8bcc" + "selector": "0x7d5eea00" }, { "args": [ { - "label": "network_id", + "label": "chain_id", "type": { "displayName": [ - "NetworkId" + "ChainId" ], "type": 2 } @@ -823,7 +841,7 @@ ], "default": false, "docs": [], - "label": "remove_network", + "label": "remove_chain", "mutates": true, "payable": false, "returnType": { @@ -831,9 +849,9 @@ "ink", "MessageResult" ], - "type": 32 + "type": 33 }, - "selector": "0x14b17dbe" + "selector": "0x5b23980f" }, { "args": [ @@ -862,7 +880,7 @@ "ink", "MessageResult" ], - "type": 32 + "type": 33 }, "selector": "0xd3b93403" }, @@ -902,7 +920,7 @@ "ink", "MessageResult" ], - "type": 32 + "type": 33 }, "selector": "0x107e33ea" } @@ -997,7 +1015,7 @@ { "layout": { "leaf": { - "key": "0x7e863377", + "key": "0x793e0339", "ty": 7 } }, @@ -1006,7 +1024,7 @@ { "layout": { "enum": { - "dispatchKey": "0x7e863377", + "dispatchKey": "0x793e0339", "name": "AccountType", "variants": { "0": { @@ -1026,28 +1044,28 @@ "name": "ChainInfo" } }, - "root_key": "0x7e863377" + "root_key": "0x793e0339" } }, - "name": "network_info_of" + "name": "chain_info_of" }, { "layout": { "leaf": { "key": "0x00000000", - "ty": 5 + "ty": 9 } }, - "name": "admin" + "name": "chain_ids" }, { "layout": { "leaf": { "key": "0x00000000", - "ty": 2 + "ty": 5 } }, - "name": "network_id_count" + "name": "admin" } ], "name": "Identity" @@ -1155,6 +1173,16 @@ }, { "id": 9, + "type": { + "def": { + "sequence": { + "type": 2 + } + } + } + }, + { + "id": 10, "type": { "def": { "variant": { @@ -1162,7 +1190,7 @@ { "fields": [ { - "type": 10 + "type": 11 } ], "index": 0, @@ -1171,7 +1199,7 @@ { "fields": [ { - "type": 11 + "type": 12 } ], "index": 1, @@ -1183,11 +1211,11 @@ "params": [ { "name": "T", - "type": 10 + "type": 11 }, { "name": "E", - "type": 11 + "type": 12 } ], "path": [ @@ -1196,7 +1224,7 @@ } }, { - "id": 10, + "id": 11, "type": { "def": { "tuple": [] @@ -1204,7 +1232,7 @@ } }, { - "id": 11, + "id": 12, "type": { "def": { "variant": { @@ -1223,17 +1251,17 @@ } }, { - "id": 12, + "id": 13, "type": { "def": { "sequence": { - "type": 13 + "type": 14 } } } }, { - "id": 13, + "id": 14, "type": { "def": { "composite": { @@ -1245,7 +1273,7 @@ }, { "name": "account_type", - "type": 14, + "type": 15, "typeName": "AccountType" } ] @@ -1259,7 +1287,7 @@ } }, { - "id": 14, + "id": 15, "type": { "def": { "variant": { @@ -1283,7 +1311,7 @@ } }, { - "id": 15, + "id": 16, "type": { "def": { "variant": { @@ -1291,7 +1319,7 @@ { "fields": [ { - "type": 16 + "type": 17 } ], "index": 0, @@ -1300,7 +1328,7 @@ { "fields": [ { - "type": 11 + "type": 12 } ], "index": 1, @@ -1312,11 +1340,11 @@ "params": [ { "name": "T", - "type": 16 + "type": 17 }, { "name": "E", - "type": 11 + "type": 12 } ], "path": [ @@ -1325,7 +1353,7 @@ } }, { - "id": 16, + "id": 17, "type": { "def": { "variant": { @@ -1337,7 +1365,7 @@ { "fields": [ { - "type": 17 + "type": 18 } ], "index": 1, @@ -1349,7 +1377,7 @@ "params": [ { "name": "T", - "type": 17 + "type": 18 } ], "path": [ @@ -1358,7 +1386,7 @@ } }, { - "id": 17, + "id": 18, "type": { "def": { "composite": { @@ -1366,7 +1394,7 @@ { "name": "addresses", "type": 0, - "typeName": "Vec<(NetworkId, NetworkAddress)>" + "typeName": "Vec<(ChainId, EncryptedAddress)>" } ] } @@ -1379,7 +1407,7 @@ } }, { - "id": 18, + "id": 19, "type": { "def": { "variant": { @@ -1387,7 +1415,7 @@ { "fields": [ { - "type": 19 + "type": 20 } ], "index": 0, @@ -1396,7 +1424,7 @@ { "fields": [ { - "type": 11 + "type": 12 } ], "index": 1, @@ -1408,11 +1436,11 @@ "params": [ { "name": "T", - "type": 19 + "type": 20 }, { "name": "E", - "type": 11 + "type": 12 } ], "path": [ @@ -1421,7 +1449,7 @@ } }, { - "id": 19, + "id": 20, "type": { "def": { "variant": { @@ -1454,7 +1482,7 @@ } }, { - "id": 20, + "id": 21, "type": { "def": { "variant": { @@ -1462,7 +1490,7 @@ { "fields": [ { - "type": 21 + "type": 22 } ], "index": 0, @@ -1471,7 +1499,7 @@ { "fields": [ { - "type": 11 + "type": 12 } ], "index": 1, @@ -1483,11 +1511,11 @@ "params": [ { "name": "T", - "type": 21 + "type": 22 }, { "name": "E", - "type": 11 + "type": 12 } ], "path": [ @@ -1496,7 +1524,7 @@ } }, { - "id": 21, + "id": 22, "type": { "def": { "variant": { @@ -1529,7 +1557,7 @@ } }, { - "id": 22, + "id": 23, "type": { "def": { "variant": { @@ -1537,7 +1565,7 @@ { "fields": [ { - "type": 23 + "type": 24 } ], "index": 0, @@ -1546,7 +1574,7 @@ { "fields": [ { - "type": 11 + "type": 12 } ], "index": 1, @@ -1558,11 +1586,11 @@ "params": [ { "name": "T", - "type": 23 + "type": 24 }, { "name": "E", - "type": 11 + "type": 12 } ], "path": [ @@ -1571,7 +1599,7 @@ } }, { - "id": 23, + "id": 24, "type": { "def": { "variant": { @@ -1583,7 +1611,7 @@ { "fields": [ { - "type": 13 + "type": 14 } ], "index": 1, @@ -1595,7 +1623,7 @@ "params": [ { "name": "T", - "type": 13 + "type": 14 } ], "path": [ @@ -1604,7 +1632,7 @@ } }, { - "id": 24, + "id": 25, "type": { "def": { "variant": { @@ -1612,7 +1640,7 @@ { "fields": [ { - "type": 25 + "type": 26 } ], "index": 0, @@ -1621,7 +1649,7 @@ { "fields": [ { - "type": 11 + "type": 12 } ], "index": 1, @@ -1633,11 +1661,11 @@ "params": [ { "name": "T", - "type": 25 + "type": 26 }, { "name": "E", - "type": 11 + "type": 12 } ], "path": [ @@ -1646,7 +1674,7 @@ } }, { - "id": 25, + "id": 26, "type": { "def": { "variant": { @@ -1663,7 +1691,7 @@ { "fields": [ { - "type": 26 + "type": 27 } ], "index": 1, @@ -1679,7 +1707,7 @@ }, { "name": "E", - "type": 26 + "type": 27 } ], "path": [ @@ -1688,7 +1716,7 @@ } }, { - "id": 26, + "id": 27, "type": { "def": { "variant": { @@ -1707,7 +1735,7 @@ }, { "index": 3, - "name": "InvalidNetwork" + "name": "InvalidChain" }, { "index": 4, @@ -1715,11 +1743,11 @@ }, { "index": 5, - "name": "NetworkNameTooLong" + "name": "ChainNameTooLong" }, { "index": 6, - "name": "NetworkRpcUrlTooLong" + "name": "ChainRpcUrlTooLong" }, { "index": 7, @@ -1735,7 +1763,7 @@ } }, { - "id": 27, + "id": 28, "type": { "def": { "variant": { @@ -1743,7 +1771,7 @@ { "fields": [ { - "type": 28 + "type": 29 } ], "index": 0, @@ -1752,7 +1780,7 @@ { "fields": [ { - "type": 11 + "type": 12 } ], "index": 1, @@ -1764,11 +1792,11 @@ "params": [ { "name": "T", - "type": 28 + "type": 29 }, { "name": "E", - "type": 11 + "type": 12 } ], "path": [ @@ -1777,28 +1805,28 @@ } }, { - "id": 28, + "id": 29, "type": { "def": { "sequence": { - "type": 29 + "type": 30 } } } }, { - "id": 29, + "id": 30, "type": { "def": { "tuple": [ 2, - 13 + 14 ] } } }, { - "id": 30, + "id": 31, "type": { "def": { "variant": { @@ -1806,7 +1834,7 @@ { "fields": [ { - "type": 31 + "type": 32 } ], "index": 0, @@ -1815,7 +1843,7 @@ { "fields": [ { - "type": 11 + "type": 12 } ], "index": 1, @@ -1827,11 +1855,11 @@ "params": [ { "name": "T", - "type": 31 + "type": 32 }, { "name": "E", - "type": 11 + "type": 12 } ], "path": [ @@ -1840,7 +1868,7 @@ } }, { - "id": 31, + "id": 32, "type": { "def": { "variant": { @@ -1857,7 +1885,7 @@ { "fields": [ { - "type": 26 + "type": 27 } ], "index": 1, @@ -1873,7 +1901,7 @@ }, { "name": "E", - "type": 26 + "type": 27 } ], "path": [ @@ -1882,7 +1910,7 @@ } }, { - "id": 32, + "id": 33, "type": { "def": { "variant": { @@ -1890,7 +1918,7 @@ { "fields": [ { - "type": 33 + "type": 34 } ], "index": 0, @@ -1899,7 +1927,7 @@ { "fields": [ { - "type": 11 + "type": 12 } ], "index": 1, @@ -1911,11 +1939,11 @@ "params": [ { "name": "T", - "type": 33 + "type": 34 }, { "name": "E", - "type": 11 + "type": 12 } ], "path": [ @@ -1924,7 +1952,7 @@ } }, { - "id": 33, + "id": 34, "type": { "def": { "variant": { @@ -1932,7 +1960,7 @@ { "fields": [ { - "type": 10 + "type": 11 } ], "index": 0, @@ -1941,7 +1969,7 @@ { "fields": [ { - "type": 26 + "type": 27 } ], "index": 1, @@ -1953,11 +1981,11 @@ "params": [ { "name": "T", - "type": 10 + "type": 11 }, { "name": "E", - "type": 26 + "type": 27 } ], "path": [ @@ -1966,7 +1994,7 @@ } }, { - "id": 34, + "id": 35, "type": { "def": { "variant": { @@ -1999,7 +2027,7 @@ } }, { - "id": 35, + "id": 36, "type": { "def": { "variant": { @@ -2011,7 +2039,7 @@ { "fields": [ { - "type": 14 + "type": 15 } ], "index": 1, @@ -2023,7 +2051,7 @@ "params": [ { "name": "T", - "type": 14 + "type": 15 } ], "path": [ @@ -2032,7 +2060,7 @@ } }, { - "id": 36, + "id": 37, "type": { "def": { "primitive": "u128" @@ -2040,7 +2068,7 @@ } }, { - "id": 37, + "id": 38, "type": { "def": { "composite": { @@ -2060,7 +2088,7 @@ } }, { - "id": 38, + "id": 39, "type": { "def": { "primitive": "u64" @@ -2068,7 +2096,7 @@ } }, { - "id": 39, + "id": 40, "type": { "def": { "variant": {} diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index afe611b..2a83d76 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -45,7 +45,17 @@ export default function MyApp(props: MyAppProps) { From 5997d80732c48f48b377cd1b0d33048641496e53 Mon Sep 17 00:00:00 2001 From: Sergej Sakac Date: Sat, 26 Aug 2023 16:06:07 +0200 Subject: [PATCH 08/11] everything working again --- src/contracts/identity/context.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/contracts/identity/context.tsx b/src/contracts/identity/context.tsx index 81ae5a8..017c6a6 100644 --- a/src/contracts/identity/context.tsx +++ b/src/contracts/identity/context.tsx @@ -150,7 +150,7 @@ const IdentityContractProvider = ({ children }: Props) => { const _chains: Chains = {}; for await (const item of output) { - const chainId = Number(item[0]); + const chainId = parseInt(item[0].replace(/,/g, "")); const { accountType, rpcUrls } = item[1]; const info = await getChainInfo(rpcUrls, chainId); if (info) @@ -186,7 +186,7 @@ const IdentityContractProvider = ({ children }: Props) => { const _addresses: Array
= []; for (let idx = 0; idx < records.length; ++idx) { const record = records[idx]; - const chainId: ChainId = Number(record[0]); + const chainId: ChainId = parseInt(record[0].replace(/,/g, "")); const address = record[1]; // FIXME: Decode address here _addresses.push({ chainId, From ba179dc84d415645241bc816c2b3741a98b17566 Mon Sep 17 00:00:00 2001 From: Sergej Sakac Date: Sat, 26 Aug 2023 16:07:21 +0200 Subject: [PATCH 09/11] lint error fixes --- src/contracts/identity/context.tsx | 2 -- src/pages/_app.tsx | 2 +- types/constructors/address_book.ts | 36 +++++++++++++++--------------- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/contracts/identity/context.tsx b/src/contracts/identity/context.tsx index 017c6a6..558aaae 100644 --- a/src/contracts/identity/context.tsx +++ b/src/contracts/identity/context.tsx @@ -75,7 +75,6 @@ const IdentityContractProvider = ({ children }: Props) => { } setLoadingIdentityNo(true); try { - console.log(activeAccount.address); const result = await contractQuery(api, '', contract, 'identity_of', {}, [ activeAccount.address, ]); @@ -84,7 +83,6 @@ const IdentityContractProvider = ({ children }: Props) => { contract, 'identity_of' ); - console.log(decodedOutput); if (isError) throw new Error(decodedOutput); if (!output) setIdentityNo(null); else setIdentityNo(Number(output)); diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 2a83d76..3347dd8 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,7 +1,7 @@ import { CacheProvider, EmotionCache } from '@emotion/react'; import CssBaseline from '@mui/material/CssBaseline'; import { ThemeProvider } from '@mui/material/styles'; -import { shibuya, UseInkathonProvider } from '@scio-labs/use-inkathon'; +import { UseInkathonProvider } from '@scio-labs/use-inkathon'; import { ConfirmProvider } from 'material-ui-confirm'; import { NextPage } from 'next'; import { AppProps } from 'next/app'; diff --git a/types/constructors/address_book.ts b/types/constructors/address_book.ts index 5b88358..de7c781 100644 --- a/types/constructors/address_book.ts +++ b/types/constructors/address_book.ts @@ -1,9 +1,9 @@ -import {CodePromise} from "@polkadot/api-contract"; -import type {KeyringPair} from "@polkadot/keyring/types"; -import type {ApiPromise} from "@polkadot/api"; -import {_genValidGasLimitAndValue, _signAndSend, SignAndSendSuccessResponse} from "@727-ventures/typechain-types"; -import type {ConstructorOptions} from "@727-ventures/typechain-types"; -import type {WeightV2} from "@polkadot/types/interfaces"; +import { CodePromise } from "@polkadot/api-contract"; +import type { KeyringPair } from "@polkadot/keyring/types"; +import type { ApiPromise } from "@polkadot/api"; +import { _genValidGasLimitAndValue, _signAndSend, SignAndSendSuccessResponse } from "@727-ventures/typechain-types"; +import type { ConstructorOptions } from "@727-ventures/typechain-types"; +import type { WeightV2 } from "@polkadot/types/interfaces"; import type * as ArgumentTypes from '../types-arguments/address_book'; import { ContractFile } from '../contract-info/address_book'; import type BN from 'bn.js'; @@ -25,24 +25,24 @@ export default class Constructors { * * @param { ArgumentTypes.AccountId } identityContract, */ - async "new" ( + async "new"( identityContract: ArgumentTypes.AccountId, - __options ? : ConstructorOptions, - ) { - const __contract = JSON.parse(ContractFile); + __options?: ConstructorOptions, + ) { + const __contract = JSON.parse(ContractFile); const code = new CodePromise(this.nativeAPI, __contract, __contract.source.wasm); const gasLimit = (await _genValidGasLimitAndValue(this.nativeAPI, __options)).gasLimit as WeightV2; const storageDepositLimit = __options?.storageDepositLimit; - const tx = code.tx["new"]!({ gasLimit, storageDepositLimit, value: __options?.value }, identityContract); - let response; + const tx = code.tx["new"]!({ gasLimit, storageDepositLimit, value: __options?.value }, identityContract); + let response; - try { - response = await _signAndSend(this.nativeAPI.registry, tx, this.signer, (event: any) => event); - } - catch (error) { - console.log(error); - } + try { + response = await _signAndSend(this.nativeAPI.registry, tx, this.signer, (event: any) => event); + } + catch (error) { + console.log(error); + } return { result: response as SignAndSendSuccessResponse, From 32a418ab425fdb5c2b7a6341ccaa0bf749f05590 Mon Sep 17 00:00:00 2001 From: Sergej Sakac Date: Sun, 27 Aug 2023 10:50:42 +0200 Subject: [PATCH 10/11] switch to rococo --- src/pages/_app.tsx | 10 ++++---- types/constructors/address_book.ts | 36 ++++++++++++++--------------- types/contract-info/address_book.ts | 2 +- types/contract-info/identity.ts | 2 +- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 3347dd8..33fef4d 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -47,13 +47,13 @@ export default function MyApp(props: MyAppProps) { connectOnInit={false} defaultChain={ { - network: 'shibuya', - name: 'Shibuya Testnet', - ss58Prefix: 5, - rpcUrls: ['https://shibuya.public.blastapi.io'], + network: 'rocococ-contracts', + name: 'Rococo contracts', + ss58Prefix: 42, + rpcUrls: ['wss://rococo-contracts-rpc.polkadot.io'], explorerUrls: {}, testnet: true, - faucetUrls: ['https://portal.astar.network/#/shibuya-testnet/assets'], + faucetUrls: [], } } > diff --git a/types/constructors/address_book.ts b/types/constructors/address_book.ts index de7c781..5b88358 100644 --- a/types/constructors/address_book.ts +++ b/types/constructors/address_book.ts @@ -1,9 +1,9 @@ -import { CodePromise } from "@polkadot/api-contract"; -import type { KeyringPair } from "@polkadot/keyring/types"; -import type { ApiPromise } from "@polkadot/api"; -import { _genValidGasLimitAndValue, _signAndSend, SignAndSendSuccessResponse } from "@727-ventures/typechain-types"; -import type { ConstructorOptions } from "@727-ventures/typechain-types"; -import type { WeightV2 } from "@polkadot/types/interfaces"; +import {CodePromise} from "@polkadot/api-contract"; +import type {KeyringPair} from "@polkadot/keyring/types"; +import type {ApiPromise} from "@polkadot/api"; +import {_genValidGasLimitAndValue, _signAndSend, SignAndSendSuccessResponse} from "@727-ventures/typechain-types"; +import type {ConstructorOptions} from "@727-ventures/typechain-types"; +import type {WeightV2} from "@polkadot/types/interfaces"; import type * as ArgumentTypes from '../types-arguments/address_book'; import { ContractFile } from '../contract-info/address_book'; import type BN from 'bn.js'; @@ -25,24 +25,24 @@ export default class Constructors { * * @param { ArgumentTypes.AccountId } identityContract, */ - async "new"( + async "new" ( identityContract: ArgumentTypes.AccountId, - __options?: ConstructorOptions, - ) { - const __contract = JSON.parse(ContractFile); + __options ? : ConstructorOptions, + ) { + const __contract = JSON.parse(ContractFile); const code = new CodePromise(this.nativeAPI, __contract, __contract.source.wasm); const gasLimit = (await _genValidGasLimitAndValue(this.nativeAPI, __options)).gasLimit as WeightV2; const storageDepositLimit = __options?.storageDepositLimit; - const tx = code.tx["new"]!({ gasLimit, storageDepositLimit, value: __options?.value }, identityContract); - let response; + const tx = code.tx["new"]!({ gasLimit, storageDepositLimit, value: __options?.value }, identityContract); + let response; - try { - response = await _signAndSend(this.nativeAPI.registry, tx, this.signer, (event: any) => event); - } - catch (error) { - console.log(error); - } + try { + response = await _signAndSend(this.nativeAPI.registry, tx, this.signer, (event: any) => event); + } + catch (error) { + console.log(error); + } return { result: response as SignAndSendSuccessResponse, diff --git a/types/contract-info/address_book.ts b/types/contract-info/address_book.ts index 7e29dd6..6556a8a 100644 --- a/types/contract-info/address_book.ts +++ b/types/contract-info/address_book.ts @@ -1,2 +1,2 @@ export const ContractAbi = `{"source":{"hash":"0x4b89e660114f8ff737a566aceadf6e154e8eaa63fed72acf47bd2dafa4739605","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"address_book","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[{"label":"identity_contract","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":["Constructor","Instantiate with the address of \`Identity\` contract."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":20}},"events":[{"args":[{"docs":[" The owner of the newly created address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookCreated"},{"args":[{"docs":[" The owner of the removed address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookRemoved"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity added to the address book."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityAdded"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity that received a new nickname."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The new nickname."],"indexed":false,"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"docs":[],"label":"NicknameUpdated"},{"args":[{"docs":[],"indexed":false,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[" Returns the address of the identity contract."],"label":"identity_contract","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x69081926"},{"args":[],"default":false,"docs":[" Creates an address book for the caller."],"label":"create_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x07411baf"},{"args":[],"default":false,"docs":[" Removes the address book of the caller."],"label":"remove_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x1fe0816f"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Adds an identity to the user's address book."],"label":"add_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x83b06419"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Removes an identity from the user's address book."],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x08026740"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Update nickname of an identity."],"label":"update_nickname","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x484daeb1"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the identities stored in the address book of a user."],"label":"identities_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0x29daba02"},{"args":[],"default":false,"docs":[" Returns whether the user has created an address book or not"],"label":"has_address_book","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xc468ded4"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x02a833ee","ty":0}},"name":"identities"}],"name":"AddressBookInfo"}},"root_key":"0x02a833ee"}},"name":"address_book_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"identity_contract"}],"name":"AddressBook"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":4}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":4}],"path":["Option"]}},{"id":4,"type":{"def":{"primitive":"str"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":7}}}},{"id":7,"type":{"def":{"primitive":"u8"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":10}],"path":["Result"]}},{"id":9,"type":{"def":{"tuple":[]}}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"fields":[{"type":5}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":5},{"name":"E","type":10}],"path":["Result"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":13}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":13},{"name":"E","type":10}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":14}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AddressBookAlreadyCreated"},{"index":1,"name":"AddressBookDoesntExist"},{"index":2,"name":"IdentityDoesntExist"},{"index":3,"name":"IdentityNotAdded"},{"index":4,"name":"IdentityAlreadyAdded"},{"index":5,"name":"NickNameTooLong"}]}},"path":["address_book","Error"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":10}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u64"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; -export const ContractFile = `{"source":{"hash":"0x4b89e660114f8ff737a566aceadf6e154e8eaa63fed72acf47bd2dafa4739605","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","wasm":"0x0061736d01000000015a0e60037f7f7f017f60027f7f0060027f7f017f60037f7f7f0060047f7f7f7f0060057f7f7f7f7f0060017f0060047f7f7f7f017f60000060017f017e60087f7f7e7f7f7f7f7f017f6000017f60017f017f60067f7f7f7f7f7f0002ea010c057365616c310b6765745f73746f726167650007057365616c301176616c75655f7472616e736665727265640001057365616c310463616c6c000a057365616c3005696e7075740001057365616c300663616c6c65720001057365616c300d64656275675f6d6573736167650002057365616c300f686173685f626c616b65325f3235360003057365616c300d6465706f7369745f6576656e740004057365616c320b7365745f73746f726167650007057365616c310d636c6561725f73746f726167650002057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100362610001010100050004030503010101030101010201030301010303030501010601010106050b0c0306020308060403010603030108010601080208020000030202040103020602090504020205070407050202030000050407040202020204040d04040501700111110608017f01418080040b0711020463616c6c0042066465706c6f7900440916010041010b101d5c5b33434e675064654f47494a66510af1aa01612b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001100e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a4104100f450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a4102100f0d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220141808004492103200141027621010b2000200136020420002003360200200241206a24000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110112201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4801027f230041106b220224002002410036020c024020012002410c6a41041011450440200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6601027f230041106b2203240020002f01042104200041003a0004027f20044101710440200120044108763a00002000280200200341086a200120024101418c810410102003280208200328020c10110c010b20002802002001200210110b200341106a24000b4a01017f230041106b22052400200220034904402003200220041031000b200541086a2003200220011012200528020c21012000200528020836020020002001360204200541106a24000b6001047f230041106b22032400200028020422042002492205450440200341086a41002002200028020022061069200120022003280208200328020c419cb204102620032002200420061069200020032903003702000b200341106a240020050b1400200020012002200341ccab0441808004106a0b5001017f230041206b220324002003410c6a4101360200200341146a410036020020034184ac04360210200341003602002003200136021c200320003602182003200341186a36020820032002101e000b4b01017f230041106b22052400200120034d0440200541086a4100200120021012200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000b0e0020002001200241ec9b04106b0bec0401067f23004190016b22022400200241346a200141186a2900003702002002412c6a200141106a290000370200200241246a200141086a290000370200200241bc81043602182002200129000037021c2002410036024820024280800137027c200241f0b20436027841eee7a015200241f8006a22051017200241186a4104722005101820022002290378370340200241106a200241406b20022802800110192002280214210320022802102002280240210120022002280244220736027820032001200510002103200241086a20022802782001200741d486041014024002400240410c20032003410c4f1b0e0400020201020b200228020c210120022002280208360250200220013602542002200241d0006a100c024020022802000d00200241d8006a2002280254410476220320022802042201200120034b1b101a20010440200241f8006a41047221030340200241f8006a200241d0006a101b20022802780d02200241f0006a200341086a29020037030020022003290200370368200241d8006a200241e8006a101c200141016b22010d000b0b200228025c2204450d0020022802602101200228025821030c010b200241003a005820024184016a41013602002002418c016a4101360200200241e0810436028001200241003602782002410136026c2002200241e8006a360288012002200241d8006a360268200241f8006a41d08204101e000b20002001360208200020043602042000200336020020024190016a24000f0b20024184016a41013602002002418c016a4100360200200241e487043602800120024184ac043602880120024100360278200241f8006a41ec8704101e000b2601017f230041106b220224002002200036020c20012002410c6a41041024200241106a24000b0a0020012000412010240b4501017f2002200128020422034b044041acac04412341a0ae041013000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b800201047f02400240024002402001450440410421020c010b200141ffffff3f4b22020d01200141047422054100480d012005200141808080c000494102746a41016b4100417c20021b7122042005490d0241e8b204280200220220046a22032002490d0341ecb2042802002003490440200441ffff036a22022004490d042002411076220340002202417f46200241ffff0371200247720d042002411074220220034110746a22032002490d0441ecb2042003360200200220046a22032002490d040b41e8b20420033602002002450d030b2000410036020820002002360204200020013602000f0b1035000b41b0ab04411c4194ab041013000b20051036000bbc06010a7f230041206b22042400200441186a2001100e41012102024020042802180d00200428021c210a200441106a2001100d20042d00104101710d000240024020042d00110e020100020b200441086a2001100c20042802080d01200428020c220320012802044b0d0120042003102c2004280200210b200120042802042205200310110d012003450d00200341076b22014100200120034d1b2109200541036a417c7120056b2106410021020340024002400240024002400240024002400240200220056a2d00002207411874411875220841004e0440200620026b4103712006417f46720d0220022009490d010c060b02400240200741a4a4046a2d000041026b0e03040100060b200241016a220120034f0d05200120056a2c000021010240024002400240200741f0016b0e050100000002000b2008410f6a41ff017141024b200141004e720d0820014140490d020c080b200141f0006a41ff01714130490d010c070b2001418f7f4a0d060b200241026a220120034f0d05200120056a2c000041bf7f4a0d05200241036a220120034f0d05200120056a2c000041bf7f4c0d040c050b200241016a220120034f0d04200120056a2c00002101024002400240200741e001470440200741ed01460d012008411f6a41ff0171410c490d022008417e71416e47200141004e720d0820014140490d030c080b200141607141a07f460d020c070b200141a07f480d010c060b200141bf7f4a0d050b200241026a220120034f0d04200120056a2c000041bf7f4c0d030c040b0340200220056a2201280200200141046a28020072418081828478710d052002200241086a22014d044020012102200120094f0d070c010b0b41f09304411c4194a4041013000b200241016a21020c050b200241016a220120034f0d01200120056a2c000041bf7f4a0d010b200141016a21020c030b410121020c060b200221010b200120034f0d0120012003200120034b1b21020340200120056a2c00004100480440200121020c020b200141016a22012002470d000b0c010b20022003490d010b0b200321060b2000200a360204200041106a20063602002000410c6a2005360200200041086a200b360200410021020b20002002360200200441206a24000bb80201057f200028020822032000280200460440230041206b2202240002400240200341016a2204450d0002402000280200220320036a220520034f044041042005200420042005491b2204200441044d1b22044104742105200441808080c0004941027421060240200304402002200028020436021020024104360218200220034104743602140c010b200241003602180b200220052006200241106a10372002280200450d01200241086a280200450d0220022802041036000b41f08304412141d48e041013000b200228020421032000200436020020002003360204200241206a24000c010b1035000b200028020821030b200028020420034104746a22022001290200370200200241086a200141086a290200370200200341016a220145044041a08104411c41d093041013000b200020013602080bb60401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280200220341dfaf0441062001280204220528020c22041100000d0c024020012d0018410471450440200341dc9504410120041100000d0e200341acb20441052004110000450d010c0e0b200341da9504410220041100000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241acb2044105105f0d0d200241d895044102105f0d0d0b200341b194044101200411000021000c0c0b200128020041d2af04410d200128020428020c11000021000c0b0b200128020041c4af04410e200128020428020c11000021000c0a0b200128020041b9af04410b200128020428020c11000021000c090b2001280200419faf04411a200128020428020c11000021000c080b20012802004191af04410e200128020428020c11000021000c070b20012802004181af044110200128020428020c11000021000c060b200128020041f5ae04410c200128020428020c11000021000c050b200128020041eaae04410b200128020428020c11000021000c040b200128020041e3ae044107200128020428020c11000021000c030b200128020041d4ae04410f200128020428020c11000021000c020b200128020041c3ae044111200128020428020c11000021000c010b200128020041b0ae044113200128020428020c11000021000b200241106a240020000be10201017f230041206b22022400200241013a0018200220013602142002200036021020024190950436020c20024184ac04360208230041406a220124002001200241086a36020c2001410736022420012001410c6a360220410021004104210202400240024002400240034020002000200241d0ac046a2802006a22004b0d01200241086a22024114470d000b2001200041104f047f200020006a22024100200020024d1b0541000b103920014100360218200120012903003703102001410136023c20014102360234200141d0ac04360230200141003602282001200141206a360238200141106a200141286a10450d0141f0b2052d000045044041f1b2052d00004101710d050b410c20012802142001280218100522002000410c4f1b4109470d020c030b41808d04411c41f0a8041013000b41d090044133200141286a41c48d0441809204102e000b41f0b20541013a00000b41f1b20541013a00000b000bfc0102047f017e230041e0006b22032400200341346a200041186a2900003702002003412c6a200041106a290000370200200341246a200041086a290000370200200341bc81043602182003200029000037021c20034100360248200342808001370254200341f0b20436025041eee7a015200341d0006a22041017200341186a4104722004101820032003290350370340200341106a200341406b220520032802581019200328021421002003280210200329034021072003410036025820032007370350200120022004102020032003290350370340200341086a20052003280258101920002003280208200328020c10081a200341e0006a24000b430020012002102820010440200020014104746a21010340200028020020021017200041086a2802002000410c6a28020020021034200041106a22002001470d000b0b0bdc0102037f017e230041d0006b22022400200241106a22042000102220022903102105200241003602282002200537032020012802002001280204200241206a2203102320032001280208411c102420022002290320370310200241086a20042002280228101920032002280208200228020c102520022000280200220420002802042000280208220141fc8704101020024100360248200220022903003703402003200241406b10182001200120022802486a22034b044041a08104411c418c88041013000b2000200436020020002003360208200241d0006a24000b5201037f230041106b2202240020012802082203200128020422044b0440200320044190ae041031000b200241086a20032004200128020010682000200229030837020020004100360208200241106a24000b100020012002102820022000200110240b7901047f230041106b2203240002402000280208220520026a220420054f04402004200028020422064b0d01200341086a20052004200028020010682003280208200328020c2001200241f0ad04102620002004360208200341106a24000f0b4190ac04411c41d0ad041013000b2004200641e0ad041015000bcf0101077f230041306b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341286a22074200370300200341206a22084200370300200341186a220942003703002003420037031020012002200341106a1006200420072903003700002005200829030037000020062009290300370000200020032903103700000c010b200341086a20022000412041d0830410142003280208200328020c2001200241e0830410260b200341306a24000b85010020012003460440200020022001100b1a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4106360200200041f09e0436021020004100360208200041063602242000200041206a360218200020003602282000200041046a360220200041086a2004101e000b7701037f230041206b22022400200241086a2000280200220420002802042000280208220341fc8704101020024100360218200220022903083703102001200241106a10282003200320022802186a22014b044041a08104411c418c88041013000b2000200436020020002001360208200241206a24000b7401017f230041106b2202240002402000413f4d044020012000410274102a0c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210240c010b200041ffffffff034d04402000410274410272200110170c010b20014103102a2000200110170b200241106a24000b080020004101102a0ba10101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a41023602002000411c6a41023602002000412c6a4106360200200041e4940436021020004100360208200041063602242000200041206a360218200020003602282000200041046a360220200041086a4180ae04101e000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101145044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b5b01027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20012001417f73411f76104d200228020822030d0120011036000b1035000b2000200336020420002001360200200241106a24000ba70101017f230041306b2201240020014180800136020041f0b2042001100420014180800136022c200141f0b2043602282001200141286a102b20012d00000440200141003a000041e4860441c10020014194840441a88704102e000b20002001290102370001200041096a2001410a6a290100370000200041116a200141126a290100370000200041186a200141196a290000370000200020012d00013a0000200141306a24000b860101017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a41023602002005412c6a41023602002005413c6a4102360200200541c4950436022020054100360218200541033602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101e000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b1b002000418180014f044020004180800141b887041015000b20000b0e0020002001200241cc9b04106b0b5201017f230041206b220124002001410c6a4101360200200141146a410136020020014190a904360208200141003602002001410436021c200120003602182001200141186a360210200141808c04101e000b910101017f230041306b22022400200241146a41013602002002411c6a410136020020024190a9043602102002410036020820024103360224200220002d0000410274220041c0b2046a28020036022c2002200041d4b2046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a105e200241306a24000b1d00200045044020024100102a0f0b20024101102a20002001200210230b4601017f230041206b22002400200041146a41013602002000411c6a4100360200200041f88e0436021020004184ac0436021820004100360208200041086a41808f04101e000b5f01017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141b09004360218200141003602102001410636022c2001200141286a36022020012001410c6a360228200141106a41c09004101e000b890301077f230041106b220524002000027f0240027f02400240200204400240200141004e044020032802080d01200520012002104d2005280200210420052802040c050b200041086a41003602000c050b20032802042209450440200541086a20012002104d20052802082104200528020c0c040b200120026a41016b410020026b7122082001490d01200141e8b204280200220620086a22072006490d031a2003280200210a41ecb2042802002007490440200841ffff036a22032008490d032003411076220740002203417f46200341ffff0371200347720d032003411074220620074110746a22032006490d0341ecb20420033602002001200620086a22072006490d041a0b41e8b204200736020020012006450d031a2006200a2009100b210420010c030b20002001360204200041086a41003602000c030b41b0ab04411c4194ab041013000b20010b21072004044020002004360204200041086a200736020041000c020b20002001360204200041086a20023602000b41010b360200200541106a24000b5901037f230041106b2203240002402001450440200041003602040c010b200341086a20021039200328020821042000200328020c220536020420002004360200200520012002100b1a200020023602080b200341106a24000b3501017f230041106b22022400200241086a2001102c200228020c21012000200228020836020020002001360204200241106a24000bf80902047f017e230041b0016b22012400200141186a20004134100b1a024002400240024002400240024020012d001841016b0e0401020304000b200142808001370274200141f0b204360270200141f0006a220041021027200141a8016a200141f8006a280200360200200120012903703703a0012000200141a0016a2203418c8904103b2001200141186a4101723602a801200141263602a4012001419889043602a00120014190016a220220002003103c20002002103d0c040b200142808001370274200141f0b204360270200141f0006a220041021027200141a8016a200141f8006a280200360200200120012903703703a0012000200141a0016a220341e08904103b2001200141186a4101723602a801200141263602a401200141ec89043602a00120014190016a220220002003103c20002002103d0c030b200142808001370274200141f0b204360270200141f0006a220241021027200141e8006a2200200141f8006a2802003602002001200129037037036020014190016a2203200141e0006a1022200129039001210520014100360278200120053703704184ac04410020021023200241928a04411a10242001200129037037039001200141106a2003200128027810192002200128021020012802141025200141086a2001280260220320012802642000280200220041fc87041010200141003602a801200120012903083703a0012002200141a0016a10182000200020012802a8016a22004b0d03200141d8006a200036020020012003360260200120012903603703502001200141186a4104723602a801200141213602a401200141ac8a043602a00120014190016a2200200141d0006a200141a0016a103c200141f0006a2000103d0c020b200142808001370274200141f0b204360270200141f0006a220241021027200141a8016a2200200141f8006a2203280200360200200120012903703703a001200141a0016a220441ec8a04102120032000280200360200200120012903a0013703702001200141186a4104723602a801200141233602a401200141f88a043602a00120014190016a220020022004103c20022000103d0c010b200142808001370274200141f0b204360270200141f0006a220341011027200141a8016a2200200141f8006a280200360200200120012903703703a001200141a0016a41b88b04102120014198016a2000280200360200200120012903a00137039001200320014190016a103d0b200141a8016a200141f8006a2802003602002001200129037022053703a00120014180016a2802002100200128027c200141003602782001200537037002400240024002400240024020012d001841016b0e0401020304000b200141f0006a22024100102a200141186a410172200210180c040b200141f0006a22024101102a200141186a410172200210180c030b200141f0006a22024102102a200141186a410472200210182001413c6a280200200210170c020b200141f0006a22024103102a200141186a410472200210182001413c6a28020020021017200141c4006a280200200141c8006a280200200210340c010b200141f0006a22024104102a200141186a410472200210182001413c6a280200200210170b200120012903703703a0012001200141a0016a20012802781019200020012802002001280204100720012d00184103460440200141c4006a2802001a0b200141b0016a24000f0b41a08104411c418c88041013000bf80102037f017e230041d0006b22032400200341106a22052001102220032903102106200341003602282003200637032020022802002002280204200341206a2204102320042002280208411f102420032003290320370310200341086a20052003280228101920042003280208200328020c102520032001280200220520012802042001280208220241fc8704101020034100360248200320032903003703402004200341406b10182002200220032802486a22044b044041a08104411c418c88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000bf60102037f017e230041d0006b22032400200341106a22052001102220032903102106200341003602282003200637032020022802002002280204200341206a2204102320022802082004101820032003290320370310200341086a20052003280228101920042003280208200328020c102520032001280200220520012802042001280208220241fc8704101020034100360248200320032903003703402004200341406b10182002200220032802486a22044b044041a08104411c418c88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101920022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b3501017f230041106b22002400200042808001370204200041f0b20436020020004101102a200010294101200028020810301041000b4c01017f230041106b22022400200242808001370204200241f0b20436020020024100102a2002200141ff0171410647047f20024101102a20010541000b102a2000200228020810301041000ba20102057f017e230041306b2201240020014100360218200142808001370224200141f0b2043602204100200141206a2202101720012001290320370310200141086a200141106a220320012802281019200128020c2104200128020820012903102106200141003602282001200637032020002002101820012001290320370310200120032001280228101920042001280200200128020410081a200141306a24000b0d00200041f0b2042001100a000bd82b020f7f017e230041c0026b220024000240024002400240102f41ff017141054604402000418080013602a00141f0b204200041a0016a22011003200041d8006a20002802a00141f0b2044180800141d48604101420002000290358370370200041003602a001200041f0006a2001410410110d0220002802a00122074118762101200741107621032007410876210202400240024002400240024002400240200741ff0171220741076b0e020104000b2007411f460d0120074129460d05200741c800460d04200741e9004704402007418301460d03200741c40147200241ff017141e8004772200341ff017141de0147200141d4014772720d0a410721010c090b200241ff0171410847200341ff0171411947722001412647720d09410021010c080b200241ff017141c10047200341ff0171411b4772200141af0147720d08410121010c070b200241ff017141e00147200341ff01714181014772200141ef0047720d07410221010c060b200241ff017141b00147200341ff017141e40047722001411947720d06200041a0016a200041f0006a101b20002802a0010d06200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a4012105410321010c050b200241ff0171410247200341ff017141e7004772200141c00047720d05200041d0006a200041f0006a100e20002802500d0520002802542105410421010c040b200241ff017141cd0047200341ff017141ae0147720d04200141b101460d010c040b200241ff017141da0147200341ff017141ba0147722001410247720d03200041a0016a200041f0006a102b20002d00a0010d032000200041b4016a2902003703a0022000200041b9016a2900003700a502200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a401210520002f01a201210420002d00a101210b410621010c020b200041a0016a200041f0006a101b20002802a0010d02200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a4012105410521010c010b200041043a00a001200041a0016a1032000b200041e8006a200041a8026a290300370300200020002903a002370360200041003602a8022000428080013702a401200041f0b2043602a0014100200041a0016a22021017200020002903a0013703a002200041c8006a200041a0026a20002802a8011019200028024c2107200028024820002802a0022103200020002802a402220c3602a00120072003200210002102200041406b20002802a0012003200c41d4860410140240024002400240410c20022002410c4f1b0e0401000002000b200041ac016a4101360200200041b4016a4100360200200041e487043602a80120004184ac043602b001200041003602a001200041a0016a41ec8704101e000b20002802442103200020002802403602f801200020033602fc01200041a0016a200041f8016a102b20002d00a001450d01200041ac016a4101360200200041b4016a4100360200200041b88c043602a8010c030b200041ac016a4101360200200041b4016a4100360200200041d88c043602a8010c020b200041f8006a2203200041aa016a220229010037030020004180016a220a200041b2016a220c29010037030020004187016a220d200041b9016a220e290000370000200020002901a20137037020002d00a1012107027f024002400240027f02400240024002400240024002400240024002400240024002400240200141016b0e0707060001020304080b200041a0026a102d200041b8016a2203200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc0122010440200020002d00fb013a009301200020002f00f9013b00910120002000280280022204360298012000200136029401200020002d00f8013a009001200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200320004187016a290000370000200041c8016a4200370300200041d0016a4200370300200020073a00a001200020002903703700a101200041003602e001200042003703c00120002005ad42208642cbfdefe70e843703d801200041003602f0012000428080013702fc01200041f0b2043602f801200041a0016a200041f8016a22031018200020002903f8013703e801200041386a200041e8016a220220002802800210192000280238210b20002903e801210f20004100360298022000200f370390022000420037038002200042003703f80120004190026a20034110102420002000290390023703e801200041306a200220002802980210192000280230210a20002903e801210f20004100360280022000200f3703f8012003200041d8016a41041024200520031017200020002903f8013703e801200041286a20022000280280021019200028022c210c2000280228210d20002802e8012102200020002802ec01220e3602f8014100200b4200200a200d200c2002200310022103200041206a20002802f8012002200e41d486041014410c20032003410c4f1b2203410d710d0920002802242103200020002802203602f801200020033602fc01200041186a200041f8016a100d02400240024020002d00184101710d000240024020002d00190e020001020b200041086a200041f8016a100d20002d00084101710d014102210220002d0009220341024f0d0120030d030c140b200041106a200041f8016a100d20002d00104101710d0020002d00114101460d010b410021010c110b200041013602e80120004184026a41013602002000418c026a4101360200200041d4840436028002200041003602f8012000410536029402200020004190026a360288022000200041e8016a36029002200041f8016a41d88504101e000b20044104742102024003402002450d01200241106b21022001280200200141106a21012005470d000b410421020c110b200041a0016a20082006103820002802a401450d0520002802a8014111490d05410521020c100b410121020c100b200041a0026a102d200041b8016a200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a1016027f20002802fc0122034504404101210241010c010b200041f8016a2000280280022206101a20002802f80122042000280280022201490d092006410474210920002802fc01210802402006452001200446720d00200320096a210b200820014104746a2102200041a0016a410472210a200120046b41016a2104200321010340200020012802003602a001200a200141086a2802002001410c6a2802001038200241086a200041a8016a290300370200200220002903a0013702002004450d01200441016a2104200241106a2102200141106a2201200b470d000b0b024020060440200820096a210441002101410021020340200120086a22092802002005460d02200141106a2101200241016a2102200941106a2004470d000b0b4103210241010c010b200220064f0d0a200641047420016b41106b21020240200120036a2201200141106a22044d044003402002450d02200120042d00003a0000200441016a2104200141016a2101200241016b21020c000b000b200441016b2104200141016b210103402002450d01200120026a200220046a2d00003a0000200241016b21020c000b000b200041b8016a2202200041b8026a2204290300370300200041b0016a200041b0026a2208290300370300200041a8016a200041a8026a2209290300370300200020002903a0023703a001200041a0016a22012003200641016b101f200041bc016a2004290300370200200041b4016a2008290300370200200041ac016a2009290300370200200041c4016a2005360200200020002903a0023702a401200041043a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200220004187016a290000370000200020073a00a001200020002903703700a101200110404106210241000b2002103f000b200041a0026a102d200041b8016a200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc01220a450440410121040c0b0b200028028002210b200041f8016a200820061038200041a0016a20002802fc012000280280021038024020002802a401450d0020002802a8014111490d00410521040c0b0b41032104200b450d0a200b410474210c4100210141002102034020052001200a6a2203280200470440200241016a2102200141106a2201200c470d010c0c0b0b200341086a2802001a20032005360200200341046a20002903f8013702002003410c6a20004180026a280200360200200041b8016a2203200041b8026a2202290300370300200041b0016a200041b0026a2204290300370300200041a8016a200041a8026a220c290300370300200020002903a0023703a001200041a0016a2201200a200b101f200041bc016a2002290300370200200041b4016a2004290300370200200041ac016a200c290300370200200041d0016a2006360200200041cc016a2008360200200041c8016a2009360200200041c4016a2005360200200020002903a0023702a401200041033a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200320004187016a290000370000200020073a00a001200020002903703700a101200110404106210441000c0b0b200041b8016a2000290065370000200020063600af01200020083600ab01200020093600a701200020053600a301200020043b00a1012000200b3a00a001200020002903603700b301230041306b22012400200141286a200041a0016a220341186a290000370300200141206a200341106a290000370300200141186a200341086a290000370300200120032900003703102001200141106a101620012802002104200041a0026a220220012802084100200128020422031b36020820022003410420031b36020420022004410020031b360200200141306a240020002802a402210320002802a8022100230041106b22012400200142808001370204200141f0b20436020002402003044020014100102a20032000200110200c010b20014101102a200110290b0c110b230041d0006b220124002001102d200141c8006a200141186a290300370300200141406b200141106a290300370300200141386a200141086a29030037030020012001290300370330200141206a200141306a101620012802242100200141d0006a2400230041106b22012400200142808001370204200141f0b204360200230041106b2203240020014100102a200320004100473a000f20012003410f6a41011024200341106a24000c100b200041ac016a22032006360200200041a8016a22022008360200200020093602a401200020053602a00120004190016a200041a0016a2201101c200041b8016a2204200041b8026a2206290300370300200041b0016a200041b0026a22082903003703002002200041a8026a2202290300370300200020002903a0023703a0012001200028029401200028029801101f200041bc016a2006290300370200200041b4016a200829030037020020032002290300370200200041c4016a2005360200200020002903a0023702a401200041023a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200420004187016a290000370000200020073a00a001200020002903703700a101200110404106210241000c0c0b200041a0026a102d200041b8016a2202200041b8026a2201290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a1016027f20002802fc0122040440200041bc016a2001290300370200200041b4016a200041b0026a2205290300370200200041ac016a200041a8026a2206290300370200200020002903a0023702a401200041bc81043602a00120004100360298022000428080013702fc01200041f0b2043602f80141eee7a015200041f8016a22081017200041a0016a220341047220081018200020002903f80137039002200020004190026a20002802800210192000280200200028020410091a200041b9016a2001290300370000200041b1016a22012005290300370000200041a9016a22052006290300370000200020002903a0023700a101200041013a00a0012003103a2005200041f8006a290300370000200120004180016a290300370000200220004187016a290000370000200020073a00a001200020002903703700a1012003104041060c010b41010b21012004452001103f000b200041a0026a102d200041b8016a2201200041b8026a2203290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc0122040440410021010c050b20012003290300370300200041b0016a200041b0026a2205290300370300200041a8016a200041a8026a2206290300370300200020002903a0023703a001200041a0016a220241044100101f200041b9016a2003290300370000200041b1016a22032005290300370000200041a9016a22052006290300370000200020002903a0023700a101200041003a00a0012002103a2005200041f8006a290300370000200320004180016a290300370000200120004187016a290000370000200020073a00a001200020002903703700a10120021040410621010c040b20022003290300370100200c200a290300370100200e200d290000370000200020073a00a101200020002903703701a201200041003a00a001230041106b22012400200142808001370204200141f0b2043602000240200041a0016a22032d000045044020014100102a200341016a200110180c010b20014101102a200110290b0c0c0b200341b0b2046a2d000021010c050b41808004412141a484041013000b230041306b220124002001200636020420012002360200200141146a41033602002001411c6a41023602002001412c6a4106360200200141b8930436021020014100360208200141063602242001200141206a3602182001200141046a36022820012001360220200141086a41dc8804101e000b20044100472001103f000b41010b2004103f000b200020013a00e80120004184026a41013602002000418c026a4101360200200041d4840436028002200041003602f8012000410136029402200020004190026a360288022000200041e8016a36029002200041f8016a41c88504101e000b410120030d011a0b41010b2002103f000b103e000b20004184ac043602b001200041003602a001200041a0016a41808c04101e000b4100200128020810301041000b1800200128020041e5af044111200128020428020c1100000bdf0202047f027e230041e0006b220024000240102f41ff01712201410546044020004180800136023841f0b204200041386a22011003200041086a200028023841f0b2044180800141d48604101420002000290308370330200041003602380240200041306a2001410410110d002000280238419bddf6f405470d00200041386a200041306a102b20002d0038450d020b103e000b200020013a0038200041386a1032000b200041276a2201200041d1006a290000370000200041206a2202200041ca006a290100370300200041186a200041c2006a29010022043703002000200029013a220537031020002d00392103200041c1006a2004370000200041c9006a2002290300370000200041d0006a2001290000370000200020033a003820002005370039200041386a1040230041106b22002400200042808001370204200041f0b20436020020004100102a20004100102a4100200028020810301041000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41e08c04200241086a1046200241206a24000bee0301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1100000d040b200141086a2101200428020020042802042106200441086a2104200341186a2006110200450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1100000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a105d20032003290310370320200341086a2005200141046a105d20032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110200450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1100000d010b41000c010b41010b200341406b24000b0f00200028020020012002104841000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a200020032002104b2004280208200428020c104c200028020821030b200028020420036a20012002100b1a2003200220036a22014b044041808d04411c41e093041013000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10480c020b230041106b22042400200441086a200020034101104b2004280208200428020c104c200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41808d04411c41d093041013000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1045200241206a24000bdd0101027f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22052002490d0141082005200320032005491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200420032005200441106a103720042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41a08d04412141d48e041013000b1f00024020014181808080784704402001450d0120001036000b0f0b1035000bd00101037f02402001450440200221030c010b02402001200120026a41016b410020026b7122054d044041e8b204280200220220056a22042002490d0241ecb2042802002004490440200541ffff036a22022005490d022002411076220340002202417f46200241ffff0371200247720d022002411074220220034110746a22042002490d024100210341ecb2042004360200200220056a22042002490d030b41e8b2042004360200200221030c020b41b0ab04411c4194ab041013000b410021030b20002001360204200020033602000bd806020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e220641017441db96046a2f00003b0000200241026b2004200641e4006c6b41ffff037141017441db96046a2f00003b0000200041046b2100200e42ffc1d72f56200d210e0d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff037141017441db96046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a200241017441db96046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b210241002104200541047104404184ac04210420024184ac044184ac04105420026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a28020022012007200410570d01200220082006200128020c11000021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a2007200410570d02200341106a2001200920026b4101105820032802142202418080c400460d022003280210200520082006200a28020c1100000d0220022005200a10590d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a28020022012007200410570d01200220082006200128020c11000021000c010b41012100200341086a2001200920026b41011058200328020c2205418080c400460d00200328020820012802002202200141046a28020022012007200410570d00200220082006200128020c1100000d00200520022001105921000b200341406b240020000f0b41f09304411c41a499041013000b4190940441214180a9041013000b0300010b0e0020002802001a03400c000b000b0d0042f2e7eb9187bab2c1d1000b4a01017f230041106b22052400200220034904402003200220041031000b200541086a2003200220011053200528020c21012000200528020836020020002001360204200541106a24000b1400200020012002200341f8b00441909404106a0ba704010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d002001200010552206200020016a22082004417c716a200441037110556a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41809d041056200328020c21052003280208210820032003280200200328020422002000417c7141909e041056200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41f09304411c4198a0041013000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441f09304411c41c8a0041013000b41f09304411c41a8a0041013000b41f09304411c41b8a0041013000b41f09304411c4188a0041013000b20012002105521020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41f09304411c41f0a8041013000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41acac04412320041013000b39000240027f2002418080c40047044041012000200220012802101102000d011a0b20030d0141000b0f0b200020034100200128020c1100000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41f09304411c41b499041013000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110200450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110200450d000b200441016b0b2000490b4b01017f230041106b22052400200120034d0440200541086a4100200120021053200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000bea04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11000021000c020b41f09304411c41d8a1041013000b200b450440200128020020032004200128020428020c11000021000c010b2001410c6a2802002200200320046a2003105422024b0440200941086a2001200020026b4100105841012100200928020c2202418080c400460d0120092802082001280200220520032004200141046a280200220128020c1100000d01200220052001105921000c010b200128020020032004200128020428020c11000021000b200941106a240020000b140020002802002001200028020428020c1102000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044108470d0120012802000b2802002104410121030b20002004360204200020033602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1046200341206a24000bda08010b7f23004190016b22032400200341003b0184012003410a3602800120034281808080a00137037820032002360274200341003602702003200236026c200320013602682003200236026420034100360260200028020421062000280200210720002802082108200341fc006a2109027f0340024002400240024020032d008501450440200341d8006a2003280268220c200328026c2003280270200328027410600240024020032802582201450d00200328025c2100034002400240024002400240027f0240024002400240200328027822020440200220096a41016b2d00002104200041084f04402001200141036a417c712202460440200041086b210a410021020c040b200341d0006a200220016b22022000200020024b1b22022001200041c89a04105a200341c8006a200420032802502003280254106120032802484101470d02200328024c21010c050b200341306a20042001200010612003280234210120032802300c050b41909404412141a8a7041013000b2002200041086b220a4b0d010b200441818284086c210b0340200241046a22052002490d04200120026a280200200b73220d417f73200d41818284086b71200120056a280200200b732205417f73200541818284086b7172418081828478710d012002200241086a22024b0d072002200a4d0d000b0b200341406b20012000200241f89a041052200341386a2004200328024020032802441061410020032802384101470d011a2002200328023c6a220120024f0d0041f09304411c41889b041013000b41010b4101460440200141016a2200450d022000200328027022006a22022000490d0320032002360270200220032802782200490d05200341286a2003280268200328026c200220006b2002106020032802282202450d05200328022c2100200341206a20032802782009410441d8a704105a20022000200328022020032802241062450d05200341186a200328026020032802702200200c106320032000360260200328021c2102200328021821000c080b200320032802743602700c060b41f09304411c41d89a041013000b41f09304411c41b8a7041013000b41f09304411c41c8a7041013000b41f09304411c41e89a041013000b200341106a2003280268200328026c20032802702003280274106020032802142100200328021022010d000b0b4100210020032d0085010d00200341013a008501024020032d008401044020032802642101200328026021040c010b2003280264220120032802602204490d0420012004460d010b200341086a2004200120032802681063200328020c2102200328020821000b20000d010b41000c050b20082d0000450d01200741d495044104200628020c110000450d010c020b41909404412141e8a1041013000b2003410a36028c0120082002047f200320002002200241016b41a09e0410522003418c016a41012003280200200328020410620541000b3a0000200720002002200628020c110000450d010b0b41010b20034190016a24000b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011053200528020c2107200528020821060b2000200736020420002006360200200541106a24000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b4d01017f2001200346047f027f034041002001450d011a200141016b210120022d0000210320002d00002104200041016a2100200241016a210220032004460d000b200420036b0b0541010b450b1400200020012002200341fca20441909404106a0b5801027f230041206b22022400200128020421032001280200200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1046200241206a24000b0b0020002802002001105b0b1800200128020041acb2044105200128020428020c1100000b990301037f230041406a22022400200028020021034101210002402001280200220441a09504410c200141046a280200220128020c1100000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241b0950436023020024100360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a105e450d010c020b20032802002200200328020428020c11090042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241b09504360230200241003602282002410a3602142002200241106a36023820022002410c6a36021020042001200241286a105e0d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4106360200200241346a4106360200200241f894043602182002410036021020022000410c6a3602382002200041086a3602302002410336022c200220003602282002200241286a36022020042001200241106a105e21000b200241406b240020000b1400200020012002200341ccab0441e0ab04106a0b1400200020012002200341f8b0044190b104106a0b2800200120024d04402000200220016b3602042000200120036a3602000f0b2005412120041013000b7301017f230041306b220424002004200136020420042000360200200441146a41023602002004411c6a41023602002004412c6a41063602002004200336021020044100360208200441063602242004200441206a3602182004200441046a36022820042004360220200441086a2002101e000b0b9d320700418080040bf50c617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6d706163742e727300210001006a000000420000002600000000000000617474656d707420746f206164642077697468206f766572666c6f77ee33a8024661696c656420746f206765742076616c756520696e204d617070696e673a20c0000100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e7273e8000100680000009c000000250000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273000000600101006d0000009d00000011000000600101006d0000009d00000030000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b000000010000000100000001000000100901007f000000c30800001100000043726f73732d636f6e74726163742063616c6c206661696c656420776974682034020100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f63616c6c2f63616c6c5f6275696c6465722e72730000005c0201006900000078000000110000005c020100690000007b000000110000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300e80201006b000000e40000001400000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000600101006d0000006b0100000e000000600101006d0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72c80301001c000000600101006d000000ed00000017000000601601006e000000c100000037000000601601006e000000c4000000090000002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f616464726573735f626f6f6b2f74797065732e727300001c0401003e000000330000001900000041646472657373426f6f6b3a3a41646472657373426f6f6b437265617465640004160100000000006c04010041646472657373426f6f6b3a3a41646472657373426f6f6b437265617465643a3a6f776e657241646472657373426f6f6b3a3a41646472657373426f6f6b52656d6f7665640000000416010000000000be04010041646472657373426f6f6b3a3a41646472657373426f6f6b52656d6f7665643a3a6f776e657241646472657373426f6f6b3a3a4964656e74697479416464656441646472657373426f6f6b3a3a4964656e7469747941646465643a3a6f776e657241646472657373426f6f6b3a3a4e69636b6e616d655570646174656400000004160100000000004d05010041646472657373426f6f6b3a3a4e69636b6e616d65557064617465643a3a6f776e657241646472657373426f6f6b3a3a4964656e7469747952656d6f7665640004160100000000009b0501002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f616464726573735f626f6f6b2f6c69622e7273c40501003c0000002e00000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900100601002700000073746f7261676520656e7472792077617320656d7074790040060100170000000b00000004000000040000000c0000000d0000000e0041808d040ba418617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b00000000000000010000000f0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300d40601007f0000008a0100001c0000006361706163697479206f766572666c6f770000006407010011000000d40601007f00000006020000050000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564000d08010015000000220801000d000000900701007d00000095010000090000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000830801007b00000064020000200000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273292073686f756c64206265203c206c656e202869732072656d6f76616c20696e646578202869732000a5090100120000008f09010016000000310a010001000000100901007f000000300700000d000000100901007f0000009e07000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320320a010020000000520a0100120000003a0000000416010000000000740a010001000000740a0100010000000b00000000000000010000001000000070616e69636b65642061742027272c20ac0a010001000000ad0a0100030000003a2000000416010000000000c00a010002000000202020202c0a280a282f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000230c01007e0000005d0500000d000000230c01007e000000ed050000380000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e727300c40c0100830000004e0000002f000000c40c0100830000005a0000001f000000c40c0100830000006300000009000000c40c0100830000006800000027000000c40c010083000000680000003e00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820980d010012000000aa0d01002200000072616e676520656e6420696e64657820dc0d010010000000aa0d0100220000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273000000fc0d010081000000c4050000250000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e7273900e010080000000fe0300002f000000900e010080000000de0800001e000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028300f010015000000450f01002b000000310a0100010000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273880f0100800000004700000015000000880f0100800000005400000011000000880f0100800000005a00000009000000880f0100800000006400000011000000880f010080000000660000000d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e727300581001007f0000009100000011000000581001007f0000004f0200002d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273000000f810010081000000ca000000130000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727300008c11010086000000e50000001500000001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041e6a5040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041a4a6040bfd042f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e727300002413010082000000a1010000470000002413010082000000b4010000200000002413010082000000b4010000110000002413010082000000b8010000260000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273e8130100880000009500000001000000dd0a01007e000000cd0100000500000004160100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e72730010150100830000002f010000180041b0ab040b51617474656d707420746f206164642077697468206f766572666c6f77f617010082000000900100004f00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f77004190ac040bf504617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290a04160100000000004f160100010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e72730000601601006e0000005a0000001c000000601601006e0000005a00000009000000601601006e0000005a00000031000000601601006e0000006500000009000000601601006e000000830000001a000000601601006e0000008d0000002100000045636473615265636f766572794661696c656443616c6c52756e74696d654661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f6465436f756c644e6f7452656164496e7075742f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e7273f6170100820000008201000047004190b1040bd701617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6465632e7273000000b118010068000000770000000e0000004572726f7201020304050607080a0b0c09000000190000001c000000160000001400000019000000f7140100db140100c5140100b1140100981401","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"address_book","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[{"label":"identity_contract","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":["Constructor","Instantiate with the address of \`Identity\` contract."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":20}},"events":[{"args":[{"docs":[" The owner of the newly created address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookCreated"},{"args":[{"docs":[" The owner of the removed address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookRemoved"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity added to the address book."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityAdded"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity that received a new nickname."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The new nickname."],"indexed":false,"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"docs":[],"label":"NicknameUpdated"},{"args":[{"docs":[],"indexed":false,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[" Returns the address of the identity contract."],"label":"identity_contract","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x69081926"},{"args":[],"default":false,"docs":[" Creates an address book for the caller."],"label":"create_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x07411baf"},{"args":[],"default":false,"docs":[" Removes the address book of the caller."],"label":"remove_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x1fe0816f"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Adds an identity to the user's address book."],"label":"add_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x83b06419"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Removes an identity from the user's address book."],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x08026740"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Update nickname of an identity."],"label":"update_nickname","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x484daeb1"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the identities stored in the address book of a user."],"label":"identities_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0x29daba02"},{"args":[],"default":false,"docs":[" Returns whether the user has created an address book or not"],"label":"has_address_book","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xc468ded4"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x02a833ee","ty":0}},"name":"identities"}],"name":"AddressBookInfo"}},"root_key":"0x02a833ee"}},"name":"address_book_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"identity_contract"}],"name":"AddressBook"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":4}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":4}],"path":["Option"]}},{"id":4,"type":{"def":{"primitive":"str"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":7}}}},{"id":7,"type":{"def":{"primitive":"u8"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":10}],"path":["Result"]}},{"id":9,"type":{"def":{"tuple":[]}}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"fields":[{"type":5}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":5},{"name":"E","type":10}],"path":["Result"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":13}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":13},{"name":"E","type":10}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":14}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AddressBookAlreadyCreated"},{"index":1,"name":"AddressBookDoesntExist"},{"index":2,"name":"IdentityDoesntExist"},{"index":3,"name":"IdentityNotAdded"},{"index":4,"name":"IdentityAlreadyAdded"},{"index":5,"name":"NickNameTooLong"}]}},"path":["address_book","Error"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":10}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u64"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file +export const ContractFile = `{"source":{"hash":"0x8827e06fdbd6bf97595f9d7ef727885fb067944723259c47e943e86326d9d496","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","wasm":"0x0061736d01000000015a0e60037f7f7f017f60027f7f0060027f7f017f60037f7f7f0060047f7f7f7f0060057f7f7f7f7f0060017f0060047f7f7f7f017f60000060017f017e60087f7f7e7f7f7f7f7f017f6000017f60017f017f60067f7f7f7f7f7f0002ea010c057365616c310b6765745f73746f726167650007057365616c301176616c75655f7472616e736665727265640001057365616c310463616c6c000a057365616c3005696e7075740001057365616c300663616c6c65720001057365616c300d64656275675f6d6573736167650002057365616c300f686173685f626c616b65325f3235360003057365616c300d6465706f7369745f6576656e740004057365616c320b7365745f73746f726167650007057365616c310d636c6561725f73746f726167650002057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100362610001010100050004030503010101030101010201030301010303030501010601010106050b0c0306020308060403010603030101080601080208020000030202040103020602090504020205070407050202030000050407040202020204040d04040501700111110608017f01418080040b0711020463616c6c0042066465706c6f7900440916010041010b101d5c5b33434e675064654f47494a66510af1aa01612b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001100e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a4104100f450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a4102100f0d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220141808004492103200141027621010b2000200136020420002003360200200241206a24000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110112201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4801027f230041106b220224002002410036020c024020012002410c6a41041011450440200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6601027f230041106b2203240020002f01042104200041003a0004027f20044101710440200120044108763a00002000280200200341086a200120024101418c810410102003280208200328020c10110c010b20002802002001200210110b200341106a24000b4a01017f230041106b22052400200220034904402003200220041031000b200541086a2003200220011012200528020c21012000200528020836020020002001360204200541106a24000b6001047f230041106b22032400200028020422042002492205450440200341086a41002002200028020022061069200120022003280208200328020c419cb204102620032002200420061069200020032903003702000b200341106a240020050b1400200020012002200341ccab0441808004106a0b5001017f230041206b220324002003410c6a4101360200200341146a410036020020034184ac04360210200341003602002003200136021c200320003602182003200341186a36020820032002101e000b4b01017f230041106b22052400200120034d0440200541086a4100200120021012200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000b0e0020002001200241ec9b04106b0bec0401067f23004190016b22022400200241346a200141186a2900003702002002412c6a200141106a290000370200200241246a200141086a290000370200200241bc81043602182002200129000037021c2002410036024820024280800137027c200241f0b20436027841eee7a015200241f8006a22051017200241186a4104722005101820022002290378370340200241106a200241406b20022802800110192002280214210320022802102002280240210120022002280244220736027820032001200510002103200241086a20022802782001200741d486041014024002400240410c20032003410c4f1b0e0400020201020b200228020c210120022002280208360250200220013602542002200241d0006a100c024020022802000d00200241d8006a2002280254410476220320022802042201200120034b1b101a20010440200241f8006a41047221030340200241f8006a200241d0006a101b20022802780d02200241f0006a200341086a29020037030020022003290200370368200241d8006a200241e8006a101c200141016b22010d000b0b200228025c2204450d0020022802602101200228025821030c010b200241003a005820024184016a41013602002002418c016a4101360200200241e0810436028001200241003602782002410136026c2002200241e8006a360288012002200241d8006a360268200241f8006a41d08204101e000b20002001360208200020043602042000200336020020024190016a24000f0b20024184016a41013602002002418c016a4100360200200241e487043602800120024184ac043602880120024100360278200241f8006a41ec8704101e000b2601017f230041106b220224002002200036020c20012002410c6a41041024200241106a24000b0a0020012000412010240b4501017f2002200128020422034b044041acac04412341a0ae041013000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b800201047f02400240024002402001450440410421020c010b200141ffffff3f4b22020d01200141047422054100480d012005200141808080c000494102746a41016b4100417c20021b7122042005490d0241e8b204280200220220046a22032002490d0341ecb2042802002003490440200441ffff036a22022004490d042002411076220340002202417f46200241ffff0371200247720d042002411074220220034110746a22032002490d0441ecb2042003360200200220046a22032002490d040b41e8b20420033602002002450d030b2000410036020820002002360204200020013602000f0b1035000b41b0ab04411c4194ab041013000b20051036000bbc06010a7f230041206b22042400200441186a2001100e41012102024020042802180d00200428021c210a200441106a2001100d20042d00104101710d000240024020042d00110e020100020b200441086a2001100c20042802080d01200428020c220320012802044b0d0120042003102c2004280200210b200120042802042205200310110d012003450d00200341076b22014100200120034d1b2109200541036a417c7120056b2106410021020340024002400240024002400240024002400240200220056a2d00002207411874411875220841004e0440200620026b4103712006417f46720d0220022009490d010c060b02400240200741a4a4046a2d000041026b0e03040100060b200241016a220120034f0d05200120056a2c000021010240024002400240200741f0016b0e050100000002000b2008410f6a41ff017141024b200141004e720d0820014140490d020c080b200141f0006a41ff01714130490d010c070b2001418f7f4a0d060b200241026a220120034f0d05200120056a2c000041bf7f4a0d05200241036a220120034f0d05200120056a2c000041bf7f4c0d040c050b200241016a220120034f0d04200120056a2c00002101024002400240200741e001470440200741ed01460d012008411f6a41ff0171410c490d022008417e71416e47200141004e720d0820014140490d030c080b200141607141a07f460d020c070b200141a07f480d010c060b200141bf7f4a0d050b200241026a220120034f0d04200120056a2c000041bf7f4c0d030c040b0340200220056a2201280200200141046a28020072418081828478710d052002200241086a22014d044020012102200120094f0d070c010b0b41f09304411c4194a4041013000b200241016a21020c050b200241016a220120034f0d01200120056a2c000041bf7f4a0d010b200141016a21020c030b410121020c060b200221010b200120034f0d0120012003200120034b1b21020340200120056a2c00004100480440200121020c020b200141016a22012002470d000b0c010b20022003490d010b0b200321060b2000200a360204200041106a20063602002000410c6a2005360200200041086a200b360200410021020b20002002360200200441206a24000bb80201057f200028020822032000280200460440230041206b2202240002400240200341016a2204450d0002402000280200220320036a220520034f044041042005200420042005491b2204200441044d1b22044104742105200441808080c0004941027421060240200304402002200028020436021020024104360218200220034104743602140c010b200241003602180b200220052006200241106a10372002280200450d01200241086a280200450d0220022802041036000b41f08304412141d48e041013000b200228020421032000200436020020002003360204200241206a24000c010b1035000b200028020821030b200028020420034104746a22022001290200370200200241086a200141086a290200370200200341016a220145044041a08104411c41d093041013000b200020013602080bb60401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280200220341dfaf0441062001280204220528020c22041100000d0c024020012d0018410471450440200341dc9504410120041100000d0e200341acb20441052004110000450d010c0e0b200341da9504410220041100000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241acb2044105105f0d0d200241d895044102105f0d0d0b200341b194044101200411000021000c0c0b200128020041d2af04410d200128020428020c11000021000c0b0b200128020041c4af04410e200128020428020c11000021000c0a0b200128020041b9af04410b200128020428020c11000021000c090b2001280200419faf04411a200128020428020c11000021000c080b20012802004191af04410e200128020428020c11000021000c070b20012802004181af044110200128020428020c11000021000c060b200128020041f5ae04410c200128020428020c11000021000c050b200128020041eaae04410b200128020428020c11000021000c040b200128020041e3ae044107200128020428020c11000021000c030b200128020041d4ae04410f200128020428020c11000021000c020b200128020041c3ae044111200128020428020c11000021000c010b200128020041b0ae044113200128020428020c11000021000b200241106a240020000be10201017f230041206b22022400200241013a0018200220013602142002200036021020024190950436020c20024184ac04360208230041406a220124002001200241086a36020c2001410736022420012001410c6a360220410021004104210202400240024002400240034020002000200241d0ac046a2802006a22004b0d01200241086a22024114470d000b2001200041104f047f200020006a22024100200020024d1b0541000b103920014100360218200120012903003703102001410136023c20014102360234200141d0ac04360230200141003602282001200141206a360238200141106a200141286a10450d0141f0b2052d000045044041f1b2052d00004101710d050b410c20012802142001280218100522002000410c4f1b4109470d020c030b41808d04411c41f0a8041013000b41d090044133200141286a41c48d0441809204102e000b41f0b20541013a00000b41f1b20541013a00000b000bfc0102047f017e230041e0006b22032400200341346a200041186a2900003702002003412c6a200041106a290000370200200341246a200041086a290000370200200341bc81043602182003200029000037021c20034100360248200342808001370254200341f0b20436025041eee7a015200341d0006a22041017200341186a4104722004101820032003290350370340200341106a200341406b220520032802581019200328021421002003280210200329034021072003410036025820032007370350200120022004102020032003290350370340200341086a20052003280258101920002003280208200328020c10081a200341e0006a24000b430020012002102820010440200020014104746a21010340200028020020021017200041086a2802002000410c6a28020020021034200041106a22002001470d000b0b0bdc0102037f017e230041d0006b22022400200241106a22042000102220022903102105200241003602282002200537032020012802002001280204200241206a2203102320032001280208411c102420022002290320370310200241086a20042002280228101920032002280208200228020c102520022000280200220420002802042000280208220141fc8704101020024100360248200220022903003703402003200241406b10182001200120022802486a22034b044041a08104411c418c88041013000b2000200436020020002003360208200241d0006a24000b5201037f230041106b2202240020012802082203200128020422044b0440200320044190ae041031000b200241086a20032004200128020010682000200229030837020020004100360208200241106a24000b100020012002102820022000200110240b7901047f230041106b2203240002402000280208220520026a220420054f04402004200028020422064b0d01200341086a20052004200028020010682003280208200328020c2001200241f0ad04102620002004360208200341106a24000f0b4190ac04411c41d0ad041013000b2004200641e0ad041015000bcf0101077f230041306b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341286a22074200370300200341206a22084200370300200341186a220942003703002003420037031020012002200341106a1006200420072903003700002005200829030037000020062009290300370000200020032903103700000c010b200341086a20022000412041d0830410142003280208200328020c2001200241e0830410260b200341306a24000b85010020012003460440200020022001100b1a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4106360200200041f09e0436021020004100360208200041063602242000200041206a360218200020003602282000200041046a360220200041086a2004101e000b7701037f230041206b22022400200241086a2000280200220420002802042000280208220341fc8704101020024100360218200220022903083703102001200241106a10282003200320022802186a22014b044041a08104411c418c88041013000b2000200436020020002001360208200241206a24000b7401017f230041106b2202240002402000413f4d044020012000410274102a0c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210240c010b200041ffffffff034d04402000410274410272200110170c010b20014103102a2000200110170b200241106a24000b080020004101102a0ba10101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a41023602002000411c6a41023602002000412c6a4106360200200041e4940436021020004100360208200041063602242000200041206a360218200020003602282000200041046a360220200041086a4180ae04101e000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101145044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b5b01027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20012001417f73411f76104d200228020822030d0120011036000b1035000b2000200336020420002001360200200241106a24000ba70101017f230041306b2201240020014180800136020041f0b2042001100420014180800136022c200141f0b2043602282001200141286a102b20012d00000440200141003a000041e4860441c10020014194840441a88704102e000b20002001290102370001200041096a2001410a6a290100370000200041116a200141126a290100370000200041186a200141196a290000370000200020012d00013a0000200141306a24000b860101017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a41023602002005412c6a41023602002005413c6a4102360200200541c4950436022020054100360218200541033602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101e000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b1b002000418180014f044020004180800141b887041015000b20000b0e0020002001200241cc9b04106b0b5201017f230041206b220124002001410c6a4101360200200141146a410136020020014190a904360208200141003602002001410436021c200120003602182001200141186a360210200141808c04101e000b910101017f230041306b22022400200241146a41013602002002411c6a410136020020024190a9043602102002410036020820024103360224200220002d0000410274220041c0b2046a28020036022c2002200041d4b2046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a105e200241306a24000b1d00200045044020024100102a0f0b20024101102a20002001200210230b4601017f230041206b22002400200041146a41013602002000411c6a4100360200200041f88e0436021020004184ac0436021820004100360208200041086a41808f04101e000b5f01017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141b09004360218200141003602102001410636022c2001200141286a36022020012001410c6a360228200141106a41c09004101e000b890301077f230041106b220524002000027f0240027f02400240200204400240200141004e044020032802080d01200520012002104d2005280200210420052802040c050b200041086a41003602000c050b20032802042209450440200541086a20012002104d20052802082104200528020c0c040b200120026a41016b410020026b7122082001490d01200141e8b204280200220620086a22072006490d031a2003280200210a41ecb2042802002007490440200841ffff036a22032008490d032003411076220740002203417f46200341ffff0371200347720d032003411074220620074110746a22032006490d0341ecb20420033602002001200620086a22072006490d041a0b41e8b204200736020020012006450d031a2006200a2009100b210420010c030b20002001360204200041086a41003602000c030b41b0ab04411c4194ab041013000b20010b21072004044020002004360204200041086a200736020041000c020b20002001360204200041086a20023602000b41010b360200200541106a24000b5901037f230041106b2203240002402001450440200041003602040c010b200341086a20021039200328020821042000200328020c220536020420002004360200200520012002100b1a200020023602080b200341106a24000b3501017f230041106b22022400200241086a2001102c200228020c21012000200228020836020020002001360204200241106a24000bf80902047f017e230041b0016b22012400200141186a20004134100b1a024002400240024002400240024020012d001841016b0e0401020304000b200142808001370274200141f0b204360270200141f0006a220041021027200141a8016a200141f8006a280200360200200120012903703703a0012000200141a0016a2203418c8904103b2001200141186a4101723602a801200141263602a4012001419889043602a00120014190016a220220002003103c20002002103d0c040b200142808001370274200141f0b204360270200141f0006a220041021027200141a8016a200141f8006a280200360200200120012903703703a0012000200141a0016a220341e08904103b2001200141186a4101723602a801200141263602a401200141ec89043602a00120014190016a220220002003103c20002002103d0c030b200142808001370274200141f0b204360270200141f0006a220241021027200141e8006a2200200141f8006a2802003602002001200129037037036020014190016a2203200141e0006a1022200129039001210520014100360278200120053703704184ac04410020021023200241928a04411a10242001200129037037039001200141106a2003200128027810192002200128021020012802141025200141086a2001280260220320012802642000280200220041fc87041010200141003602a801200120012903083703a0012002200141a0016a10182000200020012802a8016a22004b0d03200141d8006a200036020020012003360260200120012903603703502001200141186a4104723602a801200141213602a401200141ac8a043602a00120014190016a2200200141d0006a200141a0016a103c200141f0006a2000103d0c020b200142808001370274200141f0b204360270200141f0006a220241021027200141a8016a2200200141f8006a2203280200360200200120012903703703a001200141a0016a220441ec8a04102120032000280200360200200120012903a0013703702001200141186a4104723602a801200141233602a401200141f88a043602a00120014190016a220020022004103c20022000103d0c010b200142808001370274200141f0b204360270200141f0006a220341011027200141a8016a2200200141f8006a280200360200200120012903703703a001200141a0016a41b88b04102120014198016a2000280200360200200120012903a00137039001200320014190016a103d0b200141a8016a200141f8006a2802003602002001200129037022053703a00120014180016a2802002100200128027c200141003602782001200537037002400240024002400240024020012d001841016b0e0401020304000b200141f0006a22024100102a200141186a410172200210180c040b200141f0006a22024101102a200141186a410172200210180c030b200141f0006a22024102102a200141186a410472200210182001413c6a280200200210170c020b200141f0006a22024103102a200141186a410472200210182001413c6a28020020021017200141c4006a280200200141c8006a280200200210340c010b200141f0006a22024104102a200141186a410472200210182001413c6a280200200210170b200120012903703703a0012001200141a0016a20012802781019200020012802002001280204100720012d00184103460440200141c4006a2802001a0b200141b0016a24000f0b41a08104411c418c88041013000bf80102037f017e230041d0006b22032400200341106a22052001102220032903102106200341003602282003200637032020022802002002280204200341206a2204102320042002280208411f102420032003290320370310200341086a20052003280228101920042003280208200328020c102520032001280200220520012802042001280208220241fc8704101020034100360248200320032903003703402004200341406b10182002200220032802486a22044b044041a08104411c418c88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000bf60102037f017e230041d0006b22032400200341106a22052001102220032903102106200341003602282003200637032020022802002002280204200341206a2204102320022802082004101820032003290320370310200341086a20052003280228101920042003280208200328020c102520032001280200220520012802042001280208220241fc8704101020034100360248200320032903003703402004200341406b10182002200220032802486a22044b044041a08104411c418c88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101920022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b4c01017f230041106b22022400200242808001370204200241f0b20436020020024100102a2002200141ff0171410647047f20024101102a20010541000b102a2000200228020810301041000b3501017f230041106b22002400200042808001370204200041f0b20436020020004101102a200010294101200028020810301041000ba20102057f017e230041306b2201240020014100360218200142808001370224200141f0b2043602204100200141206a2202101720012001290320370310200141086a200141106a220320012802281019200128020c2104200128020820012903102106200141003602282001200637032020002002101820012001290320370310200120032001280228101920042001280200200128020410081a200141306a24000b0d00200041f0b2042001100a000bd82b020f7f017e230041c0026b220024000240024002400240102f41ff017141054604402000418080013602a00141f0b204200041a0016a22011003200041d8006a20002802a00141f0b2044180800141d48604101420002000290358370370200041003602a001200041f0006a2001410410110d0220002802a00122074118762101200741107621032007410876210202400240024002400240024002400240200741ff0171220741076b0e020104000b2007411f460d0120074129460d05200741c800460d04200741e9004704402007418301460d03200741c40147200241ff017141e8004772200341ff017141de0147200141d4014772720d0a410721010c090b200241ff0171410847200341ff0171411947722001412647720d09410021010c080b200241ff017141c10047200341ff0171411b4772200141af0147720d08410121010c070b200241ff017141e00147200341ff01714181014772200141ef0047720d07410221010c060b200241ff017141b00147200341ff017141e40047722001411947720d06200041a0016a200041f0006a101b20002802a0010d06200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a4012105410321010c050b200241ff0171410247200341ff017141e7004772200141c00047720d05200041d0006a200041f0006a100e20002802500d0520002802542105410421010c040b200241ff017141cd0047200341ff017141ae0147720d04200141b101460d010c040b200241ff017141da0147200341ff017141ba0147722001410247720d03200041a0016a200041f0006a102b20002d00a0010d032000200041b4016a2902003703a0022000200041b9016a2900003700a502200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a401210520002f01a201210420002d00a101210b410621010c020b200041a0016a200041f0006a101b20002802a0010d02200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a4012105410521010c010b200041043a00a001200041a0016a1032000b200041e8006a200041a8026a290300370300200020002903a002370360200041003602a8022000428080013702a401200041f0b2043602a0014100200041a0016a22021017200020002903a0013703a002200041c8006a200041a0026a20002802a8011019200028024c2107200028024820002802a0022103200020002802a402220c3602a00120072003200210002102200041406b20002802a0012003200c41d4860410140240024002400240410c20022002410c4f1b0e0401000002000b200041ac016a4101360200200041b4016a4100360200200041e487043602a80120004184ac043602b001200041003602a001200041a0016a41ec8704101e000b20002802442103200020002802403602f801200020033602fc01200041a0016a200041f8016a102b20002d00a001450d01200041ac016a4101360200200041b4016a4100360200200041b88c043602a8010c030b200041ac016a4101360200200041b4016a4100360200200041d88c043602a8010c020b200041f8006a2203200041aa016a220229010037030020004180016a220a200041b2016a220c29010037030020004187016a220d200041b9016a220e290000370000200020002901a20137037020002d00a1012107027f024002400240027f02400240024002400240024002400240024002400240024002400240200141016b0e0707060001020304080b200041a0026a102d200041b8016a2203200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc0122010440200020002d00fb013a009301200020002f00f9013b00910120002000280280022204360298012000200136029401200020002d00f8013a009001200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200320004187016a290000370000200041c8016a4200370300200041d0016a4200370300200020073a00a001200020002903703700a101200041003602e001200042003703c00120002005ad42208642cbfdefe70e843703d801200041003602f0012000428080013702fc01200041f0b2043602f801200041a0016a200041f8016a22031018200020002903f8013703e801200041386a200041e8016a220220002802800210192000280238210b20002903e801210f20004100360298022000200f370390022000420037038002200042003703f80120004190026a20034110102420002000290390023703e801200041306a200220002802980210192000280230210a20002903e801210f20004100360280022000200f3703f8012003200041d8016a41041024200520031017200020002903f8013703e801200041286a20022000280280021019200028022c210c2000280228210d20002802e8012102200020002802ec01220e3602f8014100200b4200200a200d200c2002200310022103200041206a20002802f8012002200e41d486041014410c20032003410c4f1b2203410d710d0920002802242103200020002802203602f801200020033602fc01200041186a200041f8016a100d02400240024020002d00184101710d000240024020002d00190e020001020b200041086a200041f8016a100d20002d00084101710d014102210220002d0009220341024f0d0120030d030c140b200041106a200041f8016a100d20002d00104101710d0020002d00114101460d010b410021010c110b200041013602e80120004184026a41013602002000418c026a4101360200200041d4840436028002200041003602f8012000410536029402200020004190026a360288022000200041e8016a36029002200041f8016a41d88504101e000b20044104742102024003402002450d01200241106b21022001280200200141106a21012005470d000b410421020c110b200041a0016a20082006103820002802a401450d0520002802a8014111490d05410521020c100b410121020c100b200041a0026a102d200041b8016a200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a1016027f20002802fc0122034504404101210241010c010b200041f8016a2000280280022206101a20002802f80122042000280280022201490d092006410474210920002802fc01210802402006452001200446720d00200320096a210b200820014104746a2102200041a0016a410472210a200120046b41016a2104200321010340200020012802003602a001200a200141086a2802002001410c6a2802001038200241086a200041a8016a290300370200200220002903a0013702002004450d01200441016a2104200241106a2102200141106a2201200b470d000b0b024020060440200820096a210441002101410021020340200120086a22092802002005460d02200141106a2101200241016a2102200941106a2004470d000b0b4103210241010c010b200220064f0d0a200641047420016b41106b21020240200120036a2201200141106a22044d044003402002450d02200120042d00003a0000200441016a2104200141016a2101200241016b21020c000b000b200441016b2104200141016b210103402002450d01200120026a200220046a2d00003a0000200241016b21020c000b000b200041b8016a2202200041b8026a2204290300370300200041b0016a200041b0026a2208290300370300200041a8016a200041a8026a2209290300370300200020002903a0023703a001200041a0016a22012003200641016b101f200041bc016a2004290300370200200041b4016a2008290300370200200041ac016a2009290300370200200041c4016a2005360200200020002903a0023702a401200041043a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200220004187016a290000370000200020073a00a001200020002903703700a101200110404106210241000b2002103e000b200041a0026a102d200041b8016a200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc01220a450440410121040c0b0b200028028002210b200041f8016a200820061038200041a0016a20002802fc012000280280021038024020002802a401450d0020002802a8014111490d00410521040c0b0b41032104200b450d0a200b410474210c4100210141002102034020052001200a6a2203280200470440200241016a2102200141106a2201200c470d010c0c0b0b200341086a2802001a20032005360200200341046a20002903f8013702002003410c6a20004180026a280200360200200041b8016a2203200041b8026a2202290300370300200041b0016a200041b0026a2204290300370300200041a8016a200041a8026a220c290300370300200020002903a0023703a001200041a0016a2201200a200b101f200041bc016a2002290300370200200041b4016a2004290300370200200041ac016a200c290300370200200041d0016a2006360200200041cc016a2008360200200041c8016a2009360200200041c4016a2005360200200020002903a0023702a401200041033a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200320004187016a290000370000200020073a00a001200020002903703700a101200110404106210441000c0b0b200041b8016a2000290065370000200020063600af01200020083600ab01200020093600a701200020053600a301200020043b00a1012000200b3a00a001200020002903603700b301230041306b22012400200141286a200041a0016a220341186a290000370300200141206a200341106a290000370300200141186a200341086a290000370300200120032900003703102001200141106a101620012802002104200041a0026a220220012802084100200128020422031b36020820022003410420031b36020420022004410020031b360200200141306a240020002802a402210320002802a8022100230041106b22012400200142808001370204200141f0b20436020002402003044020014100102a20032000200110200c010b20014101102a200110290b0c110b230041d0006b220124002001102d200141c8006a200141186a290300370300200141406b200141106a290300370300200141386a200141086a29030037030020012001290300370330200141206a200141306a101620012802242100200141d0006a2400230041106b22012400200142808001370204200141f0b204360200230041106b2203240020014100102a200320004100473a000f20012003410f6a41011024200341106a24000c100b200041ac016a22032006360200200041a8016a22022008360200200020093602a401200020053602a00120004190016a200041a0016a2201101c200041b8016a2204200041b8026a2206290300370300200041b0016a200041b0026a22082903003703002002200041a8026a2202290300370300200020002903a0023703a0012001200028029401200028029801101f200041bc016a2006290300370200200041b4016a200829030037020020032002290300370200200041c4016a2005360200200020002903a0023702a401200041023a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200420004187016a290000370000200020073a00a001200020002903703700a101200110404106210241000c0c0b200041a0026a102d200041b8016a2202200041b8026a2201290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a1016027f20002802fc0122040440200041bc016a2001290300370200200041b4016a200041b0026a2205290300370200200041ac016a200041a8026a2206290300370200200020002903a0023702a401200041bc81043602a00120004100360298022000428080013702fc01200041f0b2043602f80141eee7a015200041f8016a22081017200041a0016a220341047220081018200020002903f80137039002200020004190026a20002802800210192000280200200028020410091a200041b9016a2001290300370000200041b1016a22012005290300370000200041a9016a22052006290300370000200020002903a0023700a101200041013a00a0012003103a2005200041f8006a290300370000200120004180016a290300370000200220004187016a290000370000200020073a00a001200020002903703700a1012003104041060c010b41010b21012004452001103e000b200041a0026a102d200041b8016a2201200041b8026a2203290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc0122040440410021010c050b20012003290300370300200041b0016a200041b0026a2205290300370300200041a8016a200041a8026a2206290300370300200020002903a0023703a001200041a0016a220241044100101f200041b9016a2003290300370000200041b1016a22032005290300370000200041a9016a22052006290300370000200020002903a0023700a101200041003a00a0012002103a2005200041f8006a290300370000200320004180016a290300370000200120004187016a290000370000200020073a00a001200020002903703700a10120021040410621010c040b20022003290300370100200c200a290300370100200e200d290000370000200020073a00a101200020002903703701a201200041003a00a001230041106b22012400200142808001370204200141f0b2043602000240200041a0016a22032d000045044020014100102a200341016a200110180c010b20014101102a200110290b0c0c0b200341b0b2046a2d000021010c050b41808004412141a484041013000b230041306b220124002001200636020420012002360200200141146a41033602002001411c6a41023602002001412c6a4106360200200141b8930436021020014100360208200141063602242001200141206a3602182001200141046a36022820012001360220200141086a41dc8804101e000b20044100472001103e000b41010b2004103e000b200020013a00e80120004184026a41013602002000418c026a4101360200200041d4840436028002200041003602f8012000410136029402200020004190026a360288022000200041e8016a36029002200041f8016a41c88504101e000b410120030d011a0b41010b2002103e000b103f000b20004184ac043602b001200041003602a001200041a0016a41808c04101e000b4100200128020810301041000b1800200128020041e5af044111200128020428020c1100000bdf0202047f027e230041e0006b220024000240102f41ff01712201410546044020004180800136023841f0b204200041386a22011003200041086a200028023841f0b2044180800141d48604101420002000290308370330200041003602380240200041306a2001410410110d002000280238419bddf6f405470d00200041386a200041306a102b20002d0038450d020b103f000b200020013a0038200041386a1032000b200041276a2201200041d1006a290000370000200041206a2202200041ca006a290100370300200041186a200041c2006a29010022043703002000200029013a220537031020002d00392103200041c1006a2004370000200041c9006a2002290300370000200041d0006a2001290000370000200020033a003820002005370039200041386a1040230041106b22002400200042808001370204200041f0b20436020020004100102a20004100102a4100200028020810301041000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41e08c04200241086a1046200241206a24000bee0301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1100000d040b200141086a2101200428020020042802042106200441086a2104200341186a2006110200450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1100000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a105d20032003290310370320200341086a2005200141046a105d20032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110200450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1100000d010b41000c010b41010b200341406b24000b0f00200028020020012002104841000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a200020032002104b2004280208200428020c104c200028020821030b200028020420036a20012002100b1a2003200220036a22014b044041808d04411c41e093041013000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10480c020b230041106b22042400200441086a200020034101104b2004280208200428020c104c200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41808d04411c41d093041013000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1045200241206a24000bdd0101027f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22052002490d0141082005200320032005491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200420032005200441106a103720042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41a08d04412141d48e041013000b1f00024020014181808080784704402001450d0120001036000b0f0b1035000bd00101037f02402001450440200221030c010b02402001200120026a41016b410020026b7122054d044041e8b204280200220220056a22042002490d0241ecb2042802002004490440200541ffff036a22022005490d022002411076220340002202417f46200241ffff0371200247720d022002411074220220034110746a22042002490d024100210341ecb2042004360200200220056a22042002490d030b41e8b2042004360200200221030c020b41b0ab04411c4194ab041013000b410021030b20002001360204200020033602000bd806020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e220641017441db96046a2f00003b0000200241026b2004200641e4006c6b41ffff037141017441db96046a2f00003b0000200041046b2100200e42ffc1d72f56200d210e0d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff037141017441db96046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a200241017441db96046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b210241002104200541047104404184ac04210420024184ac044184ac04105420026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a28020022012007200410570d01200220082006200128020c11000021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a2007200410570d02200341106a2001200920026b4101105820032802142202418080c400460d022003280210200520082006200a28020c1100000d0220022005200a10590d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a28020022012007200410570d01200220082006200128020c11000021000c010b41012100200341086a2001200920026b41011058200328020c2205418080c400460d00200328020820012802002202200141046a28020022012007200410570d00200220082006200128020c1100000d00200520022001105921000b200341406b240020000f0b41f09304411c41a499041013000b4190940441214180a9041013000b0300010b0e0020002802001a03400c000b000b0d0042f2e7eb9187bab2c1d1000b4a01017f230041106b22052400200220034904402003200220041031000b200541086a2003200220011053200528020c21012000200528020836020020002001360204200541106a24000b1400200020012002200341f8b00441909404106a0ba704010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d002001200010552206200020016a22082004417c716a200441037110556a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41809d041056200328020c21052003280208210820032003280200200328020422002000417c7141909e041056200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41f09304411c4198a0041013000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441f09304411c41c8a0041013000b41f09304411c41a8a0041013000b41f09304411c41b8a0041013000b41f09304411c4188a0041013000b20012002105521020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41f09304411c41f0a8041013000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41acac04412320041013000b39000240027f2002418080c40047044041012000200220012802101102000d011a0b20030d0141000b0f0b200020034100200128020c1100000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41f09304411c41b499041013000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110200450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110200450d000b200441016b0b2000490b4b01017f230041106b22052400200120034d0440200541086a4100200120021053200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000bea04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11000021000c020b41f09304411c41d8a1041013000b200b450440200128020020032004200128020428020c11000021000c010b2001410c6a2802002200200320046a2003105422024b0440200941086a2001200020026b4100105841012100200928020c2202418080c400460d0120092802082001280200220520032004200141046a280200220128020c1100000d01200220052001105921000c010b200128020020032004200128020428020c11000021000b200941106a240020000b140020002802002001200028020428020c1102000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044108470d0120012802000b2802002104410121030b20002004360204200020033602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1046200341206a24000bda08010b7f23004190016b22032400200341003b0184012003410a3602800120034281808080a00137037820032002360274200341003602702003200236026c200320013602682003200236026420034100360260200028020421062000280200210720002802082108200341fc006a2109027f0340024002400240024020032d008501450440200341d8006a2003280268220c200328026c2003280270200328027410600240024020032802582201450d00200328025c2100034002400240024002400240027f0240024002400240200328027822020440200220096a41016b2d00002104200041084f04402001200141036a417c712202460440200041086b210a410021020c040b200341d0006a200220016b22022000200020024b1b22022001200041c89a04105a200341c8006a200420032802502003280254106120032802484101470d02200328024c21010c050b200341306a20042001200010612003280234210120032802300c050b41909404412141a8a7041013000b2002200041086b220a4b0d010b200441818284086c210b0340200241046a22052002490d04200120026a280200200b73220d417f73200d41818284086b71200120056a280200200b732205417f73200541818284086b7172418081828478710d012002200241086a22024b0d072002200a4d0d000b0b200341406b20012000200241f89a041052200341386a2004200328024020032802441061410020032802384101470d011a2002200328023c6a220120024f0d0041f09304411c41889b041013000b41010b4101460440200141016a2200450d022000200328027022006a22022000490d0320032002360270200220032802782200490d05200341286a2003280268200328026c200220006b2002106020032802282202450d05200328022c2100200341206a20032802782009410441d8a704105a20022000200328022020032802241062450d05200341186a200328026020032802702200200c106320032000360260200328021c2102200328021821000c080b200320032802743602700c060b41f09304411c41d89a041013000b41f09304411c41b8a7041013000b41f09304411c41c8a7041013000b41f09304411c41e89a041013000b200341106a2003280268200328026c20032802702003280274106020032802142100200328021022010d000b0b4100210020032d0085010d00200341013a008501024020032d008401044020032802642101200328026021040c010b2003280264220120032802602204490d0420012004460d010b200341086a2004200120032802681063200328020c2102200328020821000b20000d010b41000c050b20082d0000450d01200741d495044104200628020c110000450d010c020b41909404412141e8a1041013000b2003410a36028c0120082002047f200320002002200241016b41a09e0410522003418c016a41012003280200200328020410620541000b3a0000200720002002200628020c110000450d010b0b41010b20034190016a24000b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011053200528020c2107200528020821060b2000200736020420002006360200200541106a24000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b4d01017f2001200346047f027f034041002001450d011a200141016b210120022d0000210320002d00002104200041016a2100200241016a210220032004460d000b200420036b0b0541010b450b1400200020012002200341fca20441909404106a0b5801027f230041206b22022400200128020421032001280200200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1046200241206a24000b0b0020002802002001105b0b1800200128020041acb2044105200128020428020c1100000b990301037f230041406a22022400200028020021034101210002402001280200220441a09504410c200141046a280200220128020c1100000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241b0950436023020024100360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a105e450d010c020b20032802002200200328020428020c11090042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241b09504360230200241003602282002410a3602142002200241106a36023820022002410c6a36021020042001200241286a105e0d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4106360200200241346a4106360200200241f894043602182002410036021020022000410c6a3602382002200041086a3602302002410336022c200220003602282002200241286a36022020042001200241106a105e21000b200241406b240020000b1400200020012002200341ccab0441e0ab04106a0b1400200020012002200341f8b0044190b104106a0b2800200120024d04402000200220016b3602042000200120036a3602000f0b2005412120041013000b7301017f230041306b220424002004200136020420042000360200200441146a41023602002004411c6a41023602002004412c6a41063602002004200336021020044100360208200441063602242004200441206a3602182004200441046a36022820042004360220200441086a2002101e000b0b9d320700418080040bf50c617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6d706163742e727300210001006a000000420000002600000000000000617474656d707420746f206164642077697468206f766572666c6f77ee33a8024661696c656420746f206765742076616c756520696e204d617070696e673a20c0000100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e7273e8000100680000009c000000250000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273000000600101006d0000009d00000011000000600101006d0000009d00000030000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b000000010000000100000001000000100901007f000000c30800001100000043726f73732d636f6e74726163742063616c6c206661696c656420776974682034020100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f63616c6c2f63616c6c5f6275696c6465722e72730000005c0201006900000078000000110000005c020100690000007b000000110000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300e80201006b000000e40000001400000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000600101006d0000006b0100000e000000600101006d0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72c80301001c000000600101006d000000ed00000017000000601601006e000000c100000037000000601601006e000000c4000000090000002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f616464726573735f626f6f6b2f74797065732e727300001c0401003e000000330000001900000041646472657373426f6f6b3a3a41646472657373426f6f6b437265617465640004160100000000006c04010041646472657373426f6f6b3a3a41646472657373426f6f6b437265617465643a3a6f776e657241646472657373426f6f6b3a3a41646472657373426f6f6b52656d6f7665640000000416010000000000be04010041646472657373426f6f6b3a3a41646472657373426f6f6b52656d6f7665643a3a6f776e657241646472657373426f6f6b3a3a4964656e74697479416464656441646472657373426f6f6b3a3a4964656e7469747941646465643a3a6f776e657241646472657373426f6f6b3a3a4e69636b6e616d655570646174656400000004160100000000004d05010041646472657373426f6f6b3a3a4e69636b6e616d65557064617465643a3a6f776e657241646472657373426f6f6b3a3a4964656e7469747952656d6f7665640004160100000000009b0501002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f616464726573735f626f6f6b2f6c69622e7273c40501003c0000002e00000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900100601002700000073746f7261676520656e7472792077617320656d7074790040060100170000000b00000004000000040000000c0000000d0000000e0041808d040ba418617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b00000000000000010000000f0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300d40601007f0000008a0100001c0000006361706163697479206f766572666c6f770000006407010011000000d40601007f00000006020000050000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564000d08010015000000220801000d000000900701007d00000095010000090000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000830801007b00000064020000200000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273292073686f756c64206265203c206c656e202869732072656d6f76616c20696e646578202869732000a5090100120000008f09010016000000310a010001000000100901007f000000300700000d000000100901007f0000009e07000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320320a010020000000520a0100120000003a0000000416010000000000740a010001000000740a0100010000000b00000000000000010000001000000070616e69636b65642061742027272c20ac0a010001000000ad0a0100030000003a2000000416010000000000c00a010002000000202020202c0a280a282f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000230c01007e0000005d0500000d000000230c01007e000000ed050000380000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e727300c40c0100830000004e0000002f000000c40c0100830000005a0000001f000000c40c0100830000006300000009000000c40c0100830000006800000027000000c40c010083000000680000003e00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820980d010012000000aa0d01002200000072616e676520656e6420696e64657820dc0d010010000000aa0d0100220000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273000000fc0d010081000000c4050000250000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e7273900e010080000000fe0300002f000000900e010080000000de0800001e000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028300f010015000000450f01002b000000310a0100010000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273880f0100800000004700000015000000880f0100800000005400000011000000880f0100800000005a00000009000000880f0100800000006400000011000000880f010080000000660000000d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e727300581001007f0000009100000011000000581001007f0000004f0200002d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273000000f810010081000000ca000000130000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727300008c11010086000000e50000001500000001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041e6a5040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041a4a6040bfd042f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e727300002413010082000000a1010000470000002413010082000000b4010000200000002413010082000000b4010000110000002413010082000000b8010000260000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273e8130100880000009500000001000000dd0a01007e000000cd0100000500000004160100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e72730010150100830000002f010000180041b0ab040b51617474656d707420746f206164642077697468206f766572666c6f77f617010082000000900100004f00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f77004190ac040bf504617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290a04160100000000004f160100010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e72730000601601006e0000005a0000001c000000601601006e0000005a00000009000000601601006e0000005a00000031000000601601006e0000006500000009000000601601006e000000830000001a000000601601006e0000008d0000002100000045636473615265636f766572794661696c656443616c6c52756e74696d654661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f6465436f756c644e6f7452656164496e7075742f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e7273f6170100820000008201000047004190b1040bd701617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6465632e7273000000b118010068000000770000000e0000004572726f7201020304050607080a0b0c09000000190000001c000000160000001400000019000000f7140100db140100c5140100b1140100981401","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"address_book","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[{"label":"identity_contract","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":["Constructor","Instantiate with the address of \`Identity\` contract."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":20}},"events":[{"args":[{"docs":[" The owner of the newly created address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookCreated"},{"args":[{"docs":[" The owner of the removed address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookRemoved"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity added to the address book."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityAdded"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity that received a new nickname."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The new nickname."],"indexed":false,"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"docs":[],"label":"NicknameUpdated"},{"args":[{"docs":[],"indexed":false,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[" Returns the address of the identity contract."],"label":"identity_contract","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x69081926"},{"args":[],"default":false,"docs":[" Creates an address book for the caller."],"label":"create_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x07411baf"},{"args":[],"default":false,"docs":[" Removes the address book of the caller."],"label":"remove_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x1fe0816f"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Adds an identity to the user's address book."],"label":"add_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x83b06419"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Removes an identity from the user's address book."],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x08026740"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Update nickname of an identity."],"label":"update_nickname","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x484daeb1"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the identities stored in the address book of a user."],"label":"identities_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0x29daba02"},{"args":[],"default":false,"docs":[" Returns whether the user has created an address book or not"],"label":"has_address_book","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xc468ded4"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x02a833ee","ty":0}},"name":"identities"}],"name":"AddressBookInfo"}},"root_key":"0x02a833ee"}},"name":"address_book_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"identity_contract"}],"name":"AddressBook"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":4}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":4}],"path":["Option"]}},{"id":4,"type":{"def":{"primitive":"str"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":7}}}},{"id":7,"type":{"def":{"primitive":"u8"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":10}],"path":["Result"]}},{"id":9,"type":{"def":{"tuple":[]}}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"fields":[{"type":5}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":5},{"name":"E","type":10}],"path":["Result"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":13}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":13},{"name":"E","type":10}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":14}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AddressBookAlreadyCreated"},{"index":1,"name":"AddressBookDoesntExist"},{"index":2,"name":"IdentityDoesntExist"},{"index":3,"name":"IdentityNotAdded"},{"index":4,"name":"IdentityAlreadyAdded"},{"index":5,"name":"NickNameTooLong"}]}},"path":["address_book","Error"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":10}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u64"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file diff --git a/types/contract-info/identity.ts b/types/contract-info/identity.ts index 035423c..035a186 100644 --- a/types/contract-info/identity.ts +++ b/types/contract-info/identity.ts @@ -1,2 +1,2 @@ export const ContractAbi = `{"source":{"hash":"0x37a6b9845f34663b4b59b2b47c63e6caa530ed5025380727a05b157306875332","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"identity","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x9bae9d5e"},{"args":[{"label":"chains","type":{"displayName":["Vec"],"type":13}},{"label":"chain_ids","type":{"displayName":["Vec"],"type":9}}],"default":false,"docs":[],"label":"init_with_chains","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x0935da88"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":37},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":40},"hash":{"displayName":["Hash"],"type":38},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":39}},"events":[{"args":[{"docs":[" Owner of the created identity."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The \`IdentityNo\` associated with the created identity."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":["Events"],"label":"IdentityCreated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which a new address has been added."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The newly added address."],"indexed":false,"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressAdded"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been updated."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The updated address value."],"indexed":false,"label":"updated_address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressUpdated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been removed."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"AddressRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got removed."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"},{"args":[{"docs":[" The \`ChainId\` that is associated with the newly added chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The rpc url of the chain that got added."],"indexed":false,"label":"rpc_urls","type":{"displayName":["Vec"],"type":7}},{"docs":[" The address type used on the chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainAdded"},{"args":[{"docs":[" The \`ChainId\` that is associated with the updated chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The rpc url of the updated chain."],"indexed":false,"label":"rpc_urls","type":{"displayName":["Vec"],"type":7}},{"docs":[" The address type used on the updated chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainUpdated"},{"args":[{"docs":[" The \`ChainId\` that is associated with the chain that got"," removed."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"ChainRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that set a recovery account."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The newly set recovery account."],"indexed":false,"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"RecoveryAccountSet"}],"lang_error":{"displayName":["ink","LangError"],"type":12},"messages":[{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the \`IdentityInfo\` of an identity that is associated with"," the provided \`IdentityNo\`."],"label":"identity","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xcbfefbec"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"owner_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x99720c1e"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"identity_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":21},"selector":"0x713ca232"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the chain name that is associated with the specified \`ChainId\`."],"label":"chain_info_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":23},"selector":"0x59d847e9"},{"args":[{"label":"receiver","type":{"displayName":["IdentityNo"],"type":2}},{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the destination address of a transaction that needs to be"," routed to the specified identity on the specified chain."],"label":"transaction_destination","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":25},"selector":"0x525505e4"},{"args":[],"default":false,"docs":[" A list of all the available chains each associated with a \`ChainId\`."],"label":"available_chains","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0xa5cf243e"},{"args":[],"default":false,"docs":[" Creates an identity and returns the \`IdentityNo\`.",""," A user can only create one identity."],"label":"create_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xfb893664"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Adds an address for a given chain"],"label":"add_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x71cc798d"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Updates the address of the given chain"],"label":"update_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x892f75e4"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Removes the address by chain"],"label":"remove_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xdca7a60f"},{"args":[],"default":false,"docs":[" Removes an identity"],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x08026740"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"info","type":{"displayName":["ChainInfo"],"type":14}}],"default":false,"docs":[],"label":"add_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x1cd09676"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"new_rpc_url","type":{"displayName":["Option"],"type":35}},{"label":"new_address_type","type":{"displayName":["Option"],"type":36}}],"default":false,"docs":[],"label":"update_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x7d5eea00"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[],"label":"remove_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x5b23980f"},{"args":[{"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Sets the recovery account that will be able to change the ownership"," of the identity.",""," Only callable by the identity owner."],"label":"set_recovery_account","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xd3b93403"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Transfers the ownership of an identity to another account.",""," Only callable by the identity owner or any account that the identity"," owner added as a proxy."],"label":"transfer_ownership","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x107e33ea"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d5e603b","ty":0}},"name":"addresses"}],"name":"IdentityInfo"}},"root_key":"0x7d5e603b"}},"name":"number_to_identity"},{"layout":{"root":{"layout":{"leaf":{"key":"0xca45e900","ty":5}},"root_key":"0xca45e900"}},"name":"owner_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x7cd66cb1","ty":2}},"root_key":"0x7cd66cb1"}},"name":"identity_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x3373bd6d","ty":5}},"root_key":"0x3373bd6d"}},"name":"recovery_account_of"},{"layout":{"leaf":{"key":"0x00000000","ty":2}},"name":"latest_identity_no"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x793e0339","ty":7}},"name":"rpc_urls"},{"layout":{"enum":{"dispatchKey":"0x793e0339","name":"AccountType","variants":{"0":{"fields":[],"name":"AccountId32"},"1":{"fields":[],"name":"AccountKey20"}}}},"name":"account_type"}],"name":"ChainInfo"}},"root_key":"0x793e0339"}},"name":"chain_info_of"},{"layout":{"leaf":{"key":"0x00000000","ty":9}},"name":"chain_ids"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"admin"}],"name":"Identity"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"u8"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":4}}}},{"id":7,"type":{"def":{"sequence":{"type":8}}}},{"id":8,"type":{"def":{"primitive":"str"}}},{"id":9,"type":{"def":{"sequence":{"type":2}}}},{"id":10,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":12}],"path":["Result"]}},{"id":11,"type":{"def":{"tuple":[]}}},{"id":12,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":13,"type":{"def":{"sequence":{"type":14}}}},{"id":14,"type":{"def":{"composite":{"fields":[{"name":"rpc_urls","type":7,"typeName":"Vec"},{"name":"account_type","type":15,"typeName":"AccountType"}]}},"path":["common","types","ChainInfo"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AccountId32"},{"index":1,"name":"AccountKey20"}]}},"path":["common","types","AccountType"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":12}],"path":["Result"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":18}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":18}],"path":["Option"]}},{"id":18,"type":{"def":{"composite":{"fields":[{"name":"addresses","type":0,"typeName":"Vec<(ChainId, EncryptedAddress)>"}]}},"path":["identity","types","IdentityInfo"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":12}],"path":["Result"]}},{"id":20,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":5}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":5}],"path":["Option"]}},{"id":21,"type":{"def":{"variant":{"variants":[{"fields":[{"type":22}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":22},{"name":"E","type":12}],"path":["Result"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":2}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":2}],"path":["Option"]}},{"id":23,"type":{"def":{"variant":{"variants":[{"fields":[{"type":24}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":24},{"name":"E","type":12}],"path":["Result"]}},{"id":24,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":14}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":14}],"path":["Option"]}},{"id":25,"type":{"def":{"variant":{"variants":[{"fields":[{"type":26}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":26},{"name":"E","type":12}],"path":["Result"]}},{"id":26,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":27}],"path":["Result"]}},{"id":27,"type":{"def":{"variant":{"variants":[{"index":0,"name":"NotAllowed"},{"index":1,"name":"IdentityDoesntExist"},{"index":2,"name":"AddressAlreadyAdded"},{"index":3,"name":"InvalidChain"},{"index":4,"name":"AddressSizeExceeded"},{"index":5,"name":"ChainNameTooLong"},{"index":6,"name":"ChainRpcUrlTooLong"},{"index":7,"name":"AlreadyIdentityOwner"}]}},"path":["identity","Error"]}},{"id":28,"type":{"def":{"variant":{"variants":[{"fields":[{"type":29}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":29},{"name":"E","type":12}],"path":["Result"]}},{"id":29,"type":{"def":{"sequence":{"type":30}}}},{"id":30,"type":{"def":{"tuple":[2,14]}}},{"id":31,"type":{"def":{"variant":{"variants":[{"fields":[{"type":32}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":32},{"name":"E","type":12}],"path":["Result"]}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":27}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"fields":[{"type":34}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":34},{"name":"E","type":12}],"path":["Result"]}},{"id":34,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":27}],"path":["Result"]}},{"id":35,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":8}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":8}],"path":["Option"]}},{"id":36,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":15}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":15}],"path":["Option"]}},{"id":37,"type":{"def":{"primitive":"u128"}}},{"id":38,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":39,"type":{"def":{"primitive":"u64"}}},{"id":40,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; -export const ContractFile = `{"source":{"hash":"0x8c146eb955ae4a5bebe3b61558026219e4856594743c8ebcafa0499e22a58bb4","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","wasm":"0x0061736d01000000014e0d60027f7f0060037f7f7f017f60037f7f7f0060027f7f017f60017f0060047f7f7f7f0060057f7f7f7f7f0060047f7f7f7f017f60000060017f017f60017f017e6000017f60067f7f7f7f7f7f0002dd010b057365616c310b6765745f73746f726167650007057365616c301176616c75655f7472616e736665727265640000057365616c3005696e7075740000057365616c300663616c6c65720000057365616c300d64656275675f6d6573736167650003057365616c300f686173685f626c616b65325f3235360002057365616c300d6465706f7369745f6576656e740005057365616c320b7365745f73746f726167650007057365616c310d636c6561725f73746f726167650003057365616c300b7365616c5f72657475726e000203656e76066d656d6f72790201021003930191010101000000010601050206020000000200000300000000000004000200000002020402060400040000000204060b020000020500040804000000000400040004000402090204030002020000000502020000090000040200000202020808000204000008000203030803010102030305020304030a0605030306070507060303020101060507050303030305050c020505040501700110100608017f01418080040b0711020463616c6c006d066465706c6f790072091b010041010b0f1c89018801507b94017d910192017c75777893017e0ab4880291012b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001100e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a4104100f450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a4102100f0d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220141808004492103200141027621010b2000200136020420002003360200200241206a24000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110112201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4801027f230041106b220224002002410036020c024020012002410c6a41041011450440200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6601027f230041106b2203240020002f01042104200041003a0004027f20044101710440200120044108763a00002000280200200341086a200120024101418c810410102003280208200328020c10110c010b20002802002001200210110b200341106a24000b4a01017f230041106b2205240020022003490440200320022004104e000b200541086a2003200220011012200528020c21012000200528020836020020002001360204200541106a24000b6201047f230041106b22032400200028020422042002492205450440200341086a4100200220002802002206109601200120022003280208200328020c41bcb504102d2003200220042006109601200020032903003702000b200341106a240020050b1500200020012002200341fcae04418080041097010b5001017f230041206b220324002003410c6a4101360200200341146a4100360200200341b4af04360210200341003602002003200136021c200320003602182003200341186a36020820032002101a000b4b01017f230041106b22052400200120034d0440200541086a4100200120021012200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000b0f00200020012002419c9f041099010bb00101067f230041206b22022400024002402001280204220320012802082205470440200241086a410472210403402001200341046a2206360204200420032802002203101720022d001822074102470d02200622032005470d000b0b200041023a00100c010b200020022f00193b001120002004290200370204200041136a2002411b6a2d00003a00002000410c6a200441086a280200360200200020073a0010200020033602000b200241206a24000bfc0301067f230041e0006b220224002002410036023820024280800137024c20024184b60436024841b986f8c907200241c8006a2205101820012005101820022002290348370330200241106a200241306a200228025010192002280214210320022802102002280230210120022002280234220736024820032001200510002103200241086a20022802482001200741a4870410140240024002400240410c20032003410c4f1b0e0401000002000b200241d4006a4101360200200241dc006a4100360200200241b48804360250200241b4af0436025820024100360248200241c8006a41bc8804101a000b200228020821012002200228020c36024420022001360240200241c8006a200241406b101b20022d0054220141024704402002411e6a200241d7006a2d00003a000020022002290049370320200220022f00553b011c2002200241d0006a28000036002720022d004821040c020b200241003a0020200241d4006a4101360200200241dc006a410136020020024190820436025020024100360248200241013602342002200241306a3602582002200241206a360230200241c8006a41808304101a000b410221010b200020043a000020002002290320370001200020013a000c200020022f011c3b000d200041086a20022800273600002000410f6a2002411e6a2d00003a0000200241e0006a24000b2601017f230041106b220224002002200036020c20012002410c6a41041034200241106a24000b4501017f2002200128020422034b044041dcaf04412341d0b1041013000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000be10201017f230041206b22022400200241013a00182002200136021420022000360210200241c0980436020c200241b4af04360208230041406a220124002001200241086a36020c2001410636022420012001410c6a36022041002100410421020240024002400240024003402000200020024180b0046a2802006a22004b0d01200241086a22024114470d000b2001200041104f047f200020006a22024100200020024d1b0541000b105a20014100360218200120012903003703102001410136023c2001410236023420014180b004360230200141003602282001200141206a360238200141106a200141286a10730d014184b6052d00004504404185b6052d00004101710d050b410c20012802142001280218100422002000410c4f1b4109470d020c030b41f09004411c41a0ac041013000b41c094044133200141286a41b4910441f095041036000b4184b60541013a00000b4185b60541013a00000b000bac0202037f017e230041e0006b22022400200241086a2001100c02400240024020022802080d00200241306a2001280204410c6e2204200228020c2203200320044b1b10540240200304400340200241d0006a2001105b20022802542204450d02200220022802583602482002200436024420022002280250360240200241306a200241406b1055200341016b22030d000b0b20022802342203450d01200228023021042002200228023836022820022003360224200220043602202001105c41ff017122014102460d02200241186a200241286a2802002203360200200220022903202205370310200041086a200336020020002005370200200020013a000c0c030b200241306a10450b200041023a000c0c010b200041023a000c200241206a10450b200241e0006a24000bb80401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b4101210020012802002203418fb30441062001280204220528020c22041101000d0c024020012d00184104714504402003418c9904410120041101000d0e200341ccb50441052004110100450d010c0e0b2003418a9904410220041101000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241ccb5044105108c010d0d2002418899044102108c010d0d0b200341e197044101200411010021000c0c0b20012802004182b304410d200128020428020c11010021000c0b0b200128020041f4b204410e200128020428020c11010021000c0a0b200128020041e9b204410b200128020428020c11010021000c090b200128020041cfb204411a200128020428020c11010021000c080b200128020041c1b204410e200128020428020c11010021000c070b200128020041b1b2044110200128020428020c11010021000c060b200128020041a5b204410c200128020428020c11010021000c050b2001280200419ab204410b200128020428020c11010021000c040b20012802004193b2044107200128020428020c11010021000c030b20012802004184b204410f200128020428020c11010021000c020b200128020041f3b1044111200128020428020c11010021000c010b200128020041e0b1044113200128020428020c11010021000b200241106a240020000be00301067f230041f0006b220224002002413c6a200141186a290000370200200241346a200141106a2900003702002002412c6a200141086a290000370200200241e88104360220200220012900003702242002410036025020024280800137025c20024184b60436025841b1d9d9e607200241d8006a22051018200241206a4104722005101e20022002290358370348200241186a200241c8006a20022802601019200228021c21032002280218200228024821012002200228024c220736025820032001200510002103200241106a20022802582001200741a48704101402402000027f024002400240410c20032003410c4f1b0e0402000001000b200241e4006a4101360200200241ec006a4100360200200241b48804360260200241b4af0436026820024100360258200241d8006a41bc8804101a000b41000c010b20022802142101200220022802103602582002200136025c200241086a200241d8006a100e20022802080d0141012104200228020c0b36020420002004360200200241f0006a24000f0b200241003a0057200241e4006a4101360200200241ec006a4101360200200241908204360260200241003602582002410136024c2002200241c8006a3602682002200241d7006a360248200241d8006a41808304101a000b0a0020012000412010340b9f0401067f230041f0006b220224002002410036022820024280800137025c20024184b60436025841bbc0f9ea07200241d8006a2205101820012005101820022002290358370320200241186a200241206a20022802601019200228021c210320022802182002280220210120022002280224220736025820032001200510002103200241106a20022802582001200741a487041014024002400240410c20032003410c4f1b0e0400020201020b200228021421012002200228021036023020022001360234200241086a200241306a100c024020022802080d00200241386a20022802344104762203200228020c2201200120034b1b10200240200104400340200241d8006a200241306a102120022802602203450d02200220022802643602542002200336025020022002290358370348200241386a200241c8006a1022200141016b22010d000b0b200228023c2204450d0120022802402101200228023821030c020b200241386a10230b200241003a0038200241e4006a4101360200200241ec006a4101360200200241908204360260200241003602582002410136024c2002200241c8006a3602682002200241386a360248200241d8006a41808304101a000b200020013602082000200436020420002003360200200241f0006a24000f0b200241e4006a4101360200200241ec006a4100360200200241b48804360260200241b4af0436026820024100360258200241d8006a41bc8804101a000b7801037f230041106b220224000240024002402001450440410421030c010b200241086a2001104a200228020c2203450d01200228020822044100480d01200220042003103b20022802002203450d020b200041003602082000200336020420002001360200200241106a24000f0b103f000b20041040000b7401027f230041206b22022400200241086a2001100e02402002280208450440200228020c2103200241106a200110332002280214044020002003360200200020022903103702042000410c6a200241186a2802003602000c020b200041003602080c010b200041003602080b200241206a24000b6501027f200028020822022000280200460440200020021056200028020821020b200028020420024104746a22032001290200370200200341086a200141086a290200370200200241016a220145044041a08104411c418097041013000b200020013602080b11002000280200200041046a28020010480b0c0041e481042000200110250ba80102037f017e230041306b220324002003410036021820034280800137022420034184b6043602202000200341206a2204105120012004101820032003290320370310200341086a200341106a220520032802281019200328020c2100200328020820032903102106200341003602282003200637032020022004101e20032003290320370310200320052003280228101920002003280200200328020410071a200341306a24000bfb0102047f017e230041e0006b22022400200241346a200041186a2900003702002002412c6a200041106a290000370200200241246a200041086a290000370200200241e881043602182002200029000037021c2002410036024820024280800137025420024184b60436025041b1d9d9e607200241d0006a22031018200241186a4104722003101e20022002290350370340200241106a200241406b22042002280258101920022802142100200228021020022903402106200241003602582002200637035020012003101820022002290350370340200241086a20042002280258101920002002280208200228020c10071a200241e0006a24000bac0102047f017e230041306b220224002002410036021820024280800137022420024184b60436022041b986f8c907200241206a2203101820002003101820022002290320370310200241086a200241106a220420022802281019200228020c2100200228020820022903102106200241003602282002200637032020012003102820022002290320370310200220042002280228101920002002280200200228020410071a200241306a24000b1f00200041046a280200200041086a28020020011052200120002d000c10310bae0102047f017e230041306b220324002003410036021820034280800137022420034184b60436022041bbc0f9ea07200341206a2204101820002004101820032003290320370310200341086a200341106a220520032802281019200328020c21002003280208200329031021072003410036022820032007370320200120022004102a20032003290320370310200320052003280228101920002003280200200328020410071a200341306a24000b430020012002102f20010440200020014104746a21010340200028020020021018200041086a2802002000410c6a28020020021053200041106a22002001470d000b0b0bb20101017f230041d0006b22012400200141246a200041186a2900003702002001411c6a200041106a290000370200200141146a200041086a290000370200200141e881043602082001200029000037020c2001410036023820014280800137024420014184b60436024041b1d9d9e607200141406b22001018200141086a4104722000101e200120012903403703302001200141306a200128024810192001280200200128020410081a200141d0006a24000bcf0101077f230041306b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341286a22074200370300200341206a22084200370300200341186a220942003703002003420037031020012002200341106a1005200420072903003700002005200829030037000020062009290300370000200020032903103700000c010b200341086a2002200041204180840410142003280208200328020c2001200241908404102d0b200341306a24000b85010020012003460440200020022001100a1a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4105360200200041a0a20436021020004100360208200041053602242000200041206a360218200020003602282000200041046a360220200041086a2004101a000b7701047f230041206b22012400200141086a2000280200220320002802042000280208220241cc8804101020014100360218200120012903083703104102200141106a102f2002200220012802186a22044b044041a08104411c41dc88041013000b2000200336020020002004360208200141206a24000b7401017f230041106b2202240002402000413f4d04402001200041027410310c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210340c010b200041ffffffff034d04402000410274410272200110180c010b2001410310312000200110180b200241106a24000b08002000410110310b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b2002200341b0b104106f000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101145044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b7e01037f230041106b22022400200241086a2001100c024020022802084504400240200228020c220320012802044b0d0020022003105d20022802002104200120022802042201200310110d002000200336020820002001360204200020043602000c020b200041003602040c010b200041003602040b200241106a24000b7a01047f230041106b2203240002402000280208220520026a220420054f04402004200028020422064b0d01200341086a2005200420002802001095012003280208200328020c2001200241a0b104102d20002004360208200341106a24000f0b41c0af04411c4180b1041013000b200420064190b1041015000ba70101017f230041306b220124002001418080013602004184b6042001100320014180800136022c20014184b6043602282001200141286a103220012d00000440200141003a000041b4870441c100200141d4840441f887041036000b20002001290102370001200041096a2001410a6a290100370000200041116a200141126a290100370000200041186a200141196a290000370000200020012d00013a0000200141306a24000b860101017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a41023602002005412c6a41023602002005413c6a4102360200200541f4980436022020054100360218200541033602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101a000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b4c01037f230041106b22032400200341086a200241001058200328020821042000200328020c220536020420002004360200200520012002410274100a1a20002002360208200341106a24000b2000230041106b2201240020000440200141086a200010430b200141106a24000b0b002000200141141098010b3901017f230041106b22032400200341086a2001200241001057200328020c21012000200328020836020020002001360204200341106a24000b890301077f230041106b220524002000027f0240027f02400240200204400240200141004e044020032802080d01200520012002107a2005280200210420052802040c050b200041086a41003602000c050b20032802042209450440200541086a20012002107a20052802082104200528020c0c040b200120026a41016b410020026b7122082001490d01200141fcb504280200220620086a22072006490d031a2003280200210a4180b6042802002007490440200841ffff036a22032008490d032003411076220740002203417f46200341ffff0371200347720d032003411074220620074110746a22032006490d034180b60420033602002001200620086a22072006490d041a0b41fcb504200736020020012006450d031a2006200a2009100a210420010c030b20002001360204200041086a41003602000c030b41e0ae04411c41c4ae041013000b20010b21072004044020002004360204200041086a200736020041000c020b20002001360204200041086a20023602000b41010b360200200541106a24000b1f00024020014181808080784704402001450d0120001040000b0f0b103f000b140020002d00104102470440200041046a10450b0b4601017f230041206b22002400200041146a41013602002000411c6a4100360200200041e89204360210200041b4af0436021820004100360208200041086a41f09204101a000b5f01017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141a09404360218200141003602102001410536022c2001200141286a36022020012001410c6a360228200141106a41b09404101a000b6401017f230041306b22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a101d20002002290308370300200241306a24000b910101017f230041d0006b22022400200241086a41e481042001106920022d00084102460440200220022d00093a002f2002413c6a4101360200200241c4006a4101360200200241908204360238200241003602302002410136024c2002200241c8006a36024020022002412f6a360248200241306a41808304101a000b2000200241086a4121100a1a200241d0006a24000b0b002000200141041098010b25002001044020014104742101034020001045200041106a2100200141106b22010d000b0b0b2701017f230041106b22012400200028020022000440200141086a200010460b200141106a24000b0b0020002001410c1098010b2101017f200041046a2201280200200028020810442000280200200128020010480b2000230041106b2201240020000440200141086a2000104a0b200141106a24000b110020002d000c4102470440200010450b0b0b002000200141101098010b0e002000280200200028020c10480b5201017e0240200241fcffffff0720016e4b0440410021010c010b2001ad2002ad7e22034220885004402003a72102410421010c010b41a08404412141c484041013000b20002001360204200020023602000b1b002000418180014f0440200041808001418888041015000b20000b0f0020002001200241fc9e041099010b5201017f230041206b220124002001410c6a4101360200200141146a4101360200200141c0ac04360208200141003602002001410436021c200120003602182001200141186a360210200141e48e04101a000b920101017f230041306b22022400200241146a41013602002002411c6a4101360200200241c0ac043602102002410036020820024103360224200220002d0000410274220041d4b5046a28020036022c2002200041e8b5046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a108b01200241306a24000b0b002000280200200110180b4101017f20012002102f200104402001410c6c2103200041086a21010340200141046b2802002001280200200210532001410c6a21012003410c6b22030d000b0b0b100020012002102f20022000200110340b7801037f230041106b220224000240024002402001450440410421030c010b200241086a20011046200228020c2203450d01200228020822044100480d01200220042003103b20022802002203450d020b200041003602082000200336020420002001360200200241106a24000f0b103f000b20041040000bd20201067f200028020822032000280200460440230041306b2202240002400240027f4100200341016a2203450d001a2000280200220420046a22052004490d01200241086a41042005200320032005491b2203200341044d1b22051046200228020c210320022802082106024020040440200041046a280200210720022004104620022007360220200220022903003702240c010b200241003602280b200241106a20062003200241206a103c20022802104504402002280214210320002005360200200041046a20033602004181808080780c010b20022802142103200241186a2802000b210420032004103d200241306a24000c010b41a08404412141c492041013000b200028020821030b20002802042003410c6c6a22022001290200370200200241086a200141086a280200360200200341016a220145044041a08104411c418097041013000b200020013602080bf30101057f230041306b220224000240027f4100200141016a2201450d001a2000280200220320036a22042003490d01200241086a41042004200120012004491b2201200141044d1b2204104a200228020c210120022802082105024020030440200041046a280200210620022003104a20022006360220200220022903003702240c010b200241003602280b200241106a20052001200241206a103c20022802104504402002280214210120002004360200200041046a20013602004181808080780c010b20022802142101200241186a2802000b210320012003103d200241306a24000f0b41a08404412141c492041013000bf40101027f02402001450d00200120026a41016b410020026b712205200149210241fcb50428020021040240024002400240200345044020020d020c010b20020d020b41002102200420056a22032004490d034180b6042802002003490440200541ffff036a22022005490d032002411076220340002202417f46200241ffff0371200247720d032002411074220420034110746a22032004490d03410021024180b6042003360200200420056a22032004490d040b41fcb5042003360200200421020c030b41e0ae04411c41c4ae041013000b41e0ae04411c41c4ae041013000b410021020b20002001360204200020023602000b8c0101037f230041206b2203240002402001450440410421020c010b200341186a200110430240200328021c2205450d00200328021822044100480d00027f2002450440200341106a20042005103b20032802100c010b200341086a200420054101105720032802080b22020d0120041040000b103f000b2000200236020420002001360200200341206a24000bed0101087f230041106b2206240020002002102020002802002205200028020822034f044002402002452003200546720d00200120024104746a2108200028020420034104746a2104200320056b41016a21030340200141086a280200210720012802002109200641086a2001410c6a2802002205105a2006280208210a200628020c20072005100a21072004410c6a2005360200200441086a2007360200200441046a200a360200200420093602002003450d01200341016a2103200441106a2104200141106a22012008470d000b0b20002002360208200641106a24000f0b41808004412141a886041013000b3501017f230041106b22022400200241086a2001105d200228020c21012000200228020836020020002001360204200241106a24000bc60501097f230041106b2205240020052001103302402005280204220404402005280200210a024020052802082203450d00200341076b22014100200120034d1b2108200441036a417c7120046b2109034002400240024002400240024002400240200220046a2d00002206411874411875220741004e0440200920026b4103712009417f46720d0220022008490d010c060b02400240200641d4a7046a2d000041026b0e03040100060b200241016a220120034f0d05200120046a2c000021010240024002400240200641f0016b0e050100000002000b2007410f6a41ff017141024b200141004e720d0820014140490d020c080b200141f0006a41ff01714130490d010c070b2001418f7f4a0d060b200241026a220120034f0d05200120046a2c000041bf7f4a0d05200241036a220120034f0d05200120046a2c000041bf7f4c0d040c050b200241016a220120034f0d04200120046a2c00002101024002400240200641e001470440200641ed01460d012007411f6a41ff0171410c490d022007417e71416e47200141004e720d0820014140490d030c080b200141607141a07f460d020c070b200141a07f480d010c060b200141bf7f4a0d050b200241026a220120034f0d04200120046a2c000041bf7f4c0d030c040b0340200220046a2201280200200141046a28020072418081828478710d052002200241086a22014d04402008200122024d0d070c010b0b41a09704411c41c4a7041013000b200241016a21020c050b200241016a220120034f0d01200120046a2c000041bf7f4a0d010b200141016a21020c030b200041003602040c060b200221010b200120034f0d0220012003200120034b1b21020340200120046a2c00004100480440200121020c020b2002200141016a2201470d000b0c020b20022003490d000b0b20002003360208200020043602042000200a3602000c010b200041003602040b200541106a24000b4201027f230041106b22012400200141086a2000100d20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b5b01027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20012001417f73411f76107a200228020822030d0120011040000b103f000b2000200336020420002001360200200241106a24000b9d0101047f230041106b22022400200241086a2001100c0240024020022802084504400240200228020c220341ffffffff03712003470d002003410274220520012802044b0d0020022003410110582002280200210420012002280204220120051011450d022004200110390b200041003602040c020b200041003602040c010b2000200336020820002001360204200020043602000b200241106a24000bec1202047f017e230041c0016b22012400200141386a20004128100a1a02400240024002400240024002400240024002400240200128023841016b0e080102030405060708000b2001428080013702940120014184b6043602900120014190016a2202102e200141b8016a20014198016a28020036020020012001290390013703b001200141f0006a2200200141b0016a220441d48904106020014180016a22032000106120012903800121052001410036029801200120053703900141e08904412020021053200141386a4104722002101e200120012903900137038001200141106a20032001280298011019200220012802102001280214102c200141086a2001280270220320012802742001280278220041cc88041010200141003602b801200120012903083703b00120022004101e2000200020012802b8016a22004b0d09200141e8006a2000360200200120033602702001200129037037036020014190016a200141e0006a10620c080b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341988a0410632001200141386a4104723602b801200141233602b401200141a48a043602b00120014180016a22022000200310642000200210620c070b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341e08a0410652001200141386a4104723602b801200141253602b401200141ec8a043602b00120014180016a22022000200310642000200210620c060b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341ac8b0410652001200141386a4104723602b801200141253602b401200141b88b043602b00120014180016a22022000200310642000200210620c050b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341f88b0410602001200141386a4104723602b801200141263602b401200141848c043602b00120014180016a22022000200310642000200210620c040b2001428080013702940120014184b6043602900120014190016a2202102e200141f8006a220020014198016a280200360200200120012903900137037020014180016a2203200141f0006a106120012903800121052001410036029801200120053703900141b4af04410020021053200241aa8c0441141034200120012903900137038001200141206a20032001280298011019200220012802202001280224102c200141186a2001280270220320012802742000280200220041cc88041010200141003602b801200120012903183703b0012002200141b0016a101e2000200020012802b8016a22004b0d04200141e8006a200036020020012003360270200120012903703703602001200141386a4104723602b8012001411e3602b401200141be8c043602b00120014180016a2200200141e0006a200141b0016a106420014190016a200010620c030b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341f48c0410632001200141386a4104723602b801200141203602b401200141808d043602b00120014180016a22022000200310642000200210620c020b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341b88d0410632001200141386a4104723602b801200141203602b401200141c48d043602b00120014180016a22022000200310642000200210620c010b2001428080013702940120014184b6043602900120014190016a2202102e200141f8006a220020014198016a280200360200200120012903900137037020014180016a2203200141f0006a106120012903800121052001410036029801200120053703900141b4af04410020021053200241e48d04411c1034200120012903900137038001200141306a20032001280298011019200220012802302001280234102c200141286a2001280270220320012802742000280200220041cc88041010200141003602b801200120012903283703b0012002200141b0016a101e2000200020012802b8016a22004b0d01200141e8006a200036020020012003360270200120012903703703602001200141386a4104723602b801200141293602b401200141808e043602b00120014180016a2200200141e0006a200141b0016a106420014190016a200010620b200141b8016a20014198016a280200360200200120012903900122053703b001200141a0016a2802002100200128029c01200141003602980120012005370390010240024002400240024002400240024002400240200128023841016b0e080102030405060708000b20014190016a220241001031200141386a4104722002101e200141dc006a280200200210180c080b20014190016a220241011031200128023c20021018200141406b28020020021018200141c8006a280200200141cc006a280200200210530c070b20014190016a220241021031200128023c20021018200141406b28020020021018200141c8006a280200200141cc006a280200200210530c060b20014190016a220241031031200128023c20021018200141406b280200200210180c050b20014190016a220241041031200128023c200210180c040b20014190016a220241051031200128023c20021018200141c4006a280200200141c8006a280200200210522002200141cc006a2d000010310c030b20014190016a220241061031200128023c20021018200141c4006a280200200141c8006a280200200210522002200141cc006a2d000010310c020b20014190016a220241071031200128023c200210180c010b20014190016a220241081031200128023c20021018200141406b2002101e0b20012001290390013703b0012001200141b0016a20012802980110192000200128020020012802041006024002400240200128023841056b0e020001020b200141406b10450c010b200141406b10450b200141c0016a24000f0b41a08104411c41dc88041013000b0d002000200120024119109a010b5301037f230041106b2202240020012802082203200128020422044b04402003200441c0b104104e000b200241086a2003200420012802001095012000200229030837020020004100360208200241106a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101920022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b0d002000200120024116109a010bf90102037f017e230041d0006b22032400200341106a22052001106120032903102106200341003602282003200637032020022802002002280204200341206a2204105320022802082802002004101820032003290320370310200341086a20052003280228101920042003280208200328020c102c20032001280200220520012802042001280208220241cc8804101020034100360248200320032903003703402004200341406b101e2002200220032802486a22044b044041a08104411c41dc88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b0d002000200120024118109a010b3501017f230041106b2200240020004280800137020420004184b6043602002000410110312000103041012000280208104d106c000b3701017f230041106b2200240020004280800137020420004184b60436020020004100103120004100103141002000280208104d106c000b4c01017f230041106b2202240020024280800137020420024184b6043602002002410010312002200141ff0171410847047f20024101103120010541000b103120002002280208104d106c000beb0201047f230041d0006b220324002003410036021820034280800137022420034184b6043602202001200341206a2204105120022004101820032003290320370310200341086a200341106a20032802281019200328020c210220032802082003280210210120032003280214220636022020022001200410002102200320032802202001200641a4870410140240024002400240410c20022002410c4f1b0e0402010100010b200041003a00000c020b2003412c6a4101360200200341346a4100360200200341b48804360228200341b4af0436023020034100360220200341206a41bc8804101a000b200328020021012003200328020436024c20032001360248200341206a200341c8006a103220032d00200440200041023b00000c010b20002003290021370001200041196a200341396a290000370000200041116a200341316a290000370000200041096a200341296a290000370000200041013a00000b200341d0006a24000bf30102067f017e230041306b220124002001410036021820014280800137022420014184b6043602204100200141206a2202101820012001290320370310200141086a200141106a20012802281019200128020c21042001280208200129031021072001410036022820012007370320200028020020021018200041086a28020021062000410c6a28020022032002102f200341ffffffff0371200347044041a08404412141c885041013000b200141206a2202200620034102741034200041106a2002101e200120012903203703102001200141106a2001280228101920042001280200200128020410071a200141306a24000b6601017f230041306b220224002002410036021820024280800137022420024184b6043602202000200241206a2200105120012000101820022002290320370310200241086a200241106a200228022810192002280208200228020c10081a200241306a24000b0d0020004184b60420011009000bcf4e02127f027e230041c0036b220024000240024002400240024002400240024002400240024002400240024002400240027f0240103741ff017141054604402000418080013602a0024184b604200041a0026a22011002200041d0016a20002802a0024184b6044180800141a487041014200020002903d00137039003200041003602a00220004190036a2001410410110d0e20002802a002220141187621042001411076210320014108762102027f0240024002400240024002400240024002400240024002400240024002400240200141ff0171220141d9006b0e03011f09000b20014108460d0520014110460d0a2001411c460d06200141d200460d01200141f100470440200141fd00460d082001418901460d042001419901470440200141a501460d04200141cb01470440200141d301460d0c200141dc01460d07200141fb0147200241ff01714189014772200341ff0171413647200441e4004772720d2141060c120b200241ff017141fe0147200341ff017141fb014772200441ec0147720d20200041f0006a20004190036a100e20002802700d202000280274220d410876210641000c110b200241ff017141f20047200341ff0171410c47722004411e47720d1f200041f8006a20004190036a100e20002802780d1f200028027c220d410876210641010c100b200241ff01712201413c460d0e200141cc0147200341ff017141f90047722004418d0147720d1e200041a0026a20004190036a102120002802a802220e450d1e20002f00a10220002d00a30241107472210620002802ac02210820002802a402210420002d00a002210d41070c0f0b200241ff017141d80147200341ff017141c7004772200441e90147720d1d20004180016a20004190036a100e2000280280010d1d200028028401220d410876210641030c0e0b200241ff017141d50047200341ff017141054772200441e40147720d1c20004190016a20004190036a100e2000280290010d1c200028029401210d20004188016a20004190036a100e2000280288010d1c200028028c012104200d410876210641040c0d0b200241ff017141cf0147200341ff0171412447722004413e47720d1b41050c0c0b200241ff0171412f47200341ff017141f5004772200441e40147720d1a200041a0026a20004190036a102120002802a802220e450d1a20002f00a10220002d00a30241107472210620002802ac02210820002802a402210420002d00a002210d41080c0b0b200241ff017141a70147200341ff017141a60147722004410f47720d1920004198016a20004190036a100e2000280298010d19200028029c01220d410876210641090c0a0b200241ff0171410247200341ff017141e7004772200441c00047720d18410a0c090b200241ff017141d00147200341ff01714196014772200441f60047720d17200041a0016a20004190036a100e20002802a0010d1720002802a401210d200041a0026a20004190036a101b20002d00ac0222054102460d17200041f2026a200041af026a2d00003a0000200020002f00ad023b01f002200d410876210620002802a802210820002802a402210e20002802a0022104410b0c080b2004200241ff017141de0047200341ff017141ea014772720d16200041b8016a20004190036a100e20002802b8010d1620002802bc01210d200041b0016a20004190036a100d20002d00b0014101710d1620002d00b1010e020504160b200241ff0171412347200341ff017141980147722004410f47720d15200041c0016a20004190036a100e20002802c0010d1520002802c401220d4108762106410d0c060b200241ff017141b90147200341ff0171413447720d1420044103460d010c140b200241ff017141fe0047200341ff017141334772200441ea0147720d13200041c8016a20004190036a100e20002802c8010d1320002802cc01210d200041a0026a20004190036a103220002d00a0020d13200041f2026a200041b0026a2d00003a0000200041f8016a200041b9026a2900003703002000200041ae026a2f01003b01f0022000200041b1026a2900003703f001200d4108762106200041ad026a2d00002105200041a9026a280000210820002800a502210e20002800a1022104410f0c040b200041a0026a20004190036a103220002d00a0020d12200041f2026a200041b7026a2d00003a0000200041f8016a200041c0026a2d00003a00002000200041b5026a2f00003b01f0022000200041b8026a2903003703f00120002802a402220d4108762106200041b4026a2d00002105200041b0026a2802002108200041ac026a280200210e200041a8026a280200210420002f01a202211120002d00a102210a410e0c030b200041a0026a20004190036a105b20002802a402220e450d1120002802a802210820002802a00221040b200041a8016a20004190036a100d20002d00a8014101710d10410221050240024020002d00a9010e020100120b20004190036a105c41ff017122014102460d11200141017121050b200d4108762106410c0c010b200341ff017141a201472004413247720d0f200041a0026a20004190036a103220002d00a0020d0f200041f2026a200041b7026a2d00003a0000200041f8016a200041c0026a2d00003a00002000200041b5026a2f00003b01f0022000200041b8026a2903003703f00120002802a402220d4108762106200041b4026a2d00002105200041b0026a2802002108200041ac026a280200210e200041a8026a280200210420002f01a202211120002d00a102210a41020b210c200041ee016a200041f2026a2d00003a0000200041e0016a200041f8016a290300370300200020002f01f0023b01ec01200020002903f0013703d80120004100360298032000428080013702a40220004184b6043602a0024100200041a0026a22071018200020002903a00237039003200041e8006a20004190036a20002802a8021019200028026c21032000280268200028029003210f200020002802940322013602a0022003200f200710002102200041e0006a20002802a002200f200141a4870410140240024002400240410c20022002410c4f1b0e0400030301030b20002802642101200020002802603602f002200020013602f402200041d8006a200041f0026a100e024020002802580d00200028025c2110200041a0026a200041f0026a105e20002802a4022202450d0020002802a802210b20002802a002210f200041a0026a200041f0026a103220002d00a002450d02200f200210390b200041ac026a4101360200200041b4026a41003602002000419c8f043602a8020c120b200041ac026a4101360200200041b4026a4100360200200041bc8f043602a8020c110b200d41ff0171200641087472210920004198026a200041b9026a29000037030020004190026a200041b1026a29000037030020004188026a200041a9026a290000370300200020002900a102370380022000200b3602fc01200020023602f80120002010ad2212200fad422086843703f00120004180026a2107024002400240024002400240024002400240200c41016b0e0f010203040d0e050607111615141312000b20004190036a2009101f200041ac026a20004198036a28020036020020002000290390033702a402200041003602a002230041106b2203240020034280800137020420034184b6043602000240200041a0026a2202280200450440200341001031200241086a28020022014504402003410010310c020b20034101103120012002410c6a2802002003102a0c010b200341011031200310300b0c1b0b20004190036a220220091042200041a0026a220141017220024121100a1a200041003a00a002230041106b2202240020024280800137020420024184b604360200024020012d000045044020024100103120012d00014504402002410010310c020b200241011031200141026a2002101e0c010b200241011031200210300b41002002280208104d106c000b200041b6026a200041ee016a2d00003a0000200041bf026a200041e0016a2d00003a0000200020053a00b302200020083600af022000200e3600ab02200020043600a702200020093600a302200020113b00a1022000200a3a00a002200020002f01ec013b01b402200020002903d8013700b702230041306b22022400200241286a200041a0026a220141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a1041200041086a2002290308370300200241306a240020002802082102200028020c2101230041106b2203240020034280800137020420034184b604360200200341001031024020024504402003410010310c010b2003410110312001200310180b0c190b20004190036a20091017200041a8026a20004198036a29030037030020002000290390033703a002230041106b2203240020034280800137020420034184b6043602000240200041a0026a22022d000c22014103470440200341001031200141024604402003410010310c020b2003410110312002200310280c010b200341011031200310300b0c180b200041a0026a2009101f20002802a4022201450d0620002802a8022102200020002802a0023602a002200020013602ac0220002001200241047422066a22033602a802027f0240027f024020020440200041a0026a410472210b0340200020012802082202360290032002450d02200420012902002212a7460d04200141106a2101200641106b22060d000b0b200020033602a40220004190036a210b41000c010b200141106a0b2101200b2001360200410021024103210641000c010b2000200141106a3602a4022012422088a72106200128020c21012012422888a70b2104200041a0026a104b2002450c070b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220320004198036a220229030037030020002000290390033703a002200041206a200041a0026a101d410021010240027f024002402000280220450d002000280224210a200041b8026a200041a8036a290300370300200041b0026a200041a0036a2903003703002003200229030037030020002000290390033703a002200041f0026a200041a0026a106e20002d00f002210120002802f4022202450d00200020002d00f3023a00d302200020002f00f1023b00d102200020002802f8023602d802200020023602d402200020013a00d002200041186a2008105a2000280218210c200028021c200e2008100a21074104210120084180014d0440200041f0026a20002802d40220002802d8021059200020002802f40222013602ac02200020002802f0023602a0022000200120002802f802220241047422066a22033602a802024020020440200041a0026a410472210503402000200128020822023602f0022002450d0520012802002009460d02200141106a2101200641106b22060d000b0b200020033602a402200041f0026a210541000c040b2000200141106a3602a402200041a0026a104b410221010b200041d0026a10230b41012102200141ff01714108460d020c180b200141106a0b210120052001360200200041a0026a220f104b200041ac026a22032008360200200041a8026a220220073602002000200c3602a402200020093602a002200041d0026a2201200f1022200a20002802d40220002802d8021029200041b4026a2008360200200041b0026a200e36020020032004360200200220093602002000200a3602a402200041013602a002200f105f200110230b200041a0026a2201200041f0016a4130100a1a2001106a41082101410021020c150b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220320004198036a220229030037030020002000290390033703a002200041306a200041a0026a101d4100210102402000280230450d002000280234210d200041b8026a200041a8036a290300370300200041b0026a200041a0036a2903003703002003200229030037030020002000290390033703a002200041f0026a200041a0026a106e20002d00f002210120002802f4022205450d00200020002d00f3023a00d302200020002f00f1023b00d102200020002802f80222103602d802200020053602d402200020013a00d002200041286a2008105a2000280228210f200028022c200e2008100a210c024020084180014d0440200041f0026a20002802d402220720002802d80222031059200020002802f402220a3602ac02200020002802f0023602a0022000200a20002802f802220141047422026a22113602a802027f024002402001450d00410021014100210b03402001200a6a220641086a280200044020062802002009460d03200b41016a210b2002200141106a2201470d010c020b0b200641106a21110b200020113602a4024100210641030c010b2000200641106a3602a402200b20104f0d05200120056a220120093602002001410c6a2008360200200141086a200c360200200141046a200f3602004101210641080b2101200041a0026a104b2006450d01200d200720031029200041b4026a2008360200200041b0026a200e360200200041ac026a2004360200200041a8026a20093602002000200d3602a402200041023602a002200041a0026a105f200041d0026a10230c130b410421010b200041d0026a10230b41012102200141ff01714108460d100c140b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220220004198036a220129030037030020002000290390033703a002200041386a200041a0026a101d2000280238047f200028023c2107200041b8026a200041a8036a290300370300200041b0026a200041a0036a2903003703002002200129030037030020002000290390033703a002200041f0026a200041a0026a106e20002d00f002210120002802f4022202450d08200020002d00f3023a00d302200020002f00f1023b00d102200020023602d402200020013a00d002024020002802f802220c044041002106200221010340200920012802004604404101210b200641016a220104402001200c470440034002402009200220014104746a2204280200460440200141016a2201450d1c200b41016a220b0d0141a08104411c41e885041013000b2001200b4f044020022001200b6b4104746a22032004290200370200200341086a200441086a290200370200200141016a22010d0141a08104411c418886041013000b41808004412141f885041013000b2001200c470d000b0b0240200b4100200b200c4b1b450440200b200c4d0d0141808004412141cc81041013000b41808004412141bc81041013000b2000200c200b6b22013602d802200b450d042007200220011029200041a8026a2009360200200020073602a402200041033602a002200041a0026a105f200041d0026a10230c0e0b0c170b200141106a2101200c200641016a2206470d000b0b2000200c3602d8020b200041d0026a102341030541000b2101410121020c130b200b201041a88904106f000b200041ac026a4101360200200041b4026a4100360200200041b488043602a802200041b4af043602b002200041003602a002200041a0026a41bc8804101a000b200041043a00a002200041a0026a104f000b41002104410121064100210241010b200041ac026a2001360200200041a8026a2002360200200041003602a0022000200641ff01712004410874723602a402230041106b2204240020044280800137020420044184b6043602000240200041a0026a2203280200450440200441001031200341086a2802002202044020044100103120022003410c6a280200200410530c020b200441011031200420032d000410310c010b200441011031200410300b2004280208104d106c000b200041a0026a211023004190016b22052400200541d8006a2203200041f0016a220441086a2802002004410c6a28020010382005280258210220052802602101200528025c210720052004360238200520073602342005200720014102746a3602302005200736022c200520023602282003200541286a101602400240024002400240024020052d006841024604402010410036020820104280808080c0003702002005280228200528023410390c010b200541206a4104103a20052802242201450d01200528022022024100480d01200541186a20022001103b20052802182208450d02200541e0006a220f290300211320052903582112200841106a200541e8006a220c280200360200200841086a201337020020082012370200200541d0006a200541386a280200360200200541c8006a200541306a29030037030020052005290328370340200541d8006a200541406b1016024020052d0068410246044041042102410121040c010b41042101410121030340200341016a220445210a0240200120034704402008200341146c6a22022005290358370200200241106a200c280200360200200241086a200f290300370200200a0d08200121020c010b027f200a0440417f21022004210341000c010b200120016a22022001490d07200541106a410420022004200220044b1b2202200241044d1b2202103a2005280214210720052802102103200541086a2001103a20052008360280012005200529030837028401200541f0006a2003200720054180016a103c2005280270450440200528027421084181808080780c010b200528027421032001210220052802780b210720032007103d2008200141146c6a22012005290358370200200141106a200c280200360200200141086a200f290300370200200a0d070b200541d8006a200541406b1016200221012004210320052d00684102470d000b0b200541d8006a103e2005280240200528024c10392010200436020820102008360204201020023602000b20054190016a24000c040b103f000b20021040000b41a08404412141c492041013000b41a08104411c419886041013000b20002802a402210220002802a8022101230041106b2203240020034280800137020420034184b60436020002402002044020034100103120012003102f2001450d012002200141146c6a21010340200228020020031018200241046a20031028200241146a22022001470d000b0c010b200341011031200310300b0c0e0b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220120004198036a220729030037030020002000290390033703a002200041106a200041a0026a101d200020002802102204410146047e42810e05200041003602f80220004280808080c0003703f0022010410441001029200041b8026a200041a8036a2203290300370300200041b0026a200041a0036a22022903003703002001200729030037030020002000290390033703a002200041a0026a220c20101026201020004190036a10242000201041016a2201417f20011b3602f001200041bc026a2003290300370200200041b4026a2002290300370200200041ac026a2007290300370200200041c4026a201036020020002000290390033702a402200041003602a002200c105f200041f0026a1023200c200041f0016a4130100a1a200c106a201242208642800e840b3703a0022004410146230041106b2204240020044280800137020420044184b6043602000240200041a0026a22032d00002201410247044020044100103120014504402004410010312003280204200410180c020b200441011031200420032d000110310c010b200441011031200410300b2004280208104d106c000b41012102200141ff01714108470d0b0b200041a0026a2201200041f0016a4130100a1a2001106a41082101410021020c0a0b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a29030037030041082101200041a8026a220420004198036a220329030037030020002000290390033703a002200041406b200041a0026a101d024020002802402202450440410021010c010b20002802442107200041b8026a200041a8036a290300370300200041b0026a200041a0036a2903003703002004200329030037030020002000290390033703a002200041a0026a2203102b41e481042007106b41ec81042007106b200041043602a002200020073602a4022003105f2003200041f0016a4130100a1a2003106a0b20024520011068000b200041df026a200041ee016a2d00003a0000200041e8026a200041e0016a290300370300200020053a00dc02200020083602d8022000200e3602d402200020043602d002200020002f01ec013b00dd02200020002903d8013703e002200041f0026a1035200041a0026a41dc81042009106920002d00a002410247044020004190036a200041a0026a4121100a1a200041b9026a20004188036a290300370000200041b1026a20004180036a290300370000200041a9026a200041f8026a290300370000200020002903f0023700a10241012106200041013a00a00220002d009003044020004190036a410172200041a0026a410172107041017321060b200041a0026a20091042027f027f20002d00a0020440200041a8036a200041b9026a290000370300200041a0036a200041b1026a29000037030020004198036a200041a9026a290000370300200020002900a102370390034100200620004190036a200041f0026a1070410173710d011a200041b8026a200041e8026a290300370300200041b0026a200041e0026a290300370300200041a8026a200041d8026a290300370300200020002903d0023703a002200041d0006a200041a0026a1041410720002802504101460d011a200041b8026a2204200041a8036a290300370300200041b0026a2203200041a0036a29030037030041082101200041a8026a220220004198036a29030037030020002000290390033703a002200041a0026a2207102b2004200041e8026a2903003703002003200041e0026a2903003703002002200041d8026a290300370300200020002903d0023703a0022007200910262009200041d0026a10242007200041f0016a4130100a1a2007106a41000c020b41000b210141010b20011068000b200020002d00a1023a00b7032000419c036a4101360200200041a4036a4101360200200041908204360298032000410036029003200041013602bc032000200041b8036a3602a0032000200041b7036a3602b80320004190036a41808304101a000b20004186036a200041ee016a2d00003a0000410821012000418f036a200041e0016a2d00003a0000200020053a008303200020083600ff022000200e3600fb02200020043600f702200020093600f302200020113b00f1022000200a3a00f002200020002f01ec013b018403200020002903d8013700870320004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220420004198036a29030037030020002000290390033703a002200041c8006a200041a0026a101d024020002802482203450440410021010c010b41dc8104200028024c2202200041f0026a1025200420002903f002370300200041b0026a200041f8026a290300370300200041b8026a20004180036a290300370300200041c0026a20004188036a290300370300200020023602a402200041083602a002200041a0026a2202105f2002200041f0016a4130100a1a2002106a0b20034520011068000b20004190036a220310354100210102402003200710700440200041f0026a2009101720002d00fc02410247044041e081042009106b4100210d410021040240200b450d00410021062002210103402009200128020046044041012104200641016a220104402001200b470440034002402009200220014102746a2802002203460440200141016a2201450d10200441016a22040d0141a08104411c41e885041013000b200120044f04402002200120046b4102746a2003360200200141016a22010d0141a08104411c418886041013000b41808004412141f885041013000b2001200b470d000b0b200441002004200b4b1b4504402004200b4d0d0441808004412141cc81041013000b41808004412141bc81041013000b0c0b0b200141046a2101200b200641016a2206470d000b0b2000200b20046b3602fc01200041073602a002200020093602a402200041a0026a2201105f200041f0026a10492001200041f0016a4130100a1a2001106a410821010c020b200041f0026a1049410321010b4101210d0b200d20011068000b20004190036a22011035027f027f4100200120071070450d001a200041a0026a2009101720002d00ac0222014102470440200041f8026a200041a8026a280000360000200041ff026a200041af026a2d00003a0000200020002900a1023700f102200020002f00ad023b00fd02200020013a00fc02200020002d00a0023a00f002024002400240200e0440200841c0004b0d01200020083602a8022000200e3602a402200020043602a002200041f0026a200041a0026a10550b200541ff01714102470d0120002d00fc0221050c020b200041f0026a104541060c030b200020053a00fc020b2009200041f0026a102741082101200041a8026a20002903f002370300200041b0026a200041f8026a280200360200200041b4026a20053a0000200020093602a402200041063602a002200041a0026a2202105f2002200041f0016a4130100a1a2002106a41000c020b41030b210141010b20011068000b200041ff026a200041ee016a2d00003a0000200020053a00fc02200020083602f8022000200e3602f402200020043602f002200020002f01ec013b00fd0220004190036a2203103541002101027f0240200320071070044041062101200e200810710d010b200041f0026a104541010c010b2009200041f0026a1027200b200f460440200041f0016a410472210c230041306b220a240002400240027f4100200f41016a2202450d001a200c280200220720076a22012007490d01200a41086a410420012002200120024b1b2201200141044d1b22041043200a28020c2103200a2802082102024020070440200c41046a2802002101200a20071043200a2001360220200a200a2903003702240c010b200a41003602280b200a41106a20022003200a41206a103c200a280210450440200a2802142102200c2004360200200c41046a20023602004181808080780c010b200a2802142102200a41186a2802000b210120022001103d200a41306a24000c010b41a08404412141c492041013000b20002802fc01210b20002802f80121020b2002200b4102746a200936020020002802fc0141016a220145044041a08104411c418097041013000b200020013602fc0141082101200041a8026a20002903f002370300200041b0026a200041f8026a280200360200200041b4026a20053a0000200020093602a402200041053602a002200041a0026a2202105f2002200041f0016a4130100a1a2002106a41000b20011068000b200041a0026a2201200041f0016a4130100a1a2001106a41082101410021020c030b1066000b200041b4af043602b002200041003602a002200041a0026a41e48e04101a000b41a08104411c41d885041013000b200220011068000b41002003280208104d106c000bb60101017f230041306b22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a101d024020022802080440200241106a200228020c101f2002280214220104402000200228021836020820002001360204200020022802103602000c020b20004100360204200041013a00000c010b20004100360204200041013a00000b200241306a24000b7501017f230041306b220324002003200136020420032000360200200341146a41023602002003411c6a41023602002003412c6a410536020020034194980436021020034100360208200341053602242003200341206a360218200320033602282003200341046a360220200341086a2002101a000b0b00200020014120100b450b3101027f2001410c6c210103402001220204402002410c6b210120002802082000410c6a210041c100490d010b0b2002450bc40d021a7f017e230041b0016b2200240002400240027f0240103741ff0171220141054604402000418080013602604184b604200041e0006a22011002200041186a20002802604184b6044180800141a4870410142000200029031837032020004100360260200041206a2001410410110d032000280260220141187621022001411076210420014108762103200141ff0171220141094704402001419b0147200341ff017141ae014772200441ff0171419d0147200241de004772720d04200041406b1035200041386a420437030020004200370330200041e0006a2201200041306a4130100a1a2001106a1067000b200341ff0171413547200441ff017141da014772200241880147720d03200041106a200041206a100c20002802100d03200041a0016a200028022441047622012000280214220520012005491b10202005450d01200041ed006a210202400340200041e0006a200041206a101b0240024020002d006c22044102470440200041386a2203200041e8006a2802003602002000412e6a2201200241026a2d00003a000020002000290360370330200020022f00003b012c20002802a801220920002802a001460d010c020b200041a0016a10470c070b200041a0016a2009105620002802a80121090b20002802a401220620094104746a22072000290330370200200720043a000c200720002f012c3b000d200741086a20032802003602002007410f6a20012d00003a0000200941016a2208450d01200020083602a801200541016b22050d000b20002802a0010c030b41a08104411c418097041013000b200020013a0060200041e0006a104f000b20002802a4012206450d0120002802a801210820002802a0010b2102200020083602980120002006360294012000200236029001200041e0006a200041206a105e200028026422130d0120004190016a10470b1066000b2000412e6a20002d00930122043a0000200020002f00910122033b012c200028026021182000280268200020023a009001200020033b009101200020043a009301200020063602940120002008360298012008460440200041e0006a201320081038200028026821142000280264211520002802602119200041a0016a200810200240024020002802a001221620002802a80122014f04402008410474211720002802a40121040240201620016b2210450d00200620176a210d200420014104746a210e034020062201200d460d0120012802042111200041e0006a2001280208220f10542000280260220320002802682202490d03201041016b2110200e200a4104746a21120240200f452002200346720d0020002802642002410c6c6a2106200220036b41016a2109200f410c6c410c6b210c410021020340200220116a220741046a2802002103200041086a200741086a2802002205105a20002802082107200028020c20032005100a2103200220066a220b41086a2005360200200b41046a2003360200200b20073602002009450d01200941016a21092002200c472002410c6a21020d000b0b200a41016a210a200141106a2106200041386a200f36020020002000290360221a37033020012d000c2101201241086a200f3602002012201a370200201220013a000c20100d000b0b200420176a21072004210102402014450d00200041306a410472210b200041c1006a210d200441106a210a20084104742105201441027421062015210c200421020340200a21012005450440200721010c020b200241106a210320022d000c22114102460440200321010c020b200c280200210e200d20022f000d3b0000200b2002290200370200200d41026a2002410f6a2d00003a0000200b41086a220a200241086a2802003602002000200e360230200020113a0040200041a8016a200a290200221a3703002000200b2902003703a00120002802a401201aa71071450d04200c41046a210c200e200041a0016a22021027200141106a210a200541106b21052002104520032102200641046b22060d000b0b200041023a0040200041306a2203103e2019201510392001200720016b4104761044201620041048200041406b10352000413c6a2008360200200041386a2013360200200020183602342000410036023020004190016a1047200041e0006a220120034130100a1a2001106a1067000b41808004412141a886041013000b41808004412141a886041013000b200041ec006a4101360200200041f4006a4100360200200041b49004360268200041b4af0436027020004100360260200041e0006a41bc9004101a000b200041ec006a4101360200200041f4006a4100360200200041809004360268200041b4af0436027020004100360260200041e0006a41889004101a000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41cc9004200241086a1074200241206a24000bf00301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1101000d040b200141086a2101200428020020042802042106200441086a2104200341186a2006110300450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1101000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a108a0120032003290310370320200341086a2005200141046a108a0120032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110300450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1101000d010b41000c010b41010b200341406b24000b0f00200028020020012002107641000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a20002003200210792004280208200428020c103d200028020821030b200028020420036a20012002100a1a2003200220036a22014b044041f09004411c419097041013000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10760c020b230041106b22042400200441086a20002003410110792004280208200428020c103d200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41f09004411c418097041013000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1073200241206a24000bdd0101027f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22052002490d0141082005200320032005491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200420032005200441106a103c20042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41909104412141c492041013000bd00101037f02402001450440200221030c010b02402001200120026a41016b410020026b7122054d044041fcb504280200220220056a22042002490d024180b6042802002004490440200541ffff036a22022005490d022002411076220340002202417f46200241ffff0371200247720d022002411074220220034110746a22042002490d02410021034180b6042004360200200220056a22042002490d030b41fcb5042004360200200221030c020b41e0ae04411c41c4ae041013000b410021030b20002001360204200020033602000be106020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e2206410174418b9a046a2f00003b0000200241026b2004200641e4006c6b41ffff0371410174418b9a046a2f00003b0000200041046b2100200e42ffc1d72f56200d210e0d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff0371410174418b9a046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a2002410174418b9a046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b2102410021042005410471044041b4af042104200241b4af0441b4af0410810120026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a2802002201200720041084010d01200220082006200128020c11010021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a200720041084010d02200341106a2001200920026b410110850120032802142202418080c400460d022003280210200520082006200a28020c1101000d0220022005200a1086010d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a2802002201200720041084010d01200220082006200128020c11010021000c010b41012100200341086a2001200920026b4101108501200328020c2205418080c400460d00200328020820012802002202200141046a2802002201200720041084010d00200220082006200128020c1101000d0020052002200110860121000b200341406b240020000f0b41a09704411c41d49c041013000b41c09704412141b0ac041013000b0300010b0e0020002802001a03400c000b000b0d0042f2e7eb9187bab2c1d1000b4b01017f230041106b2205240020022003490440200320022004104e000b200541086a200320022001108001200528020c21012000200528020836020020002001360204200541106a24000b150020002001200220034198b40441c097041097010bac04010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d00200120001082012206200020016a22082004417c716a20044103711082016a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41b0a004108301200328020c21052003280208210820032003280200200328020422002000417c7141c0a104108301200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41a09704411c41c8a3041013000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441a09704411c41f8a3041013000b41a09704411c41d8a3041013000b41a09704411c41e8a3041013000b41a09704411c41b8a3041013000b2001200210820121020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41a09704411c41a0ac041013000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41dcaf04412320041013000b39000240027f2002418080c40047044041012000200220012802101103000d011a0b20030d0141000b0f0b200020034100200128020c1101000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41a09704411c41e49c041013000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110300450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110300450d000b200441016b0b2000490b4c01017f230041106b22052400200120034d0440200541086a410020012002108001200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000bed04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11010021000c020b41a09704411c4188a5041013000b200b450440200128020020032004200128020428020c11010021000c010b2001410c6a2802002200200320046a200310810122024b0440200941086a2001200020026b410010850141012100200928020c2202418080c400460d0120092802082001280200220520032004200141046a280200220128020c1101000d0120022005200110860121000c010b200128020020032004200128020428020c11010021000b200941106a240020000b140020002802002001200028020428020c1103000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044107470d0120012802000b2802002104410121030b20002004360204200020033602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1074200341206a24000be608010b7f23004190016b22032400200341003b0184012003410a3602800120034281808080a00137037820032002360274200341003602702003200236026c200320013602682003200236026420034100360260200028020421062000280200210720002802082108200341fc006a2109027f0340024002400240024020032d008501450440200341d8006a2003280268220c200328026c20032802702003280274108d010240024020032802582201450d00200328025c2100034002400240024002400240027f0240024002400240200328027822020440200220096a41016b2d00002104200041084f04402001200141036a417c712202460440200041086b210a410021020c040b200341d0006a200220016b22022000200020024b1b22022001200041f89d04108701200341c8006a200420032802502003280254108e0120032802484101470d02200328024c21010c050b200341306a200420012000108e012003280234210120032802300c050b41c09704412141d8aa041013000b2002200041086b220a4b0d010b200441818284086c210b0340200241046a22052002490d04200120026a280200200b73220d417f73200d41818284086b71200120056a280200200b732205417f73200541818284086b7172418081828478710d012002200241086a22024b0d072002200a4d0d000b0b200341406b20012000200241a89e04107f200341386a200420032802402003280244108e01410020032802384101470d011a2002200328023c6a220120024f0d0041a09704411c41b89e041013000b41010b4101460440200141016a2200450d022000200328027022006a22022000490d0320032002360270200220032802782200490d05200341286a2003280268200328026c200220006b2002108d0120032802282202450d05200328022c2100200341206a2003280278200941044188ab041087012002200020032802202003280224108f01450d05200341186a200328026020032802702200200c10900120032000360260200328021c2102200328021821000c080b200320032802743602700c060b41a09704411c41889e041013000b41a09704411c41e8aa041013000b41a09704411c41f8aa041013000b41a09704411c41989e041013000b200341106a2003280268200328026c20032802702003280274108d0120032802142100200328021022010d000b0b4100210020032d0085010d00200341013a008501024020032d008401044020032802642101200328026021040c010b2003280264220120032802602204490d0420012004460d010b200341086a200420012003280268109001200328020c2102200328020821000b20000d010b41000c050b20082d0000450d012007418499044104200628020c110100450d010c020b41c0970441214198a5041013000b2003410a36028c0120082002047f200320002002200241016b41d0a104107f2003418c016a410120032802002003280204108f010541000b3a0000200720002002200628020c110100450d010b0b41010b20034190016a24000b4d01037f230041106b220524002002200449200320044b72450440200541086a200320042001108001200528020c2107200528020821060b2000200736020420002006360200200541106a24000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b1801017f2001200346047f200020022001100b0541010b450b1500200020012002200341aca60441c097041097010b5801027f230041206b22022400200128020421032001280200200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1074200241206a24000b0c00200028020020011088010b1800200128020041ccb5044105200128020428020c1101000b9c0301037f230041406a22022400200028020021034101210002402001280200220441d09804410c200141046a280200220128020c1101000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241e0980436023020024100360228200241083602142002200241106a36023820022002410c6a36021020042001200241286a108b01450d010c020b20032802002200200328020428020c110a0042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241e0980436023020024100360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a108b010d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4105360200200241346a4105360200200241a898043602182002410036021020022000410c6a3602382002200041086a3602302002410336022c200220003602282002200241286a36022020042001200241106a108b0121000b200241406b240020000b1500200020012002200341fcae044190af041097010b150020002001200220034198b40441b0b4041097010b2800200120024d04402000200220016b3602042000200120036a3602000f0b2005412120041013000b3701017f230041106b22032400200341086a20022001104c200328020c21012000200328020836020020002001360204200341106a24000b7301017f230041306b220424002004200136020420042000360200200441146a41023602002004411c6a41023602002004412c6a41053602002004200336021020044100360208200441053602242004200441206a3602182004200441046a36022820042004360220200441086a2002101a000bf80102037f017e230041d0006b22042400200441106a22062001106120042903102107200441003602282004200737032020022802002002280204200441206a22051053200520022802082003103420042004290320370310200441086a20062004280228101920052004280208200428020c102c20042001280200220620012802042001280208220241cc8804101020044100360248200420042903003703402005200441406b101e2002200220042802486a22054b044041a08104411c41dc88041013000b20012006360200200141086a22022005360200200041086a200228020036020020002001290200370200200441d0006a24000b0bad350700418080040be110617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6d706163742e727300210001006a000000420000002600000000000000617474656d707420746f206164642077697468206f766572666c6f77000b01007f0000005206000035000000000b01007f00000059060000240000006dbd733339033e7900e945cab16cd67c3b605e7d4661696c656420746f206765742076616c756520696e204d617070696e673a20f0000100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e727318010100680000009c000000250000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273000000900101006d0000009d00000011000000900101006d0000009d00000030000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f77000000c016010083000000c80100001e0000000a0000000100000001000000010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f627974652d736c6963652d636173742d312e322e322f7372632f6c69622e7273006402010063000000ea01000001000000000b01007f0000006c06000015000000000b01007f0000006d06000015000000000b01007f0000007b0600003e000000000b01007f0000007f06000011000000000b01007f0000002b0b00001e000000000b01007f000000c3080000110000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300380301006b000000e40000001400000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000900101006d0000006b0100000e000000900101006d0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72180401001c000000900101006d000000ed00000017000000101801006e000000c100000037000000101801006e000000c4000000090000002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f6964656e746974792f74797065732e727300006c0401003a0000002a0000000d0000004964656e746974793a3a4964656e7469747943726561746564000000b417010000000000b80401004964656e746974793a3a4964656e74697479437265617465643a3a6f776e65724964656e746974793a3a4164647265737341646465640000b417010000000000000501004964656e746974793a3a4164647265737341646465643a3a6964656e746974795f6e6f4964656e746974793a3a416464726573735570646174656400b417010000000000470501004964656e746974793a3a41646472657373557064617465643a3a6964656e746974795f6e6f4964656e746974793a3a4164647265737352656d6f766564000000b417010000000000910501004964656e746974793a3a4164647265737352656d6f7665643a3a6964656e746974795f6e6f4964656e746974793a3a4964656e7469747952656d6f7665640000b417010000000000dd0501004964656e746974793a3a4964656e7469747952656d6f7665643a3a6964656e746974795f6e6f4964656e746974793a3a436861696e41646465644964656e746974793a3a436861696e41646465643a3a636861696e5f69644964656e746974793a3a436861696e557064617465640000b4170100000000005c0601004964656e746974793a3a436861696e557064617465643a3a636861696e5f69644964656e746974793a3a436861696e52656d6f7665640000b417010000000000a00601004964656e746974793a3a436861696e52656d6f7665643a3a636861696e5f69644964656e746974793a3a5265636f766572794163636f756e745365744964656e746974793a3a5265636f766572794163636f756e745365743a3a6964656e746974795f6e6f2f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f6964656e746974792f6c69622e727300000029070100380000002b00000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900740701002700000073746f7261676520656e7472792077617320656d70747900a4070100170000004561636820636861696e206e6565647320746f2068617665206120636f72726573706f6e64696e6720636861696e206964207370656369666965642ec40701003c0000002907010038000000c80000000d000000436861696e207270632075726c20697320746f6f206c6f6e6700000018080100190000002907010038000000d1000000150000000a00000004000000040000000b0000000c0000000d0041f090040be417617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000a00000000000000010000000e0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300c40801007f0000008a0100001c0000006361706163697479206f766572666c6f770000005409010011000000c40801007f00000006020000050000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c656400fd09010015000000120a01000d000000800901007d00000095010000090000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000730a01007b00000064020000200000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e727300000b01007f000000300700000d000000000b01007f0000009e07000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320e20b010020000000020c0100120000003a000000b417010000000000240c010001000000240c0100010000000a00000000000000010000000f00000070616e69636b65642061742027272c205c0c0100010000005d0c0100030000003a200000b417010000000000700c010002000000202020202c0a280a282f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000d30d01007e0000005d0500000d000000d30d01007e000000ed050000380000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e727300740e0100830000004e0000002f000000740e0100830000005a0000001f000000740e0100830000006300000009000000740e0100830000006800000027000000740e010083000000680000003e00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820480f0100120000005a0f01002200000072616e676520656e6420696e646578208c0f0100100000005a0f0100220000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273000000ac0f010081000000c4050000250000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72734010010080000000fe0300002f0000004010010080000000de0800001e000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028e010010015000000f51001002b000000e10b0100010000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273381101008000000047000000150000003811010080000000540000001100000038110100800000005a00000009000000381101008000000064000000110000003811010080000000660000000d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e727300081201007f0000009100000011000000081201007f0000004f0200002d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273000000a812010081000000ca000000130000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727300003c13010086000000e5000000150000000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101004196a9040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041d4a9040bfd042f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72730000d414010082000000a101000047000000d414010082000000b401000020000000d414010082000000b401000011000000d414010082000000b8010000260000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273981501008800000095000000010000008d0c01007e000000cd01000005000000b4170100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e727300c0160100830000002f010000180041e0ae040b51617474656d707420746f206164642077697468206f766572666c6f779519010082000000900100004f00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f770041c0af040be504617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290ab417010000000000ff170100010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e72730000101801006e0000005a0000001c000000101801006e0000005a00000009000000101801006e0000005a00000031000000101801006e0000006500000009000000101801006e000000830000001a000000101801006e0000008d0000002100000045636473615265636f766572794661696c656443616c6c52756e74696d654661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f64652f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e727300951901008200000082010000470041b0b4040bcb01617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6465632e7273000000511a010068000000770000000e0000004572726f72000000190000001c000000160000001400000019000000a71601008b1601007516010061160100481601","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"identity","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x9bae9d5e"},{"args":[{"label":"chains","type":{"displayName":["Vec"],"type":13}},{"label":"chain_ids","type":{"displayName":["Vec"],"type":9}}],"default":false,"docs":[],"label":"init_with_chains","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x0935da88"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":37},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":40},"hash":{"displayName":["Hash"],"type":38},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":39}},"events":[{"args":[{"docs":[" Owner of the created identity."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The \`IdentityNo\` associated with the created identity."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":["Events"],"label":"IdentityCreated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which a new address has been added."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The newly added address."],"indexed":false,"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressAdded"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been updated."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The updated address value."],"indexed":false,"label":"updated_address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressUpdated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been removed."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"AddressRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got removed."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"},{"args":[{"docs":[" The \`ChainId\` that is associated with the newly added chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The rpc url of the chain that got added."],"indexed":false,"label":"rpc_urls","type":{"displayName":["Vec"],"type":7}},{"docs":[" The address type used on the chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainAdded"},{"args":[{"docs":[" The \`ChainId\` that is associated with the updated chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The rpc url of the updated chain."],"indexed":false,"label":"rpc_urls","type":{"displayName":["Vec"],"type":7}},{"docs":[" The address type used on the updated chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainUpdated"},{"args":[{"docs":[" The \`ChainId\` that is associated with the chain that got"," removed."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"ChainRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that set a recovery account."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The newly set recovery account."],"indexed":false,"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"RecoveryAccountSet"}],"lang_error":{"displayName":["ink","LangError"],"type":12},"messages":[{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the \`IdentityInfo\` of an identity that is associated with"," the provided \`IdentityNo\`."],"label":"identity","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xcbfefbec"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"owner_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x99720c1e"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"identity_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":21},"selector":"0x713ca232"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the chain name that is associated with the specified \`ChainId\`."],"label":"chain_info_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":23},"selector":"0x59d847e9"},{"args":[{"label":"receiver","type":{"displayName":["IdentityNo"],"type":2}},{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the destination address of a transaction that needs to be"," routed to the specified identity on the specified chain."],"label":"transaction_destination","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":25},"selector":"0x525505e4"},{"args":[],"default":false,"docs":[" A list of all the available chains each associated with a \`ChainId\`."],"label":"available_chains","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0xa5cf243e"},{"args":[],"default":false,"docs":[" Creates an identity and returns the \`IdentityNo\`.",""," A user can only create one identity."],"label":"create_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xfb893664"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Adds an address for a given chain"],"label":"add_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x71cc798d"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Updates the address of the given chain"],"label":"update_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x892f75e4"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Removes the address by chain"],"label":"remove_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xdca7a60f"},{"args":[],"default":false,"docs":[" Removes an identity"],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x08026740"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"info","type":{"displayName":["ChainInfo"],"type":14}}],"default":false,"docs":[],"label":"add_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x1cd09676"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"new_rpc_url","type":{"displayName":["Option"],"type":35}},{"label":"new_address_type","type":{"displayName":["Option"],"type":36}}],"default":false,"docs":[],"label":"update_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x7d5eea00"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[],"label":"remove_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x5b23980f"},{"args":[{"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Sets the recovery account that will be able to change the ownership"," of the identity.",""," Only callable by the identity owner."],"label":"set_recovery_account","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xd3b93403"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Transfers the ownership of an identity to another account.",""," Only callable by the identity owner or any account that the identity"," owner added as a proxy."],"label":"transfer_ownership","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x107e33ea"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d5e603b","ty":0}},"name":"addresses"}],"name":"IdentityInfo"}},"root_key":"0x7d5e603b"}},"name":"number_to_identity"},{"layout":{"root":{"layout":{"leaf":{"key":"0xca45e900","ty":5}},"root_key":"0xca45e900"}},"name":"owner_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x7cd66cb1","ty":2}},"root_key":"0x7cd66cb1"}},"name":"identity_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x3373bd6d","ty":5}},"root_key":"0x3373bd6d"}},"name":"recovery_account_of"},{"layout":{"leaf":{"key":"0x00000000","ty":2}},"name":"latest_identity_no"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x793e0339","ty":7}},"name":"rpc_urls"},{"layout":{"enum":{"dispatchKey":"0x793e0339","name":"AccountType","variants":{"0":{"fields":[],"name":"AccountId32"},"1":{"fields":[],"name":"AccountKey20"}}}},"name":"account_type"}],"name":"ChainInfo"}},"root_key":"0x793e0339"}},"name":"chain_info_of"},{"layout":{"leaf":{"key":"0x00000000","ty":9}},"name":"chain_ids"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"admin"}],"name":"Identity"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"u8"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":4}}}},{"id":7,"type":{"def":{"sequence":{"type":8}}}},{"id":8,"type":{"def":{"primitive":"str"}}},{"id":9,"type":{"def":{"sequence":{"type":2}}}},{"id":10,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":12}],"path":["Result"]}},{"id":11,"type":{"def":{"tuple":[]}}},{"id":12,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":13,"type":{"def":{"sequence":{"type":14}}}},{"id":14,"type":{"def":{"composite":{"fields":[{"name":"rpc_urls","type":7,"typeName":"Vec"},{"name":"account_type","type":15,"typeName":"AccountType"}]}},"path":["common","types","ChainInfo"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AccountId32"},{"index":1,"name":"AccountKey20"}]}},"path":["common","types","AccountType"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":12}],"path":["Result"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":18}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":18}],"path":["Option"]}},{"id":18,"type":{"def":{"composite":{"fields":[{"name":"addresses","type":0,"typeName":"Vec<(ChainId, EncryptedAddress)>"}]}},"path":["identity","types","IdentityInfo"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":12}],"path":["Result"]}},{"id":20,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":5}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":5}],"path":["Option"]}},{"id":21,"type":{"def":{"variant":{"variants":[{"fields":[{"type":22}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":22},{"name":"E","type":12}],"path":["Result"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":2}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":2}],"path":["Option"]}},{"id":23,"type":{"def":{"variant":{"variants":[{"fields":[{"type":24}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":24},{"name":"E","type":12}],"path":["Result"]}},{"id":24,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":14}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":14}],"path":["Option"]}},{"id":25,"type":{"def":{"variant":{"variants":[{"fields":[{"type":26}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":26},{"name":"E","type":12}],"path":["Result"]}},{"id":26,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":27}],"path":["Result"]}},{"id":27,"type":{"def":{"variant":{"variants":[{"index":0,"name":"NotAllowed"},{"index":1,"name":"IdentityDoesntExist"},{"index":2,"name":"AddressAlreadyAdded"},{"index":3,"name":"InvalidChain"},{"index":4,"name":"AddressSizeExceeded"},{"index":5,"name":"ChainNameTooLong"},{"index":6,"name":"ChainRpcUrlTooLong"},{"index":7,"name":"AlreadyIdentityOwner"}]}},"path":["identity","Error"]}},{"id":28,"type":{"def":{"variant":{"variants":[{"fields":[{"type":29}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":29},{"name":"E","type":12}],"path":["Result"]}},{"id":29,"type":{"def":{"sequence":{"type":30}}}},{"id":30,"type":{"def":{"tuple":[2,14]}}},{"id":31,"type":{"def":{"variant":{"variants":[{"fields":[{"type":32}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":32},{"name":"E","type":12}],"path":["Result"]}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":27}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"fields":[{"type":34}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":34},{"name":"E","type":12}],"path":["Result"]}},{"id":34,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":27}],"path":["Result"]}},{"id":35,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":8}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":8}],"path":["Option"]}},{"id":36,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":15}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":15}],"path":["Option"]}},{"id":37,"type":{"def":{"primitive":"u128"}}},{"id":38,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":39,"type":{"def":{"primitive":"u64"}}},{"id":40,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file +export const ContractFile = `{"source":{"hash":"0xc7402ca146e15a8af6f26d54e708211c4bbdb8adb69f3abce4359bbd59bd0681","language":"ink! 4.2.0","compiler":"rustc 1.68.0-nightly","wasm":"0x0061736d01000000014e0d60027f7f0060037f7f7f017f60037f7f7f0060027f7f017f60017f0060047f7f7f7f0060057f7f7f7f7f0060047f7f7f7f017f60000060017f017f60017f017e6000017f60067f7f7f7f7f7f0002dd010b057365616c310b6765745f73746f726167650007057365616c301176616c75655f7472616e736665727265640000057365616c3005696e7075740000057365616c300663616c6c65720000057365616c300d64656275675f6d6573736167650003057365616c300f686173685f626c616b65325f3235360002057365616c300d6465706f7369745f6576656e740005057365616c320b7365745f73746f726167650007057365616c310d636c6561725f73746f726167650003057365616c300b7365616c5f72657475726e000203656e76066d656d6f72790201021003920190010101000000010601050206020000000002000000040300000000000000000202020402060400040000000204060b0002000002050004080400000004000400040004020902040302020000000502020000090000040200000202020800080204000008000203030803010102030305020304030a0605030306070507060303020101060507050303030305050c020505040501700110100608017f01418080040b0711020463616c6c006c066465706c6f790071091b010041010b0f1f88018701507a93017c900191017b74767792017d0a8c850290012b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001100e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a4104100f450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a4102100f0d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220141808004492103200141027621010b2000200136020420002003360200200241206a24000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110112201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4801027f230041106b220224002002410036020c024020012002410c6a41041011450440200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6601027f230041106b2203240020002f01042104200041003a0004027f20044101710440200120044108763a00002000280200200341086a200120024101418c810410102003280208200328020c10110c010b20002802002001200210110b200341106a24000b4a01017f230041106b2205240020022003490440200320022004104e000b200541086a2003200220011012200528020c21012000200528020836020020002001360204200541106a24000b6201047f230041106b22032400200028020422042002492205450440200341086a4100200220002802002206109501200120022003280208200328020c41bcb504102d2003200220042006109501200020032903003702000b200341106a240020050b1500200020012002200341fcae04418080041096010b5001017f230041206b220324002003410c6a4101360200200341146a4100360200200341b4af04360210200341003602002003200136021c200320003602182003200341186a360208200320021020000b4b01017f230041106b22052400200120034d0440200541086a4100200120021012200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000b0f00200020012002419c9f041098010bb00101067f230041206b22022400024002402001280204220320012802082205470440200241086a410472210403402001200341046a2206360204200420032802002203101720022d001822074102470d02200622032005470d000b0b200041023a00100c010b200020022f00193b001120002004290200370204200041136a2002411b6a2d00003a00002000410c6a200441086a280200360200200020073a0010200020033602000b200241206a24000bfc0301067f230041e0006b220224002002410036023820024280800137024c20024184b60436024841b986f8c907200241c8006a2205101920012005101920022002290348370330200241106a200241306a2002280250101a2002280214210320022802102002280230210120022002280234220736024820032001200510002103200241086a20022802482001200741a4870410140240024002400240410c20032003410c4f1b0e0401000002000b200241d4006a4101360200200241dc006a4100360200200241b48804360250200241b4af0436025820024100360248200241c8006a41bc88041020000b200228020821012002200228020c36024420022001360240200241c8006a200241406b102320022d0054220141024704402002411e6a200241d7006a2d00003a000020022002290049370320200220022f00553b011c2002200241d0006a28000036002720022d004821040c020b200241003a0020200241d4006a4101360200200241dc006a410136020020024190820436025020024100360248200241013602342002200241306a3602582002200241206a360230200241c8006a418083041020000b410221010b200020043a000020002002290320370001200020013a000c200020022f011c3b000d200041086a20022800273600002000410f6a2002411e6a2d00003a0000200241e0006a24000b9f0401067f230041f0006b220224002002410036022820024280800137025c20024184b60436025841bbc0f9ea07200241d8006a2205101920012005101920022002290358370320200241186a200241206a2002280260101a200228021c210320022802182002280220210120022002280224220736025820032001200510002103200241106a20022802582001200741a487041014024002400240410c20032003410c4f1b0e0400020201020b200228021421012002200228021036023020022001360234200241086a200241306a100c024020022802080d00200241386a20022802344104762203200228020c2201200120034b1b101b0240200104400340200241d8006a200241306a101c20022802602203450d02200220022802643602542002200336025020022002290358370348200241386a200241c8006a101d200141016b22010d000b0b200228023c2204450d0120022802402101200228023821030c020b200241386a101e0b200241003a0038200241e4006a4101360200200241ec006a4101360200200241908204360260200241003602582002410136024c2002200241c8006a3602682002200241386a360248200241d8006a418083041020000b200020013602082000200436020420002003360200200241f0006a24000f0b200241e4006a4101360200200241ec006a4100360200200241b48804360260200241b4af0436026820024100360258200241d8006a41bc88041020000b2601017f230041106b220224002002200036020c20012002410c6a41041034200241106a24000b4501017f2002200128020422034b044041dcaf04412341d0b1041013000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b7801037f230041106b220224000240024002402001450440410421030c010b200241086a2001104a200228020c2203450d01200228020822044100480d01200220042003103c20022802002203450d020b200041003602082000200336020420002001360200200241106a24000f0b1040000b20041041000b7401027f230041206b22022400200241086a2001100e02402002280208450440200228020c2103200241106a200110332002280214044020002003360200200020022903103702042000410c6a200241186a2802003602000c020b200041003602080c010b200041003602080b200241206a24000b6501027f200028020822022000280200460440200020021055200028020821020b200028020420024104746a22032001290200370200200341086a200141086a290200370200200241016a220145044041a08104411c418097041013000b200020013602080b11002000280200200041046a28020010480bb80401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b4101210020012802002203418fb30441062001280204220528020c22041101000d0c024020012d00184104714504402003418c9904410120041101000d0e200341ccb50441052004110100450d010c0e0b2003418a9904410220041101000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241ccb5044105108b010d0d2002418899044102108b010d0d0b200341e197044101200411010021000c0c0b20012802004182b304410d200128020428020c11010021000c0b0b200128020041f4b204410e200128020428020c11010021000c0a0b200128020041e9b204410b200128020428020c11010021000c090b200128020041cfb204411a200128020428020c11010021000c080b200128020041c1b204410e200128020428020c11010021000c070b200128020041b1b2044110200128020428020c11010021000c060b200128020041a5b204410c200128020428020c11010021000c050b2001280200419ab204410b200128020428020c11010021000c040b20012802004193b2044107200128020428020c11010021000c030b20012802004184b204410f200128020428020c11010021000c020b200128020041f3b1044111200128020428020c11010021000c010b200128020041e0b1044113200128020428020c11010021000b200241106a240020000be10201017f230041206b22022400200241013a00182002200136021420022000360210200241c0980436020c200241b4af04360208230041406a220124002001200241086a36020c2001410636022420012001410c6a36022041002100410421020240024002400240024003402000200020024180b0046a2802006a22004b0d01200241086a22024114470d000b2001200041104f047f200020006a22024100200020024d1b0541000b105920014100360218200120012903003703102001410136023c2001410236023420014180b004360230200141003602282001200141206a360238200141106a200141286a10720d014184b6052d00004504404185b6052d00004101710d050b410c20012802142001280218100422002000410c4f1b4109470d020c030b41f09004411c41a0ac041013000b41c094044133200141286a41b4910441f095041036000b4184b60541013a00000b4185b60541013a00000b000be00301067f230041f0006b220224002002413c6a200141186a290000370200200241346a200141106a2900003702002002412c6a200141086a290000370200200241e88104360220200220012900003702242002410036025020024280800137025c20024184b60436025841b1d9d9e607200241d8006a22051019200241206a4104722005102220022002290358370348200241186a200241c8006a2002280260101a200228021c21032002280218200228024821012002200228024c220736025820032001200510002103200241106a20022802582001200741a48704101402402000027f024002400240410c20032003410c4f1b0e0402000001000b200241e4006a4101360200200241ec006a4100360200200241b48804360260200241b4af0436026820024100360258200241d8006a41bc88041020000b41000c010b20022802142101200220022802103602582002200136025c200241086a200241d8006a100e20022802080d0141012104200228020c0b36020420002004360200200241f0006a24000f0b200241003a0057200241e4006a4101360200200241ec006a4101360200200241908204360260200241003602582002410136024c2002200241c8006a3602682002200241d7006a360248200241d8006a418083041020000b0a0020012000412010340b970302057f017e230041f0006b22022400200241186a2001100c0240024002400240024020022802180d0002402001280204410c6e2203200228021c220520032005491b2206450440410421030c010b200241106a2006104620022802142203450d04200228021022044100480d04200241086a20042003103c20022802082203450d050b410021042002410036024820022003360244200220063602400240200504400340200241e0006a2001105a20022802642203450d02200220022802683602582002200336025420022002280260360250200241406b200241d0006a1054200541016b22050d000b2002280248210420022802402106200228024421030b2003450d012002200436023820022003360234200220063602302001105b41ff017122014102460d02200241286a200241386a2802002203360200200220022903302207370320200041086a200336020020002007370200200020013a000c0c030b200241406b10450b200041023a000c0c010b200041023a000c200241306a10450b200241f0006a24000f0b1040000b20041041000bfb0102047f017e230041e0006b22022400200241346a200041186a2900003702002002412c6a200041106a290000370200200241246a200041086a290000370200200241e881043602182002200029000037021c2002410036024820024280800137025420024184b60436025041b1d9d9e607200241d0006a22031019200241186a4104722003102220022002290350370340200241106a200241406b22042002280258101a20022802142100200228021020022903402106200241003602582002200637035020012003101920022002290350370340200241086a20042002280258101a20002002280208200228020c10071a200241e0006a24000bac0102047f017e230041306b220224002002410036021820024280800137022420024184b60436022041b986f8c907200241206a2203101920002003101920022002290320370310200241086a200241106a22042002280228101a200228020c2100200228020820022903102106200241003602282002200637032020012003102620022002290320370310200220042002280228101a20002002280200200228020410071a200241306a24000b1f00200041046a280200200041086a28020020011051200120002d000c10310b0c0041dc81042000200110280ba80102037f017e230041306b220324002003410036021820034280800137022420034184b6043602202000200341206a2204105320012004101920032003290320370310200341086a200341106a22052003280228101a200328020c2100200328020820032903102106200341003602282003200637032020022004102220032003290320370310200320052003280228101a20002003280200200328020410071a200341306a24000bae0102047f017e230041306b220324002003410036021820034280800137022420034184b60436022041bbc0f9ea07200341206a2204101920002004101920032003290320370310200341086a200341106a22052003280228101a200328020c21002003280208200329031021072003410036022820032007370320200120022004102a20032003290320370310200320052003280228101a20002003280200200328020410071a200341306a24000b430020012002102f20010440200020014104746a21010340200028020020021019200041086a2802002000410c6a28020020021052200041106a22002001470d000b0b0bb20101017f230041d0006b22012400200141246a200041186a2900003702002001411c6a200041106a290000370200200141146a200041086a290000370200200141e881043602082001200029000037020c2001410036023820014280800137024420014184b60436024041b1d9d9e607200141406b22001019200141086a41047220001022200120012903403703302001200141306a2001280248101a2001280200200128020410081a200141d0006a24000bcf0101077f230041306b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341286a22074200370300200341206a22084200370300200341186a220942003703002003420037031020012002200341106a1005200420072903003700002005200829030037000020062009290300370000200020032903103700000c010b200341086a2002200041204180840410142003280208200328020c2001200241908404102d0b200341306a24000b85010020012003460440200020022001100a1a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4105360200200041a0a20436021020004100360208200041053602242000200041206a360218200020003602282000200041046a360220200041086a20041020000b7701047f230041206b22012400200141086a2000280200220320002802042000280208220241cc8804101020014100360218200120012903083703104102200141106a102f2002200220012802186a22044b044041a08104411c41dc88041013000b2000200336020020002004360208200141206a24000b7401017f230041106b2202240002402000413f4d04402001200041027410310c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210340c010b200041ffffffff034d04402000410274410272200110190c010b2001410310312000200110190b200241106a24000b08002000410110310b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b2002200341b0b104106e000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101145044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b7e01037f230041106b22022400200241086a2001100c024020022802084504400240200228020c220320012802044b0d0020022003105c20022802002104200120022802042201200310110d002000200336020820002001360204200020043602000c020b200041003602040c010b200041003602040b200241106a24000b7a01047f230041106b2203240002402000280208220520026a220420054f04402004200028020422064b0d01200341086a2005200420002802001094012003280208200328020c2001200241a0b104102d20002004360208200341106a24000f0b41c0af04411c4180b1041013000b200420064190b1041015000ba70101017f230041306b220124002001418080013602004184b6042001100320014180800136022c20014184b6043602282001200141286a103220012d00000440200141003a000041b4870441c100200141d4840441f887041036000b20002001290102370001200041096a2001410a6a290100370000200041116a200141126a290100370000200041186a200141196a290000370000200020012d00013a0000200141306a24000b860101017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a41023602002005412c6a41023602002005413c6a4102360200200541f4980436022020054100360218200541033602342005200541306a3602282005200541106a3602382005200541086a360230200541186a20041020000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b910101017f230041d0006b22022400200241086a41dc81042001106820022d00084102460440200220022d00093a002f2002413c6a4101360200200241c4006a4101360200200241908204360238200241003602302002410136024c2002200241c8006a36024020022002412f6a360248200241306a418083041020000b2000200241086a4121100a1a200241d0006a24000b4c01037f230041106b22032400200341086a200241001057200328020821042000200328020c220536020420002004360200200520012002410274100a1a20002002360208200341106a24000b2000230041106b2201240020000440200141086a200010430b200141106a24000b0b002000200141141097010b3901017f230041106b22032400200341086a2001200241001056200328020c21012000200328020836020020002001360204200341106a24000b890301077f230041106b220524002000027f0240027f02400240200204400240200141004e044020032802080d0120052001200210792005280200210420052802040c050b200041086a41003602000c050b20032802042209450440200541086a20012002107920052802082104200528020c0c040b200120026a41016b410020026b7122082001490d01200141fcb504280200220620086a22072006490d031a2003280200210a4180b6042802002007490440200841ffff036a22032008490d032003411076220740002203417f46200341ffff0371200347720d032003411074220620074110746a22032006490d034180b60420033602002001200620086a22072006490d041a0b41fcb504200736020020012006450d031a2006200a2009100a210420010c030b20002001360204200041086a41003602000c030b41e0ae04411c41c4ae041013000b20010b21072004044020002004360204200041086a200736020041000c020b20002001360204200041086a20023602000b41010b360200200541106a24000b1f00024020014181808080784704402001450d0120001041000b0f0b1040000b140020002d00104102470440200041046a10450b0b4601017f230041206b22002400200041146a41013602002000411c6a4100360200200041e89204360210200041b4af0436021820004100360208200041086a41f092041020000b5f01017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141a09404360218200141003602102001410536022c2001200141286a36022020012001410c6a360228200141106a41b094041020000b6401017f230041306b22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a102120002002290308370300200241306a24000b0b002000200141041097010b25002001044020014104742101034020001045200041106a2100200141106b22010d000b0b0b2701017f230041106b22012400200028020022000440200141086a200010460b200141106a24000b0b0020002001410c1097010b2101017f200041046a2201280200200028020810442000280200200128020010480b2000230041106b2201240020000440200141086a2000104a0b200141106a24000b110020002d000c4102470440200010450b0b0b002000200141101097010b0e002000280200200028020c10480b5201017e0240200241fcffffff0720016e4b0440410021010c010b2001ad2002ad7e22034220885004402003a72102410421010c010b41a08404412141c484041013000b20002001360204200020023602000b1b002000418180014f0440200041808001418888041015000b20000b0f0020002001200241fc9e041098010b5201017f230041206b220124002001410c6a4101360200200141146a4101360200200141c0ac04360208200141003602002001410436021c200120003602182001200141186a360210200141e48e041020000b920101017f230041306b22022400200241146a41013602002002411c6a4101360200200241c0ac043602102002410036020820024103360224200220002d0000410274220041d4b5046a28020036022c2002200041e8b5046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a108a01200241306a24000b4101017f20012002102f200104402001410c6c2103200041086a21010340200141046b2802002001280200200210522001410c6a21012003410c6b22030d000b0b0b100020012002102f20022000200110340b0b002000280200200110190bd20201067f200028020822032000280200460440230041306b2202240002400240027f4100200341016a2203450d001a2000280200220420046a22052004490d01200241086a41042005200320032005491b2203200341044d1b22051046200228020c210320022802082106024020040440200041046a280200210720022004104620022007360220200220022903003702240c010b200241003602280b200241106a20062003200241206a103d20022802104504402002280214210320002005360200200041046a20033602004181808080780c010b20022802142103200241186a2802000b210420032004103e200241306a24000c010b41a08404412141c492041013000b200028020821030b20002802042003410c6c6a22022001290200370200200241086a200141086a280200360200200341016a220145044041a08104411c418097041013000b200020013602080bf30101057f230041306b220224000240027f4100200141016a2201450d001a2000280200220320036a22042003490d01200241086a41042004200120012004491b2201200141044d1b2204104a200228020c210120022802082105024020030440200041046a280200210620022003104a20022006360220200220022903003702240c010b200241003602280b200241106a20052001200241206a103d20022802104504402002280214210120002004360200200041046a20013602004181808080780c010b20022802142101200241186a2802000b210320012003103e200241306a24000f0b41a08404412141c492041013000bf40101027f02402001450d00200120026a41016b410020026b712205200149210241fcb50428020021040240024002400240200345044020020d020c010b20020d020b41002102200420056a22032004490d034180b6042802002003490440200541ffff036a22022005490d032002411076220340002202417f46200241ffff0371200247720d032002411074220420034110746a22032004490d03410021024180b6042003360200200420056a22032004490d040b41fcb5042003360200200421020c030b41e0ae04411c41c4ae041013000b41e0ae04411c41c4ae041013000b410021020b20002001360204200020023602000b8c0101037f230041206b2203240002402001450440410421020c010b200341186a200110430240200328021c2205450d00200328021822044100480d00027f2002450440200341106a20042005103c20032802100c010b200341086a200420054101105620032802080b22020d0120041041000b1040000b2000200236020420002001360200200341206a24000bed0101087f230041106b2206240020002002101b20002802002205200028020822034f044002402002452003200546720d00200120024104746a2108200028020420034104746a2104200320056b41016a21030340200141086a280200210720012802002109200641086a2001410c6a280200220510592006280208210a200628020c20072005100a21072004410c6a2005360200200441086a2007360200200441046a200a360200200420093602002003450d01200341016a2103200441106a2104200141106a22012008470d000b0b20002002360208200641106a24000f0b41808004412141a886041013000b3501017f230041106b22022400200241086a2001105c200228020c21012000200228020836020020002001360204200241106a24000bc60501097f230041106b2205240020052001103302402005280204220404402005280200210a024020052802082203450d00200341076b22014100200120034d1b2108200441036a417c7120046b2109034002400240024002400240024002400240200220046a2d00002206411874411875220741004e0440200920026b4103712009417f46720d0220022008490d010c060b02400240200641d4a7046a2d000041026b0e03040100060b200241016a220120034f0d05200120046a2c000021010240024002400240200641f0016b0e050100000002000b2007410f6a41ff017141024b200141004e720d0820014140490d020c080b200141f0006a41ff01714130490d010c070b2001418f7f4a0d060b200241026a220120034f0d05200120046a2c000041bf7f4a0d05200241036a220120034f0d05200120046a2c000041bf7f4c0d040c050b200241016a220120034f0d04200120046a2c00002101024002400240200641e001470440200641ed01460d012007411f6a41ff0171410c490d022007417e71416e47200141004e720d0820014140490d030c080b200141607141a07f460d020c070b200141a07f480d010c060b200141bf7f4a0d050b200241026a220120034f0d04200120046a2c000041bf7f4c0d030c040b0340200220046a2201280200200141046a28020072418081828478710d052002200241086a22014d04402008200122024d0d070c010b0b41a09704411c41c4a7041013000b200241016a21020c050b200241016a220120034f0d01200120046a2c000041bf7f4a0d010b200141016a21020c030b200041003602040c060b200221010b200120034f0d0220012003200120034b1b21020340200120046a2c00004100480440200121020c020b2002200141016a2201470d000b0c020b20022003490d000b0b20002003360208200020043602042000200a3602000c010b200041003602040b200541106a24000b4201027f230041106b22012400200141086a2000100d20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b5b01027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20012001417f73411f761079200228020822030d0120011041000b1040000b2000200336020420002001360200200241106a24000b9d0101047f230041106b22022400200241086a2001100c0240024020022802084504400240200228020c220341ffffffff03712003470d002003410274220520012802044b0d0020022003410110572002280200210420012002280204220120051011450d0220042001103a0b200041003602040c020b200041003602040c010b2000200336020820002001360204200020043602000b200241106a24000bec1202047f017e230041c0016b22012400200141386a20004128100a1a02400240024002400240024002400240024002400240200128023841016b0e080102030405060708000b2001428080013702940120014184b6043602900120014190016a2202102e200141b8016a20014198016a28020036020020012001290390013703b001200141f0006a2200200141b0016a220441d48904105f20014180016a22032000106020012903800121052001410036029801200120053703900141e08904412020021052200141386a41047220021022200120012903900137038001200141106a2003200128029801101a200220012802102001280214102c200141086a2001280270220320012802742001280278220041cc88041010200141003602b801200120012903083703b0012002200410222000200020012802b8016a22004b0d09200141e8006a2000360200200120033602702001200129037037036020014190016a200141e0006a10610c080b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341988a0410622001200141386a4104723602b801200141233602b401200141a48a043602b00120014180016a22022000200310632000200210610c070b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341e08a0410642001200141386a4104723602b801200141253602b401200141ec8a043602b00120014180016a22022000200310632000200210610c060b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341ac8b0410642001200141386a4104723602b801200141253602b401200141b88b043602b00120014180016a22022000200310632000200210610c050b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341f88b04105f2001200141386a4104723602b801200141263602b401200141848c043602b00120014180016a22022000200310632000200210610c040b2001428080013702940120014184b6043602900120014190016a2202102e200141f8006a220020014198016a280200360200200120012903900137037020014180016a2203200141f0006a106020012903800121052001410036029801200120053703900141b4af04410020021052200241aa8c0441141034200120012903900137038001200141206a2003200128029801101a200220012802202001280224102c200141186a2001280270220320012802742000280200220041cc88041010200141003602b801200120012903183703b0012002200141b0016a10222000200020012802b8016a22004b0d04200141e8006a200036020020012003360270200120012903703703602001200141386a4104723602b8012001411e3602b401200141be8c043602b00120014180016a2200200141e0006a200141b0016a106320014190016a200010610c030b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341f48c0410622001200141386a4104723602b801200141203602b401200141808d043602b00120014180016a22022000200310632000200210610c020b2001428080013702940120014184b6043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341b88d0410622001200141386a4104723602b801200141203602b401200141c48d043602b00120014180016a22022000200310632000200210610c010b2001428080013702940120014184b6043602900120014190016a2202102e200141f8006a220020014198016a280200360200200120012903900137037020014180016a2203200141f0006a106020012903800121052001410036029801200120053703900141b4af04410020021052200241e48d04411c1034200120012903900137038001200141306a2003200128029801101a200220012802302001280234102c200141286a2001280270220320012802742000280200220041cc88041010200141003602b801200120012903283703b0012002200141b0016a10222000200020012802b8016a22004b0d01200141e8006a200036020020012003360270200120012903703703602001200141386a4104723602b801200141293602b401200141808e043602b00120014180016a2200200141e0006a200141b0016a106320014190016a200010610b200141b8016a20014198016a280200360200200120012903900122053703b001200141a0016a2802002100200128029c01200141003602980120012005370390010240024002400240024002400240024002400240200128023841016b0e080102030405060708000b20014190016a220241001031200141386a41047220021022200141dc006a280200200210190c080b20014190016a220241011031200128023c20021019200141406b28020020021019200141c8006a280200200141cc006a280200200210520c070b20014190016a220241021031200128023c20021019200141406b28020020021019200141c8006a280200200141cc006a280200200210520c060b20014190016a220241031031200128023c20021019200141406b280200200210190c050b20014190016a220241041031200128023c200210190c040b20014190016a220241051031200128023c20021019200141c4006a280200200141c8006a280200200210512002200141cc006a2d000010310c030b20014190016a220241061031200128023c20021019200141c4006a280200200141c8006a280200200210512002200141cc006a2d000010310c020b20014190016a220241071031200128023c200210190c010b20014190016a220241081031200128023c20021019200141406b200210220b20012001290390013703b0012001200141b0016a200128029801101a2000200128020020012802041006024002400240200128023841056b0e020001020b200141406b10450c010b200141406b10450b200141c0016a24000f0b41a08104411c41dc88041013000b0d0020002001200241191099010b5301037f230041106b2202240020012802082203200128020422044b04402003200441c0b104104e000b200241086a2003200420012802001094012000200229030837020020004100360208200241106a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101a20022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b0d0020002001200241161099010bf90102037f017e230041d0006b22032400200341106a22052001106020032903102106200341003602282003200637032020022802002002280204200341206a2204105220022802082802002004101920032003290320370310200341086a20052003280228101a20042003280208200328020c102c20032001280200220520012802042001280208220241cc8804101020034100360248200320032903003703402004200341406b10222002200220032802486a22044b044041a08104411c41dc88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b0d0020002001200241181099010b3501017f230041106b2200240020004280800137020420004184b6043602002000410110312000103041012000280208104d106b000b4c01017f230041106b2202240020024280800137020420024184b6043602002002410010312002200141ff0171410847047f20024101103120010541000b103120002002280208104d106b000b3701017f230041106b2200240020004280800137020420004184b60436020020004100103120004100103141002000280208104d106b000beb0201047f230041d0006b220324002003410036021820034280800137022420034184b6043602202001200341206a2204105320022004101920032003290320370310200341086a200341106a2003280228101a200328020c210220032802082003280210210120032003280214220636022020022001200410002102200320032802202001200641a4870410140240024002400240410c20022002410c4f1b0e0402010100010b200041003a00000c020b2003412c6a4101360200200341346a4100360200200341b48804360228200341b4af0436023020034100360220200341206a41bc88041020000b200328020021012003200328020436024c20032001360248200341206a200341c8006a103220032d00200440200041023b00000c010b20002003290021370001200041196a200341396a290000370000200041116a200341316a290000370000200041096a200341296a290000370000200041013a00000b200341d0006a24000bf30102067f017e230041306b220124002001410036021820014280800137022420014184b6043602204100200141206a2202101920012001290320370310200141086a200141106a2001280228101a200128020c21042001280208200129031021072001410036022820012007370320200028020020021019200041086a28020021062000410c6a28020022032002102f200341ffffffff0371200347044041a08404412141c885041013000b200141206a2202200620034102741034200041106a20021022200120012903203703102001200141106a2001280228101a20042001280200200128020410071a200141306a24000b6601017f230041306b220224002002410036021820024280800137022420024184b6043602202000200241206a2200105320012000101920022002290320370310200241086a200241106a2002280228101a2002280208200228020c10081a200241306a24000b0d0020004184b60420011009000bcf4e02127f027e230041c0036b220024000240024002400240024002400240024002400240024002400240024002400240027f0240103741ff017141054604402000418080013602a0024184b604200041a0026a22011002200041d0016a20002802a0024184b6044180800141a487041014200020002903d00137039003200041003602a00220004190036a2001410410110d0e20002802a002220141187621042001411076210320014108762102027f0240024002400240024002400240024002400240024002400240024002400240200141ff0171220141d9006b0e03011f09000b20014108460d0520014110460d0a2001411c460d06200141d200460d01200141f100470440200141fd00460d082001418901460d042001419901470440200141a501460d04200141cb01470440200141d301460d0c200141dc01460d07200141fb0147200241ff01714189014772200341ff0171413647200441e4004772720d2141060c120b200241ff017141fe0147200341ff017141fb014772200441ec0147720d20200041f0006a20004190036a100e20002802700d202000280274220d410876210641000c110b200241ff017141f20047200341ff0171410c47722004411e47720d1f200041f8006a20004190036a100e20002802780d1f200028027c220d410876210641010c100b200241ff01712201413c460d0e200141cc0147200341ff017141f90047722004418d0147720d1e200041a0026a20004190036a101c20002802a802220e450d1e20002f00a10220002d00a30241107472210620002802ac02210820002802a402210420002d00a002210d41070c0f0b200241ff017141d80147200341ff017141c7004772200441e90147720d1d20004180016a20004190036a100e2000280280010d1d200028028401220d410876210641030c0e0b200241ff017141d50047200341ff017141054772200441e40147720d1c20004190016a20004190036a100e2000280290010d1c200028029401210d20004188016a20004190036a100e2000280288010d1c200028028c012104200d410876210641040c0d0b200241ff017141cf0147200341ff0171412447722004413e47720d1b41050c0c0b200241ff0171412f47200341ff017141f5004772200441e40147720d1a200041a0026a20004190036a101c20002802a802220e450d1a20002f00a10220002d00a30241107472210620002802ac02210820002802a402210420002d00a002210d41080c0b0b200241ff017141a70147200341ff017141a60147722004410f47720d1920004198016a20004190036a100e2000280298010d19200028029c01220d410876210641090c0a0b200241ff0171410247200341ff017141e7004772200441c00047720d18410a0c090b200241ff017141d00147200341ff01714196014772200441f60047720d17200041a0016a20004190036a100e20002802a0010d1720002802a401210d200041a0026a20004190036a102320002d00ac0222054102460d17200041f2026a200041af026a2d00003a0000200020002f00ad023b01f002200d410876210620002802a802210820002802a402210e20002802a0022104410b0c080b2004200241ff017141de0047200341ff017141ea014772720d16200041b8016a20004190036a100e20002802b8010d1620002802bc01210d200041b0016a20004190036a100d20002d00b0014101710d1620002d00b1010e020504160b200241ff0171412347200341ff017141980147722004410f47720d15200041c0016a20004190036a100e20002802c0010d1520002802c401220d4108762106410d0c060b200241ff017141b90147200341ff0171413447720d1420044103460d010c140b200241ff017141fe0047200341ff017141334772200441ea0147720d13200041c8016a20004190036a100e20002802c8010d1320002802cc01210d200041a0026a20004190036a103220002d00a0020d13200041f2026a200041b0026a2d00003a0000200041f8016a200041b9026a2900003703002000200041ae026a2f01003b01f0022000200041b1026a2900003703f001200d4108762106200041ad026a2d00002105200041a9026a280000210820002800a502210e20002800a1022104410f0c040b200041a0026a20004190036a103220002d00a0020d12200041f2026a200041b7026a2d00003a0000200041f8016a200041c0026a2d00003a00002000200041b5026a2f00003b01f0022000200041b8026a2903003703f00120002802a402220d4108762106200041b4026a2d00002105200041b0026a2802002108200041ac026a280200210e200041a8026a280200210420002f01a202211120002d00a102210a410e0c030b200041a0026a20004190036a105a20002802a402220e450d1120002802a802210820002802a00221040b200041a8016a20004190036a100d20002d00a8014101710d10410221050240024020002d00a9010e020100120b20004190036a105b41ff017122014102460d11200141017121050b200d4108762106410c0c010b200341ff017141a201472004413247720d0f200041a0026a20004190036a103220002d00a0020d0f200041f2026a200041b7026a2d00003a0000200041f8016a200041c0026a2d00003a00002000200041b5026a2f00003b01f0022000200041b8026a2903003703f00120002802a402220d4108762106200041b4026a2d00002105200041b0026a2802002108200041ac026a280200210e200041a8026a280200210420002f01a202211120002d00a102210a41020b210c200041ee016a200041f2026a2d00003a0000200041e0016a200041f8016a290300370300200020002f01f0023b01ec01200020002903f0013703d80120004100360298032000428080013702a40220004184b6043602a0024100200041a0026a22071019200020002903a00237039003200041e8006a20004190036a20002802a802101a200028026c21032000280268200028029003210f200020002802940322013602a0022003200f200710002102200041e0006a20002802a002200f200141a4870410140240024002400240410c20022002410c4f1b0e0400030301030b20002802642101200020002802603602f002200020013602f402200041d8006a200041f0026a100e024020002802580d00200028025c2110200041a0026a200041f0026a105d20002802a4022202450d0020002802a802210b20002802a002210f200041a0026a200041f0026a103220002d00a002450d02200f2002103a0b200041ac026a4101360200200041b4026a41003602002000419c8f043602a8020c120b200041ac026a4101360200200041b4026a4100360200200041bc8f043602a8020c110b200d41ff0171200641087472210920004198026a200041b9026a29000037030020004190026a200041b1026a29000037030020004188026a200041a9026a290000370300200020002900a102370380022000200b3602fc01200020023602f80120002010ad2212200fad422086843703f00120004180026a2107024002400240024002400240024002400240200c41016b0e0f010203040d0e050607111615141312000b20004190036a20091018200041ac026a20004198036a28020036020020002000290390033702a402200041003602a002230041106b2203240020034280800137020420034184b6043602000240200041a0026a2202280200450440200341001031200241086a28020022014504402003410010310c020b20034101103120012002410c6a2802002003102a0c010b200341011031200310300b0c1b0b20004190036a220220091038200041a0026a220141017220024121100a1a200041003a00a002230041106b2202240020024280800137020420024184b604360200024020012d000045044020024100103120012d00014504402002410010310c020b200241011031200141026a200210220c010b200241011031200210300b41002002280208104d106b000b200041b6026a200041ee016a2d00003a0000200041bf026a200041e0016a2d00003a0000200020053a00b302200020083600af022000200e3600ab02200020043600a702200020093600a302200020113b00a1022000200a3a00a002200020002f01ec013b01b402200020002903d8013700b702230041306b22022400200241286a200041a0026a220141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a1042200041086a2002290308370300200241306a240020002802082102200028020c2101230041106b2203240020034280800137020420034184b604360200200341001031024020024504402003410010310c010b2003410110312001200310190b0c190b20004190036a20091017200041a8026a20004198036a29030037030020002000290390033703a002230041106b2203240020034280800137020420034184b6043602000240200041a0026a22022d000c22014103470440200341001031200141024604402003410010310c020b2003410110312002200310260c010b200341011031200310300b0c180b200041a0026a2009101820002802a4022201450d0620002802a8022102200020002802a0023602a002200020013602ac0220002001200241047422066a22033602a802027f0240027f024020020440200041a0026a410472210b0340200020012802082202360290032002450d02200420012902002212a7460d04200141106a2101200641106b22060d000b0b200020033602a40220004190036a210b41000c010b200141106a0b2101200b2001360200410021024103210641000c010b2000200141106a3602a4022012422088a72106200128020c21012012422888a70b2104200041a0026a104b2002450c070b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220320004198036a220229030037030020002000290390033703a002200041206a200041a0026a1021410021010240027f024002402000280220450d002000280224210a200041b8026a200041a8036a290300370300200041b0026a200041a0036a2903003703002003200229030037030020002000290390033703a002200041f0026a200041a0026a106d20002d00f002210120002802f4022202450d00200020002d00f3023a00d302200020002f00f1023b00d102200020002802f8023602d802200020023602d402200020013a00d002200041186a200810592000280218210c200028021c200e2008100a21074104210120084180014d0440200041f0026a20002802d40220002802d8021058200020002802f40222013602ac02200020002802f0023602a0022000200120002802f802220241047422066a22033602a802024020020440200041a0026a410472210503402000200128020822023602f0022002450d0520012802002009460d02200141106a2101200641106b22060d000b0b200020033602a402200041f0026a210541000c040b2000200141106a3602a402200041a0026a104b410221010b200041d0026a101e0b41012102200141ff01714108460d020c180b200141106a0b210120052001360200200041a0026a220f104b200041ac026a22032008360200200041a8026a220220073602002000200c3602a402200020093602a002200041d0026a2201200f101d200a20002802d40220002802d8021029200041b4026a2008360200200041b0026a200e36020020032004360200200220093602002000200a3602a402200041013602a002200f105e2001101e0b200041a0026a2201200041f0016a4130100a1a2001106941082101410021020c150b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220320004198036a220229030037030020002000290390033703a002200041306a200041a0026a10214100210102402000280230450d002000280234210d200041b8026a200041a8036a290300370300200041b0026a200041a0036a2903003703002003200229030037030020002000290390033703a002200041f0026a200041a0026a106d20002d00f002210120002802f4022205450d00200020002d00f3023a00d302200020002f00f1023b00d102200020002802f80222103602d802200020053602d402200020013a00d002200041286a200810592000280228210f200028022c200e2008100a210c024020084180014d0440200041f0026a20002802d402220720002802d80222031058200020002802f402220a3602ac02200020002802f0023602a0022000200a20002802f802220141047422026a22113602a802027f024002402001450d00410021014100210b03402001200a6a220641086a280200044020062802002009460d03200b41016a210b2002200141106a2201470d010c020b0b200641106a21110b200020113602a4024100210641030c010b2000200641106a3602a402200b20104f0d05200120056a220120093602002001410c6a2008360200200141086a200c360200200141046a200f3602004101210641080b2101200041a0026a104b2006450d01200d200720031029200041b4026a2008360200200041b0026a200e360200200041ac026a2004360200200041a8026a20093602002000200d3602a402200041023602a002200041a0026a105e200041d0026a101e0c130b410421010b200041d0026a101e0b41012102200141ff01714108460d100c140b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220220004198036a220129030037030020002000290390033703a002200041386a200041a0026a10212000280238047f200028023c2107200041b8026a200041a8036a290300370300200041b0026a200041a0036a2903003703002002200129030037030020002000290390033703a002200041f0026a200041a0026a106d20002d00f002210120002802f4022202450d08200020002d00f3023a00d302200020002f00f1023b00d102200020023602d402200020013a00d002024020002802f802220c044041002106200221010340200920012802004604404101210b200641016a220104402001200c470440034002402009200220014104746a2204280200460440200141016a2201450d1c200b41016a220b0d0141a08104411c41e885041013000b2001200b4f044020022001200b6b4104746a22032004290200370200200341086a200441086a290200370200200141016a22010d0141a08104411c418886041013000b41808004412141f885041013000b2001200c470d000b0b0240200b4100200b200c4b1b450440200b200c4d0d0141808004412141cc81041013000b41808004412141bc81041013000b2000200c200b6b22013602d802200b450d042007200220011029200041a8026a2009360200200020073602a402200041033602a002200041a0026a105e200041d0026a101e0c0e0b0c170b200141106a2101200c200641016a2206470d000b0b2000200c3602d8020b200041d0026a101e41030541000b2101410121020c130b200b201041a88904106e000b200041ac026a4101360200200041b4026a4100360200200041b488043602a802200041b4af043602b002200041003602a002200041a0026a41bc88041020000b200041043a00a002200041a0026a104f000b41002104410121064100210241010b200041ac026a2001360200200041a8026a2002360200200041003602a0022000200641ff01712004410874723602a402230041106b2204240020044280800137020420044184b6043602000240200041a0026a2203280200450440200441001031200341086a2802002202044020044100103120022003410c6a280200200410520c020b200441011031200420032d000410310c010b200441011031200410300b2004280208104d106b000b200041a0026a211023004190016b22052400200541d8006a2203200041f0016a220441086a2802002004410c6a28020010392005280258210220052802602101200528025c210720052004360238200520073602342005200720014102746a3602302005200736022c200520023602282003200541286a101602400240024002400240024020052d006841024604402010410036020820104280808080c00037020020052802282005280234103a0c010b200541206a4104103b20052802242201450d01200528022022024100480d01200541186a20022001103c20052802182208450d02200541e0006a220f290300211320052903582112200841106a200541e8006a220c280200360200200841086a201337020020082012370200200541d0006a200541386a280200360200200541c8006a200541306a29030037030020052005290328370340200541d8006a200541406b1016024020052d0068410246044041042102410121040c010b41042101410121030340200341016a220445210a0240200120034704402008200341146c6a22022005290358370200200241106a200c280200360200200241086a200f290300370200200a0d08200121020c010b027f200a0440417f21022004210341000c010b200120016a22022001490d07200541106a410420022004200220044b1b2202200241044d1b2202103b2005280214210720052802102103200541086a2001103b20052008360280012005200529030837028401200541f0006a2003200720054180016a103d2005280270450440200528027421084181808080780c010b200528027421032001210220052802780b210720032007103e2008200141146c6a22012005290358370200200141106a200c280200360200200141086a200f290300370200200a0d070b200541d8006a200541406b1016200221012004210320052d00684102470d000b0b200541d8006a103f2005280240200528024c103a2010200436020820102008360204201020023602000b20054190016a24000c040b1040000b20021041000b41a08404412141c492041013000b41a08104411c419886041013000b20002802a402210220002802a8022101230041106b2203240020034280800137020420034184b60436020002402002044020034100103120012003102f2001450d012002200141146c6a21010340200228020020031019200241046a20031026200241146a22022001470d000b0c010b200341011031200310300b0c0e0b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220120004198036a220729030037030020002000290390033703a002200041106a200041a0026a1021200020002802102204410146047e42810e05200041003602f80220004280808080c0003703f0022010410441001029200041b8026a200041a8036a2203290300370300200041b0026a200041a0036a22022903003703002001200729030037030020002000290390033703a002200041a0026a220c20101024201020004190036a10272000201041016a2201417f20011b3602f001200041bc026a2003290300370200200041b4026a2002290300370200200041ac026a2007290300370200200041c4026a201036020020002000290390033702a402200041003602a002200c105e200041f0026a101e200c200041f0016a4130100a1a200c1069201242208642800e840b3703a0022004410146230041106b2204240020044280800137020420044184b6043602000240200041a0026a22032d00002201410247044020044100103120014504402004410010312003280204200410190c020b200441011031200420032d000110310c010b200441011031200410300b2004280208104d106b000b41012102200141ff01714108470d0b0b200041a0026a2201200041f0016a4130100a1a2001106941082101410021020c0a0b20004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a29030037030041082101200041a8026a220420004198036a220329030037030020002000290390033703a002200041406b200041a0026a1021024020002802402202450440410021010c010b20002802442107200041b8026a200041a8036a290300370300200041b0026a200041a0036a2903003703002004200329030037030020002000290390033703a002200041a0026a2203102b41dc81042007106a41e081042007106a200041043602a002200020073602a4022003105e2003200041f0016a4130100a1a200310690b20024520011066000b200041df026a200041ee016a2d00003a0000200041e8026a200041e0016a290300370300200020053a00dc02200020083602d8022000200e3602d402200020043602d002200020002f01ec013b00dd02200020002903d8013703e002200041f0026a1035200041a0026a41e481042009106820002d00a002410247044020004190036a200041a0026a4121100a1a200041b9026a20004188036a290300370000200041b1026a20004180036a290300370000200041a9026a200041f8026a290300370000200020002903f0023700a10241012106200041013a00a00220002d009003044020004190036a410172200041a0026a410172106f41017321060b200041a0026a20091038027f027f20002d00a0020440200041a8036a200041b9026a290000370300200041a0036a200041b1026a29000037030020004198036a200041a9026a290000370300200020002900a102370390034100200620004190036a200041f0026a106f410173710d011a200041b8026a200041e8026a290300370300200041b0026a200041e0026a290300370300200041a8026a200041d8026a290300370300200020002903d0023703a002200041d0006a200041a0026a1042410720002802504101460d011a200041b8026a2204200041a8036a290300370300200041b0026a2203200041a0036a29030037030041082101200041a8026a220220004198036a29030037030020002000290390033703a002200041a0026a2207102b2004200041e8026a2903003703002003200041e0026a2903003703002002200041d8026a290300370300200020002903d0023703a0022007200910242009200041d0026a10272007200041f0016a4130100a1a2007106941000c020b41000b210141010b20011066000b200020002d00a1023a00b7032000419c036a4101360200200041a4036a4101360200200041908204360298032000410036029003200041013602bc032000200041b8036a3602a0032000200041b7036a3602b80320004190036a418083041020000b20004186036a200041ee016a2d00003a0000410821012000418f036a200041e0016a2d00003a0000200020053a008303200020083600ff022000200e3600fb02200020043600f702200020093600f302200020113b00f1022000200a3a00f002200020002f01ec013b018403200020002903d8013700870320004190036a1035200041b8026a200041a8036a290300370300200041b0026a200041a0036a290300370300200041a8026a220420004198036a29030037030020002000290390033703a002200041c8006a200041a0026a1021024020002802482203450440410021010c010b41e48104200028024c2202200041f0026a1028200420002903f002370300200041b0026a200041f8026a290300370300200041b8026a20004180036a290300370300200041c0026a20004188036a290300370300200020023602a402200041083602a002200041a0026a2202105e2002200041f0016a4130100a1a200210690b20034520011066000b20004190036a2203103541002101024020032007106f0440200041f0026a2009101720002d00fc02410247044041ec81042009106a4100210d410021040240200b450d00410021062002210103402009200128020046044041012104200641016a220104402001200b470440034002402009200220014102746a2802002203460440200141016a2201450d10200441016a22040d0141a08104411c41e885041013000b200120044f04402002200120046b4102746a2003360200200141016a22010d0141a08104411c418886041013000b41808004412141f885041013000b2001200b470d000b0b200441002004200b4b1b4504402004200b4d0d0441808004412141cc81041013000b41808004412141bc81041013000b0c0b0b200141046a2101200b200641016a2206470d000b0b2000200b20046b3602fc01200041073602a002200020093602a402200041a0026a2201105e200041f0026a10492001200041f0016a4130100a1a20011069410821010c020b200041f0026a1049410321010b4101210d0b200d20011066000b20004190036a22011035027f027f410020012007106f450d001a200041a0026a2009101720002d00ac0222014102470440200041f8026a200041a8026a280000360000200041ff026a200041af026a2d00003a0000200020002900a1023700f102200020002f00ad023b00fd02200020013a00fc02200020002d00a0023a00f002024002400240200e0440200841c0004b0d01200020083602a8022000200e3602a402200020043602a002200041f0026a200041a0026a10540b200541ff01714102470d0120002d00fc0221050c020b200041f0026a104541060c030b200020053a00fc020b2009200041f0026a102541082101200041a8026a20002903f002370300200041b0026a200041f8026a280200360200200041b4026a20053a0000200020093602a402200041063602a002200041a0026a2202105e2002200041f0016a4130100a1a2002106941000c020b41030b210141010b20011066000b200041ff026a200041ee016a2d00003a0000200020053a00fc02200020083602f8022000200e3602f402200020043602f002200020002f01ec013b00fd0220004190036a2203103541002101027f024020032007106f044041062101200e200810700d010b200041f0026a104541010c010b2009200041f0026a1025200b200f460440200041f0016a410472210c230041306b220a240002400240027f4100200f41016a2202450d001a200c280200220720076a22012007490d01200a41086a410420012002200120024b1b2201200141044d1b22041043200a28020c2103200a2802082102024020070440200c41046a2802002101200a20071043200a2001360220200a200a2903003702240c010b200a41003602280b200a41106a20022003200a41206a103d200a280210450440200a2802142102200c2004360200200c41046a20023602004181808080780c010b200a2802142102200a41186a2802000b210120022001103e200a41306a24000c010b41a08404412141c492041013000b20002802fc01210b20002802f80121020b2002200b4102746a200936020020002802fc0141016a220145044041a08104411c418097041013000b200020013602fc0141082101200041a8026a20002903f002370300200041b0026a200041f8026a280200360200200041b4026a20053a0000200020093602a402200041053602a002200041a0026a2202105e2002200041f0016a4130100a1a2002106941000b20011066000b200041a0026a2201200041f0016a4130100a1a2001106941082101410021020c030b1065000b200041b4af043602b002200041003602a002200041a0026a41e48e041020000b41a08104411c41d885041013000b200220011066000b41002003280208104d106b000bb60101017f230041306b22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a1021024020022802080440200241106a200228020c10182002280214220104402000200228021836020820002001360204200020022802103602000c020b20004100360204200041013a00000c010b20004100360204200041013a00000b200241306a24000b7501017f230041306b220324002003200136020420032000360200200341146a41023602002003411c6a41023602002003412c6a410536020020034194980436021020034100360208200341053602242003200341206a360218200320033602282003200341046a360220200341086a20021020000b0b00200020014120100b450b3101027f2001410c6c210103402001220204402002410c6b210120002802082000410c6a210041c100490d010b0b2002450bad0a02147f017e230041b0016b22002400103741ff0171220141054604402000418080013602704184b604200041f0006a22011002200041206a20002802704184b6044180800141a48704101420002000290320370328200041003602700240024002400240024002400240200041286a2001410410110d002000280270220141187621032001411076210220014108762106200141ff0171220141094704402001419b0147200641ff017141ae014772200241ff0171419d0147200341de004772720d01200041d0006a1035200041c8006a420437030020004200370340200041f0006a2201200041406b4130100a1a200110691067000b200641ff0171413547200241ff017141da014772200341880147720d00200041186a200041286a100c20002802180d0041042103200028022c4104762201200028021c220520012005491b22070440200041106a2007104a20002802142203450d07200028021022014100480d07200041086a20012003103c20002802082203450d060b200041003602a801200020033602a401200020073602a00120050440200041fd006a21020340200041f0006a200041286a10230240024020002d007c22064102470440200041c8006a2201200041f8006a2802003602002000413e6a2208200241026a2d00003a000020002000290370370340200020022f00003b013c200420002802a001460d010c020b200041a0016a10470c040b200041a0016a2004105520002802a401210320002802a80121040b2001280200210a20002903402114200320044104746a220120063a000c20012014370200200141086a200a3602002001410f6a20082d00003a0000200120002f013c3b000d20002802a80141016a2204450d04200020043602a801200541016b22050d000b20002802a001210720002802a40121030b2003450d00200020043602382000200336023420002007360230200041f0006a200041286a105d2000280274220c0d01200041306a10470b1065000b20042000280278470d0220002802702110200041f0006a200c200410392003200441047422056a210a2000280274210d200028027020032101024020002802782202450d00200041406b410472210b200041d1006a210e200341106a21092002410274210f200d2108200321020340200921012005450440200a21010c020b200241106a210620022d000c22124102460440200621010c020b20082802002109200e20022f000d3b0000200e41026a2002410f6a2d00003a000020002009360240200b2002290200370200200b41086a2213200241086a280200360200200020123a0050200041a8016a201329020022143703002000200b2902003703a00120002802a4012014a71070450d03200841046a21082009200041a0016a22021025200141106a2109200541106b21052002104520062102200f41046b220f0d000b0b200041023a0050200041406b2202103f200d103a2001200a20016b4104761044200720031048200041d0006a1035200041cc006a2004360200200041c8006a200c3602002000201036024420004100360240200041f0006a220120024130100a1a200110691067000b41a08104411c418097041013000b200041fc006a410136020020004184016a4100360200200041b49004360278200041b4af043602800120004100360270200041f0006a41bc90041020000b200041fc006a410136020020004184016a4100360200200041809004360278200041b4af043602800120004100360270200041f0006a418890041020000b20011041000b1040000b200020013a0070200041f0006a104f000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41cc9004200241086a1073200241206a24000bf00301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1101000d040b200141086a2101200428020020042802042106200441086a2104200341186a2006110300450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1101000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a10890120032003290310370320200341086a2005200141046a10890120032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110300450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1101000d010b41000c010b41010b200341406b24000b0f00200028020020012002107541000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a20002003200210782004280208200428020c103e200028020821030b200028020420036a20012002100a1a2003200220036a22014b044041f09004411c419097041013000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10750c020b230041106b22042400200441086a20002003410110782004280208200428020c103e200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41f09004411c418097041013000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1072200241206a24000bdd0101027f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22052002490d0141082005200320032005491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200420032005200441106a103d20042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41909104412141c492041013000bd00101037f02402001450440200221030c010b02402001200120026a41016b410020026b7122054d044041fcb504280200220220056a22042002490d024180b6042802002004490440200541ffff036a22022005490d022002411076220340002202417f46200241ffff0371200247720d022002411074220220034110746a22042002490d02410021034180b6042004360200200220056a22042002490d030b41fcb5042004360200200221030c020b41e0ae04411c41c4ae041013000b410021030b20002001360204200020033602000be106020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e2206410174418b9a046a2f00003b0000200241026b2004200641e4006c6b41ffff0371410174418b9a046a2f00003b0000200041046b2100200e42ffc1d72f56200d210e0d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff0371410174418b9a046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a2002410174418b9a046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b2102410021042005410471044041b4af042104200241b4af0441b4af0410800120026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a2802002201200720041083010d01200220082006200128020c11010021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a200720041083010d02200341106a2001200920026b410110840120032802142202418080c400460d022003280210200520082006200a28020c1101000d0220022005200a1085010d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a2802002201200720041083010d01200220082006200128020c11010021000c010b41012100200341086a2001200920026b4101108401200328020c2205418080c400460d00200328020820012802002202200141046a2802002201200720041083010d00200220082006200128020c1101000d0020052002200110850121000b200341406b240020000f0b41a09704411c41d49c041013000b41c09704412141b0ac041013000b0300010b0e0020002802001a03400c000b000b0d0042f2e7eb9187bab2c1d1000b4a01017f230041106b2205240020022003490440200320022004104e000b200541086a200320022001107f200528020c21012000200528020836020020002001360204200541106a24000b150020002001200220034198b40441c097041096010bac04010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d00200120001081012206200020016a22082004417c716a20044103711081016a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41b0a004108201200328020c21052003280208210820032003280200200328020422002000417c7141c0a104108201200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41a09704411c41c8a3041013000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441a09704411c41f8a3041013000b41a09704411c41d8a3041013000b41a09704411c41e8a3041013000b41a09704411c41b8a3041013000b2001200210810121020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41a09704411c41a0ac041013000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41dcaf04412320041013000b39000240027f2002418080c40047044041012000200220012802101103000d011a0b20030d0141000b0f0b200020034100200128020c1101000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41a09704411c41e49c041013000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110300450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110300450d000b200441016b0b2000490b4b01017f230041106b22052400200120034d0440200541086a410020012002107f200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000bed04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11010021000c020b41a09704411c4188a5041013000b200b450440200128020020032004200128020428020c11010021000c010b2001410c6a2802002200200320046a200310800122024b0440200941086a2001200020026b410010840141012100200928020c2202418080c400460d0120092802082001280200220520032004200141046a280200220128020c1101000d0120022005200110850121000c010b200128020020032004200128020428020c11010021000b200941106a240020000b140020002802002001200028020428020c1103000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044107470d0120012802000b2802002104410121030b20002004360204200020033602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1073200341206a24000be608010b7f23004190016b22032400200341003b0184012003410a3602800120034281808080a00137037820032002360274200341003602702003200236026c200320013602682003200236026420034100360260200028020421062000280200210720002802082108200341fc006a2109027f0340024002400240024020032d008501450440200341d8006a2003280268220c200328026c20032802702003280274108c010240024020032802582201450d00200328025c2100034002400240024002400240027f0240024002400240200328027822020440200220096a41016b2d00002104200041084f04402001200141036a417c712202460440200041086b210a410021020c040b200341d0006a200220016b22022000200020024b1b22022001200041f89d04108601200341c8006a200420032802502003280254108d0120032802484101470d02200328024c21010c050b200341306a200420012000108d012003280234210120032802300c050b41c09704412141d8aa041013000b2002200041086b220a4b0d010b200441818284086c210b0340200241046a22052002490d04200120026a280200200b73220d417f73200d41818284086b71200120056a280200200b732205417f73200541818284086b7172418081828478710d012002200241086a22024b0d072002200a4d0d000b0b200341406b20012000200241a89e04107e200341386a200420032802402003280244108d01410020032802384101470d011a2002200328023c6a220120024f0d0041a09704411c41b89e041013000b41010b4101460440200141016a2200450d022000200328027022006a22022000490d0320032002360270200220032802782200490d05200341286a2003280268200328026c200220006b2002108c0120032802282202450d05200328022c2100200341206a2003280278200941044188ab041086012002200020032802202003280224108e01450d05200341186a200328026020032802702200200c108f0120032000360260200328021c2102200328021821000c080b200320032802743602700c060b41a09704411c41889e041013000b41a09704411c41e8aa041013000b41a09704411c41f8aa041013000b41a09704411c41989e041013000b200341106a2003280268200328026c20032802702003280274108c0120032802142100200328021022010d000b0b4100210020032d0085010d00200341013a008501024020032d008401044020032802642101200328026021040c010b2003280264220120032802602204490d0420012004460d010b200341086a200420012003280268108f01200328020c2102200328020821000b20000d010b41000c050b20082d0000450d012007418499044104200628020c110100450d010c020b41c0970441214198a5041013000b2003410a36028c0120082002047f200320002002200241016b41d0a104107e2003418c016a410120032802002003280204108e010541000b3a0000200720002002200628020c110100450d010b0b41010b20034190016a24000b4c01037f230041106b220524002002200449200320044b72450440200541086a200320042001107f200528020c2107200528020821060b2000200736020420002006360200200541106a24000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b1801017f2001200346047f200020022001100b0541010b450b1500200020012002200341aca60441c097041096010b5801027f230041206b22022400200128020421032001280200200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1073200241206a24000b0c00200028020020011087010b1800200128020041ccb5044105200128020428020c1101000b9c0301037f230041406a22022400200028020021034101210002402001280200220441d09804410c200141046a280200220128020c1101000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241e0980436023020024100360228200241083602142002200241106a36023820022002410c6a36021020042001200241286a108a01450d010c020b20032802002200200328020428020c110a0042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241e0980436023020024100360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a108a010d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4105360200200241346a4105360200200241a898043602182002410036021020022000410c6a3602382002200041086a3602302002410336022c200220003602282002200241286a36022020042001200241106a108a0121000b200241406b240020000b1500200020012002200341fcae044190af041096010b150020002001200220034198b40441b0b4041096010b2800200120024d04402000200220016b3602042000200120036a3602000f0b2005412120041013000b3701017f230041106b22032400200341086a20022001104c200328020c21012000200328020836020020002001360204200341106a24000b7301017f230041306b220424002004200136020420042000360200200441146a41023602002004411c6a41023602002004412c6a41053602002004200336021020044100360208200441053602242004200441206a3602182004200441046a36022820042004360220200441086a20021020000bf80102037f017e230041d0006b22042400200441106a22062001106020042903102107200441003602282004200737032020022802002002280204200441206a22051052200520022802082003103420042004290320370310200441086a20062004280228101a20052004280208200428020c102c20042001280200220620012802042001280208220241cc8804101020044100360248200420042903003703402005200441406b10222002200220042802486a22054b044041a08104411c41dc88041013000b20012006360200200141086a22022005360200200041086a200228020036020020002001290200370200200441d0006a24000b0bad350700418080040be110617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6d706163742e727300210001006a000000420000002600000000000000617474656d707420746f206164642077697468206f766572666c6f77000b01007f0000005206000035000000000b01007f000000590600002400000000e945ca3b605e7d6dbd7333b16cd67c39033e794661696c656420746f206765742076616c756520696e204d617070696e673a20f0000100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e727318010100680000009c000000250000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273000000900101006d0000009d00000011000000900101006d0000009d00000030000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f77000000c016010083000000c80100001e0000000a0000000100000001000000010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f627974652d736c6963652d636173742d312e322e322f7372632f6c69622e7273006402010063000000ea01000001000000000b01007f0000006c06000015000000000b01007f0000006d06000015000000000b01007f0000007b0600003e000000000b01007f0000007f06000011000000000b01007f0000002b0b00001e000000000b01007f000000c3080000110000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300380301006b000000e40000001400000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000900101006d0000006b0100000e000000900101006d0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72180401001c000000900101006d000000ed00000017000000101801006e000000c100000037000000101801006e000000c4000000090000002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f6964656e746974792f74797065732e727300006c0401003a0000002a0000000d0000004964656e746974793a3a4964656e7469747943726561746564000000b417010000000000b80401004964656e746974793a3a4964656e74697479437265617465643a3a6f776e65724964656e746974793a3a4164647265737341646465640000b417010000000000000501004964656e746974793a3a4164647265737341646465643a3a6964656e746974795f6e6f4964656e746974793a3a416464726573735570646174656400b417010000000000470501004964656e746974793a3a41646472657373557064617465643a3a6964656e746974795f6e6f4964656e746974793a3a4164647265737352656d6f766564000000b417010000000000910501004964656e746974793a3a4164647265737352656d6f7665643a3a6964656e746974795f6e6f4964656e746974793a3a4964656e7469747952656d6f7665640000b417010000000000dd0501004964656e746974793a3a4964656e7469747952656d6f7665643a3a6964656e746974795f6e6f4964656e746974793a3a436861696e41646465644964656e746974793a3a436861696e41646465643a3a636861696e5f69644964656e746974793a3a436861696e557064617465640000b4170100000000005c0601004964656e746974793a3a436861696e557064617465643a3a636861696e5f69644964656e746974793a3a436861696e52656d6f7665640000b417010000000000a00601004964656e746974793a3a436861696e52656d6f7665643a3a636861696e5f69644964656e746974793a3a5265636f766572794163636f756e745365744964656e746974793a3a5265636f766572794163636f756e745365743a3a6964656e746974795f6e6f2f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f6964656e746974792f6c69622e727300000029070100380000002b00000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900740701002700000073746f7261676520656e7472792077617320656d70747900a4070100170000004561636820636861696e206e6565647320746f2068617665206120636f72726573706f6e64696e6720636861696e206964207370656369666965642ec40701003c0000002907010038000000c80000000d000000436861696e207270632075726c20697320746f6f206c6f6e6700000018080100190000002907010038000000d4000000150000000a00000004000000040000000b0000000c0000000d0041f090040be417617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000a00000000000000010000000e0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300c40801007f0000008a0100001c0000006361706163697479206f766572666c6f770000005409010011000000c40801007f00000006020000050000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c656400fd09010015000000120a01000d000000800901007d00000095010000090000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000730a01007b00000064020000200000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e727300000b01007f000000300700000d000000000b01007f0000009e07000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320e20b010020000000020c0100120000003a000000b417010000000000240c010001000000240c0100010000000a00000000000000010000000f00000070616e69636b65642061742027272c205c0c0100010000005d0c0100030000003a200000b417010000000000700c010002000000202020202c0a280a282f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000d30d01007e0000005d0500000d000000d30d01007e000000ed050000380000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e727300740e0100830000004e0000002f000000740e0100830000005a0000001f000000740e0100830000006300000009000000740e0100830000006800000027000000740e010083000000680000003e00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820480f0100120000005a0f01002200000072616e676520656e6420696e646578208c0f0100100000005a0f0100220000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273000000ac0f010081000000c4050000250000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72734010010080000000fe0300002f0000004010010080000000de0800001e000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028e010010015000000f51001002b000000e10b0100010000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273381101008000000047000000150000003811010080000000540000001100000038110100800000005a00000009000000381101008000000064000000110000003811010080000000660000000d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e727300081201007f0000009100000011000000081201007f0000004f0200002d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273000000a812010081000000ca000000130000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727300003c13010086000000e5000000150000000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101004196a9040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041d4a9040bfd042f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72730000d414010082000000a101000047000000d414010082000000b401000020000000d414010082000000b401000011000000d414010082000000b8010000260000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273981501008800000095000000010000008d0c01007e000000cd01000005000000b4170100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e727300c0160100830000002f010000180041e0ae040b51617474656d707420746f206164642077697468206f766572666c6f779519010082000000900100004f00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f770041c0af040be504617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290ab417010000000000ff170100010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e72730000101801006e0000005a0000001c000000101801006e0000005a00000009000000101801006e0000005a00000031000000101801006e0000006500000009000000101801006e000000830000001a000000101801006e0000008d0000002100000045636473615265636f766572794661696c656443616c6c52756e74696d654661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f64652f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e727300951901008200000082010000470041b0b4040bcb01617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e342f7372632f636f6465632e7273000000511a010068000000770000000e0000004572726f72000000190000001c000000160000001400000019000000a71601008b1601007516010061160100481601","build_info":{"build_mode":"Debug","cargo_contract_version":"2.0.0-rc.1","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"identity","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x9bae9d5e"},{"args":[{"label":"chains","type":{"displayName":["Vec"],"type":13}},{"label":"chain_ids","type":{"displayName":["Vec"],"type":9}}],"default":false,"docs":[],"label":"init_with_chains","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x0935da88"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":37},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":40},"hash":{"displayName":["Hash"],"type":38},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":39}},"events":[{"args":[{"docs":[" Owner of the created identity."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The \`IdentityNo\` associated with the created identity."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":["Events"],"label":"IdentityCreated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which a new address has been added."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The newly added address."],"indexed":false,"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressAdded"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been updated."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The updated address value."],"indexed":false,"label":"updated_address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressUpdated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been removed."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"AddressRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got removed."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"},{"args":[{"docs":[" The \`ChainId\` that is associated with the newly added chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The rpc url of the chain that got added."],"indexed":false,"label":"rpc_urls","type":{"displayName":["Vec"],"type":7}},{"docs":[" The address type used on the chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainAdded"},{"args":[{"docs":[" The \`ChainId\` that is associated with the updated chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The rpc url of the updated chain."],"indexed":false,"label":"rpc_urls","type":{"displayName":["Vec"],"type":7}},{"docs":[" The address type used on the updated chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainUpdated"},{"args":[{"docs":[" The \`ChainId\` that is associated with the chain that got"," removed."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"ChainRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that set a recovery account."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The newly set recovery account."],"indexed":false,"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"RecoveryAccountSet"}],"lang_error":{"displayName":["ink","LangError"],"type":12},"messages":[{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the \`IdentityInfo\` of an identity that is associated with"," the provided \`IdentityNo\`."],"label":"identity","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xcbfefbec"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"owner_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x99720c1e"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"identity_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":21},"selector":"0x713ca232"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the chain name that is associated with the specified \`ChainId\`."],"label":"chain_info_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":23},"selector":"0x59d847e9"},{"args":[{"label":"receiver","type":{"displayName":["IdentityNo"],"type":2}},{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the destination address of a transaction that needs to be"," routed to the specified identity on the specified chain."],"label":"transaction_destination","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":25},"selector":"0x525505e4"},{"args":[],"default":false,"docs":[" A list of all the available chains each associated with a \`ChainId\`."],"label":"available_chains","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0xa5cf243e"},{"args":[],"default":false,"docs":[" Creates an identity and returns the \`IdentityNo\`.",""," A user can only create one identity."],"label":"create_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xfb893664"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Adds an address for a given chain"],"label":"add_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x71cc798d"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Updates the address of the given chain"],"label":"update_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x892f75e4"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Removes the address by chain"],"label":"remove_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xdca7a60f"},{"args":[],"default":false,"docs":[" Removes an identity"],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x08026740"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"info","type":{"displayName":["ChainInfo"],"type":14}}],"default":false,"docs":[],"label":"add_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x1cd09676"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"new_rpc_url","type":{"displayName":["Option"],"type":35}},{"label":"new_address_type","type":{"displayName":["Option"],"type":36}}],"default":false,"docs":[],"label":"update_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x7d5eea00"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[],"label":"remove_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x5b23980f"},{"args":[{"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Sets the recovery account that will be able to change the ownership"," of the identity.",""," Only callable by the identity owner."],"label":"set_recovery_account","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xd3b93403"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Transfers the ownership of an identity to another account.",""," Only callable by the identity owner or any account that the identity"," owner added as a proxy."],"label":"transfer_ownership","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x107e33ea"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d5e603b","ty":0}},"name":"addresses"}],"name":"IdentityInfo"}},"root_key":"0x7d5e603b"}},"name":"number_to_identity"},{"layout":{"root":{"layout":{"leaf":{"key":"0xca45e900","ty":5}},"root_key":"0xca45e900"}},"name":"owner_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x7cd66cb1","ty":2}},"root_key":"0x7cd66cb1"}},"name":"identity_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x3373bd6d","ty":5}},"root_key":"0x3373bd6d"}},"name":"recovery_account_of"},{"layout":{"leaf":{"key":"0x00000000","ty":2}},"name":"latest_identity_no"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x793e0339","ty":7}},"name":"rpc_urls"},{"layout":{"enum":{"dispatchKey":"0x793e0339","name":"AccountType","variants":{"0":{"fields":[],"name":"AccountId32"},"1":{"fields":[],"name":"AccountKey20"}}}},"name":"account_type"}],"name":"ChainInfo"}},"root_key":"0x793e0339"}},"name":"chain_info_of"},{"layout":{"leaf":{"key":"0x00000000","ty":9}},"name":"chain_ids"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"admin"}],"name":"Identity"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"u8"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":4}}}},{"id":7,"type":{"def":{"sequence":{"type":8}}}},{"id":8,"type":{"def":{"primitive":"str"}}},{"id":9,"type":{"def":{"sequence":{"type":2}}}},{"id":10,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":12}],"path":["Result"]}},{"id":11,"type":{"def":{"tuple":[]}}},{"id":12,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":13,"type":{"def":{"sequence":{"type":14}}}},{"id":14,"type":{"def":{"composite":{"fields":[{"name":"rpc_urls","type":7,"typeName":"Vec"},{"name":"account_type","type":15,"typeName":"AccountType"}]}},"path":["common","types","ChainInfo"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AccountId32"},{"index":1,"name":"AccountKey20"}]}},"path":["common","types","AccountType"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":12}],"path":["Result"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":18}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":18}],"path":["Option"]}},{"id":18,"type":{"def":{"composite":{"fields":[{"name":"addresses","type":0,"typeName":"Vec<(ChainId, EncryptedAddress)>"}]}},"path":["identity","types","IdentityInfo"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":12}],"path":["Result"]}},{"id":20,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":5}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":5}],"path":["Option"]}},{"id":21,"type":{"def":{"variant":{"variants":[{"fields":[{"type":22}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":22},{"name":"E","type":12}],"path":["Result"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":2}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":2}],"path":["Option"]}},{"id":23,"type":{"def":{"variant":{"variants":[{"fields":[{"type":24}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":24},{"name":"E","type":12}],"path":["Result"]}},{"id":24,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":14}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":14}],"path":["Option"]}},{"id":25,"type":{"def":{"variant":{"variants":[{"fields":[{"type":26}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":26},{"name":"E","type":12}],"path":["Result"]}},{"id":26,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":27}],"path":["Result"]}},{"id":27,"type":{"def":{"variant":{"variants":[{"index":0,"name":"NotAllowed"},{"index":1,"name":"IdentityDoesntExist"},{"index":2,"name":"AddressAlreadyAdded"},{"index":3,"name":"InvalidChain"},{"index":4,"name":"AddressSizeExceeded"},{"index":5,"name":"ChainNameTooLong"},{"index":6,"name":"ChainRpcUrlTooLong"},{"index":7,"name":"AlreadyIdentityOwner"}]}},"path":["identity","Error"]}},{"id":28,"type":{"def":{"variant":{"variants":[{"fields":[{"type":29}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":29},{"name":"E","type":12}],"path":["Result"]}},{"id":29,"type":{"def":{"sequence":{"type":30}}}},{"id":30,"type":{"def":{"tuple":[2,14]}}},{"id":31,"type":{"def":{"variant":{"variants":[{"fields":[{"type":32}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":32},{"name":"E","type":12}],"path":["Result"]}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":27}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"fields":[{"type":34}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":34},{"name":"E","type":12}],"path":["Result"]}},{"id":34,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":27}],"path":["Result"]}},{"id":35,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":8}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":8}],"path":["Option"]}},{"id":36,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":15}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":15}],"path":["Option"]}},{"id":37,"type":{"def":{"primitive":"u128"}}},{"id":38,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":39,"type":{"def":{"primitive":"u64"}}},{"id":40,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file From 61158d417e618702364d9d0b113f7689fa1fb290 Mon Sep 17 00:00:00 2001 From: Sergej Sakac Date: Sun, 27 Aug 2023 12:21:19 +0200 Subject: [PATCH 11/11] fix tests --- README.md | 6 ++++-- __tests__/assetRegistry.test.ts | 10 +++++----- __tests__/transactionRouter.test.ts | 1 - src/utils/assetRegistry.ts | 2 +- src/utils/transactionRouter/reserveTransfer.test.ts | 2 +- src/utils/transactionRouter/reserveTransfer.ts | 2 +- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 7befb7f..b970ebd 100644 --- a/README.md +++ b/README.md @@ -32,10 +32,12 @@ Some tests require a zombienet network to be run in the background. The steps to 1. Run a local [swanky](https://github.com/AstarNetwork/swanky-node) test node. This is where the contracts will be deployed to locally. The command to run: `./swanky-node --dev --tmp` 2. Follow the instructions on [trappist](https://github.com/paritytech/trappist) and run the [full_network.toml](https://github.com/paritytech/trappist/blob/main/zombienet/full_network.toml) network. -After the swanky node and the zombienet network is running you can run all the tests: +After the swanky node and the zombienet network is running you can run all the tests. Keep in mind that this will take several minutes to run. ``` -yarn test +# NOTE: we use the runInBand to run the tests sequentially since +# otherwise there could be some issues occuring. +yarn test -- --runInBand ``` The tests can take quite some time to run so, in case you want to run a specific test file, run the following command instead: diff --git a/__tests__/assetRegistry.test.ts b/__tests__/assetRegistry.test.ts index 7c81d34..94a3598 100644 --- a/__tests__/assetRegistry.test.ts +++ b/__tests__/assetRegistry.test.ts @@ -25,7 +25,7 @@ describe('AssetRegistry', () => { confidence: 0, }, ]); - }); + }, 10000); test('Getting assets by para id works', async () => { const assets = await AssetRegistry.getAssetsOnBlockchain( @@ -51,7 +51,7 @@ describe('AssetRegistry', () => { confidence: 0, }, ]); - }); + }, 10000); test("Checking whether an asset exists on both chains works", async () => { const GLMR = [ @@ -105,7 +105,7 @@ describe('AssetRegistry', () => { const isUsdtSupported = await AssetRegistry.isSupportedOnBothChains("polkadot", "moonbeam", "acala", USDT); expect(isUsdtSupported).toBe(true); - }); + }, 10000); test("Getting all assets supported on both chains works", async () => { const statemine = 1000; @@ -164,7 +164,7 @@ describe('AssetRegistry', () => { confidence: 0, }, ]); - }); + }, 10000); test('xcmInteriorKey to MultiAsset works', () => { const ksmXcmInteriorKey = [ @@ -250,5 +250,5 @@ describe('AssetRegistry', () => { ], }, }); - }); + }, 10000); }); diff --git a/__tests__/transactionRouter.test.ts b/__tests__/transactionRouter.test.ts index c4729f8..8476935 100644 --- a/__tests__/transactionRouter.test.ts +++ b/__tests__/transactionRouter.test.ts @@ -225,7 +225,6 @@ describe("TransactionRouter e2e tests", () => { bob.address )).toHuman(); - console.log(receiverAccountAfter); const receiverBalanceAfter = parseInt(receiverAccountAfter.balance.replace(/,/g, "")); expect(senderBalanceAfter).toBe(senderBalanceBefore - amount); diff --git a/src/utils/assetRegistry.ts b/src/utils/assetRegistry.ts index 74601a8..ee47936 100644 --- a/src/utils/assetRegistry.ts +++ b/src/utils/assetRegistry.ts @@ -70,7 +70,7 @@ class AssetRegistry { const { parachainId: assetParaId, junctionIndex } = this.getAssetReserveParachainId(xcmInteriorKey); - if (assetParaId >= 0 && assetParaId == paraId) { + if (assetParaId > 0 && assetParaId == paraId) { xcmInteriorKey.splice(junctionIndex, 1); const junctionCount = xcmInteriorKey.length - 1; diff --git a/src/utils/transactionRouter/reserveTransfer.test.ts b/src/utils/transactionRouter/reserveTransfer.test.ts index 3119257..f5049e5 100644 --- a/src/utils/transactionRouter/reserveTransfer.test.ts +++ b/src/utils/transactionRouter/reserveTransfer.test.ts @@ -395,7 +395,7 @@ describe("TransactionRouter unit tests", () => { it("works with origin para and reserve relay", () => { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - expect(ReserveTransfer.getReserve(-1, true)).toStrictEqual({ + expect(ReserveTransfer.getReserve(0, true)).toStrictEqual({ parents: 1, interior: "Here" }); diff --git a/src/utils/transactionRouter/reserveTransfer.ts b/src/utils/transactionRouter/reserveTransfer.ts index a0628f9..bfae59d 100644 --- a/src/utils/transactionRouter/reserveTransfer.ts +++ b/src/utils/transactionRouter/reserveTransfer.ts @@ -292,7 +292,7 @@ class ReserveTransfer { private static getReserve(reserveParaId: number, isOriginPara: boolean) { const parents = isOriginPara ? 1 : 0; - if (reserveParaId < 0) { + if (reserveParaId === 0) { return { parents, interior: "Here"