ETH Price: $1,755.78 (-1.61%)

Contract

0x7279e7E54e625386DAa40F62b38B26BFA9d786F1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

ContractCreator

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

1 Internal Transaction found.

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
0x60808060252244922026-06-01 19:03:1116 days ago1780340591  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Exact Match

Contract Name

YoVault

Compiler Version
v0.8.34+commit.80d5c536
Optimization Enabled
Yes with 10000 runs
Other Settings
cancun EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"cap","type":"uint256"}],"name":"AmountExceedsCap","type":"error"},{"inputs":[],"name":"ApprovalRegistryUnset","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxDeposit","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxMint","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxRedeem","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxWithdraw","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InsufficientShares","type":"error"},{"inputs":[],"name":"InvalidAssetsAmount","type":"error"},{"inputs":[],"name":"InvalidFee","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidPrice","type":"error"},{"inputs":[],"name":"InvalidSharesAmount","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"NotSharesOwner","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"SharesAmountZero","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"SpenderNotAllowed","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes4","name":"functionSig","type":"bytes4"}],"name":"TargetMethodNotAuthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UseRequestRedeem","type":"error"},{"inputs":[],"name":"ZeroReceiver","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previous","type":"address"},{"indexed":true,"internalType":"address","name":"current","type":"address"}],"name":"ApprovalRegistrySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract IAuthority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"lastFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"DepositFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"lastFeeRecipient","type":"address"},{"indexed":false,"internalType":"address","name":"newFeeRecipient","type":"address"}],"name":"FeeRecipientUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"lastMaxPercentage","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxPercentage","type":"uint256"}],"name":"MaxPercentageUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":true,"internalType":"bool","name":"instant","type":"bool"}],"name":"RedeemRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"}],"name":"RequestCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"}],"name":"RequestFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"lastUnderlyingBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newUnderlyingBalance","type":"uint256"}],"name":"UnderlyingBalanceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"lastFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"WithdrawFeeUpdated","type":"event"},{"inputs":[],"name":"ORACLE_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalRegistry","outputs":[{"internalType":"contract IYoApprovalRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approveToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract IAuthority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"assetsWithFee","type":"uint256"}],"name":"cancelRedeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeOnDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"assetsWithFee","type":"uint256"}],"name":"fulfillRedeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_asset","type":"address"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes4","name":"functionSig","type":"bytes4"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastPricePerShare","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"manage","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"manage","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"pendingRedeemRequest","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"pendingShares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"requestRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IYoApprovalRegistry","name":"newRegistry","type":"address"}],"name":"setApprovalRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IAuthority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalPendingAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"updateDepositFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address"}],"name":"updateFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"updateWithdrawFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
6080806040523460aa575f5160206140c35f395f51905f525460ff8160401c16609b576002600160401b03196001600160401b038216016049575b60405161401490816100af8239f35b6001600160401b0319166001600160401b039081175f5160206140c35f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80603a565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610049575b3615610018575f80fd5b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1005b5f358060e01c908163017def5714612a4f57816301e1d1141461298657816306fdde03146128a357816307a2d13a14612885578163095ea7b31461278a5781630a28a4771461269d578163150b7a021461262e57816318160ddd146125f25781631a4a6ad6146125d55781631cd1c8c3146124f25781632016a0d214611c71578163224d87031461198657816323b872dd14611964578163313ce5671461193f57816338d52e0f146118fa5781633f4ba83a146117f6578163402d267d14610bf557816346904840146117d05781634cdad506146117a357816353dc1dd314611758578163543610c61461173b5781635c975abb146116fa5781636442b2ba146115af57816364af66921461158957816365d4610e146114d85781636e553f651461143f57816370a08231146113ea5781637a9e5e4b146112195781637d41c86e146111fd5781638456cb591461111f5781638da5cb5b146110da57816394bf804d1461105157816395d89b4114610f2b578163a9059cbb14610efa578163aaf10f4214610eb5578163ab4f0f0114610e98578163ac9dc9e814610d98578163b3d7f6b914610d7a578163b460af9414610d39578163ba08765214610d10578163bc197c8114610c5d578163bf7e214f14610c18578163c63d75b614610bf5578163c6e6f59214610bd7578163ce96cb7714610bb4578163d905777e14610b91578163d9972b9614610b35578163da3e339714610809578163daf635de14610755578163dd62ed3e146106dc578163ef8b30f7146106a1578163f160d369146105f8578163f23a6e6114610589578163f2fde38b146104a7578163f6e715d0146102ea575063fcfc430c0361000e57346102e6575f6003193601126102e6576020604051736e879d0ccc85085a709ebf5539224f53d0d396b08152f35b5f80fd5b346102e65760606003193601126102e657610303612b00565b60243567ffffffffffffffff81116102e6576103516103477fffffffff00000000000000000000000000000000000000000000000000000000923690600401612b2c565b9290941633613352565b1561047f576103608184612df8565b7fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea01546040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0385811660248301527fffffffff0000000000000000000000000000000000000000000000000000000084166044830152929492909160209183916064918391165afa9485156104745761041c61042d958461044198610427955f91610445575b50612e9a565b604435933691612ba7565b90613738565b604051918291602083526020830190612adb565b0390f35b610467915060203d60201161046d575b61045f8183612b84565b810190612e82565b8a610416565b503d610455565b6040513d5f823e3d90fd5b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102e65760206003193601126102e6576104ec7fffffffff000000000000000000000000000000000000000000000000000000006104e4612b00565b921633613352565b1561047f576001600160a01b0316807fffffffffffffffffffffffff00000000000000000000000000000000000000007fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea005416177fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea0055337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b346102e65760a06003193601126102e6576105a2612b00565b506105ab612b16565b5060843567ffffffffffffffff81116102e6576105cc903690600401612b2c565b505060206040517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b346102e65760206003193601126102e6576106357fffffffff000000000000000000000000000000000000000000000000000000006104e4612b00565b1561047f577fffffffffffffffffffffffff00000000000000000000000000000000000000006007547faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d360406001600160a01b0381519581851687521694856020820152a11617600755005b346102e65760206003193601126102e65760206106d46106cf6004356106c960065482613947565b90612d46565b613bed565b604051908152f35b346102e65760406003193601126102e6576106f5612b00565b6001600160a01b0361073f610708612b16565b926001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b91165f52602052602060405f2054604051908152f35b346102e65760206003193601126102e6576107957fffffffff00000000000000000000000000000000000000000000000000000000600435921633613352565b1561047f5767016345785d8a00008110156107e1577f733071ab8253b372ed26a6d1b04aec71c4bfcd209c93397df32bb77478cdd2c860406005548151908152836020820152a1600555005b7f58d620b3000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102e657610848907fffffffff0000000000000000000000000000000000000000000000000000000061083c36612c3c565b94919290931633613352565b1561047f576001600160a01b03600954168015610b0d5783610a07575b506001600160a01b0316916001600160a01b03604051927f095ea7b3000000000000000000000000000000000000000000000000000000005f521691826004528160245260205f60448180885af19060015f51148216156109f8575b604052156108cb57005b6040517f095ea7b3000000000000000000000000000000000000000000000000000000005f52826004525f60245260205f60448180885af19060015f51148216156109e0575b604052156109b457604051917f095ea7b3000000000000000000000000000000000000000000000000000000005f5260045260245260205f60448180865af19060015f5114821615610993575b6040521561096857005b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9060018115166109ab57823b15153d1516169061095e565b503d5f823e3d90fd5b827f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9060018115166109ab57843b15153d15161690610911565b90843b15153d151616906108c1565b604051907f42435d340000000000000000000000000000000000000000000000000000000082523060048301526001600160a01b0383168060248401526020836064816001600160a01b038916958660448301525afa928315610474575f93610ad9575b508215610aab5750508084111561086557837fcd0f2fa9000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7f1b1e7866000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b9092506020813d602011610b05575b81610af560209383612b84565b810103126102e657519186610a6b565b3d9150610ae8565b7fe397f6e3000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102e65760406003193601126102e657610b4e612b00565b602435907fffffffff00000000000000000000000000000000000000000000000000000000821682036102e657602091610b8791613352565b6040519015158152f35b346102e65760206003193601126102e65760206106d4610baf612b00565b6132ee565b346102e65760206003193601126102e65760206106d4610bd2612b00565b6132ac565b346102e65760206003193601126102e65760206106d4600435613bed565b346102e65760206003193601126102e65760206106d4610c13612b00565b612f45565b346102e6575f6003193601126102e65760206001600160a01b037fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea015416604051908152f35b346102e65760a06003193601126102e657610c76612b00565b50610c7f612b16565b5060443567ffffffffffffffff81116102e657610ca0903690600401612c0b565b505060643567ffffffffffffffff81116102e657610cc2903690600401612c0b565b505060843567ffffffffffffffff81116102e657610ce4903690600401612b2c565b505060206040517fbc197c81000000000000000000000000000000000000000000000000000000008152f35b346102e65760206106d4610d2336612c76565b91610d2c613b9a565b610d34613b9a565b612f78565b346102e657610d4736612c76565b505050610d52613b9a565b7f797f246a000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102e65760206003193601126102e65760206106d4600435613204565b346102e6575f6003193601126102e6576040517f16345f18000000000000000000000000000000000000000000000000000000008152306004820152604081602481736e879d0ccc85085a709ebf5539224f53d0d396b05afa908115610474575f91610e68575b5060ff610e0a612f12565b1660120360ff8111610e3b57610e1f90612cd7565b90818102918183041490151715610e3b57602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b610e8a915060403d604011610e91575b610e828183612b84565b810190612cb0565b5081610dff565b503d610e78565b346102e6575f6003193601126102e6576020600354604051908152f35b346102e6575f6003193601126102e65760206001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416604051908152f35b346102e65760406003193601126102e657610f20610f16612b00565b60243590336135c8565b602060405160018152f35b346102e6575f6003193601126102e6576040515f7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0454610f6a81612ce8565b808452906001811690811561100f5750600114610f92575b6104418361042d81850382612b84565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace045f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610ff55750909150810160200161042d610f82565b919260018160209254838588010152019101909291610fdd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915061042d9050610f82565b346102e65760406003193601126102e65760043561106d612b16565b90611076613b9a565b61107f82612f45565b80821161109e576020836106d48461109681613204565b809333613e1c565b916001600160a01b03907f284ff667000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b346102e6575f6003193601126102e65760206001600160a01b037fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea005416604051908152f35b346102e6575f6003193601126102e6577fffffffff0000000000000000000000000000000000000000000000000000000061115b911633613352565b1561047f57611168613b9a565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005416177fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346102e65760206106d461121036612c76565b91610d34613b9a565b346102e65760206003193601126102e657600435906001600160a01b0382168092036102e6576001600160a01b037fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea015416906001600160a01b037fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea0054163314918215611336575b50501561047f57807fffffffffffffffffffffffff00000000000000000000000000000000000000007fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea015416177fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea0155337fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b763899801985f80a3005b8015159250908261134b575b505082806112a0565b6040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201523060248201527fffffffff000000000000000000000000000000000000000000000000000000009190911660448201529150602090829060649082905afa908115610474575f916113cb575b508280611342565b6113e4915060203d60201161046d5761045f8183612b84565b826113c3565b346102e65760206003193601126102e65760206106d4611408612b00565b6001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f205490565b346102e65760406003193601126102e65760043561145b612b16565b90611464613b9a565b61146d82612f45565b80821161149c57506106d46020926114936106cf61148d60065486613947565b85612d46565b92839133613e1c565b916001600160a01b03907f79012fb2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b346102e65760206003193601126102e657600435906001600160a01b0382168092036102e6577fffffffff0000000000000000000000000000000000000000000000000000000061152a911633613352565b1561047f576001600160a01b03600954827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600955167f89bd8f01b5dc1c06fb74324621e9335303c72d4850d5aac5c1cbbfeec38ae54c5f80a3005b346102e6575f6003193601126102e65760206001600160a01b0360095416604051908152f35b346102e6577fffffffff00000000000000000000000000000000000000000000000000000000906115ee6115e236612b5a565b92919490931633613352565b1561047f576001600160a01b03831692835f52600860205260405f20936001850194855495861515806116f0575b156116c857815496871515806116be575b15611696576116949761164c92611645898994612d46565b9055612d46565b905561165a83600354612d46565b6003557f1165aa98d42fbaef9bacc273d7b5cca8edc94909519f8f949ec33562963c87e460408051868152856020820152a2309030613979565b005b7f3b832713000000000000000000000000000000000000000000000000000000005f5260045ffd5b508786111561162d565b7f01e3468e000000000000000000000000000000000000000000000000000000005f5260045ffd5b508686111561161c565b346102e6575f6003193601126102e657602060ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054166040519015158152f35b346102e6575f6003193601126102e6576020600654604051908152f35b346102e65760206003193601126102e65760406001600160a01b0361177b612b00565b16805f526008602052815f2054905f5260086020526001825f20015482519182526020820152f35b346102e65760206003193601126102e65760206106d46117c4600435613539565b6106c960055482613947565b346102e6575f6003193601126102e65760206001600160a01b0360075416604051908152f35b346102e6575f6003193601126102e6577fffffffff00000000000000000000000000000000000000000000000000000000611832911633613352565b1561047f577fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff8116156118d2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00167fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b7f8dfc202b000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102e6575f6003193601126102e65760206001600160a01b037f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416604051908152f35b346102e6575f6003193601126102e6576020611959612f12565b60ff60405191168152f35b346102e657610f2061197536612c3c565b9161198183338361382b565b6135c8565b346102e65760606003193601126102e65760043567ffffffffffffffff81116102e6576119b7903690600401612c0b565b919060243567ffffffffffffffff81116102e6576119d9903690600401612c0b565b9390916044359467ffffffffffffffff86116102e657611a2b611a217fffffffff00000000000000000000000000000000000000000000000000000000973690600401612c0b565b9790961633613352565b1561047f57611a3983612d53565b95611a476040519788612b84565b838752601f19611a5685612d53565b015f5b818110611c605750505f5b848110611aee57876040518091602082016020835281518091526040830190602060408260051b8601019301915f905b828210611aa357505050500390f35b91936020611ade827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc060019597998495030186528851612adb565b9601920192018594939192611a94565b80611b06611b00611bbc93868a612d6b565b90612df8565b6020816001600160a01b037fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea015416611b47611b42868c8c612e5e565b612e6e565b6040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0390911660248201527fffffffff0000000000000000000000000000000000000000000000000000000090921660448301529094859190829081906064820190565b03915afa92831561047457886104278b611c1d86611c15818c8f8f838f9b9260019f92611c0a611c269f611b4295611c0f975f91611c42575b50611c04611b42878787612e5e565b90612e9a565b612e5e565b97612d6b565b969093612e5e565b35933691612ba7565b611c30828b612efe565b52611c3b818a612efe565b5001611a64565b611c5a915060203d811161046d5761045f8183612b84565b5f611bf5565b806060602080938c01015201611a59565b346102e65760806003193601126102e6576004356001600160a01b0381168091036102e657611c9e612b16565b60443567ffffffffffffffff81116102e657611cbe903690600401612bed565b9060643567ffffffffffffffff81116102e657611cdf903690600401612bed565b927ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549260ff8460401c16159367ffffffffffffffff8116801590816124ea575b60011490816124e0575b1590816124d7575b506124af578460017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008316177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561245a575b50611d8e613d1e565b611d96613d1e565b611d9e613d1e565b80519067ffffffffffffffff82116122eb578190611ddc7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0354612ce8565b601f81116123c5575b50602090601f8311600114612323575f92612318575b50505f198260011b9260031b1c1916177f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03555b835167ffffffffffffffff81116122eb57611e697f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0454612ce8565b601f811161225e575b506020601f82116001146121b35781906001600160a01b0395965f926121a8575b50505f198260011b9260031b1c1916177f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04555b611ece613d1e565b611ed6613d1e565b60405160405f602083017f313ce56700000000000000000000000000000000000000000000000000000000815260048452611f12602485612b84565b835190855afa5f51916040528061219d575b80612192575b1561218a5760ff1660015b15612182575b7fffffffffffffffffffffff00000000000000000000000000000000000000000074ff00000000000000000000000000000000000000007f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00549260a01b16911617177f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0055611fc7613d1e565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000007fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea005416177fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea00557fffffffffffffffffffffffff00000000000000000000000000000000000000007fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea0154167fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea0155337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35f337fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b763899801988280a36120e9613d1e565b6120ef57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b506012611f3b565b505f80611f35565b5060ff811115611f2a565b5060203d1015611f24565b015190508680611e93565b601f198216957f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace045f52815f20965f5b8181106122465750916001600160a01b0396979184600195941061222e575b505050811b017f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0455611ec6565b01515f1960f88460031b161c19169055868080612201565b838301518955600190980197602093840193016121e2565b81811115611e72577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace045f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106122e3575b81601f9101920160051c03905f5b8281106122d6575050611e72565b5f828201556001016122c8565b5f91506122ba565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b015190508680611dfb565b91601f1916917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035f52815f20925f5b8181106123ad5750908460019594939210612395575b505050811b017f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0355611e2e565b01515f1960f88460031b161c19169055868080612368565b92936020600181928786015181550195019301612352565b82811115611de5577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035f52909150601f830160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208510612452575b849392601f0160051c82900391015f5b828110612442575050611de5565b5f81830155859450600101612434565b5f9150612424565b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005585611d85565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501587611d32565b303b159150611d2a565b869150611d20565b346102e657612525907fffffffff0000000000000000000000000000000000000000000000000000000061083c36612b5a565b1561047f576001600160a01b038116805f52600860205260405f20936001850194855491821515806125cb575b156116c857815491821515806125c1575b156116965761259e826040946116949a6116458b7f55ec94ca0f01023d07c5752a75f44048cfbdb0e4cfedf5e7eacecf21fcde358799612d46565b90556125ac81600354612d46565b6003558151908682526020820152a2306135c8565b5082821115612563565b5082861115612552565b346102e6575f6003193601126102e6576020600554604051908152f35b346102e6575f6003193601126102e65760207f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254604051908152f35b346102e65760806003193601126102e657612647612b00565b50612650612b16565b5060643567ffffffffffffffff81116102e657612671903690600401612b2c565b505060206040517f150b7a02000000000000000000000000000000000000000000000000000000008152f35b346102e65760206003193601126102e6576126c66004356126c060055482613473565b90612d39565b6040517f16345f18000000000000000000000000000000000000000000000000000000008152306004820152604081602481736e879d0ccc85085a709ebf5539224f53d0d396b05afa908115610474575f9161276a575b5080156127435760016106d49160209361273d612738612f12565b612cd7565b90613495565b7ebfc921000000000000000000000000000000000000000000000000000000005f5260045ffd5b612783915060403d604011610e9157610e828183612b84565b508261271d565b346102e65760406003193601126102e6576127a3612b00565b602435903315612859576001600160a01b031690811561282d57335f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260409020825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b346102e65760206003193601126102e65760206106d4600435613539565b346102e6575f6003193601126102e6576040515f7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03546128e281612ce8565b808452906001811690811561100f5750600114612909576104418361042d81850382612b84565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b80821061296c5750909150810160200161042d610f82565b919260018160209254838588010152019101909291612954565b346102e6575f6003193601126102e6576040517f16345f18000000000000000000000000000000000000000000000000000000008152306004820152604081602481736e879d0ccc85085a709ebf5539224f53d0d396b05afa801561047457612a24915f91612a2f575b507f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254612a1e612738612f12565b91613c7f565b604051908152602090f35b612a48915060403d604011610e9157610e828183612b84565b50826129f0565b346102e65760206003193601126102e657612a8f7fffffffff00000000000000000000000000000000000000000000000000000000600435921633613352565b1561047f5767016345785d8a00008110156107e1577f828cf983933545af35b9ba46eec951db1cb4c5433c3ec403aeced2963c26479060406006548151908152836020820152a1600655005b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b600435906001600160a01b03821682036102e657565b602435906001600160a01b03821682036102e657565b9181601f840112156102e65782359167ffffffffffffffff83116102e657602083818601950101116102e657565b60031960609101126102e6576004356001600160a01b03811681036102e657906024359060443590565b90601f601f19910116810190811067ffffffffffffffff8211176122eb57604052565b92919267ffffffffffffffff82116122eb5760405191612bd1601f8201601f191660200184612b84565b8294818452818301116102e6578281602093845f960137010152565b9080601f830112156102e657816020612c0893359101612ba7565b90565b9181601f840112156102e65782359167ffffffffffffffff83116102e6576020808501948460051b0101116102e657565b60031960609101126102e6576004356001600160a01b03811681036102e657906024356001600160a01b03811681036102e6579060443590565b60031960609101126102e657600435906024356001600160a01b03811681036102e657906044356001600160a01b03811681036102e65790565b91908260409103126102e6576020825192015167ffffffffffffffff811681036102e65790565b60ff16604d8111610e3b57600a0a90565b90600182811c92168015612d2f575b6020831014612d0257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691612cf7565b91908201809211610e3b57565b91908203918211610e3b57565b67ffffffffffffffff81116122eb5760051b60200190565b9190811015612dcb5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156102e657019081359167ffffffffffffffff83116102e65760200182360381136102e6579190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b919091357fffffffff0000000000000000000000000000000000000000000000000000000081169260048110612e2c575050565b7fffffffff00000000000000000000000000000000000000000000000000000000929350829060040360031b1b161690565b9190811015612dcb5760051b0190565b356001600160a01b03811681036102e65790565b908160209103126102e6575180151581036102e65790565b15612ea3575050565b906001600160a01b037fffffffff00000000000000000000000000000000000000000000000000000000927ffb563026000000000000000000000000000000000000000000000000000000005f52166004521660245260445ffd5b8051821015612dcb5760209160051b010190565b60ff7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005460a01c1660ff8111610e3b5790565b5060ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005416612f74575f1990565b5f90565b906001600160a01b03811680156131dc5782156131b4576001600160a01b03841633810361318c57805f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006020528360405f20541061316457612fdb84613539565b92602460206001600160a01b037f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa80156104745785915f9161312f575b50600354808211156131275761306191612d46565b10156130e35750836130dd94955f6130aa93857f9a626d8a4952950c7f8b9f5c92a2804e44e147ce4dd0add2f5928f1faea72590604080518a8152876020820152a430906135c8565b6130b682600354612d39565b6003555f52600860205260405f20926130d460018501918254612d39565b90558254612d39565b90555f90565b8461311860019686896040957f9a626d8a4952950c7f8b9f5c92a2804e44e147ce4dd0add2f5928f1faea7259097999b613979565b8151908782526020820152a490565b50505f613061565b9150506020813d60201161315c575b8161314b60209383612b84565b810103126102e6578490515f61304c565b3d915061313e565b7f39996567000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fe7fe5cf4000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f840c364a000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f6ba9ecd8000000000000000000000000000000000000000000000000000000005f5260045ffd5b604051907f16345f18000000000000000000000000000000000000000000000000000000008252306004830152604082602481736e879d0ccc85085a709ebf5539224f53d0d396b05afa918215610474575f9261328a575b50811561274357600161327e91612c0893613278612738612f12565b91613495565b6126c060065482613473565b6132a491925060403d604011610e9157610e828183612b84565b50905f61325c565b60ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054166132e9576117c46132e4612c08926132ee565b613539565b505f90565b60ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054166132e957612c08906001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f205490565b6001600160a01b037fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea0154169182151592836133c8575b50508115613394575090565b90506001600160a01b03807fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea00541691161490565b6040517fb70096130000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201523060248201527fffffffff0000000000000000000000000000000000000000000000000000000092909216604483015291925090602090829060649082905afa908115610474575f91613454575b50905f80613388565b61346d915060203d60201161046d5761045f8183612b84565b5f61344b565b670de0b6b3a7640000612c089261348b828285613c7f565b9209151590612d39565b92916134a2818386613c7f565b92600481101561350c5760018091161491826134c8575b5050612c089250151590612d39565b90809250156134df57612c08930915155f806134b9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6040517f16345f18000000000000000000000000000000000000000000000000000000008152306004820152604081602481736e879d0ccc85085a709ebf5539224f53d0d396b05afa908115610474575f916135a8575b50801561274357612c08915f91613278612738612f12565b6135c1915060403d604011610e9157610e828183612b84565b505f613590565b6001600160a01b031690811561370c576001600160a01b03169182156136e0576135f0613b9a565b815f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f20548181106136ae57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0084520360405f2055845f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00825260405f20818154019055604051908152a3565b827fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b918047106137fc57815f92916020849351920190855af180806137e9575b156137765750506040513d81523d5f602083013e60203d82010160405290565b156137b0576001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b3d156137c1576040513d5f823e3d90fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b503d1515806137565750813b1515613756565b477fcf479181000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b9190613867836001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b6001600160a01b0382165f5260205260405f2054925f19841061388b575b50505050565b82841061390a576001600160a01b03811615612859576001600160a01b0382161561282d576138f26001600160a01b03916001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b91165f5260205260405f20910390555f808080613885565b506001600160a01b0383917ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b90670de0b6b3a76400008101808211610e3b57613965818385613c7f565b9181156134df57612c089309151590612d39565b61398f61398860055486613947565b8095612d46565b916001600160a01b0360075416956001600160a01b03851694816001600160a01b03851694878603613b89575b505050841561370c576139cd613b9a565b845f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f2054818110613b57577ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db92826040936001600160a01b0393895f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205203845f2055807f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254037f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02555f887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208751858152a3613afa8783857f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416613d75565b835196875260208701521693a480151580613b4e575b613b18575050565b613b4c916001600160a01b037f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416613d75565b565b50811515613b10565b857fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b613b929261382b565b5f81816139bc565b60ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005416613bc557565b7fd93c0665000000000000000000000000000000000000000000000000000000005f5260045ffd5b604051907f16345f18000000000000000000000000000000000000000000000000000000008252306004830152604082602481736e879d0ccc85085a709ebf5539224f53d0d396b05afa918215610474575f92613c5d575b50811561274357612c08915f9161273d612738612f12565b613c7791925060403d604011610e9157610e828183612b84565b50905f613c45565b90915f198383099280830292838086109503948086039514613d105784831115613cf85790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156134df570490565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615613d4d57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b916001600160a01b03604051927fa9059cbb000000000000000000000000000000000000000000000000000000005f521660045260245260205f60448180865af19060015f5114821615613e04575b60405215613dcf5750565b6001600160a01b03907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b9060018115166109ab57823b15153d15161690613dc4565b929092613e2b60065484613947565b926001600160a01b0360075416946001600160a01b037f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0054166001600160a01b03604051947f23b872dd000000000000000000000000000000000000000000000000000000005f52169384600452306024528360445260205f60648180865af19060015f5114821615613fc6575b6040525f6060521561096857506001600160a01b03169283156136e0577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d791604091613f03613b9a565b613f2e817f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254612d39565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0255855f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a380151580613b4e57613b18575050565b9060018115166109ab57823b15153d15161690613eb956fea264697066735822122062885ccc31e1e6df2fc3536c586ee9146da1727c1054c9cf454c971575735de364736f6c63430008220033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
Deployed Bytecode
0x60806040526004361015610049575b3615610018575f80fd5b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1005b5f358060e01c908163017def5714612a4f57816301e1d1141461298657816306fdde03146128a357816307a2d13a14612885578163095ea7b31461278a5781630a28a4771461269d578163150b7a021461262e57816318160ddd146125f25781631a4a6ad6146125d55781631cd1c8c3146124f25781632016a0d214611c71578163224d87031461198657816323b872dd14611964578163313ce5671461193f57816338d52e0f146118fa5781633f4ba83a146117f6578163402d267d14610bf557816346904840146117d05781634cdad506146117a357816353dc1dd314611758578163543610c61461173b5781635c975abb146116fa5781636442b2ba146115af57816364af66921461158957816365d4610e146114d85781636e553f651461143f57816370a08231146113ea5781637a9e5e4b146112195781637d41c86e146111fd5781638456cb591461111f5781638da5cb5b146110da57816394bf804d1461105157816395d89b4114610f2b578163a9059cbb14610efa578163aaf10f4214610eb5578163ab4f0f0114610e98578163ac9dc9e814610d98578163b3d7f6b914610d7a578163b460af9414610d39578163ba08765214610d10578163bc197c8114610c5d578163bf7e214f14610c18578163c63d75b614610bf5578163c6e6f59214610bd7578163ce96cb7714610bb4578163d905777e14610b91578163d9972b9614610b35578163da3e339714610809578163daf635de14610755578163dd62ed3e146106dc578163ef8b30f7146106a1578163f160d369146105f8578163f23a6e6114610589578163f2fde38b146104a7578163f6e715d0146102ea575063fcfc430c0361000e57346102e6575f6003193601126102e6576020604051736e879d0ccc85085a709ebf5539224f53d0d396b08152f35b5f80fd5b346102e65760606003193601126102e657610303612b00565b60243567ffffffffffffffff81116102e6576103516103477fffffffff00000000000000000000000000000000000000000000000000000000923690600401612b2c565b9290941633613352565b1561047f576103608184612df8565b7fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea01546040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0385811660248301527fffffffff0000000000000000000000000000000000000000000000000000000084166044830152929492909160209183916064918391165afa9485156104745761041c61042d958461044198610427955f91610445575b50612e9a565b604435933691612ba7565b90613738565b604051918291602083526020830190612adb565b0390f35b610467915060203d60201161046d575b61045f8183612b84565b810190612e82565b8a610416565b503d610455565b6040513d5f823e3d90fd5b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102e65760206003193601126102e6576104ec7fffffffff000000000000000000000000000000000000000000000000000000006104e4612b00565b921633613352565b1561047f576001600160a01b0316807fffffffffffffffffffffffff00000000000000000000000000000000000000007fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea005416177fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea0055337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b346102e65760a06003193601126102e6576105a2612b00565b506105ab612b16565b5060843567ffffffffffffffff81116102e6576105cc903690600401612b2c565b505060206040517ff23a6e61000000000000000000000000000000000000000000000000000000008152f35b346102e65760206003193601126102e6576106357fffffffff000000000000000000000000000000000000000000000000000000006104e4612b00565b1561047f577fffffffffffffffffffffffff00000000000000000000000000000000000000006007547faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d360406001600160a01b0381519581851687521694856020820152a11617600755005b346102e65760206003193601126102e65760206106d46106cf6004356106c960065482613947565b90612d46565b613bed565b604051908152f35b346102e65760406003193601126102e6576106f5612b00565b6001600160a01b0361073f610708612b16565b926001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b91165f52602052602060405f2054604051908152f35b346102e65760206003193601126102e6576107957fffffffff00000000000000000000000000000000000000000000000000000000600435921633613352565b1561047f5767016345785d8a00008110156107e1577f733071ab8253b372ed26a6d1b04aec71c4bfcd209c93397df32bb77478cdd2c860406005548151908152836020820152a1600555005b7f58d620b3000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102e657610848907fffffffff0000000000000000000000000000000000000000000000000000000061083c36612c3c565b94919290931633613352565b1561047f576001600160a01b03600954168015610b0d5783610a07575b506001600160a01b0316916001600160a01b03604051927f095ea7b3000000000000000000000000000000000000000000000000000000005f521691826004528160245260205f60448180885af19060015f51148216156109f8575b604052156108cb57005b6040517f095ea7b3000000000000000000000000000000000000000000000000000000005f52826004525f60245260205f60448180885af19060015f51148216156109e0575b604052156109b457604051917f095ea7b3000000000000000000000000000000000000000000000000000000005f5260045260245260205f60448180865af19060015f5114821615610993575b6040521561096857005b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9060018115166109ab57823b15153d1516169061095e565b503d5f823e3d90fd5b827f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9060018115166109ab57843b15153d15161690610911565b90843b15153d151616906108c1565b604051907f42435d340000000000000000000000000000000000000000000000000000000082523060048301526001600160a01b0383168060248401526020836064816001600160a01b038916958660448301525afa928315610474575f93610ad9575b508215610aab5750508084111561086557837fcd0f2fa9000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7f1b1e7866000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b9092506020813d602011610b05575b81610af560209383612b84565b810103126102e657519186610a6b565b3d9150610ae8565b7fe397f6e3000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102e65760406003193601126102e657610b4e612b00565b602435907fffffffff00000000000000000000000000000000000000000000000000000000821682036102e657602091610b8791613352565b6040519015158152f35b346102e65760206003193601126102e65760206106d4610baf612b00565b6132ee565b346102e65760206003193601126102e65760206106d4610bd2612b00565b6132ac565b346102e65760206003193601126102e65760206106d4600435613bed565b346102e65760206003193601126102e65760206106d4610c13612b00565b612f45565b346102e6575f6003193601126102e65760206001600160a01b037fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea015416604051908152f35b346102e65760a06003193601126102e657610c76612b00565b50610c7f612b16565b5060443567ffffffffffffffff81116102e657610ca0903690600401612c0b565b505060643567ffffffffffffffff81116102e657610cc2903690600401612c0b565b505060843567ffffffffffffffff81116102e657610ce4903690600401612b2c565b505060206040517fbc197c81000000000000000000000000000000000000000000000000000000008152f35b346102e65760206106d4610d2336612c76565b91610d2c613b9a565b610d34613b9a565b612f78565b346102e657610d4736612c76565b505050610d52613b9a565b7f797f246a000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102e65760206003193601126102e65760206106d4600435613204565b346102e6575f6003193601126102e6576040517f16345f18000000000000000000000000000000000000000000000000000000008152306004820152604081602481736e879d0ccc85085a709ebf5539224f53d0d396b05afa908115610474575f91610e68575b5060ff610e0a612f12565b1660120360ff8111610e3b57610e1f90612cd7565b90818102918183041490151715610e3b57602090604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b610e8a915060403d604011610e91575b610e828183612b84565b810190612cb0565b5081610dff565b503d610e78565b346102e6575f6003193601126102e6576020600354604051908152f35b346102e6575f6003193601126102e65760206001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416604051908152f35b346102e65760406003193601126102e657610f20610f16612b00565b60243590336135c8565b602060405160018152f35b346102e6575f6003193601126102e6576040515f7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0454610f6a81612ce8565b808452906001811690811561100f5750600114610f92575b6104418361042d81850382612b84565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace045f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610ff55750909150810160200161042d610f82565b919260018160209254838588010152019101909291610fdd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915061042d9050610f82565b346102e65760406003193601126102e65760043561106d612b16565b90611076613b9a565b61107f82612f45565b80821161109e576020836106d48461109681613204565b809333613e1c565b916001600160a01b03907f284ff667000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b346102e6575f6003193601126102e65760206001600160a01b037fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea005416604051908152f35b346102e6575f6003193601126102e6577fffffffff0000000000000000000000000000000000000000000000000000000061115b911633613352565b1561047f57611168613b9a565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005416177fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346102e65760206106d461121036612c76565b91610d34613b9a565b346102e65760206003193601126102e657600435906001600160a01b0382168092036102e6576001600160a01b037fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea015416906001600160a01b037fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea0054163314918215611336575b50501561047f57807fffffffffffffffffffffffff00000000000000000000000000000000000000007fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea015416177fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea0155337fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b763899801985f80a3005b8015159250908261134b575b505082806112a0565b6040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201523060248201527fffffffff000000000000000000000000000000000000000000000000000000009190911660448201529150602090829060649082905afa908115610474575f916113cb575b508280611342565b6113e4915060203d60201161046d5761045f8183612b84565b826113c3565b346102e65760206003193601126102e65760206106d4611408612b00565b6001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f205490565b346102e65760406003193601126102e65760043561145b612b16565b90611464613b9a565b61146d82612f45565b80821161149c57506106d46020926114936106cf61148d60065486613947565b85612d46565b92839133613e1c565b916001600160a01b03907f79012fb2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b346102e65760206003193601126102e657600435906001600160a01b0382168092036102e6577fffffffff0000000000000000000000000000000000000000000000000000000061152a911633613352565b1561047f576001600160a01b03600954827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600955167f89bd8f01b5dc1c06fb74324621e9335303c72d4850d5aac5c1cbbfeec38ae54c5f80a3005b346102e6575f6003193601126102e65760206001600160a01b0360095416604051908152f35b346102e6577fffffffff00000000000000000000000000000000000000000000000000000000906115ee6115e236612b5a565b92919490931633613352565b1561047f576001600160a01b03831692835f52600860205260405f20936001850194855495861515806116f0575b156116c857815496871515806116be575b15611696576116949761164c92611645898994612d46565b9055612d46565b905561165a83600354612d46565b6003557f1165aa98d42fbaef9bacc273d7b5cca8edc94909519f8f949ec33562963c87e460408051868152856020820152a2309030613979565b005b7f3b832713000000000000000000000000000000000000000000000000000000005f5260045ffd5b508786111561162d565b7f01e3468e000000000000000000000000000000000000000000000000000000005f5260045ffd5b508686111561161c565b346102e6575f6003193601126102e657602060ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054166040519015158152f35b346102e6575f6003193601126102e6576020600654604051908152f35b346102e65760206003193601126102e65760406001600160a01b0361177b612b00565b16805f526008602052815f2054905f5260086020526001825f20015482519182526020820152f35b346102e65760206003193601126102e65760206106d46117c4600435613539565b6106c960055482613947565b346102e6575f6003193601126102e65760206001600160a01b0360075416604051908152f35b346102e6575f6003193601126102e6577fffffffff00000000000000000000000000000000000000000000000000000000611832911633613352565b1561047f577fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff8116156118d2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00167fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b7f8dfc202b000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102e6575f6003193601126102e65760206001600160a01b037f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416604051908152f35b346102e6575f6003193601126102e6576020611959612f12565b60ff60405191168152f35b346102e657610f2061197536612c3c565b9161198183338361382b565b6135c8565b346102e65760606003193601126102e65760043567ffffffffffffffff81116102e6576119b7903690600401612c0b565b919060243567ffffffffffffffff81116102e6576119d9903690600401612c0b565b9390916044359467ffffffffffffffff86116102e657611a2b611a217fffffffff00000000000000000000000000000000000000000000000000000000973690600401612c0b565b9790961633613352565b1561047f57611a3983612d53565b95611a476040519788612b84565b838752601f19611a5685612d53565b015f5b818110611c605750505f5b848110611aee57876040518091602082016020835281518091526040830190602060408260051b8601019301915f905b828210611aa357505050500390f35b91936020611ade827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc060019597998495030186528851612adb565b9601920192018594939192611a94565b80611b06611b00611bbc93868a612d6b565b90612df8565b6020816001600160a01b037fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea015416611b47611b42868c8c612e5e565b612e6e565b6040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0390911660248201527fffffffff0000000000000000000000000000000000000000000000000000000090921660448301529094859190829081906064820190565b03915afa92831561047457886104278b611c1d86611c15818c8f8f838f9b9260019f92611c0a611c269f611b4295611c0f975f91611c42575b50611c04611b42878787612e5e565b90612e9a565b612e5e565b97612d6b565b969093612e5e565b35933691612ba7565b611c30828b612efe565b52611c3b818a612efe565b5001611a64565b611c5a915060203d811161046d5761045f8183612b84565b5f611bf5565b806060602080938c01015201611a59565b346102e65760806003193601126102e6576004356001600160a01b0381168091036102e657611c9e612b16565b60443567ffffffffffffffff81116102e657611cbe903690600401612bed565b9060643567ffffffffffffffff81116102e657611cdf903690600401612bed565b927ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549260ff8460401c16159367ffffffffffffffff8116801590816124ea575b60011490816124e0575b1590816124d7575b506124af578460017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008316177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561245a575b50611d8e613d1e565b611d96613d1e565b611d9e613d1e565b80519067ffffffffffffffff82116122eb578190611ddc7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0354612ce8565b601f81116123c5575b50602090601f8311600114612323575f92612318575b50505f198260011b9260031b1c1916177f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03555b835167ffffffffffffffff81116122eb57611e697f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0454612ce8565b601f811161225e575b506020601f82116001146121b35781906001600160a01b0395965f926121a8575b50505f198260011b9260031b1c1916177f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04555b611ece613d1e565b611ed6613d1e565b60405160405f602083017f313ce56700000000000000000000000000000000000000000000000000000000815260048452611f12602485612b84565b835190855afa5f51916040528061219d575b80612192575b1561218a5760ff1660015b15612182575b7fffffffffffffffffffffff00000000000000000000000000000000000000000074ff00000000000000000000000000000000000000007f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00549260a01b16911617177f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0055611fc7613d1e565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000007fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea005416177fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea00557fffffffffffffffffffffffff00000000000000000000000000000000000000007fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea0154167fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea0155337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35f337fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b763899801988280a36120e9613d1e565b6120ef57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b506012611f3b565b505f80611f35565b5060ff811115611f2a565b5060203d1015611f24565b015190508680611e93565b601f198216957f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace045f52815f20965f5b8181106122465750916001600160a01b0396979184600195941061222e575b505050811b017f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0455611ec6565b01515f1960f88460031b161c19169055868080612201565b838301518955600190980197602093840193016121e2565b81811115611e72577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace045f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106122e3575b81601f9101920160051c03905f5b8281106122d6575050611e72565b5f828201556001016122c8565b5f91506122ba565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b015190508680611dfb565b91601f1916917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035f52815f20925f5b8181106123ad5750908460019594939210612395575b505050811b017f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0355611e2e565b01515f1960f88460031b161c19169055868080612368565b92936020600181928786015181550195019301612352565b82811115611de5577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035f52909150601f830160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208510612452575b849392601f0160051c82900391015f5b828110612442575050611de5565b5f81830155859450600101612434565b5f9150612424565b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005585611d85565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501587611d32565b303b159150611d2a565b869150611d20565b346102e657612525907fffffffff0000000000000000000000000000000000000000000000000000000061083c36612b5a565b1561047f576001600160a01b038116805f52600860205260405f20936001850194855491821515806125cb575b156116c857815491821515806125c1575b156116965761259e826040946116949a6116458b7f55ec94ca0f01023d07c5752a75f44048cfbdb0e4cfedf5e7eacecf21fcde358799612d46565b90556125ac81600354612d46565b6003558151908682526020820152a2306135c8565b5082821115612563565b5082861115612552565b346102e6575f6003193601126102e6576020600554604051908152f35b346102e6575f6003193601126102e65760207f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254604051908152f35b346102e65760806003193601126102e657612647612b00565b50612650612b16565b5060643567ffffffffffffffff81116102e657612671903690600401612b2c565b505060206040517f150b7a02000000000000000000000000000000000000000000000000000000008152f35b346102e65760206003193601126102e6576126c66004356126c060055482613473565b90612d39565b6040517f16345f18000000000000000000000000000000000000000000000000000000008152306004820152604081602481736e879d0ccc85085a709ebf5539224f53d0d396b05afa908115610474575f9161276a575b5080156127435760016106d49160209361273d612738612f12565b612cd7565b90613495565b7ebfc921000000000000000000000000000000000000000000000000000000005f5260045ffd5b612783915060403d604011610e9157610e828183612b84565b508261271d565b346102e65760406003193601126102e6576127a3612b00565b602435903315612859576001600160a01b031690811561282d57335f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260409020825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b346102e65760206003193601126102e65760206106d4600435613539565b346102e6575f6003193601126102e6576040515f7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03546128e281612ce8565b808452906001811690811561100f5750600114612909576104418361042d81850382612b84565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace035f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b80821061296c5750909150810160200161042d610f82565b919260018160209254838588010152019101909291612954565b346102e6575f6003193601126102e6576040517f16345f18000000000000000000000000000000000000000000000000000000008152306004820152604081602481736e879d0ccc85085a709ebf5539224f53d0d396b05afa801561047457612a24915f91612a2f575b507f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254612a1e612738612f12565b91613c7f565b604051908152602090f35b612a48915060403d604011610e9157610e828183612b84565b50826129f0565b346102e65760206003193601126102e657612a8f7fffffffff00000000000000000000000000000000000000000000000000000000600435921633613352565b1561047f5767016345785d8a00008110156107e1577f828cf983933545af35b9ba46eec951db1cb4c5433c3ec403aeced2963c26479060406006548151908152836020820152a1600655005b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b600435906001600160a01b03821682036102e657565b602435906001600160a01b03821682036102e657565b9181601f840112156102e65782359167ffffffffffffffff83116102e657602083818601950101116102e657565b60031960609101126102e6576004356001600160a01b03811681036102e657906024359060443590565b90601f601f19910116810190811067ffffffffffffffff8211176122eb57604052565b92919267ffffffffffffffff82116122eb5760405191612bd1601f8201601f191660200184612b84565b8294818452818301116102e6578281602093845f960137010152565b9080601f830112156102e657816020612c0893359101612ba7565b90565b9181601f840112156102e65782359167ffffffffffffffff83116102e6576020808501948460051b0101116102e657565b60031960609101126102e6576004356001600160a01b03811681036102e657906024356001600160a01b03811681036102e6579060443590565b60031960609101126102e657600435906024356001600160a01b03811681036102e657906044356001600160a01b03811681036102e65790565b91908260409103126102e6576020825192015167ffffffffffffffff811681036102e65790565b60ff16604d8111610e3b57600a0a90565b90600182811c92168015612d2f575b6020831014612d0257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691612cf7565b91908201809211610e3b57565b91908203918211610e3b57565b67ffffffffffffffff81116122eb5760051b60200190565b9190811015612dcb5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156102e657019081359167ffffffffffffffff83116102e65760200182360381136102e6579190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b919091357fffffffff0000000000000000000000000000000000000000000000000000000081169260048110612e2c575050565b7fffffffff00000000000000000000000000000000000000000000000000000000929350829060040360031b1b161690565b9190811015612dcb5760051b0190565b356001600160a01b03811681036102e65790565b908160209103126102e6575180151581036102e65790565b15612ea3575050565b906001600160a01b037fffffffff00000000000000000000000000000000000000000000000000000000927ffb563026000000000000000000000000000000000000000000000000000000005f52166004521660245260445ffd5b8051821015612dcb5760209160051b010190565b60ff7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005460a01c1660ff8111610e3b5790565b5060ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005416612f74575f1990565b5f90565b906001600160a01b03811680156131dc5782156131b4576001600160a01b03841633810361318c57805f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006020528360405f20541061316457612fdb84613539565b92602460206001600160a01b037f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa80156104745785915f9161312f575b50600354808211156131275761306191612d46565b10156130e35750836130dd94955f6130aa93857f9a626d8a4952950c7f8b9f5c92a2804e44e147ce4dd0add2f5928f1faea72590604080518a8152876020820152a430906135c8565b6130b682600354612d39565b6003555f52600860205260405f20926130d460018501918254612d39565b90558254612d39565b90555f90565b8461311860019686896040957f9a626d8a4952950c7f8b9f5c92a2804e44e147ce4dd0add2f5928f1faea7259097999b613979565b8151908782526020820152a490565b50505f613061565b9150506020813d60201161315c575b8161314b60209383612b84565b810103126102e6578490515f61304c565b3d915061313e565b7f39996567000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fe7fe5cf4000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f840c364a000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f6ba9ecd8000000000000000000000000000000000000000000000000000000005f5260045ffd5b604051907f16345f18000000000000000000000000000000000000000000000000000000008252306004830152604082602481736e879d0ccc85085a709ebf5539224f53d0d396b05afa918215610474575f9261328a575b50811561274357600161327e91612c0893613278612738612f12565b91613495565b6126c060065482613473565b6132a491925060403d604011610e9157610e828183612b84565b50905f61325c565b60ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054166132e9576117c46132e4612c08926132ee565b613539565b505f90565b60ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330054166132e957612c08906001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f205490565b6001600160a01b037fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea0154169182151592836133c8575b50508115613394575090565b90506001600160a01b03807fdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea00541691161490565b6040517fb70096130000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201523060248201527fffffffff0000000000000000000000000000000000000000000000000000000092909216604483015291925090602090829060649082905afa908115610474575f91613454575b50905f80613388565b61346d915060203d60201161046d5761045f8183612b84565b5f61344b565b670de0b6b3a7640000612c089261348b828285613c7f565b9209151590612d39565b92916134a2818386613c7f565b92600481101561350c5760018091161491826134c8575b5050612c089250151590612d39565b90809250156134df57612c08930915155f806134b9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6040517f16345f18000000000000000000000000000000000000000000000000000000008152306004820152604081602481736e879d0ccc85085a709ebf5539224f53d0d396b05afa908115610474575f916135a8575b50801561274357612c08915f91613278612738612f12565b6135c1915060403d604011610e9157610e828183612b84565b505f613590565b6001600160a01b031690811561370c576001600160a01b03169182156136e0576135f0613b9a565b815f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f20548181106136ae57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0084520360405f2055845f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00825260405f20818154019055604051908152a3565b827fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b918047106137fc57815f92916020849351920190855af180806137e9575b156137765750506040513d81523d5f602083013e60203d82010160405290565b156137b0576001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b3d156137c1576040513d5f823e3d90fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b503d1515806137565750813b1515613756565b477fcf479181000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b9190613867836001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b6001600160a01b0382165f5260205260405f2054925f19841061388b575b50505050565b82841061390a576001600160a01b03811615612859576001600160a01b0382161561282d576138f26001600160a01b03916001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b91165f5260205260405f20910390555f808080613885565b506001600160a01b0383917ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b90670de0b6b3a76400008101808211610e3b57613965818385613c7f565b9181156134df57612c089309151590612d39565b61398f61398860055486613947565b8095612d46565b916001600160a01b0360075416956001600160a01b03851694816001600160a01b03851694878603613b89575b505050841561370c576139cd613b9a565b845f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205260405f2054818110613b57577ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db92826040936001600160a01b0393895f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0060205203845f2055807f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254037f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02555f887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208751858152a3613afa8783857f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416613d75565b835196875260208701521693a480151580613b4e575b613b18575050565b613b4c916001600160a01b037f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005416613d75565b565b50811515613b10565b857fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b613b929261382b565b5f81816139bc565b60ff7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005416613bc557565b7fd93c0665000000000000000000000000000000000000000000000000000000005f5260045ffd5b604051907f16345f18000000000000000000000000000000000000000000000000000000008252306004830152604082602481736e879d0ccc85085a709ebf5539224f53d0d396b05afa918215610474575f92613c5d575b50811561274357612c08915f9161273d612738612f12565b613c7791925060403d604011610e9157610e828183612b84565b50905f613c45565b90915f198383099280830292838086109503948086039514613d105784831115613cf85790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156134df570490565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615613d4d57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b916001600160a01b03604051927fa9059cbb000000000000000000000000000000000000000000000000000000005f521660045260245260205f60448180865af19060015f5114821615613e04575b60405215613dcf5750565b6001600160a01b03907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b9060018115166109ab57823b15153d15161690613dc4565b929092613e2b60065484613947565b926001600160a01b0360075416946001600160a01b037f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0054166001600160a01b03604051947f23b872dd000000000000000000000000000000000000000000000000000000005f52169384600452306024528360445260205f60648180865af19060015f5114821615613fc6575b6040525f6060521561096857506001600160a01b03169283156136e0577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d791604091613f03613b9a565b613f2e817f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254612d39565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0255855f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a380151580613b4e57613b18575050565b9060018115166109ab57823b15153d15161690613eb956fea264697066735822122062885ccc31e1e6df2fc3536c586ee9146da1727c1054c9cf454c971575735de364736f6c63430008220033
🤖 Code Reader

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.