0 txs
3 calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
name
viewfunction name() view returns (string)
noUnwrapTo
viewfunction noUnwrapTo(address addr) view returns (bool)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
deposit
payablefunction deposit() payable
initialize
nonpayablefunction initialize()
renounceOwnership
nonpayablefunction renounceOwnership()
resetNoUnwrapTo
nonpayablefunction resetNoUnwrapTo(address addr)
setNoUnwrapTo
nonpayablefunction setNoUnwrapTo(address addr)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdraw
nonpayablefunction withdraw(uint256 amount)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Deposit
event Deposit(address from, uint256 amount)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ResetNoUnwrapTo
event ResetNoUnwrapTo(address addr)
SetNoUnwrapTo
event SetNoUnwrapTo(address addr)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
TransferNative
event TransferNative(address from, address to, uint256 amount)
Upgraded
event Upgraded(address indexed implementation)
Withdraw
event Withdraw(address to, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
TokiCannotCloseChannel
error TokiCannotCloseChannel()
TokiCannotTimeoutPacket
error TokiCannotTimeoutPacket()
TokiChannelNotFound
error TokiChannelNotFound(string portId, string channelId)
TokiContractNotAllowed
error TokiContractNotAllowed(string name, address addr)
TokiDepeg
error TokiDepeg(uint256 poolId)
TokiDstChainIdNotAccepted
error TokiDstChainIdNotAccepted(uint256 dstChainId)
TokiDstOuterGasShouldBeZero
error TokiDstOuterGasShouldBeZero()
TokiExceed
error TokiExceed(string name, uint256 value, uint256 limit)
TokiExceedAdd
error TokiExceedAdd(string name, uint256 current, uint256 add, uint256 limit)
TokiFailToRefund
error TokiFailToRefund()
TokiFallbackUnauthorized
error TokiFallbackUnauthorized(address caller)
TokiFlowRateLimitExceed
error TokiFlowRateLimitExceed(uint256 current, uint256 add, uint256 limit)
TokiInsufficientAmount
error TokiInsufficientAmount(string name, uint256 value, uint256 needed)
TokiInsufficientPoolLiquidity
error TokiInsufficientPoolLiquidity(uint256 value, uint256 needed)
TokiInvalidAppVersion
error TokiInvalidAppVersion(uint256 expected, uint256 actual)
TokiInvalidBalanceDeficitFeeZone
error TokiInvalidBalanceDeficitFeeZone()
TokiInvalidPacketType
error TokiInvalidPacketType(uint8)
TokiInvalidProposedVersion
error TokiInvalidProposedVersion(string version)
TokiInvalidRecipientBytes
error TokiInvalidRecipientBytes()
TokiInvalidRetryType
error TokiInvalidRetryType(uint8)
TokiInvalidSafeZoneRange
error TokiInvalidSafeZoneRange(uint256 min, uint256 max)
TokiMock
error TokiMock(string message)
TokiNativeTransferIsFailed
error TokiNativeTransferIsFailed(address to, uint256 value)
TokiNoFee
error TokiNoFee()
TokiNoPeerPoolInfo
error TokiNoPeerPoolInfo()
TokiNoPool
error TokiNoPool(uint256 poolId)
TokiNoRevertReceive
error TokiNoRevertReceive()
TokiNotEnoughNativeFee
error TokiNotEnoughNativeFee(uint256 value, uint256 limit)
TokiPeerPoolInfoNotFound
error TokiPeerPoolInfoNotFound(uint256 chainId, uint256 poolId)
TokiPeerPoolIsAlreadyActive
error TokiPeerPoolIsAlreadyActive(uint256 chainId, uint256 poolId)
TokiPeerPoolIsNotReady
error TokiPeerPoolIsNotReady(uint256 peerChainId, uint256 peerPoolId)
TokiPeerPoolIsRegistered
error TokiPeerPoolIsRegistered(uint256 chainId, uint256 poolId)
TokiPoolRecvIsFailed
error TokiPoolRecvIsFailed(uint256 poolId)
TokiPoolWithdrawConfirmIsFailed
error TokiPoolWithdrawConfirmIsFailed(uint256 poolId)
TokiPriceIsExpired
error TokiPriceIsExpired(uint256 updatedAt)
TokiPriceIsNotPositive
error TokiPriceIsNotPositive(int256 value)
TokiRequireOrderedChannel
error TokiRequireOrderedChannel()
TokiRetryExpired
error TokiRetryExpired(uint256 expiryBlock)
TokiSamePool
error TokiSamePool(uint256 poolId, address pool)
TokiSlippageTooHigh
error TokiSlippageTooHigh(uint256 amountGD, uint256 eqReward, uint256 eqFee, uint256 minAmountGD)
TokiTransferIsFailed
error TokiTransferIsFailed(address token, address to, uint256 value)
TokiTransferIsStop
error TokiTransferIsStop()
TokiUnregisteredChainId
error TokiUnregisteredChainId(string channel)
TokiUnregisteredPoolId
error TokiUnregisteredPoolId(uint256 poolId)
TokiZeroAddress
error TokiZeroAddress(string message)
TokiZeroAmount
error TokiZeroAmount(string message)
TokiZeroValue
error TokiZeroValue(string message)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a080604052346100c257306080525f5160206125985f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b6040516124d190816100c7823960805181818161103b015261115a0152f35b6001600160401b0319166001600160401b039081175f5160206125985f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe608060405260043610156100f0575b3615610018575f80fd5b6100206120c6565b33156100c45773ffffffffffffffffffffffffffffffffffffffff33165f527f5e63f22c59bdc3cd010ce3971dc932873441110bf14a3fdf3e8264631e19000060205261006e34335f6121fd565b604080513381523460208201527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9190a15f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b5f5f3560e01c806306fdde0314611a29578063095ea7b31461195b57806318160ddd1461190157806323b872dd146116f957806329c80c2f146116725780632e1a7d4d14611534578063313ce567146114fa57806340e9d2cc146114275780634f1ef286146110b357806352d1902d14610ff557806370a0823114610f73578063715018a614610e975780638129fc1c1461074b5780638da5cb5b146106da57806395d89b4114610585578063a9059cbb14610535578063ad3cb1cc146104ba578063d0e30db0146103b7578063dd5f0f68146102e1578063dd62ed3e1461022f5763f2fde38b146101e2575061000e565b3461022c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c5761022961021c611bb5565b61022461213a565b611d23565b80f35b80fd5b503461022c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c57610267611bb5565b73ffffffffffffffffffffffffffffffffffffffff6102cb610287611bd8565b9273ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b91165f52602052602060405f2054604051908152f35b503461022c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c577f5fdfa96b8124163460b3b1b3e3ffa7d95b7dded3e3f58e7465d8853b052ddd80602073ffffffffffffffffffffffffffffffffffffffff610351611bb5565b61035961213a565b168084527f5e63f22c59bdc3cd010ce3971dc932873441110bf14a3fdf3e8264631e19000082526040842060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055604051908152a180f35b50807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c576103e96120c6565b331561048e5773ffffffffffffffffffffffffffffffffffffffff33165f527f5e63f22c59bdc3cd010ce3971dc932873441110bf14a3fdf3e8264631e19000060205261043734335f6121fd565b604080513381523460208201527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9190a1807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b807fec442f05000000000000000000000000000000000000000000000000000000006024925280600452fd5b503461022c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c57506105316040516104fb604082611bfb565b600581527f352e302e30000000000000000000000000000000000000000000000000000000602082015260405191829182611b6d565b0390f35b503461022c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c5761057a610570611bb5565b6024359033611e10565b602060405160018152f35b503461022c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c5760405190807f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0454906105e582611ca3565b80855291600181169081156106955750600114610619575b6105318461060d81860382611bfb565b60405191829182611b6d565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0481527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b80821061067b5750909150810160200161060d826105fd565b919260018160209254838588010152019101909291610662565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208087019190915292151560051b8501909201925061060d91508390506105fd565b503461022c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c57602073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416604051908152f35b503461022c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549060ff8260401c16159167ffffffffffffffff811680159081610e8f575b6001149081610e85575b159081610e7c575b50610e54578260017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008316177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610dff575b50604080519261082f8285611bfb565b601084527f544f4b492077726170706564204554480000000000000000000000000000000060208501528151936108668386611bfb565b600785527f746f6b694554480000000000000000000000000000000000000000000000000060208601526108986121a6565b6108a06121a6565b80519067ffffffffffffffff8211610dd25781906108de7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0354611ca3565b601f8111610d45575b50602090601f8311600114610c68578692610c5d575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03555b835167ffffffffffffffff8111610c305761098a7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0454611ca3565b601f8111610bae575b50602094601f8211600114610ad0579484958293949592610ac5575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04555b610a096121a6565b610a116121a6565b610a196121a6565b610a2233611d23565b610a2a6121a6565b610a32575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2917fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00555160018152a180f35b015190505f806109af565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216957f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04865280862091865b888110610b9657508360019596979810610b5f575b505050811b017f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0455610a01565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080610b32565b91926020600181928685015181550194019201610b1d565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0485527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c81019160208410610c26575b601f0160051c01905b818110610c1b5750610993565b858155600101610c0e565b9091508190610c05565b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b015190505f806108fd565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace038752818720927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016875b818110610d2d5750908460019594939210610cf6575b505050811b017f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035561094f565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080610cc9565b92936020600181928786015181550195019301610cb3565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0387529091507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f840160051c81019160208510610dc8575b90601f859493920160051c01905b818110610dba57506108e7565b878155849350600101610dad565b9091508190610d9f565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00555f61081f565b6004827ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b9050155f6107cc565b303b1591506107c4565b8491506107ba565b503461022c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c57610ece61213a565b8073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300547fffffffffffffffffffffffff000000000000000000000000000000000000000081167f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461022c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c57604060209173ffffffffffffffffffffffffffffffffffffffff610fc5611bb5565b1681527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0083522054604051908152f35b503461022c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361108b5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b807fe07c8dba0000000000000000000000000000000000000000000000000000000060049252fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c576110e6611bb5565b6024359067ffffffffffffffff82116114235736602383011215611423578160040135908361111483611c69565b936111226040519586611bfb565b83855260208501933660248284010111611423578060246020930186378501015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168030149081156113e1575b506113b95761119261213a565b73ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa869181611381575b5061121257602486867f4c9c8ce3000000000000000000000000000000000000000000000000000000008252600452fd5b93847f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8796036113565750823b1561132b57908185927fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156112f7576112f39382915190845af46112ed611cf4565b91612402565b5080f35b50505050346113035780f35b807fb398979f0000000000000000000000000000000000000000000000000000000060049252fd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000008552600452602484fd5b7faa1d49a4000000000000000000000000000000000000000000000000000000008652600452602485fd5b9091506020813d6020116113b1575b8161139d60209383611bfb565b810103126113ad5751905f6111e1565b8680fd5b3d9150611390565b6004847fe07c8dba000000000000000000000000000000000000000000000000000000008152fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614155f611185565b8280fd5b503461022c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c577fcb1a78c515093d94f424921724c8d59393fa758e2bc9162c71501fde05c8100f602073ffffffffffffffffffffffffffffffffffffffff611497611bb5565b61149f61213a565b168084527f5e63f22c59bdc3cd010ce3971dc932873441110bf14a3fdf3e8264631e1900008252604084207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008154169055604051908152a180f35b503461022c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022c57602060405160128152f35b3461166e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261166e5760043561156e6120c6565b3315611642575f80527f5e63f22c59bdc3cd010ce3971dc932873441110bf14a3fdf3e8264631e1900006020526115a6815f336121fd565b60408051338152602081018390527f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649190a15f80808084335af16115e8611cf4565b5015611613575f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b7f14c434b9000000000000000000000000000000000000000000000000000000005f523360045260245260445ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b5f80fd5b3461166e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261166e5773ffffffffffffffffffffffffffffffffffffffff6116be611bb5565b165f527f5e63f22c59bdc3cd010ce3971dc932873441110bf14a3fdf3e8264631e190000602052602060ff60405f2054166040519015158152f35b3461166e5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261166e57611730611bb5565b611738611bd8565b604435906117838373ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff33165f5260205260405f2054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84036117d7575b61057a9350611e10565b8284106118cd5773ffffffffffffffffffffffffffffffffffffffff8116156118a15733156118755761057a9361184b8273ffffffffffffffffffffffffffffffffffffffff165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff33165f526020528360405f20910390556117cd565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b82847ffb8f41b2000000000000000000000000000000000000000000000000000000005f523360045260245260445260645ffd5b3461166e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261166e5760207f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254604051908152f35b3461166e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261166e57611992611bb5565b6024359033156118a15773ffffffffffffffffffffffffffffffffffffffff1690811561187557335f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260409020825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461166e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261166e576040515f7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0354611a8681611ca3565b8084529060018116908115611b2b5750600114611aae575b6105318361060d81850382611bfb565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611b115750909150810160200161060d611a9e565b919260018160209254838588010152019101909291611af9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915061060d9050611a9e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361166e57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361166e57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117611c3c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111611c3c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b90600182811c92168015611cea575b6020831014611cbd57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611cb2565b3d15611d1e573d90611d0582611c69565b91611d136040519384611bfb565b82523d5f602084013e565b606090565b73ffffffffffffffffffffffffffffffffffffffff168015611de45773ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054827fffffffffffffffffffffffff00000000000000000000000000000000000000008216177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b9073ffffffffffffffffffffffffffffffffffffffff82169081156116425773ffffffffffffffffffffffffffffffffffffffff81169283156100c457835f527f5e63f22c59bdc3cd010ce3971dc932873441110bf14a3fdf3e8264631e19000060205260ff60405f205416155f146120b657505080611ff8577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254838101809111611fcb577fb4a87134099d10c48345145381989042ab07dc53e6e62a6511fca55438562e26916060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02555b847f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254037f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02555f817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051898152a3604051908152836020820152846040820152a15f80808085855af1611f93611cf4565b5015611f9d575050565b7f14c434b9000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b805f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f20548381106120835781846060927fb4a87134099d10c48345145381989042ab07dc53e6e62a6511fca55438562e26945f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006020520360405f2055611efe565b91507fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b9091506120c49392506121fd565b565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6121125760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416330361217a57565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156121d557565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff16908161232f577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490838201809211611fcb5773ffffffffffffffffffffffffffffffffffffffff6020917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef937f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02555b1693846122fa57807f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254037f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02555b604051908152a3565b845f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00825260405f208181540190556122f1565b815f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f20548381106123ce5773ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9285602093865f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0085520360405f20556122a3565b9190507fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b9061243f575080511561241757805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580612492575b612450575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561244856fea26469706673582212202ce5016621c11da54b56add03782add1b278f4c212af37fe07fecaccf3b9211764736f6c634300081c0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00