ERC-20
Overview
Max Total Supply
99,919,675.199999999999998571 KAI
Holders
471
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
25.449594564374898003 KAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
Token
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-23 */ // SPDX-License-Identifier: MIT // File: contracts/model/IERC20ReadableData.sol pragma solidity ^0.8.0; interface IERC20ReadableData { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); } // File: contracts/model/IERC20Permit.sol pragma solidity ^0.8.0; interface IERC20Permit { function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function nonces(address owner) external view returns (uint256); function DOMAIN_SEPARATOR() external view returns (bytes32); function permitInfo() external view returns(string memory typeHash, string memory name, string memory version); } // File: contracts/impl/OwnableView.sol pragma solidity ^0.8.0; abstract contract OwnableView { bytes32 internal constant OWNER_KEY = 0xdc6edb7e21c7d6802c30a4249460696aa4c6ef3b5aee9c59996f8fedc7fbaefe; modifier onlyOwner() { require(msg.sender == _owner(), "Unauthorized"); _; } function _owner() internal view returns (address value) { assembly { value := sload(OWNER_KEY) } } } // File: contracts/model/IOwnable.sol pragma solidity ^0.8.0; interface IOwnable { event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function owner() external view returns (address); function renounceOwnership() external; function transferOwnership(address newOwner) external; } // File: contracts/impl/Ownable.sol pragma solidity ^0.8.0; abstract contract Ownable is IOwnable, OwnableView { constructor(address initialOwner) { _transferOwnership(initialOwner); } function owner() override external view returns (address) { return _owner(); } function renounceOwnership() override external onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) override external onlyOwner { require(newOwner != address(0), "Invalid"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) private { address oldOwner = _owner(); assembly { sstore(OWNER_KEY, newOwner) } emit OwnershipTransferred(oldOwner, newOwner); } } // File: contracts/model/IERC20Mintable.sol pragma solidity ^0.8.0; interface IERC20Mintable { function mint(address account, uint256 amount) external returns (bool); } // File: contracts/model/IERC20Metadata.sol pragma solidity ^0.8.0; interface IERC20Metadata { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } // File: contracts/model/IManageableFunctions.sol pragma solidity ^0.8.0; interface IManageableFunctions { function functionsManagers(string[] memory methods) external view returns(address[] memory values); function functionManager(string memory method) external view returns(address value); function functionManagerBySignature(bytes4 signature) external view returns(address value); } // File: contracts/model/IERC20Core.sol pragma solidity ^0.8.0; interface IERC20Core { function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); } // File: contracts/model/IERC20Burnable.sol pragma solidity ^0.8.0; interface IERC20Burnable { function burn(uint256 amount) external; function burnFrom(address account, uint256 amount) external; } // File: contracts/util/Libraries.sol pragma solidity ^0.8.0; library BalanceMathLib { function _update(bytes32 key, uint256 amount, bool add) internal returns(uint256 oldValue, uint256 newValue) { assembly { oldValue := sload(key) } newValue = oldValue; if(amount != 0) { if(add) { newValue += amount; } else { require(amount <= newValue, "math"); newValue -= amount; } assembly { sstore(key, newValue) } } } } library TotalSupplyLib { bytes32 internal constant _totalSupplyKey = 0x3b199c13f2f664dd6072f28dca68234bfe807e2c585d7f2c2dd6ca130425f7f4; function _totalSupply() internal view returns(uint256 value) { assembly { value := sload(_totalSupplyKey) } } function _updateTotalSupply(uint256 amount, bool add) internal returns(uint256 oldValue, uint256 newValue) { return BalanceMathLib._update(_totalSupplyKey, amount, add); } } library BalanceLib { function _balanceKey(address owner) internal pure returns(bytes32) { return keccak256(abi.encodePacked(bytes32(0x8c711c71c841a0b57e9c348e630100ef0388c980ef7833ea525f8a88be9c528b), owner)); } function _balanceOf(address owner) internal view returns(uint256 value) { bytes32 key = _balanceKey(owner); assembly { value := sload(key) } } function _updateBalanceOf(address owner, uint256 amount, bool add) internal returns(uint256 oldValue, uint256 newValue) { return BalanceMathLib._update(_balanceKey(owner), amount, add); } } library ManageableFunctionsLib { address internal constant DEAD_ADDRESS = 0x000000000000000000000000000000000000dEaD; function _functionManagerKey(string memory method) internal pure returns(bytes32 key, bytes4 signature) { key = _functionManagerKey(signature = bytes(method).length == 0 ? signature : bytes4(keccak256(abi.encodePacked(method)))); } function _functionManagerKey(bytes4 signature) internal pure returns(bytes32) { return keccak256(abi.encodePacked(bytes32(0xd3b8e69b943f0b5cdf78676605268bb628a1252c7ee2b027a749c87ba9c2bf96), signature)); } event FunctionManager(bytes4 indexed signature, address indexed oldValue, address indexed newValue, string method); function _setFunctionManager(string memory method, address newValue) internal returns(address oldValue) { (bytes32 key, bytes4 signature) = _functionManagerKey(method); assembly { oldValue := sload(key) sstore(key, newValue) } emit FunctionManager(signature, oldValue, newValue, method); } function _setFunctionManagers(string[] memory methods, address[] memory values) internal returns(address[] memory oldValues) { if(methods.length == 0) { return oldValues; } oldValues = new address[](methods.length); address defaultValue = values.length == 0 ? address(0) : values[0]; for(uint256 i = 0; i < methods.length; i++) { oldValues[i] = _setFunctionManager(methods[i], i < values.length ? values[i] : defaultValue); } } } library AllowanceKeyLib { function _allowanceKey(address owner, address spender) internal pure returns(bytes32) { return keccak256(abi.encodePacked(bytes32(0x4e43e5fe43c3de8144818a4355e4e23384113a1cdc7e4b106dc8f6506b022692), owner, spender)); } } library AllowanceLib { using AllowanceKeyLib for address; function _allowance(address owner, address spender) internal view returns (uint256 value) { bytes32 key = owner._allowanceKey(spender); assembly { value := sload(key) } } } library ApproveLib { using AllowanceKeyLib for address; function _approve(address owner, address spender, uint256 value, bool alsoEvent) internal returns (bool) { bytes32 key = owner._allowanceKey(spender); assembly { sstore(key, value) } if(alsoEvent) { emit ERC20Events.Approval(owner, spender, value); } return true; } } library ERC20Events { event Approval(address indexed owner, address indexed spender, uint256 value); event Transfer(address indexed from, address indexed to, uint256 value); } // File: contracts/impl/ERC20ReadableData.sol pragma solidity ^0.8.0; abstract contract ERC20ReadableData is IERC20ReadableData { function totalSupply() override public view returns (uint256) { return TotalSupplyLib._totalSupply(); } function balanceOf(address account) override public view returns (uint256) { return BalanceLib._balanceOf(account); } } // File: contracts/impl/ERC20Permit.sol pragma solidity ^0.8.0; abstract contract ERC20Permit is IERC20Permit { using ApproveLib for address; bytes32 override public immutable DOMAIN_SEPARATOR; constructor() { (,string memory domainSeparatorName, string memory domainSeparatorVersion) = permitInfo(); DOMAIN_SEPARATOR = keccak256( abi.encode( keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"), keccak256(bytes(domainSeparatorName)), keccak256(bytes(domainSeparatorVersion)), block.chainid, address(this) ) ); } function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) override external { require(block.timestamp <= deadline, "ERC20Permit: expired deadline"); (string memory permitSignature,,) = permitInfo(); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', DOMAIN_SEPARATOR, keccak256(abi.encode(keccak256(bytes(permitSignature)), owner, spender, value, _increaseNonces(owner), deadline)) ) ); address recoveredAddress = ecrecover(digest, v, r, s); require(recoveredAddress != address(0) && recoveredAddress == owner, 'INVALID_SIGNATURE'); owner._approve(spender, value, true); } function permitInfo() public override pure returns(string memory permitSignature, string memory domainSeparatorName, string memory domainSeparatorVersion) { permitSignature = "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"; domainSeparatorName = "SoS Token"; domainSeparatorVersion = "1"; } function nonces(address owner) override external view returns (uint256 value) { (value,) = _nonces(owner); } function _nonces(address owner) private view returns(uint256 value, bytes32 key) { key = keccak256(abi.encodePacked("nonces", owner)); assembly { value := sload(key) } } function _increaseNonces(address owner) private returns(uint256 oldValue) { (uint256 value, bytes32 key) = _nonces(owner); oldValue = value++; assembly { sstore(key, value) } } } // File: contracts/impl/ManageableFunctions.sol pragma solidity ^0.8.0; abstract contract ManageableFunctions is IManageableFunctions { using ManageableFunctionsLib for string; using ManageableFunctionsLib for bytes4; using ManageableFunctionsLib for string[]; event FunctionManager(bytes4 indexed signature, address indexed oldValue, address indexed newValue, string method); address internal immutable _this = address(this); constructor(string[] memory methods, address[] memory values) { methods._setFunctionManagers(values); } function _tryInitialize() internal { string memory method = "initialize()"; address delegate = functionManager(method); if(delegate != address(0) && delegate != _this && delegate != ManageableFunctionsLib.DEAD_ADDRESS) { (bool result, bytes memory response) = delegate.delegatecall(abi.encodeWithSignature(method)); if(!result) { assembly { revert(add(0x20, response), mload(response)) } } method._setFunctionManager(address(0)); } } function functionsManagers(string[] memory methods) override public view returns(address[] memory values) { values = new address[](methods.length); for(uint256 i = 0; i < methods.length; i++) { values[i] = functionManager(methods[i]); } } function functionManager(string memory method) override public view returns(address value) { (bytes32 key, ) = method._functionManagerKey(); assembly { value := sload(key) } } function functionManagerBySignature(bytes4 signature) override public view returns(address value) { bytes32 key = signature._functionManagerKey(); assembly { value := sload(key) } } receive() virtual external payable { _delegateCall(functionManagerBySignature(bytes4(0))); } fallback() external payable { _delegateCall(functionManagerBySignature(msg.sig)); } modifier delegable() { address delegate = functionManagerBySignature(msg.sig); if(delegate == address(0) || delegate == _this) { _; } else { _delegateCall(delegate); } } function _delegateCall(address delegate) private { require(delegate != address(0) && delegate != _this && delegate != ManageableFunctionsLib.DEAD_ADDRESS); assembly { calldatacopy(0, 0, calldatasize()) let success := delegatecall(gas(), delegate, 0, calldatasize(), 0, 0) returndatacopy(0, 0, returndatasize()) switch success case 0 {revert(0, returndatasize())} default { return(0, returndatasize())} } } function _tryStaticCall() internal view returns(bool) { address delegate = functionManagerBySignature(msg.sig); if(delegate == address(0) || delegate == _this) { return false; } require(delegate != ManageableFunctionsLib.DEAD_ADDRESS); assembly { calldatacopy(0, 0, calldatasize()) let success := staticcall(gas(), delegate, 0, calldatasize(), 0, 0) returndatacopy(0, 0, returndatasize()) switch success case 0 {revert(0, returndatasize())} default { return(0, returndatasize())} } } } // File: contracts/impl/ERC20Mintable.sol pragma solidity ^0.8.0; abstract contract ERC20Mintable is IERC20Mintable, Ownable, ManageableFunctions { function mint(address account, uint256 amount) override external onlyOwner delegable returns (bool) { _mint(account, amount); return true; } function _mint(address account, uint256 amount) internal virtual { BalanceLib._updateBalanceOf(account, amount, true); TotalSupplyLib._updateTotalSupply(amount, true); emit ERC20Events.Transfer(address(0), account, amount); } } // File: contracts/impl/ERC20Metadata.sol pragma solidity ^0.8.0; abstract contract ERC20Metadata is IERC20Metadata, ManageableFunctions { bytes32 private immutable _name; bytes32 private immutable _symbol; uint8 override public immutable decimals; constructor(string memory __name, string memory __symbol, uint8 __decimals) { _name = bytes32(abi.encodePacked(__name)); _symbol = bytes32(abi.encodePacked(__symbol)); decimals = __decimals; } function name() override external view returns (string memory value) { if(!_tryStaticCall()) { return _asString(_name); } } function symbol() override external view returns (string memory value) { if(!_tryStaticCall()) { return _asString(_symbol); } } function _asString(bytes32 value) private pure returns (string memory) { uint8 i = 0; while(i < 32 && value[i] != 0) { i++; } bytes memory bytesArray = new bytes(i); for (i = 0; i < 32 && value[i] != 0; i++) { bytesArray[i] = value[i]; } return string(bytesArray); } } // File: contracts/impl/ERC20Core.sol pragma solidity ^0.8.0; abstract contract ERC20Core is IERC20Core, ManageableFunctions { function transfer(address recipient, uint256 amount) override public virtual delegable returns (bool) { if(amount == 0) { return true; } _transfer(msg.sender, recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) override public virtual delegable returns (bool) { if(amount == 0) { return true; } uint256 oldAllowance = AllowanceLib._allowance(sender, msg.sender); require(oldAllowance >= amount, "ERC20: amount exeeds allowance"); ApproveLib._approve(sender, msg.sender, oldAllowance - amount, false); _transfer(sender, recipient, amount); return true; } function _transfer(address from, address to, uint256 amount) internal virtual { BalanceLib._updateBalanceOf(from, amount, false); BalanceLib._updateBalanceOf(to, amount, true); emit ERC20Events.Transfer(from, to, amount); } } // File: contracts/impl/ERC20Burnable.sol pragma solidity ^0.8.0; abstract contract ERC20Burnable is IERC20Burnable { function burn(uint256 amount) override external { BalanceLib._updateBalanceOf(msg.sender, amount, false); TotalSupplyLib._updateTotalSupply(amount, false); emit ERC20Events.Transfer(msg.sender, address(0), amount); } function burnFrom(address account, uint256 amount) override external { uint256 oldAllowance = AllowanceLib._allowance(account, msg.sender); require(oldAllowance >= amount, "ERC20: amount exeeds allowance"); ApproveLib._approve(account, msg.sender, oldAllowance - amount, false); BalanceLib._updateBalanceOf(account, amount, false); TotalSupplyLib._updateTotalSupply(amount, false); emit ERC20Events.Transfer(account, address(0), amount); } } // File: contracts/model/IERC20Approve.sol pragma solidity ^0.8.0; interface IERC20Approve { function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); } // File: contracts/impl/ERC20Approve.sol pragma solidity ^0.8.0; abstract contract ERC20Approve is IERC20Approve { using AllowanceLib for address; using ApproveLib for address; function allowance(address owner, address spender) override public view returns (uint256 value) { return owner._allowance(spender); } function approve(address spender, uint256 amount) override external returns (bool) { return msg.sender._approve(spender, amount, true); } } // File: contracts/vert/Token.sol pragma solidity ^0.8.0; contract Token is ERC20Approve, ERC20Burnable, ERC20Core, ERC20Metadata, ERC20Mintable, ERC20Permit, ERC20ReadableData { constructor(address initialOwner, string[] memory methods, address[] memory values) Ownable(initialOwner) ManageableFunctions(methods, values) ERC20Metadata("Codename: Kaiten", "KAI", 18) { } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"string[]","name":"methods","type":"string[]"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"bytes4","name":"signature","type":"bytes4"},{"indexed":true,"internalType":"address","name":"oldValue","type":"address"},{"indexed":true,"internalType":"address","name":"newValue","type":"address"},{"indexed":false,"internalType":"string","name":"method","type":"string"}],"name":"FunctionManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes4","name":"signature","type":"bytes4"},{"indexed":true,"internalType":"address","name":"oldValue","type":"address"},{"indexed":true,"internalType":"address","name":"newValue","type":"address"},{"indexed":false,"internalType":"string","name":"method","type":"string"}],"name":"FunctionManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"method","type":"string"}],"name":"functionManager","outputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"signature","type":"bytes4"}],"name":"functionManagerBySignature","outputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string[]","name":"methods","type":"string[]"}],"name":"functionsManagers","outputs":[{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"value","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"permitInfo","outputs":[{"internalType":"string","name":"permitSignature","type":"string"},{"internalType":"string","name":"domainSeparatorName","type":"string"},{"internalType":"string","name":"domainSeparatorVersion","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"value","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6101206040523060805234801562000015575f80fd5b5060405162002176380380620021768339810160408190526200003891620005d4565b6040518060400160405280601081526020016f21b7b232b730b6b29d1025b0b4ba32b760811b815250604051806040016040528060038152602001624b414960e81b815250601284848762000093816200019860201b60201c565b50620000a0828262000207565b50505082604051602001620000b6919062000719565b604051602081830303815290604052620000d09062000736565b60a052604051620000e690839060200162000719565b604051602081830303815290604052620001009062000736565b60c05260ff1660e052505f905080620001186200032b565b8151602092830120815191830191909120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818601528082019390935260608301919091524660808301523060a0808401919091528151808403909101815260c0909201905280519101206101005250620007a5945050505050565b5f620001b05f80516020620021048339815191525490565b9050815f805160206200210483398151915255816001600160a01b0316816001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b815160609015620003255782516001600160401b038111156200022e576200022e620004c7565b60405190808252806020026020018201604052801562000258578160200160208202803683370190505b5090505f82515f146200028857825f815181106200027a576200027a6200075d565b60200260200101516200028a565b5f5b90505f5b84518110156200032257620002ec858281518110620002b157620002b16200075d565b602002602001015185518310620002c9578362000391565b858381518110620002de57620002de6200075d565b602002602001015162000391565b8382815181106200030157620003016200075d565b6001600160a01b03909216602092830291909101909101526001016200028e565b50505b92915050565b6060806060604051806080016040528060528152602001620021246052913992506040518060400160405280600981526020016829b7a9902a37b5b2b760b91b8152509150604051806040016040528060018152602001603160f81b8152509050909192565b5f80806200039f856200040a565b9150915081549250838255836001600160a01b0316836001600160a01b0316826001600160e01b0319167fa2b679fbcd68d6aa2046f3c7f51576ae438020af616586bbf8fe4ce265e1cee188604051620003fa919062000771565b60405180910390a4505092915050565b5f80620004a483515f146200044857836040516020016200042c919062000719565b604051602081830303815290604052805190602001206200044a565b815b604080517fd3b8e69b943f0b5cdf78676605268bb628a1252c7ee2b027a749c87ba9c2bf966020808301919091526001600160e01b0319841682840152825180830360240181526044909201909252805191012090925090565b9150915091565b80516001600160a01b0381168114620004c2575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715620005065762000506620004c7565b604052919050565b5f6001600160401b03821115620005295762000529620004c7565b5060051b60200190565b5f5b838110156200054f57818101518382015260200162000535565b50505f910152565b5f82601f83011262000567575f80fd5b81516020620005806200057a836200050e565b620004db565b8083825260208201915060208460051b870101935086841115620005a2575f80fd5b602086015b84811015620005c957620005bb81620004ab565b8352918301918301620005a7565b509695505050505050565b5f805f60608486031215620005e7575f80fd5b620005f284620004ab565b602085810151919450906001600160401b038082111562000611575f80fd5b818701915087601f83011262000625575f80fd5b8151620006366200057a826200050e565b81815260059190911b8301840190848101908a83111562000655575f80fd5b8585015b83811015620006e55780518581111562000671575f80fd5b8601603f81018d1362000682575f80fd5b878101516040878211156200069b576200069b620004c7565b620006af601f8301601f19168b01620004db565b8281528f82848601011115620006c3575f80fd5b620006d4838c830184870162000533565b865250505091860191860162000659565b5060408a01519097509450505080831115620006ff575f80fd5b50506200070f8682870162000557565b9150509250925092565b5f82516200072c81846020870162000533565b9190910192915050565b8051602080830151919081101562000757575f198160200360031b1b821691505b50919050565b634e487b7160e01b5f52603260045260245ffd5b602081525f82518060208401526200079181604085016020870162000533565b601f01601f19169190910160400192915050565b60805160a05160c05160e051610100516118fe620008065f395f818161027a0152610b1b01525f61023501525f610a1801525f61052801525f81816104a3015281816106240152818161077b01528181610a670152610ded01526118fe5ff3fe608060405260043610610138575f3560e01c8063715018a6116100aa5780638da5cb5b1161006e5780638da5cb5b146103cd57806395d89b41146103e1578063a9059cbb146103f5578063d505accf14610414578063dd62ed3e14610433578063f2fde38b1461045257610150565b8063715018a61461033057806379cc6790146103445780637ecebe0014610363578063826f8c9314610382578063872dcbdc146103a157610150565b8063313ce567116100fc578063313ce567146102245780633644e5151461026957806340c10f191461029c57806342966c68146102bb57806349a147ec146102da57806370a082311461031157610150565b806306fdde0314610167578063095ea7b3146101915780630db1f943146101c057806318160ddd146101e357806323b872dd1461020557610150565b366101505761014e6101495f610471565b61048e565b005b61014e6101495f356001600160e01b031916610471565b348015610172575f80fd5b5061017b610515565b60405161018891906113b9565b60405180910390f35b34801561019c575f80fd5b506101b06101ab3660046113e6565b610554565b6040519015158152602001610188565b3480156101cb575f80fd5b506101d461056b565b6040516101889392919061140e565b3480156101ee575f80fd5b506101f76105d0565b604051908152602001610188565b348015610210575f80fd5b506101b061021f366004611450565b6105f9565b34801561022f575f80fd5b506102577f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610188565b348015610274575f80fd5b506101f77f000000000000000000000000000000000000000000000000000000000000000081565b3480156102a7575f80fd5b506101b06102b63660046113e6565b61070b565b3480156102c6575f80fd5b5061014e6102d5366004611489565b6107d7565b3480156102e5575f80fd5b506102f96102f4366004611551565b610817565b6040516001600160a01b039091168152602001610188565b34801561031c575f80fd5b506101f761032b36600461158b565b61082b565b34801561033b575f80fd5b5061014e610835565b34801561034f575f80fd5b5061014e61035e3660046113e6565b61087f565b34801561036e575f80fd5b506101f761037d36600461158b565b610938565b34801561038d575f80fd5b506102f961039c3660046115a4565b610471565b3480156103ac575f80fd5b506103c06103bb3660046115cb565b610942565b6040516101889190611687565b3480156103d8575f80fd5b506102f96109ef565b3480156103ec575f80fd5b5061017b610a05565b348015610400575f80fd5b506101b061040f3660046113e6565b610a3c565b34801561041f575f80fd5b5061014e61042e3660046116d3565b610abb565b34801561043e575f80fd5b506101f761044d366004611740565b610cc4565b34801561045d575f80fd5b5061014e61046c36600461158b565b610cd8565b5f806104866001600160e01b03198416610d63565b549392505050565b6001600160a01b038116158015906104d857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b80156104ef57506001600160a01b03811661dead14155b6104f7575f80fd5b365f80375f80365f845af43d5f803e808015610511573d5ff35b3d5ffd5b606061051f610dc2565b6105515761054c7f0000000000000000000000000000000000000000000000000000000000000000610e5e565b905090565b90565b5f6105623384846001610f91565b90505b92915050565b60608060606040518060800160405280605281526020016118576052913992506040518060400160405280600981526020016829b7a9902a37b5b2b760b91b8152509150604051806040016040528060018152602001603160f81b8152509050909192565b5f61054c7f3b199c13f2f664dd6072f28dca68234bfe807e2c585d7f2c2dd6ca130425f7f45490565b5f8061060f5f356001600160e01b031916610471565b90506001600160a01b038116158061065857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b156106fa57825f0361066d5760019150610703565b5f610678863361100b565b9050838110156106cf5760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20616d6f756e742065786565647320616c6c6f77616e6365000060448201526064015b60405180910390fd5b6106e486336106de8785611785565b5f610f91565b506106f0868686611029565b6001925050610703565b6107038161048e565b509392505050565b5f6107215f805160206118378339815191525490565b6001600160a01b0316336001600160a01b0316146107515760405162461bcd60e51b81526004016106c690611798565b5f6107665f356001600160e01b031916610471565b90506001600160a01b03811615806107af57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b156107c7576107be8484611076565b600191506107d0565b6107d08161048e565b5092915050565b6107e233825f6110c2565b50506107ee815f6110e4565b50506040518181525f9033905f805160206118a98339815191529060200160405180910390a350565b5f806108228361111c565b50549392505050565b5f61056582611166565b5f80516020611837833981519152546001600160a01b0316336001600160a01b0316146108745760405162461bcd60e51b81526004016106c690611798565b61087d5f611171565b565b5f61088a833361100b565b9050818110156108dc5760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20616d6f756e742065786565647320616c6c6f77616e6365000060448201526064016106c6565b6108eb83336106de8585611785565b506108f783835f6110c2565b5050610903825f6110e4565b50506040518281525f906001600160a01b038516905f805160206118a9833981519152906020015b60405180910390a3505050565b5f6107d0826111dd565b6060815167ffffffffffffffff81111561095e5761095e6114a0565b604051908082528060200260200182016040528015610987578160200160208202803683370190505b5090505f5b82518110156109e9576109b78382815181106109aa576109aa6117be565b6020026020010151610817565b8282815181106109c9576109c96117be565b6001600160a01b039092166020928302919091019091015260010161098c565b50919050565b5f61054c5f805160206118378339815191525490565b6060610a0f610dc2565b6105515761054c7f0000000000000000000000000000000000000000000000000000000000000000610e5e565b5f80610a525f356001600160e01b031916610471565b90506001600160a01b0381161580610a9b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b156107c757825f03610ab057600191506107d0565b6107be338585611029565b83421115610b0b5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016106c6565b5f610b1461056b565b505090505f7f000000000000000000000000000000000000000000000000000000000000000082805190602001208a8a8a610b4e8e611225565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e00160405160208183030381529060405280519060200120604051602001610bc392919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f80855291840180845281905260ff89169284019290925260608301879052608083018690529092509060019060a0016020604051602081039080840390855afa158015610c2b573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811615801590610c615750896001600160a01b0316816001600160a01b0316145b610ca15760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b60448201526064016106c6565b610cb76001600160a01b038b168a8a6001610f91565b5050505050505050505050565b5f6105626001600160a01b0384168361100b565b5f80516020611837833981519152546001600160a01b0316336001600160a01b031614610d175760405162461bcd60e51b81526004016106c690611798565b6001600160a01b038116610d575760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b60448201526064016106c6565b610d6081611171565b50565b604080517fd3b8e69b943f0b5cdf78676605268bb628a1252c7ee2b027a749c87ba9c2bf9660208201526001600160e01b03198316918101919091525f906044015b604051602081830303815290604052805190602001209050919050565b5f80610dd85f356001600160e01b031916610471565b90506001600160a01b0381161580610e2157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b15610e2d575f91505090565b61deac196001600160a01b03821601610e44575f80fd5b365f80375f80365f845afa3d5f803e808015610511573d5ff35b60605f5b60208160ff16108015610e965750828160ff1660208110610e8557610e856117be565b1a60f81b6001600160f81b03191615155b15610ead5780610ea5816117d2565b915050610e62565b5f8160ff1667ffffffffffffffff811115610eca57610eca6114a0565b6040519080825280601f01601f191660200182016040528015610ef4576020820181803683370190505b5090505f91505b60208260ff16108015610f2f5750838260ff1660208110610f1e57610f1e6117be565b1a60f81b6001600160f81b03191615155b15610f8a57838260ff1660208110610f4957610f496117be565b1a60f81b818360ff1681518110610f6257610f626117be565b60200101906001600160f81b03191690815f1a90535081610f82816117d2565b925050610efb565b9392505050565b5f80610fa66001600160a01b0387168661124a565b90508381558215610fff57846001600160a01b0316866001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92586604051610ff691815260200190565b60405180910390a35b50600195945050505050565b5f806110206001600160a01b0385168461124a565b54949350505050565b61103483825f6110c2565b5050611042828260016110c2565b5050816001600160a01b0316836001600160a01b03165f805160206118a98339815191528360405161092b91815260200190565b611082828260016110c2565b505061108f8160016110e4565b50506040518181526001600160a01b038316905f905f805160206118a98339815191529060200160405180910390a35050565b5f806110d76110d0866112b1565b85856112fc565b915091505b935093915050565b5f806111117f3b199c13f2f664dd6072f28dca68234bfe807e2c585d7f2c2dd6ca130425f7f485856112fc565b915091509250929050565b5f8061115f83515f14611155578360405160200161113a91906117f0565b60405160208183030381529060405280519060200120611157565b815b915081610d63565b9150915091565b5f80610486836112b1565b5f6111875f805160206118378339815191525490565b9050815f8051602061183783398151915255816001600160a01b0316816001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60408051656e6f6e63657360d01b60208083019190915260609390931b6001600160601b03191660268201528151601a818303018152603a9091019091528051910120805491565b5f805f611231846111dd565b9150915081806112409061180b565b9091559392505050565b604080517f4e43e5fe43c3de8144818a4355e4e23384113a1cdc7e4b106dc8f6506b0226926020808301919091526001600160601b0319606095861b8116838501529390941b90921660548301528051808303604801815260689092019052805191012090565b6040515f90610da5907f8c711c71c841a0b57e9c348e630100ef0388c980ef7833ea525f8a88be9c528b90849060200191825260601b6001600160601b031916602082015260340190565b82548083156110dc57821561131c576113158482611823565b9050611362565b808411156113555760405162461bcd60e51b81526004016106c6906020808252600490820152630dac2e8d60e31b604082015260600190565b61135f8482611785565b90505b9384905593915050565b5f5b8381101561138657818101518382015260200161136e565b50505f910152565b5f81518084526113a581602086016020860161136c565b601f01601f19169290920160200192915050565b602081525f610562602083018461138e565b80356001600160a01b03811681146113e1575f80fd5b919050565b5f80604083850312156113f7575f80fd5b611400836113cb565b946020939093013593505050565b606081525f611420606083018661138e565b8281036020840152611432818661138e565b90508281036040840152611446818561138e565b9695505050505050565b5f805f60608486031215611462575f80fd5b61146b846113cb565b9250611479602085016113cb565b9150604084013590509250925092565b5f60208284031215611499575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156114dd576114dd6114a0565b604052919050565b5f82601f8301126114f4575f80fd5b813567ffffffffffffffff81111561150e5761150e6114a0565b611521601f8201601f19166020016114b4565b818152846020838601011115611535575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611561575f80fd5b813567ffffffffffffffff811115611577575f80fd5b611583848285016114e5565b949350505050565b5f6020828403121561159b575f80fd5b610562826113cb565b5f602082840312156115b4575f80fd5b81356001600160e01b031981168114610f8a575f80fd5b5f60208083850312156115dc575f80fd5b823567ffffffffffffffff808211156115f3575f80fd5b818501915085601f830112611606575f80fd5b813581811115611618576116186114a0565b8060051b6116278582016114b4565b9182528381018501918581019089841115611640575f80fd5b86860192505b8383101561167a5782358581111561165c575f80fd5b61166a8b89838a01016114e5565b8352509186019190860190611646565b9998505050505050505050565b602080825282518282018190525f9190848201906040850190845b818110156116c75783516001600160a01b0316835292840192918401916001016116a2565b50909695505050505050565b5f805f805f805f60e0888a0312156116e9575f80fd5b6116f2886113cb565b9650611700602089016113cb565b95506040880135945060608801359350608088013560ff81168114611723575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215611751575f80fd5b61175a836113cb565b9150611768602084016113cb565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561056557610565611771565b6020808252600c908201526b155b985d5d1a1bdc9a5e995960a21b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60ff821660ff81036117e7576117e7611771565b60010192915050565b5f825161180181846020870161136c565b9190910192915050565b5f6001820161181c5761181c611771565b5060010190565b808201808211156105655761056561177156fedc6edb7e21c7d6802c30a4249460696aa4c6ef3b5aee9c59996f8fedc7fbaefe5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122074418233317403d97daa92036e1bbe205afba1dae263ae520dbcb4dc469618f564736f6c63430008180033dc6edb7e21c7d6802c30a4249460696aa4c6ef3b5aee9c59996f8fedc7fbaefe5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e65290000000000000000000000005a46c3a544d160f39a96036a88ad09f95035a892000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000000156d696e7428616464726573732c75696e7432353629000000000000000000000000000000000000000000000000000000000000000000000000000000000000197472616e7366657228616464726573732c75696e74323536290000000000000000000000000000000000000000000000000000000000000000000000000000257472616e7366657246726f6d28616464726573732c616464726573732c75696e74323536290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a5f73746f726167652829000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033636f6d706c657465496e697469616c697a6174696f6e28616464726573732c616464726573735b5d2c75696e743235365b5d2900000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e73657446696e616c4e616d65416e6453796d626f6c2861646472657373290000000000000000000000000000000000000000000000000000000000000000002e74727946696e616c697a65426f6f747374726170416e64456e61626c65416e74695768616c6553797374656d282900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db7
Deployed Bytecode
0x608060405260043610610138575f3560e01c8063715018a6116100aa5780638da5cb5b1161006e5780638da5cb5b146103cd57806395d89b41146103e1578063a9059cbb146103f5578063d505accf14610414578063dd62ed3e14610433578063f2fde38b1461045257610150565b8063715018a61461033057806379cc6790146103445780637ecebe0014610363578063826f8c9314610382578063872dcbdc146103a157610150565b8063313ce567116100fc578063313ce567146102245780633644e5151461026957806340c10f191461029c57806342966c68146102bb57806349a147ec146102da57806370a082311461031157610150565b806306fdde0314610167578063095ea7b3146101915780630db1f943146101c057806318160ddd146101e357806323b872dd1461020557610150565b366101505761014e6101495f610471565b61048e565b005b61014e6101495f356001600160e01b031916610471565b348015610172575f80fd5b5061017b610515565b60405161018891906113b9565b60405180910390f35b34801561019c575f80fd5b506101b06101ab3660046113e6565b610554565b6040519015158152602001610188565b3480156101cb575f80fd5b506101d461056b565b6040516101889392919061140e565b3480156101ee575f80fd5b506101f76105d0565b604051908152602001610188565b348015610210575f80fd5b506101b061021f366004611450565b6105f9565b34801561022f575f80fd5b506102577f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff9091168152602001610188565b348015610274575f80fd5b506101f77fe302dd70be3a7bc890b9f1b8d5c64cef5ff8785ecf36e47a5895f6b9824bd7a781565b3480156102a7575f80fd5b506101b06102b63660046113e6565b61070b565b3480156102c6575f80fd5b5061014e6102d5366004611489565b6107d7565b3480156102e5575f80fd5b506102f96102f4366004611551565b610817565b6040516001600160a01b039091168152602001610188565b34801561031c575f80fd5b506101f761032b36600461158b565b61082b565b34801561033b575f80fd5b5061014e610835565b34801561034f575f80fd5b5061014e61035e3660046113e6565b61087f565b34801561036e575f80fd5b506101f761037d36600461158b565b610938565b34801561038d575f80fd5b506102f961039c3660046115a4565b610471565b3480156103ac575f80fd5b506103c06103bb3660046115cb565b610942565b6040516101889190611687565b3480156103d8575f80fd5b506102f96109ef565b3480156103ec575f80fd5b5061017b610a05565b348015610400575f80fd5b506101b061040f3660046113e6565b610a3c565b34801561041f575f80fd5b5061014e61042e3660046116d3565b610abb565b34801561043e575f80fd5b506101f761044d366004611740565b610cc4565b34801561045d575f80fd5b5061014e61046c36600461158b565b610cd8565b5f806104866001600160e01b03198416610d63565b549392505050565b6001600160a01b038116158015906104d857507f000000000000000000000000899d774e0f8e14810d628db63e65dfacea6823436001600160a01b0316816001600160a01b031614155b80156104ef57506001600160a01b03811661dead14155b6104f7575f80fd5b365f80375f80365f845af43d5f803e808015610511573d5ff35b3d5ffd5b606061051f610dc2565b6105515761054c7f436f64656e616d653a204b616974656e00000000000000000000000000000000610e5e565b905090565b90565b5f6105623384846001610f91565b90505b92915050565b60608060606040518060800160405280605281526020016118576052913992506040518060400160405280600981526020016829b7a9902a37b5b2b760b91b8152509150604051806040016040528060018152602001603160f81b8152509050909192565b5f61054c7f3b199c13f2f664dd6072f28dca68234bfe807e2c585d7f2c2dd6ca130425f7f45490565b5f8061060f5f356001600160e01b031916610471565b90506001600160a01b038116158061065857507f000000000000000000000000899d774e0f8e14810d628db63e65dfacea6823436001600160a01b0316816001600160a01b0316145b156106fa57825f0361066d5760019150610703565b5f610678863361100b565b9050838110156106cf5760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20616d6f756e742065786565647320616c6c6f77616e6365000060448201526064015b60405180910390fd5b6106e486336106de8785611785565b5f610f91565b506106f0868686611029565b6001925050610703565b6107038161048e565b509392505050565b5f6107215f805160206118378339815191525490565b6001600160a01b0316336001600160a01b0316146107515760405162461bcd60e51b81526004016106c690611798565b5f6107665f356001600160e01b031916610471565b90506001600160a01b03811615806107af57507f000000000000000000000000899d774e0f8e14810d628db63e65dfacea6823436001600160a01b0316816001600160a01b0316145b156107c7576107be8484611076565b600191506107d0565b6107d08161048e565b5092915050565b6107e233825f6110c2565b50506107ee815f6110e4565b50506040518181525f9033905f805160206118a98339815191529060200160405180910390a350565b5f806108228361111c565b50549392505050565b5f61056582611166565b5f80516020611837833981519152546001600160a01b0316336001600160a01b0316146108745760405162461bcd60e51b81526004016106c690611798565b61087d5f611171565b565b5f61088a833361100b565b9050818110156108dc5760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20616d6f756e742065786565647320616c6c6f77616e6365000060448201526064016106c6565b6108eb83336106de8585611785565b506108f783835f6110c2565b5050610903825f6110e4565b50506040518281525f906001600160a01b038516905f805160206118a9833981519152906020015b60405180910390a3505050565b5f6107d0826111dd565b6060815167ffffffffffffffff81111561095e5761095e6114a0565b604051908082528060200260200182016040528015610987578160200160208202803683370190505b5090505f5b82518110156109e9576109b78382815181106109aa576109aa6117be565b6020026020010151610817565b8282815181106109c9576109c96117be565b6001600160a01b039092166020928302919091019091015260010161098c565b50919050565b5f61054c5f805160206118378339815191525490565b6060610a0f610dc2565b6105515761054c7f4b41490000000000000000000000000000000000000000000000000000000000610e5e565b5f80610a525f356001600160e01b031916610471565b90506001600160a01b0381161580610a9b57507f000000000000000000000000899d774e0f8e14810d628db63e65dfacea6823436001600160a01b0316816001600160a01b0316145b156107c757825f03610ab057600191506107d0565b6107be338585611029565b83421115610b0b5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016106c6565b5f610b1461056b565b505090505f7fe302dd70be3a7bc890b9f1b8d5c64cef5ff8785ecf36e47a5895f6b9824bd7a782805190602001208a8a8a610b4e8e611225565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e00160405160208183030381529060405280519060200120604051602001610bc392919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f80855291840180845281905260ff89169284019290925260608301879052608083018690529092509060019060a0016020604051602081039080840390855afa158015610c2b573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811615801590610c615750896001600160a01b0316816001600160a01b0316145b610ca15760405162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b60448201526064016106c6565b610cb76001600160a01b038b168a8a6001610f91565b5050505050505050505050565b5f6105626001600160a01b0384168361100b565b5f80516020611837833981519152546001600160a01b0316336001600160a01b031614610d175760405162461bcd60e51b81526004016106c690611798565b6001600160a01b038116610d575760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b60448201526064016106c6565b610d6081611171565b50565b604080517fd3b8e69b943f0b5cdf78676605268bb628a1252c7ee2b027a749c87ba9c2bf9660208201526001600160e01b03198316918101919091525f906044015b604051602081830303815290604052805190602001209050919050565b5f80610dd85f356001600160e01b031916610471565b90506001600160a01b0381161580610e2157507f000000000000000000000000899d774e0f8e14810d628db63e65dfacea6823436001600160a01b0316816001600160a01b0316145b15610e2d575f91505090565b61deac196001600160a01b03821601610e44575f80fd5b365f80375f80365f845afa3d5f803e808015610511573d5ff35b60605f5b60208160ff16108015610e965750828160ff1660208110610e8557610e856117be565b1a60f81b6001600160f81b03191615155b15610ead5780610ea5816117d2565b915050610e62565b5f8160ff1667ffffffffffffffff811115610eca57610eca6114a0565b6040519080825280601f01601f191660200182016040528015610ef4576020820181803683370190505b5090505f91505b60208260ff16108015610f2f5750838260ff1660208110610f1e57610f1e6117be565b1a60f81b6001600160f81b03191615155b15610f8a57838260ff1660208110610f4957610f496117be565b1a60f81b818360ff1681518110610f6257610f626117be565b60200101906001600160f81b03191690815f1a90535081610f82816117d2565b925050610efb565b9392505050565b5f80610fa66001600160a01b0387168661124a565b90508381558215610fff57846001600160a01b0316866001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92586604051610ff691815260200190565b60405180910390a35b50600195945050505050565b5f806110206001600160a01b0385168461124a565b54949350505050565b61103483825f6110c2565b5050611042828260016110c2565b5050816001600160a01b0316836001600160a01b03165f805160206118a98339815191528360405161092b91815260200190565b611082828260016110c2565b505061108f8160016110e4565b50506040518181526001600160a01b038316905f905f805160206118a98339815191529060200160405180910390a35050565b5f806110d76110d0866112b1565b85856112fc565b915091505b935093915050565b5f806111117f3b199c13f2f664dd6072f28dca68234bfe807e2c585d7f2c2dd6ca130425f7f485856112fc565b915091509250929050565b5f8061115f83515f14611155578360405160200161113a91906117f0565b60405160208183030381529060405280519060200120611157565b815b915081610d63565b9150915091565b5f80610486836112b1565b5f6111875f805160206118378339815191525490565b9050815f8051602061183783398151915255816001600160a01b0316816001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60408051656e6f6e63657360d01b60208083019190915260609390931b6001600160601b03191660268201528151601a818303018152603a9091019091528051910120805491565b5f805f611231846111dd565b9150915081806112409061180b565b9091559392505050565b604080517f4e43e5fe43c3de8144818a4355e4e23384113a1cdc7e4b106dc8f6506b0226926020808301919091526001600160601b0319606095861b8116838501529390941b90921660548301528051808303604801815260689092019052805191012090565b6040515f90610da5907f8c711c71c841a0b57e9c348e630100ef0388c980ef7833ea525f8a88be9c528b90849060200191825260601b6001600160601b031916602082015260340190565b82548083156110dc57821561131c576113158482611823565b9050611362565b808411156113555760405162461bcd60e51b81526004016106c6906020808252600490820152630dac2e8d60e31b604082015260600190565b61135f8482611785565b90505b9384905593915050565b5f5b8381101561138657818101518382015260200161136e565b50505f910152565b5f81518084526113a581602086016020860161136c565b601f01601f19169290920160200192915050565b602081525f610562602083018461138e565b80356001600160a01b03811681146113e1575f80fd5b919050565b5f80604083850312156113f7575f80fd5b611400836113cb565b946020939093013593505050565b606081525f611420606083018661138e565b8281036020840152611432818661138e565b90508281036040840152611446818561138e565b9695505050505050565b5f805f60608486031215611462575f80fd5b61146b846113cb565b9250611479602085016113cb565b9150604084013590509250925092565b5f60208284031215611499575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156114dd576114dd6114a0565b604052919050565b5f82601f8301126114f4575f80fd5b813567ffffffffffffffff81111561150e5761150e6114a0565b611521601f8201601f19166020016114b4565b818152846020838601011115611535575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611561575f80fd5b813567ffffffffffffffff811115611577575f80fd5b611583848285016114e5565b949350505050565b5f6020828403121561159b575f80fd5b610562826113cb565b5f602082840312156115b4575f80fd5b81356001600160e01b031981168114610f8a575f80fd5b5f60208083850312156115dc575f80fd5b823567ffffffffffffffff808211156115f3575f80fd5b818501915085601f830112611606575f80fd5b813581811115611618576116186114a0565b8060051b6116278582016114b4565b9182528381018501918581019089841115611640575f80fd5b86860192505b8383101561167a5782358581111561165c575f80fd5b61166a8b89838a01016114e5565b8352509186019190860190611646565b9998505050505050505050565b602080825282518282018190525f9190848201906040850190845b818110156116c75783516001600160a01b0316835292840192918401916001016116a2565b50909695505050505050565b5f805f805f805f60e0888a0312156116e9575f80fd5b6116f2886113cb565b9650611700602089016113cb565b95506040880135945060608801359350608088013560ff81168114611723575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215611751575f80fd5b61175a836113cb565b9150611768602084016113cb565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561056557610565611771565b6020808252600c908201526b155b985d5d1a1bdc9a5e995960a21b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60ff821660ff81036117e7576117e7611771565b60010192915050565b5f825161180181846020870161136c565b9190910192915050565b5f6001820161181c5761181c611771565b5060010190565b808201808211156105655761056561177156fedc6edb7e21c7d6802c30a4249460696aa4c6ef3b5aee9c59996f8fedc7fbaefe5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122074418233317403d97daa92036e1bbe205afba1dae263ae520dbcb4dc469618f564736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005a46c3a544d160f39a96036a88ad09f95035a892000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000000156d696e7428616464726573732c75696e7432353629000000000000000000000000000000000000000000000000000000000000000000000000000000000000197472616e7366657228616464726573732c75696e74323536290000000000000000000000000000000000000000000000000000000000000000000000000000257472616e7366657246726f6d28616464726573732c616464726573732c75696e74323536290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a5f73746f726167652829000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033636f6d706c657465496e697469616c697a6174696f6e28616464726573732c616464726573735b5d2c75696e743235365b5d2900000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e73657446696e616c4e616d65416e6453796d626f6c2861646472657373290000000000000000000000000000000000000000000000000000000000000000002e74727946696e616c697a65426f6f747374726170416e64456e61626c65416e74695768616c6553797374656d282900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db70000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db7
-----Decoded View---------------
Arg [0] : initialOwner (address): 0x5a46c3A544d160F39A96036A88ad09f95035A892
Arg [1] : methods (string[]): mint(address,uint256),transfer(address,uint256),transferFrom(address,address,uint256),,_storage(),completeInitialization(address,address[],uint256[]),setFinalNameAndSymbol(address),tryFinalizeBootstrapAndEnableAntiWhaleSystem()
Arg [2] : values (address[]): 0x8f3eC5441Fd6340f07Fd5e93E4BcEb481a044DB7,0x8f3eC5441Fd6340f07Fd5e93E4BcEb481a044DB7,0x8f3eC5441Fd6340f07Fd5e93E4BcEb481a044DB7,0x8f3eC5441Fd6340f07Fd5e93E4BcEb481a044DB7,0x8f3eC5441Fd6340f07Fd5e93E4BcEb481a044DB7,0x8f3eC5441Fd6340f07Fd5e93E4BcEb481a044DB7,0x8f3eC5441Fd6340f07Fd5e93E4BcEb481a044DB7,0x8f3eC5441Fd6340f07Fd5e93E4BcEb481a044DB7
-----Encoded View---------------
39 Constructor Arguments found :
Arg [0] : 0000000000000000000000005a46c3a544d160f39a96036a88ad09f95035a892
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000003c0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [7] : 00000000000000000000000000000000000000000000000000000000000001e0
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000200
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000240
Arg [10] : 00000000000000000000000000000000000000000000000000000000000002a0
Arg [11] : 00000000000000000000000000000000000000000000000000000000000002e0
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000015
Arg [13] : 6d696e7428616464726573732c75696e74323536290000000000000000000000
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000019
Arg [15] : 7472616e7366657228616464726573732c75696e743235362900000000000000
Arg [16] : 0000000000000000000000000000000000000000000000000000000000000025
Arg [17] : 7472616e7366657246726f6d28616464726573732c616464726573732c75696e
Arg [18] : 7432353629000000000000000000000000000000000000000000000000000000
Arg [19] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [20] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [21] : 5f73746f72616765282900000000000000000000000000000000000000000000
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000033
Arg [23] : 636f6d706c657465496e697469616c697a6174696f6e28616464726573732c61
Arg [24] : 6464726573735b5d2c75696e743235365b5d2900000000000000000000000000
Arg [25] : 000000000000000000000000000000000000000000000000000000000000001e
Arg [26] : 73657446696e616c4e616d65416e6453796d626f6c2861646472657373290000
Arg [27] : 000000000000000000000000000000000000000000000000000000000000002e
Arg [28] : 74727946696e616c697a65426f6f747374726170416e64456e61626c65416e74
Arg [29] : 695768616c6553797374656d2829000000000000000000000000000000000000
Arg [30] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [31] : 0000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db7
Arg [32] : 0000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db7
Arg [33] : 0000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db7
Arg [34] : 0000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db7
Arg [35] : 0000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db7
Arg [36] : 0000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db7
Arg [37] : 0000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db7
Arg [38] : 0000000000000000000000008f3ec5441fd6340f07fd5e93e4bceb481a044db7
Deployed Bytecode Sourcemap
19708:327:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13354:52;13368:37;13402:1;13368:26;:37::i;:::-;13354:13;:52::i;:::-;19708:327;;13461:50;13475:35;13502:7;;-1:-1:-1;;;;;;13502:7:0;13475:26;:35::i;16067:159::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19472:151;;;;;;;;;;-1:-1:-1;19472:151:0;;;;;:::i;:::-;;:::i;:::-;;;1372:14:1;;1365:22;1347:41;;1335:2;1320:18;19472:151:0;1207:187:1;10412:359:0;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;8627:117::-;;;;;;;;;;;;;:::i;:::-;;;2096:25:1;;;2084:2;2069:18;8627:117:0;1950:177:1;17173:496:0;;;;;;;;;;-1:-1:-1;17173:496:0;;;;;:::i;:::-;;:::i;15786:40::-;;;;;;;;;;;;;;;;;;2637:4:1;2625:17;;;2607:36;;2595:2;2580:18;15786:40:0;2465:184:1;9054:50:0;;;;;;;;;;;;;;;15117:163;;;;;;;;;;-1:-1:-1;15117:163:0;;;;;:::i;:::-;;:::i;18074:248::-;;;;;;;;;;-1:-1:-1;18074:248:0;;;;;:::i;:::-;;:::i;12846:220::-;;;;;;;;;;-1:-1:-1;12846:220:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4460:32:1;;;4442:51;;4430:2;4415:18;12846:220:0;4296:203:1;8752:131:0;;;;;;;;;;-1:-1:-1;8752:131:0;;;;;:::i;:::-;;:::i;1996:106::-;;;;;;;;;;;;;:::i;18330:498::-;;;;;;;;;;-1:-1:-1;18330:498:0;;;;;:::i;:::-;;:::i;10779:122::-;;;;;;;;;;-1:-1:-1;10779:122:0;;;;;:::i;:::-;;:::i;13074:226::-;;;;;;;;;;-1:-1:-1;13074:226:0;;;;;:::i;:::-;;:::i;12555:283::-;;;;;;;;;;-1:-1:-1;12555:283:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1896:92::-;;;;;;;;;;;;;:::i;16234:163::-;;;;;;;;;;;;;:::i;16918:247::-;;;;;;;;;;-1:-1:-1;16918:247:0;;;;;:::i;:::-;;:::i;9626:778::-;;;;;;;;;;-1:-1:-1;9626:778:0;;;;;:::i;:::-;;:::i;19317:147::-;;;;;;;;;;-1:-1:-1;19317:147:0;;;;;:::i;:::-;;:::i;2110:173::-;;;;;;;;;;-1:-1:-1;2110:173:0;;;;;:::i;:::-;;:::i;13074:226::-;13157:13;;13197:31;-1:-1:-1;;;;;;13197:29:0;;;:31::i;:::-;13272:10;;13074:226;-1:-1:-1;;;13074:226:0:o;13771:523::-;-1:-1:-1;;;;;13839:22:0;;;;;;:43;;;13877:5;-1:-1:-1;;;;;13865:17:0;:8;-1:-1:-1;;;;;13865:17:0;;;13839:43;:94;;;;-1:-1:-1;;;;;;13886:47:0;;5764:42;13886:47;;13839:94;13831:103;;;;;;13988:14;13985:1;13982;13969:34;14084:1;14081;14065:14;14062:1;14052:8;14045:5;14032:54;14121:16;14118:1;14115;14100:38;14159:7;14184:36;;;;14258:16;14255:1;14248:27;14184:36;14202:16;14199:1;14192:27;16067:159;16115:19;16151:16;:14;:16::i;:::-;16147:72;;16191:16;16201:5;16191:9;:16::i;:::-;16184:23;;16067:159;:::o;16147:72::-;16067:159;:::o;19472:151::-;19549:4;19573:42;:10;19593:7;19602:6;19610:4;19573:19;:42::i;:::-;19566:49;;19472:151;;;;;:::o;10412:359::-;10463:29;10494:33;10529:36;10578:102;;;;;;;;;;;;;;;;;;;10691:33;;;;;;;;;;;;;-1:-1:-1;;;10691:33:0;;;;;10735:28;;;;;;;;;;;;;-1:-1:-1;;;10735:28:0;;;;;10412:359;;;:::o;8627:117::-;8680:7;8707:29;4810:15;4804:22;;4699:145;17173:496;17289:4;13559:16;13578:35;13605:7;;-1:-1:-1;;;;;;13605:7:0;13578:26;:35::i;:::-;13559:54;-1:-1:-1;;;;;;13627:22:0;;;;:43;;;13665:5;-1:-1:-1;;;;;13653:17:0;:8;-1:-1:-1;;;;;13653:17:0;;13627:43;13624:132;;;17309:6:::1;17319:1;17309:11:::0;17306:54:::1;;17344:4;17337:11;;13624:132:::0;;17306:54:::1;17370:20;17393:43;17417:6;17425:10;17393:23;:43::i;:::-;17370:66;;17471:6;17455:12;:22;;17447:65;;;::::0;-1:-1:-1;;;17447:65:0;;7916:2:1;17447:65:0::1;::::0;::::1;7898:21:1::0;7955:2;7935:18;;;7928:30;7994:32;7974:18;;;7967:60;8044:18;;17447:65:0::1;;;;;;;;;17523:69;17543:6:::0;17551:10:::1;17563:21;17578:6:::0;17563:12;:21:::1;:::i;:::-;17586:5;17523:19;:69::i;:::-;;17603:36;17613:6;17621:9;17632:6;17603:9;:36::i;:::-;17657:4;17650:11;;;13624:132:::0;;;13721:23;13735:8;13721:13;:23::i;:::-;13548:215;17173:496;;;;;:::o;15117:163::-;15211:4;1127:8;-1:-1:-1;;;;;;;;;;;1280:16:0;;1180:134;1127:8;-1:-1:-1;;;;;1113:22:0;:10;-1:-1:-1;;;;;1113:22:0;;1105:47;;;;-1:-1:-1;;;1105:47:0;;;;;;;:::i;:::-;13559:16:::1;13578:35;13605:7;;-1:-1:-1::0;;;;;;13605:7:0::1;13578:26;:35::i;:::-;13559:54:::0;-1:-1:-1;;;;;;13627:22:0;::::1;::::0;;:43:::1;;;13665:5;-1:-1:-1::0;;;;;13653:17:0::1;:8;-1:-1:-1::0;;;;;13653:17:0::1;;13627:43;13624:132;;;15228:22:::2;15234:7;15243:6;15228:5;:22::i;:::-;15268:4;15261:11;;13624:132:::1;;;13721:23;13735:8;13721:13;:23::i;:::-;13548:215;15117:163:::0;;;;:::o;18074:248::-;18133:54;18161:10;18173:6;18181:5;18133:27;:54::i;:::-;;;18198:48;18232:6;18240:5;18198:33;:48::i;:::-;-1:-1:-1;;18262:52:0;;2096:25:1;;;18303:1:0;;18283:10;;-1:-1:-1;;;;;;;;;;;18262:52:0;2084:2:1;2069:18;18262:52:0;;;;;;;18074:248;:::o;12846:220::-;12922:13;12949:11;12966:28;:6;:26;:28::i;:::-;-1:-1:-1;13038:10:0;;12846:220;-1:-1:-1;;;12846:220:0:o;8752:131::-;8818:7;8845:30;8867:7;8845:21;:30::i;1996:106::-;-1:-1:-1;;;;;;;;;;;1280:16:0;-1:-1:-1;;;;;1113:22:0;:10;-1:-1:-1;;;;;1113:22:0;;1105:47;;;;-1:-1:-1;;;1105:47:0;;;;;;;:::i;:::-;2064:30:::1;2091:1;2064:18;:30::i;:::-;1996:106::o:0;18330:498::-;18410:20;18433:44;18457:7;18466:10;18433:23;:44::i;:::-;18410:67;;18512:6;18496:12;:22;;18488:65;;;;-1:-1:-1;;;18488:65:0;;7916:2:1;18488:65:0;;;7898:21:1;7955:2;7935:18;;;7928:30;7994:32;7974:18;;;7967:60;8044:18;;18488:65:0;7714:354:1;18488:65:0;18564:70;18584:7;18593:10;18605:21;18620:6;18605:12;:21;:::i;18564:70::-;;18645:51;18673:7;18682:6;18690:5;18645:27;:51::i;:::-;;;18707:48;18741:6;18749:5;18707:33;:48::i;:::-;-1:-1:-1;;18771:49:0;;2096:25:1;;;18809:1:0;;-1:-1:-1;;;;;18771:49:0;;;-1:-1:-1;;;;;;;;;;;18771:49:0;2084:2:1;2069:18;18771:49:0;;;;;;;;18399:429;18330:498;;:::o;10779:122::-;10842:13;10879:14;10887:5;10879:7;:14::i;12555:283::-;12636:23;12695:7;:14;12681:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12681:29:0;;12672:38;;12725:9;12721:110;12744:7;:14;12740:1;:18;12721:110;;;12792:27;12808:7;12816:1;12808:10;;;;;;;;:::i;:::-;;;;;;;12792:15;:27::i;:::-;12780:6;12787:1;12780:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12780:39:0;;;:9;;;;;;;;;;;:39;12760:3;;12721:110;;;;12555:283;;;:::o;1896:92::-;1945:7;1972:8;-1:-1:-1;;;;;;;;;;;1280:16:0;;1180:134;16234:163;16284:19;16320:16;:14;:16::i;:::-;16316:74;;16360:18;16370:7;16360:9;:18::i;16918:247::-;17014:4;13559:16;13578:35;13605:7;;-1:-1:-1;;;;;;13605:7:0;13578:26;:35::i;:::-;13559:54;-1:-1:-1;;;;;;13627:22:0;;;;:43;;;13665:5;-1:-1:-1;;;;;13653:17:0;:8;-1:-1:-1;;;;;13653:17:0;;13627:43;13624:132;;;17034:6:::1;17044:1;17034:11:::0;17031:54:::1;;17069:4;17062:11;;13624:132:::0;;17031:54:::1;17095:40;17105:10;17117:9;17128:6;17095:9;:40::i;9626:778::-:0;9794:8;9775:15;:27;;9767:69;;;;-1:-1:-1;;;9767:69:0;;9013:2:1;9767:69:0;;;8995:21:1;9052:2;9032:18;;;9025:30;9091:31;9071:18;;;9064:59;9140:18;;9767:69:0;8811:353:1;9767:69:0;9848:29;9883:12;:10;:12::i;:::-;9847:48;;;;9906:14;10011:16;10083:15;10067:33;;;;;;10102:5;10109:7;10118:5;10125:22;10141:5;10125:15;:22::i;:::-;10056:102;;;;;;9456:25:1;;;;-1:-1:-1;;;;;9555:15:1;;;9535:18;;;9528:43;9607:15;;;;9587:18;;;9580:43;9639:18;;;9632:34;9682:19;;;9675:35;9726:19;;;9719:35;;;9428:19;;10056:102:0;;;;;;;;;;;;10046:113;;;;;;9947:227;;;;;;;;-1:-1:-1;;;10023:27:1;;10075:1;10066:11;;10059:27;;;;10111:2;10102:12;;10095:28;10148:2;10139:12;;9765:392;9947:227:0;;;;-1:-1:-1;;9947:227:0;;;;;;;;;9923:262;;9947:227;9923:262;;;;10196:24;10223:26;;;;;;;;;10389:25:1;;;10462:4;10450:17;;10430:18;;;10423:45;;;;10484:18;;;10477:34;;;10527:18;;;10520:34;;;9923:262:0;;-1:-1:-1;10196:24:0;10223:26;;10361:19:1;;10223:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10223:26:0;;-1:-1:-1;;10223:26:0;;;-1:-1:-1;;;;;;;10268:30:0;;;;;;:59;;;10322:5;-1:-1:-1;;;;;10302:25:0;:16;-1:-1:-1;;;;;10302:25:0;;10268:59;10260:89;;;;-1:-1:-1;;;10260:89:0;;10767:2:1;10260:89:0;;;10749:21:1;10806:2;10786:18;;;10779:30;-1:-1:-1;;;10825:18:1;;;10818:47;10882:18;;10260:89:0;10565:341:1;10260:89:0;10360:36;-1:-1:-1;;;;;10360:14:0;;10375:7;10384:5;10391:4;10360:14;:36::i;:::-;;9756:648;;;9626:778;;;;;;;:::o;19317:147::-;19398:13;19431:25;-1:-1:-1;;;;;19431:16:0;;19448:7;19431:16;:25::i;2110:173::-;-1:-1:-1;;;;;;;;;;;1280:16:0;-1:-1:-1;;;;;1113:22:0;:10;-1:-1:-1;;;;;1113:22:0;;1105:47;;;;-1:-1:-1;;;1105:47:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2202:22:0;::::1;2194:42;;;::::0;-1:-1:-1;;;2194:42:0;;11113:2:1;2194:42:0::1;::::0;::::1;11095:21:1::0;11152:1;11132:18;;;11125:29;-1:-1:-1;;;11170:18:1;;;11163:37;11217:18;;2194:42:0::1;10911:330:1::0;2194:42:0::1;2247:28;2266:8;2247:18;:28::i;:::-;2110:173:::0;:::o;6068:219::-;6174:104;;;6199:66;6174:104;;;11401:19:1;-1:-1:-1;;;;;;11450:33:1;;11436:12;;;11429:55;;;;6137:7:0;;11500:12:1;;6174:104:0;;;;;;;;;;;;;6164:115;;;;;;6157:122;;6068:219;;;:::o;14302:641::-;14350:4;14367:16;14386:35;14413:7;;-1:-1:-1;;;;;;14413:7:0;14386:26;:35::i;:::-;14367:54;-1:-1:-1;;;;;;14435:22:0;;;;:43;;;14473:5;-1:-1:-1;;;;;14461:17:0;:8;-1:-1:-1;;;;;14461:17:0;;14435:43;14432:87;;;14502:5;14495:12;;;14302:641;:::o;14432:87::-;-1:-1:-1;;;;;;;14537:47:0;;;14529:56;;;;;;14639:14;14636:1;14633;14620:34;14733:1;14730;14714:14;14711:1;14701:8;14694:5;14683:52;14770:16;14767:1;14764;14749:38;14808:7;14833:36;;;;14907:16;14904:1;14897:27;16405:360;16461:13;16487:7;16509:61;16519:2;16515:1;:6;;;:23;;;;;16525:5;16531:1;16525:8;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;16525:13:0;;;16515:23;16509:61;;;16555:3;;;;:::i;:::-;;;;16509:61;;;16580:23;16616:1;16606:12;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16606:12:0;;16580:38;;16638:1;16634:5;;16629:93;16645:2;16641:1;:6;;;:23;;;;;16651:5;16657:1;16651:8;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;16651:13:0;;;16641:23;16629:93;;;16702:5;16708:1;16702:8;;;;;;;;;:::i;:::-;;;;16686:10;16697:1;16686:13;;;;;;;;;;:::i;:::-;;;;:24;-1:-1:-1;;;;;16686:24:0;;;;;;;;-1:-1:-1;16666:3:0;;;;:::i;:::-;;;;16629:93;;;16746:10;16405:360;-1:-1:-1;;;16405:360:0:o;7933:350::-;8032:4;;8063:28;-1:-1:-1;;;;;8063:19:0;;8083:7;8063:19;:28::i;:::-;8049:42;;8138:5;8133:3;8126:18;8168:9;8165:89;;;8227:7;-1:-1:-1;;;;;8199:43:0;8220:5;-1:-1:-1;;;;;8199:43:0;;8236:5;8199:43;;;;2096:25:1;;2084:2;2069:18;;1950:177;8199:43:0;;;;;;;;8165:89;-1:-1:-1;8271:4:0;;7933:350;-1:-1:-1;;;;;7933:350:0:o;7643:215::-;7718:13;;7758:28;-1:-1:-1;;;;;7758:19:0;;7778:7;7758:19;:28::i;:::-;7830:10;;7643:215;-1:-1:-1;;;;7643:215:0:o;17677:255::-;17766:48;17794:4;17800:6;17808:5;17766:27;:48::i;:::-;;;17825:45;17853:2;17857:6;17865:4;17825:27;:45::i;:::-;;;17913:2;-1:-1:-1;;;;;17886:38:0;17907:4;-1:-1:-1;;;;;17886:38:0;-1:-1:-1;;;;;;;;;;;17917:6:0;17886:38;;;;2096:25:1;;2084:2;2069:18;;1950:177;15288:257:0;15364:50;15392:7;15401:6;15409:4;15364:27;:50::i;:::-;;;15425:47;15459:6;15467:4;15425:33;:47::i;:::-;-1:-1:-1;;15488:49:0;;2096:25:1;;;-1:-1:-1;;;;;15488:49:0;;;15517:1;;-1:-1:-1;;;;;;;;;;;15488:49:0;2084:2:1;2069:18;15488:49:0;;;;;;;15288:257;;:::o;5477:201::-;5561:16;5579;5615:55;5638:18;5650:5;5638:11;:18::i;:::-;5658:6;5666:3;5615:22;:55::i;:::-;5608:62;;;;5477:201;;;;;;;:::o;4852:185::-;4923:16;;4977:52;4624:66;5017:6;5025:3;4977:22;:52::i;:::-;4970:59;;;;4852:185;;;;;:::o;5815:245::-;5888:11;5901:16;5936:116;5974:6;5968:20;5992:1;5968:25;:83;;6042:6;6025:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;6015:35;;;;;;5968:83;;;5996:9;5968:83;5956:95;;;5936:19;:116::i;:::-;5930:122;;5815:245;;;:::o;5282:187::-;5339:13;5365:11;5379:18;5391:5;5379:11;:18::i;2291:228::-;2356:16;2375:8;-1:-1:-1;;;;;;;;;;;1280:16:0;;1180:134;2375:8;2356:27;;2436:8;-1:-1:-1;;;;;;;;;;;2418:27:0;2502:8;-1:-1:-1;;;;;2471:40:0;2492:8;-1:-1:-1;;;;;2471:40:0;;;;;;;;;;;2345:174;2291:228;:::o;10909:214::-;11017:33;;;-1:-1:-1;;;11017:33:0;;;;12227:21:1;;;;12285:2;12281:15;;;;-1:-1:-1;;;;;;12277:53:1;12264:11;;;12257:74;11017:33:0;;;;;;;;;12347:12:1;;;;11017:33:0;;;11007:44;;;;;11095:10;;;10909:214::o;11131:230::-;11187:16;11217:13;11232:11;11247:14;11255:5;11247:7;:14::i;:::-;11216:45;;;;11283:7;;;;;:::i;:::-;11325:18;;;11272;11131:230;-1:-1:-1;;;11131:230:0:o;7334:232::-;7448:109;;;7473:66;7448:109;;;;12695:19:1;;;;-1:-1:-1;;;;;;12802:2:1;12798:15;;;12794:24;;12780:12;;;12773:46;12853:15;;;;12849:24;;;12835:12;;;12828:46;7448:109:0;;;;;;;;;12890:12:1;;;;7448:109:0;;7438:120;;;;;;7334:232::o;5070:204::-;5165:100;;5128:7;;5165:100;;5190:66;;5259:5;;5165:100;;13070:19:1;;;13127:2;13123:15;-1:-1:-1;;;;;;13119:53:1;13114:2;13105:12;;13098:75;13198:2;13189:12;;12913:294;4019:524:0;4177:10;;;4245:11;;4242:294;;4276:3;4273:174;;;4300:18;4312:6;4300:18;;:::i;:::-;;;4273:174;;;4377:8;4367:6;:18;;4359:35;;;;-1:-1:-1;;;4359:35:0;;;;;;13544:2:1;13526:21;;;13583:1;13563:18;;;13556:29;-1:-1:-1;;;13616:2:1;13601:18;;13594:34;13660:2;13645:18;;13342:327;4359:35:0;4413:18;4425:6;4413:18;;:::i;:::-;;;4273:174;4489:21;;;;4019:524;;-1:-1:-1;;4019:524:0:o;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:271::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;522:2;501:15;-1:-1:-1;;497:29:1;488:39;;;;529:4;484:50;;269:271;-1:-1:-1;;269:271:1:o;545:220::-;694:2;683:9;676:21;657:4;714:45;755:2;744:9;740:18;732:6;714:45;:::i;770:173::-;838:20;;-1:-1:-1;;;;;887:31:1;;877:42;;867:70;;933:1;930;923:12;867:70;770:173;;;:::o;948:254::-;1016:6;1024;1077:2;1065:9;1056:7;1052:23;1048:32;1045:52;;;1093:1;1090;1083:12;1045:52;1116:29;1135:9;1116:29;:::i;:::-;1106:39;1192:2;1177:18;;;;1164:32;;-1:-1:-1;;;948:254:1:o;1399:546::-;1644:2;1633:9;1626:21;1607:4;1670:45;1711:2;1700:9;1696:18;1688:6;1670:45;:::i;:::-;1763:9;1755:6;1751:22;1746:2;1735:9;1731:18;1724:50;1797:33;1823:6;1815;1797:33;:::i;:::-;1783:47;;1878:9;1870:6;1866:22;1861:2;1850:9;1846:18;1839:50;1906:33;1932:6;1924;1906:33;:::i;:::-;1898:41;1399:546;-1:-1:-1;;;;;;1399:546:1:o;2132:328::-;2209:6;2217;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2317:29;2336:9;2317:29;:::i;:::-;2307:39;;2365:38;2399:2;2388:9;2384:18;2365:38;:::i;:::-;2355:48;;2450:2;2439:9;2435:18;2422:32;2412:42;;2132:328;;;;;:::o;2836:180::-;2895:6;2948:2;2936:9;2927:7;2923:23;2919:32;2916:52;;;2964:1;2961;2954:12;2916:52;-1:-1:-1;2987:23:1;;2836:180;-1:-1:-1;2836:180:1:o;3021:127::-;3082:10;3077:3;3073:20;3070:1;3063:31;3113:4;3110:1;3103:15;3137:4;3134:1;3127:15;3153:275;3224:2;3218:9;3289:2;3270:13;;-1:-1:-1;;3266:27:1;3254:40;;3324:18;3309:34;;3345:22;;;3306:62;3303:88;;;3371:18;;:::i;:::-;3407:2;3400:22;3153:275;;-1:-1:-1;3153:275:1:o;3433:531::-;3476:5;3529:3;3522:4;3514:6;3510:17;3506:27;3496:55;;3547:1;3544;3537:12;3496:55;3583:6;3570:20;3609:18;3605:2;3602:26;3599:52;;;3631:18;;:::i;:::-;3675:55;3718:2;3699:13;;-1:-1:-1;;3695:27:1;3724:4;3691:38;3675:55;:::i;:::-;3755:2;3746:7;3739:19;3801:3;3794:4;3789:2;3781:6;3777:15;3773:26;3770:35;3767:55;;;3818:1;3815;3808:12;3767:55;3883:2;3876:4;3868:6;3864:17;3857:4;3848:7;3844:18;3831:55;3931:1;3906:16;;;3924:4;3902:27;3895:38;;;;3910:7;3433:531;-1:-1:-1;;;3433:531:1:o;3969:322::-;4038:6;4091:2;4079:9;4070:7;4066:23;4062:32;4059:52;;;4107:1;4104;4097:12;4059:52;4147:9;4134:23;4180:18;4172:6;4169:30;4166:50;;;4212:1;4209;4202:12;4166:50;4235;4277:7;4268:6;4257:9;4253:22;4235:50;:::i;:::-;4225:60;3969:322;-1:-1:-1;;;;3969:322:1:o;4504:186::-;4563:6;4616:2;4604:9;4595:7;4591:23;4587:32;4584:52;;;4632:1;4629;4622:12;4584:52;4655:29;4674:9;4655:29;:::i;4695:286::-;4753:6;4806:2;4794:9;4785:7;4781:23;4777:32;4774:52;;;4822:1;4819;4812:12;4774:52;4848:23;;-1:-1:-1;;;;;;4900:32:1;;4890:43;;4880:71;;4947:1;4944;4937:12;4986:1097;5080:6;5111:2;5154;5142:9;5133:7;5129:23;5125:32;5122:52;;;5170:1;5167;5160:12;5122:52;5210:9;5197:23;5239:18;5280:2;5272:6;5269:14;5266:34;;;5296:1;5293;5286:12;5266:34;5334:6;5323:9;5319:22;5309:32;;5379:7;5372:4;5368:2;5364:13;5360:27;5350:55;;5401:1;5398;5391:12;5350:55;5437:2;5424:16;5459:2;5455;5452:10;5449:36;;;5465:18;;:::i;:::-;5511:2;5508:1;5504:10;5534:28;5558:2;5554;5550:11;5534:28;:::i;:::-;5596:15;;;5666:11;;;5662:20;;;5627:12;;;;5694:19;;;5691:39;;;5726:1;5723;5716:12;5691:39;5758:2;5754;5750:11;5739:22;;5770:283;5786:6;5781:3;5778:15;5770:283;;;5872:3;5859:17;5908:2;5895:11;5892:19;5889:39;;;5924:1;5921;5914:12;5889:39;5953:57;6002:7;5997:2;5983:11;5979:2;5975:20;5971:29;5953:57;:::i;:::-;5941:70;;-1:-1:-1;5803:12:1;;;;6031;;;;5770:283;;;6072:5;4986:1097;-1:-1:-1;;;;;;;;;4986:1097:1:o;6088:658::-;6259:2;6311:21;;;6381:13;;6284:18;;;6403:22;;;6230:4;;6259:2;6482:15;;;;6456:2;6441:18;;;6230:4;6525:195;6539:6;6536:1;6533:13;6525:195;;;6604:13;;-1:-1:-1;;;;;6600:39:1;6588:52;;6695:15;;;;6660:12;;;;6636:1;6554:9;6525:195;;;-1:-1:-1;6737:3:1;;6088:658;-1:-1:-1;;;;;;6088:658:1:o;6751:693::-;6862:6;6870;6878;6886;6894;6902;6910;6963:3;6951:9;6942:7;6938:23;6934:33;6931:53;;;6980:1;6977;6970:12;6931:53;7003:29;7022:9;7003:29;:::i;:::-;6993:39;;7051:38;7085:2;7074:9;7070:18;7051:38;:::i;:::-;7041:48;;7136:2;7125:9;7121:18;7108:32;7098:42;;7187:2;7176:9;7172:18;7159:32;7149:42;;7241:3;7230:9;7226:19;7213:33;7286:4;7279:5;7275:16;7268:5;7265:27;7255:55;;7306:1;7303;7296:12;7255:55;6751:693;;;;-1:-1:-1;6751:693:1;;;;7329:5;7381:3;7366:19;;7353:33;;-1:-1:-1;7433:3:1;7418:19;;;7405:33;;6751:693;-1:-1:-1;;6751:693:1:o;7449:260::-;7517:6;7525;7578:2;7566:9;7557:7;7553:23;7549:32;7546:52;;;7594:1;7591;7584:12;7546:52;7617:29;7636:9;7617:29;:::i;:::-;7607:39;;7665:38;7699:2;7688:9;7684:18;7665:38;:::i;:::-;7655:48;;7449:260;;;;;:::o;8073:127::-;8134:10;8129:3;8125:20;8122:1;8115:31;8165:4;8162:1;8155:15;8189:4;8186:1;8179:15;8205:128;8272:9;;;8293:11;;;8290:37;;;8307:18;;:::i;8338:336::-;8540:2;8522:21;;;8579:2;8559:18;;;8552:30;-1:-1:-1;;;8613:2:1;8598:18;;8591:42;8665:2;8650:18;;8338:336::o;8679:127::-;8740:10;8735:3;8731:20;8728:1;8721:31;8771:4;8768:1;8761:15;8795:4;8792:1;8785:15;11523:175;11560:3;11604:4;11597:5;11593:16;11633:4;11624:7;11621:17;11618:43;;11641:18;;:::i;:::-;11690:1;11677:15;;11523:175;-1:-1:-1;;11523:175:1:o;11703:289::-;11834:3;11872:6;11866:13;11888:66;11947:6;11942:3;11935:4;11927:6;11923:17;11888:66;:::i;:::-;11970:16;;;;;11703:289;-1:-1:-1;;11703:289:1:o;12370:135::-;12409:3;12430:17;;;12427:43;;12450:18;;:::i;:::-;-1:-1:-1;12497:1:1;12486:13;;12370:135::o;13212:125::-;13277:9;;;13298:10;;;13295:36;;;13311:18;;:::i
Swarm Source
ipfs://74418233317403d97daa92036e1bbe205afba1dae263ae520dbcb4dc469618f5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.