Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Token_V1
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Multiple files format)
pragma solidity >=0.4.21 <0.6.0; import "./Token_V0.sol"; contract Token_V1 is Token_V0{ mapping(string => uint) fundDistribution; constructor(address storeAddress) Token_V0(storeAddress) public { fundDistribution['development'] = 22; fundDistribution['business'] = 34; fundDistribution['marketing'] = 11; fundDistribution['legal'] = 11; fundDistribution['future'] = 22; } function getFundDistributionPercentage(string allocatee) public view returns(uint percentage){ percentage = fundDistribution[allocatee]; } }
pragma solidity ^0.4.24; /** * Utility library of inline functions on addresses */ library AddressUtils { /** * Returns whether the target address is a contract * @dev This function will return false if invoked during the constructor of a contract, * as the code is not actually created until after the constructor finishes. * @param _addr address to check * @return whether the target address is a contract */ function isContract(address _addr) internal view returns (bool) { uint256 size; // XXX Currently there is no better way to check if there is a contract in an address // than to check the size of the code at that address. // See https://ethereum.stackexchange.com/a/14016/36603 // for more details about how this works. // TODO Check this again before the Serenity release, because all addresses will be // contracts then. // solium-disable-next-line security/no-inline-assembly assembly { size := extcodesize(_addr) } return size > 0; } }
pragma solidity ^0.4.24; import "./ERC20Basic.sol"; /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address _owner, address _spender) public view returns (uint256); function transferFrom(address _from, address _to, uint256 _value) public returns (bool); function approve(address _spender, uint256 _value) public returns (bool); event Approval( address indexed owner, address indexed spender, uint256 value ); }
pragma solidity ^0.4.24; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * See https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address _who) public view returns (uint256); function transfer(address _to, uint256 _value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); }
pragma solidity >=0.4.21 <0.6.0; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". This adds two-phase * ownership control to OpenZeppelin's Ownable class. In this model, the original owner * designates a new owner but does not actually transfer ownership. The new owner then accepts * ownership and completes the transfer. */ contract Ownable { address _owner; modifier onlyOwner() { require(isOwner(msg.sender), "OwnerRole: caller does not have the Owner role"); _; } function isOwner(address account) public view returns (bool) { return account == _owner; } }
pragma solidity ^0.4.24; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (_a == 0) { return 0; } c = _a * _b; assert(c / _a == _b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 _a, uint256 _b) internal pure returns (uint256) { // assert(_b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = _a / _b; // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold return _a / _b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { assert(_b <= _a); return _a - _b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) { c = _a + _b; assert(c >= _a); return c; } }
pragma solidity >=0.4.21 <0.6.0; import "./SafeMath.sol"; import './Ownable.sol'; /** * @title TokenStorage */ contract TokenStorage is Ownable{ using SafeMath for uint256; // mapping (address => bool) internal _allowedAccess; // Access Modifier for Storage contract address internal _registryContract; constructor() public { _owner = msg.sender; _totalSupply = 1000000000 * 10 ** 18; _balances[_owner] = _totalSupply; } function setProxyContractAndVersionOneDeligatee(address registryContract) onlyOwner public{ require(registryContract != address(0), "InvalidAddress: invalid address passed for proxy contract"); _registryContract = registryContract; } function getRegistryContract() view public returns(address){ return _registryContract; } // function addDeligateContract(address upgradedDeligatee) public{ // require(msg.sender == _registryContract, "AccessDenied: only registry contract allowed access"); // _allowedAccess[upgradedDeligatee] = true; // } modifier onlyAllowedAccess() { require(msg.sender == _registryContract, "AccessDenied: This address is not allowed to access the storage"); _; } // Allowances with its Getter and Setter mapping (address => mapping (address => uint256)) internal _allowances; function setAllowance(address _tokenHolder, address _spender, uint256 _value) public onlyAllowedAccess { _allowances[_tokenHolder][_spender] = _value; } function getAllowance(address _tokenHolder, address _spender) public view onlyAllowedAccess returns(uint256){ return _allowances[_tokenHolder][_spender]; } // Balances with its Getter and Setter mapping (address => uint256) internal _balances; function addBalance(address _addr, uint256 _value) public onlyAllowedAccess { _balances[_addr] = _balances[_addr].add(_value); } function subBalance(address _addr, uint256 _value) public onlyAllowedAccess { _balances[_addr] = _balances[_addr].sub(_value); } function setBalance(address _addr, uint256 _value) public onlyAllowedAccess { _balances[_addr] = _value; } function getBalance(address _addr) public view onlyAllowedAccess returns(uint256){ return _balances[_addr]; } // Total Supply with Getter and Setter uint256 internal _totalSupply = 0; function addTotalSupply(uint256 _value) public onlyAllowedAccess { _totalSupply = _totalSupply.add(_value); } function subTotalSupply(uint256 _value) public onlyAllowedAccess { _totalSupply = _totalSupply.sub(_value); } function setTotalSupply(uint256 _value) public onlyAllowedAccess { _totalSupply = _value; } function getTotalSupply() public view onlyAllowedAccess returns(uint256) { return(_totalSupply); } // Locking Storage /** * @dev Reasons why a user's tokens have been locked */ mapping(address => bytes32[]) internal lockReason; /** * @dev locked token structure */ struct lockToken { uint256 amount; uint256 validity; bool claimed; } /** * @dev Holds number & validity of tokens locked for a given reason for * a specified address */ mapping(address => mapping(bytes32 => lockToken)) internal locked; // Lock Access Functions function getLockedTokenAmount(address _of, bytes32 _reason) public view onlyAllowedAccess returns (uint256 amount){ if (!locked[_of][_reason].claimed) amount = locked[_of][_reason].amount; } function getLockedTokensAtTime(address _of, bytes32 _reason, uint256 _time) public view onlyAllowedAccess returns(uint256 amount){ if (locked[_of][_reason].validity > _time) amount = locked[_of][_reason].amount; } function getTotalLockedTokens(address _of) public view onlyAllowedAccess returns(uint256 amount){ for (uint256 i = 0; i < lockReason[_of].length; i++) { amount = amount.add(getLockedTokenAmount(_of, lockReason[_of][i])); } } function extendTokenLock(address _of, bytes32 _reason, uint256 _time) public onlyAllowedAccess returns(uint256 amount, uint256 validity){ locked[_of][_reason].validity = locked[_of][_reason].validity.add(_time); amount = locked[_of][_reason].amount; validity = locked[_of][_reason].validity; } function increaseLockAmount(address _of, bytes32 _reason, uint256 _amount) public onlyAllowedAccess returns(uint256 amount, uint256 validity){ locked[_of][_reason].amount = locked[_of][_reason].amount.add(_amount); amount = locked[_of][_reason].amount; validity = locked[_of][_reason].validity; } function getUnlockable(address _of, bytes32 _reason) public view onlyAllowedAccess returns(uint256 amount){ if (locked[_of][_reason].validity <= now && !locked[_of][_reason].claimed) amount = locked[_of][_reason].amount; } function addLockedToken(address _of, bytes32 _reason, uint256 _amount, uint256 _validity) public onlyAllowedAccess { locked[_of][_reason] = lockToken(_amount, _validity, false); } function addLockReason(address _of, bytes32 _reason) public onlyAllowedAccess { lockReason[_of].push(_reason); } function getNumberOfLockReasons(address _of) public view onlyAllowedAccess returns(uint256 number){ number = lockReason[_of].length; } function getLockReason(address _of, uint256 _i) public view onlyAllowedAccess returns(bytes32 reason){ reason = lockReason[_of][_i]; } function setClaimed(address _of, bytes32 _reason) public onlyAllowedAccess{ locked[_of][_reason].claimed = true; } function caller(address _of) public view onlyAllowedAccess returns(uint){ return getTotalLockedTokens(_of); } }
pragma solidity >=0.4.21 <0.6.0; import "./TokenStorage.sol"; import "./SafeMath.sol"; import "./AddressUtils.sol"; import "./ERC20.sol"; import './Ownable.sol'; /** * @title Token_V0 * @notice A basic ERC20 token with modular data storage */ contract Token_V0 is ERC20, Ownable{ using SafeMath for uint256; string public constant name = 'RoboAi Coin R2R'; string public constant symbol = 'R2R'; uint8 public constant decimals = 18; event Lock( address indexed _of, bytes32 indexed _reason, uint256 _amount, uint256 _validity ); /** * @dev Records data of all the tokens unlocked */ event Unlock( address indexed _of, bytes32 indexed _reason, uint256 _amount ); string internal constant ALREADY_LOCKED = "Tokens already locked"; string internal constant NOT_LOCKED = "No tokens locked"; string internal constant AMOUNT_ZERO = "Amount can not be 0"; /** Events */ event Mint(address indexed to, uint256 value); event Burn(address indexed burner, uint256 value); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); TokenStorage dataStore; address dataStoreAddress; constructor(address storeAddress) public { dataStore = TokenStorage(storeAddress); dataStoreAddress = storeAddress; } /** Modifiers **/ /** Functions **/ function totalSupply() public view returns(uint256) { return(dataStore.getTotalSupply()); } function balanceOf(address account) public view returns (uint256) { return dataStore.getBalance(account); } function transfer(address recipient, uint256 amount) public returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address owner, address spender) public view returns (uint256) { return dataStore.getAllowance(owner, spender); } function approve(address spender, uint256 value) public returns (bool) { _approve(msg.sender, spender, value); return true; } function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) { require(dataStore.getAllowance(sender, msg.sender) >= amount, "AllowanceError: The spender does not hve the required allowance to spend token holder's tokens"); _transfer(sender, recipient, amount); _approve(sender, msg.sender, dataStore.getAllowance(sender, msg.sender).sub(amount)); return true; } function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(dataStore.getBalance(sender) >= amount, "Insufficient Funds"); dataStore.subBalance(sender, amount); dataStore.addBalance(recipient, amount); emit Transfer(sender, recipient, amount); } function _approve(address owner, address spender, uint256 value) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); dataStore.setAllowance(owner, spender, value); emit Approval(owner, spender, value); } // Mintable Functionality function mintToken(address recipient, uint256 value) public onlyOwner{ dataStore.addTotalSupply(value); dataStore.addBalance(recipient, value); emit Mint(recipient, value); } function burnToken(uint256 value) public{ address sender = msg.sender; dataStore.subBalance(sender, value); dataStore.subTotalSupply(value); emit Burn(msg.sender, value); } // Lockable Functionality according to EIP1132 /** * @dev Locks a specified amount of tokens against an address, * for a specified reason and time * @param _reason The reason to lock tokens * @param _amount Number of tokens to be locked * @param _time Lock time in seconds */ function lock(bytes32 _reason, uint256 _amount, uint256 _time) public returns (bool) { uint256 validUntil = block.timestamp.add(_time); uint256 tokensAlreadyLocked = dataStore.getLockedTokenAmount(msg.sender, _reason); require(tokensAlreadyLocked == 0, ALREADY_LOCKED); require(_amount != 0, AMOUNT_ZERO); dataStore.addLockReason(msg.sender, _reason); _transfer(msg.sender, dataStore, _amount); dataStore.addLockedToken(msg.sender, _reason, _amount, validUntil); emit Lock(msg.sender, _reason, _amount, validUntil); return true; } /** * @dev Transfers and Locks a specified amount of tokens, * for a specified reason and time * @param _to adress to which tokens are to be transfered * @param _reason The reason to lock tokens * @param _amount Number of tokens to be transfered and locked * @param _time Lock time in seconds */ function transferWithLock(address _to, bytes32 _reason, uint256 _amount, uint256 _time) public returns (bool) { uint256 validUntil = block.timestamp.add(_time); uint256 tokensAlreadyLocked = dataStore.getLockedTokenAmount(_to, _reason); require(tokensAlreadyLocked == 0, ALREADY_LOCKED); require(_amount != 0, AMOUNT_ZERO); require(_to != address(0), "ERC20: transfer to the zero address"); dataStore.addLockReason(_to, _reason); _transfer(msg.sender, dataStore, _amount); dataStore.addLockedToken(_to, _reason, _amount, validUntil); emit Lock(_to, _reason, _amount, validUntil); return true; } /** * @dev Returns tokens locked for a specified address for a * specified reason * * @param _of The address whose tokens are locked * @param _reason The reason to query the lock tokens for */ function tokensLocked(address _of, bytes32 _reason) public view returns (uint256 amount) { return dataStore.getLockedTokenAmount(_of, _reason); } /** * @dev Returns tokens locked for a specified address for a * specified reason at a specific time * * @param _of The address whose tokens are locked * @param _reason The reason to query the lock tokens for * @param _time The timestamp to query the lock tokens for */ function tokensLockedAtTime(address _of, bytes32 _reason, uint256 _time) public view returns (uint256 amount) { amount = dataStore.getLockedTokensAtTime(_of, _reason, _time); } /** * @dev Returns total tokens held by an address (locked + transferable) * @param _of The address to query the total balance of */ function totalBalanceOf(address _of) public view returns (uint256 amount) { amount = balanceOf(_of); amount = amount + dataStore.getTotalLockedTokens(_of); } /** * @dev Extends lock for a specified reason and time * @param _reason The reason to lock tokens * @param _time Lock extension time in seconds */ function extendLock(bytes32 _reason, uint256 _time) public returns (bool) { uint256 tokensAlreadyLocked = dataStore.getLockedTokenAmount(msg.sender, _reason); require(tokensAlreadyLocked > 0, NOT_LOCKED); (uint256 amount, uint256 validity) = dataStore.extendTokenLock(msg.sender, _reason, _time); emit Lock(msg.sender, _reason, amount, validity); return true; } /** * @dev Increase number of tokens locked for a specified reason * @param _reason The reason to lock tokens * @param _amount Number of tokens to be increased */ function increaseLockAmount(bytes32 _reason, uint256 _amount) public returns (bool) { uint256 tokensAlreadyLocked = dataStore.getLockedTokenAmount(msg.sender, _reason); require(tokensAlreadyLocked > 0, NOT_LOCKED); _transfer(msg.sender, dataStore, _amount); (uint256 amount, uint256 validity) = dataStore.increaseLockAmount(msg.sender, _reason, _amount); emit Lock(msg.sender, _reason, amount, validity); return true; } /** * @dev Returns unlockable tokens for a specified address for a specified reason * @param _of The address to query the the unlockable token count of * @param _reason The reason to query the unlockable tokens for */ function tokensUnlockable(address _of, bytes32 _reason) public view returns (uint256 amount) { return dataStore.getUnlockable(_of, _reason); } /** * @dev Unlocks the unlockable tokens of a specified address * @param _of Address of user, claiming back unlockable tokens */ function unlock(address _of) public returns (uint256 unlockableTokens) { uint256 lockedTokens; uint256 numLockReasons = dataStore.getNumberOfLockReasons(_of); for (uint256 i = 0; i < numLockReasons; i++) { bytes32 reason = dataStore.getLockReason(_of, i); lockedTokens = tokensUnlockable(_of, reason); if (lockedTokens > 0) { unlockableTokens += lockedTokens; dataStore.setClaimed(_of, reason); emit Unlock(_of, reason, lockedTokens); } } if (unlockableTokens > 0) _transfer(dataStore, _of, unlockableTokens); } /** * @dev Gets the unlockable tokens of a specified address * @param _of The address to query the the unlockable token count of */ function getUnlockableTokens(address _of) public view returns (uint256 unlockableTokens) { uint256 numLockReasons = dataStore.getNumberOfLockReasons(_of); for (uint256 i = 0; i < numLockReasons; i++) { bytes32 reason = dataStore.getLockReason(_of, i); unlockableTokens = unlockableTokens + tokensUnlockable(_of, reason); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"},{"name":"_time","type":"uint256"}],"name":"tokensLockedAtTime","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"allocatee","type":"string"}],"name":"getFundDistributionPercentage","outputs":[{"name":"percentage","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_reason","type":"bytes32"},{"name":"_amount","type":"uint256"},{"name":"_time","type":"uint256"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_of","type":"address"}],"name":"unlock","outputs":[{"name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"}],"name":"totalBalanceOf","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_reason","type":"bytes32"},{"name":"_amount","type":"uint256"},{"name":"_time","type":"uint256"}],"name":"transferWithLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"}],"name":"tokensUnlockable","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"}],"name":"tokensLocked","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"value","type":"uint256"}],"name":"mintToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burnToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_reason","type":"bytes32"},{"name":"_amount","type":"uint256"}],"name":"increaseLockAmount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_reason","type":"bytes32"},{"name":"_time","type":"uint256"}],"name":"extendLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"}],"name":"getUnlockableTokens","outputs":[{"name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"storeAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_of","type":"address"},{"indexed":true,"name":"_reason","type":"bytes32"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_validity","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_of","type":"address"},{"indexed":true,"name":"_reason","type":"bytes32"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051602080613d7d833981018060405281019080805190602001909291905050508080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506016600360405180807f646576656c6f706d656e74000000000000000000000000000000000000000000815250600b0190509081526020016040518091039020819055506022600360405180807f627573696e6573730000000000000000000000000000000000000000000000008152506008019050908152602001604051809103902081905550600b600360405180807f6d61726b6574696e6700000000000000000000000000000000000000000000008152506009019050908152602001604051809103902081905550600b600360405180807f6c6567616c00000000000000000000000000000000000000000000000000000081525060050190509081526020016040518091039020819055506016600360405180807f6675747572650000000000000000000000000000000000000000000000000000815250600601905090815260200160405180910390208190555050613b628061021b6000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c8578063179e91f11461022d57806318160ddd1461029c5780631a3ab9fe146102c757806323b872dd146103445780632e82aaf2146103c95780632f54bf6e146104265780632f6c493c14610481578063313ce567146104d85780634b0ee02a146105095780634cb5465f146105605780635294d0e8146105dd5780635ca48d8c1461064257806370a08231146106a757806379c65068146106fe5780637b47ec1a1461074b57806381fc4d901461077857806395d89b41146107cb578063a9059cbb1461085b578063a9dab167146108c0578063ab4a2eb314610913578063dd62ed3e1461096a575b600080fd5b34801561014457600080fd5b5061014d6109e1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a1a565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610286600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919080359060200190929190505050610a31565b6040518082815260200191505060405180910390f35b3480156102a857600080fd5b506102b1610b4c565b6040518082815260200191505060405180910390f35b3480156102d357600080fd5b5061032e600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c14565b6040518082815260200191505060405180910390f35b34801561035057600080fd5b506103af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c89565b604051808215151515815260200191505060405180910390f35b3480156103d557600080fd5b5061040c60048036038101908080356000191690602001909291908035906020019092919080359060200190929190505050610fd8565b604051808215151515815260200191505060405180910390f35b34801561043257600080fd5b50610467600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611532565b604051808215151515815260200191505060405180910390f35b34801561048d57600080fd5b506104c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061158b565b6040518082815260200191505060405180910390f35b3480156104e457600080fd5b506104ed61193c565b604051808260ff1660ff16815260200191505060405180910390f35b34801561051557600080fd5b5061054a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611941565b6040518082815260200191505060405180910390f35b34801561056c57600080fd5b506105c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291908035906020019092919080359060200190929190505050611a4f565b604051808215151515815260200191505060405180910390f35b3480156105e957600080fd5b5061062c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050612075565b6040518082815260200191505060405180910390f35b34801561064e57600080fd5b50610691600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050612187565b6040518082815260200191505060405180910390f35b3480156106b357600080fd5b506106e8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612299565b6040518082815260200191505060405180910390f35b34801561070a57600080fd5b50610749600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061239a565b005b34801561075757600080fd5b5061077660048036038101908080359060200190929190505050612615565b005b34801561078457600080fd5b506107b16004803603810190808035600019169060200190929190803590602001909291905050506127f2565b604051808215151515815260200191505060405180910390f35b3480156107d757600080fd5b506107e0612b97565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610820578082015181840152602081019050610805565b50505050905090810190601f16801561084d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086757600080fd5b506108a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612bd0565b604051808215151515815260200191505060405180910390f35b3480156108cc57600080fd5b506108f9600480360381019080803560001916906020019092919080359060200190929190505050612be7565b604051808215151515815260200191505060405180910390f35b34801561091f57600080fd5b50610954600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f5f565b6040518082815260200191505060405180910390f35b34801561097657600080fd5b506109cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613191565b6040518082815260200191505060405180910390f35b6040805190810160405280600f81526020017f526f626f416920436f696e20523252000000000000000000000000000000000081525081565b6000610a273384846132c7565b6001905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395a90e5c8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018281526020019350505050602060405180830381600087803b158015610b0857600080fd5b505af1158015610b1c573d6000803e3d6000fd5b505050506040513d6020811015610b3257600080fd5b810190808051906020019092919050505090509392505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4e41b226040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610bd457600080fd5b505af1158015610be8573d6000803e3d6000fd5b505050506040513d6020811015610bfe57600080fd5b8101908080519060200190929190505050905090565b60006003826040518082805190602001908083835b602083101515610c4e5780518252602082019150602081019050602083039250610c29565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050919050565b600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630af4187d86336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610d7d57600080fd5b505af1158015610d91573d6000803e3d6000fd5b505050506040513d6020811015610da757600080fd5b810190808051906020019092919050505010151515610e7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605e8152602001807f416c6c6f77616e63654572726f723a20546865207370656e64657220646f657381526020017f206e6f74206876652074686520726571756972656420616c6c6f77616e63652081526020017f746f207370656e6420746f6b656e20686f6c646572277320746f6b656e73000081525060600191505060405180910390fd5b610e858484846135d8565b610fcd8433610fc885600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630af4187d8a336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610f7f57600080fd5b505af1158015610f93573d6000803e3d6000fd5b505050506040513d6020811015610fa957600080fd5b8101908080519060200190929190505050613b0190919063ffffffff16565b6132c7565b600190509392505050565b6000806000610ff08442613b1a90919063ffffffff16565b9150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b11108533886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b1580156110bf57600080fd5b505af11580156110d3573d6000803e3d6000fd5b505050506040513d60208110156110e957600080fd5b81019080805190602001909291905050509050600081146040805190810160405280601581526020017f546f6b656e7320616c7265616479206c6f636b656400000000000000000000008152509015156111de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111a3578082015181840152602081019050611188565b50505050905090810190601f1680156111d05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008514156040805190810160405280601381526020017f416d6f756e742063616e206e6f742062652030000000000000000000000000008152509015156112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561128757808201518184015260208101905061126c565b50505050905090810190601f1680156112b45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae89559933886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050600060405180830381600087803b15801561139057600080fd5b505af11580156113a4573d6000803e3d6000fd5b505050506113d533600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876135d8565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb9e00cb338888866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460001916600019168152602001838152602001828152602001945050505050600060405180830381600087803b1580156114b257600080fd5b505af11580156114c6573d6000803e3d6000fd5b5050505085600019163373ffffffffffffffffffffffffffffffffffffffff167fd173f98f4a2080eab40a0bff4d9a575753270cb2401c74efdec1feb0ba31b4268785604051808381526020018281526020019250505060405180910390a36001925050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000806000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636556c18a876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561165057600080fd5b505af1158015611664573d6000803e3d6000fd5b505050506040513d602081101561167a57600080fd5b81019080805190602001909291905050509250600091505b828210156118fc57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635db76cfa87846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561175f57600080fd5b505af1158015611773573d6000803e3d6000fd5b505050506040513d602081101561178957600080fd5b810190808051906020019092919050505090506117a68682612075565b935060008411156118ef578385019450600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e6618c187836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050600060405180830381600087803b15801561188357600080fd5b505af1158015611897573d6000803e3d6000fd5b5050505080600019168673ffffffffffffffffffffffffffffffffffffffff167f0c35a7765dc80648aa68cb8cf542e73a11500a6e58527cfe7aea2bf7e6b89c87866040518082815260200191505060405180910390a35b8180600101925050611692565b600085111561193357611932600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687876135d8565b5b50505050919050565b601281565b600061194c82612299565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75e2c58836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611a0b57600080fd5b505af1158015611a1f573d6000803e3d6000fd5b505050506040513d6020811015611a3557600080fd5b810190808051906020019092919050505081019050919050565b6000806000611a678442613b1a90919063ffffffff16565b9150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b11108588886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b158015611b3657600080fd5b505af1158015611b4a573d6000803e3d6000fd5b505050506040513d6020811015611b6057600080fd5b81019080805190602001909291905050509050600081146040805190810160405280601581526020017f546f6b656e7320616c7265616479206c6f636b65640000000000000000000000815250901515611c55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c1a578082015181840152602081019050611bff565b50505050905090810190601f168015611c475780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008514156040805190810160405280601381526020017f416d6f756e742063616e206e6f74206265203000000000000000000000000000815250901515611d39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cfe578082015181840152602081019050611ce3565b50505050905090810190601f168015611d2b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515611e05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae89559988886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050600060405180830381600087803b158015611ed257600080fd5b505af1158015611ee6573d6000803e3d6000fd5b50505050611f1733600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876135d8565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb9e00cb888888866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460001916600019168152602001838152602001828152602001945050505050600060405180830381600087803b158015611ff457600080fd5b505af1158015612008573d6000803e3d6000fd5b5050505085600019168773ffffffffffffffffffffffffffffffffffffffff167fd173f98f4a2080eab40a0bff4d9a575753270cb2401c74efdec1feb0ba31b4268785604051808381526020018281526020019250505060405180910390a3600192505050949350505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae7b000684846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b15801561214457600080fd5b505af1158015612158573d6000803e3d6000fd5b505050506040513d602081101561216e57600080fd5b8101908080519060200190929190505050905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b11108584846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b15801561225657600080fd5b505af115801561226a573d6000803e3d6000fd5b505050506040513d602081101561228057600080fd5b8101908080519060200190929190505050905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f8b2cb4f836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561235857600080fd5b505af115801561236c573d6000803e3d6000fd5b505050506040513d602081101561238257600080fd5b81019080805190602001909291905050509050919050565b6123a333611532565b151561243d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f776e6572526f6c653a2063616c6c657220646f6573206e6f7420686176652081526020017f746865204f776e657220726f6c6500000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e468688e826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156124ce57600080fd5b505af11580156124e2573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321e5383a83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156125ab57600080fd5b505af11580156125bf573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a25050565b6000339050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf8eeb7e82846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156126df57600080fd5b505af11580156126f3573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166382838c76836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561278857600080fd5b505af115801561279c573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a25050565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b11108533886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b1580156128c557600080fd5b505af11580156128d9573d6000803e3d6000fd5b505050506040513d60208110156128ef57600080fd5b81019080805190602001909291905050509250600083116040805190810160405280601081526020017f4e6f20746f6b656e73206c6f636b6564000000000000000000000000000000008152509015156129e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129a957808201518184015260208101905061298e565b50505050905090810190601f1680156129d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50612a1233600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876135d8565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c415ab0a3388886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182815260200193505050506040805180830381600087803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b505050506040513d6040811015612b1057600080fd5b8101908080519060200190929190805190602001909291905050509150915085600019163373ffffffffffffffffffffffffffffffffffffffff167fd173f98f4a2080eab40a0bff4d9a575753270cb2401c74efdec1feb0ba31b4268484604051808381526020018281526020019250505060405180910390a36001935050505092915050565b6040805190810160405280600381526020017f523252000000000000000000000000000000000000000000000000000000000081525081565b6000612bdd3384846135d8565b6001905092915050565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b11108533886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b158015612cba57600080fd5b505af1158015612cce573d6000803e3d6000fd5b505050506040513d6020811015612ce457600080fd5b81019080805190602001909291905050509250600083116040805190810160405280601081526020017f4e6f20746f6b656e73206c6f636b656400000000000000000000000000000000815250901515612dd9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d9e578082015181840152602081019050612d83565b50505050905090810190601f168015612dcb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d954148e3388886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182815260200193505050506040805180830381600087803b158015612eae57600080fd5b505af1158015612ec2573d6000803e3d6000fd5b505050506040513d6040811015612ed857600080fd5b8101908080519060200190929190805190602001909291905050509150915085600019163373ffffffffffffffffffffffffffffffffffffffff167fd173f98f4a2080eab40a0bff4d9a575753270cb2401c74efdec1feb0ba31b4268484604051808381526020018281526020019250505060405180910390a36001935050505092915050565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636556c18a866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561302257600080fd5b505af1158015613036573d6000803e3d6000fd5b505050506040513d602081101561304c57600080fd5b81019080805190602001909291905050509250600091505b8282101561318957600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635db76cfa86846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561313157600080fd5b505af1158015613145573d6000803e3d6000fd5b505050506040513d602081101561315b57600080fd5b810190808051906020019092919050505090506131788582612075565b840193508180600101925050613064565b505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630af4187d84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561328457600080fd5b505af1158015613298573d6000803e3d6000fd5b505050506040513d60208110156132ae57600080fd5b8101908080519060200190929190505050905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613392576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561345d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da46098c8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561355657600080fd5b505af115801561356a573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156136a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561376e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f8b2cb4f856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561382c57600080fd5b505af1158015613840573d6000803e3d6000fd5b505050506040513d602081101561385657600080fd5b8101908080519060200190929190505050101515156138dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e73756666696369656e742046756e6473000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf8eeb7e84836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156139a257600080fd5b505af11580156139b6573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321e5383a83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613a7f57600080fd5b505af1158015613a93573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000828211151515613b0f57fe5b818303905092915050565b60008183019050828110151515613b2d57fe5b809050929150505600a165627a7a72305820b9ff474f8c191087b263d6f895e5f1ce7ee5d950c6be2e48cc290e4e25920d4b00290000000000000000000000006da3b1c40cf4591fb55dccc09f22763e36a7db9e
Deployed Bytecode
0x608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c8578063179e91f11461022d57806318160ddd1461029c5780631a3ab9fe146102c757806323b872dd146103445780632e82aaf2146103c95780632f54bf6e146104265780632f6c493c14610481578063313ce567146104d85780634b0ee02a146105095780634cb5465f146105605780635294d0e8146105dd5780635ca48d8c1461064257806370a08231146106a757806379c65068146106fe5780637b47ec1a1461074b57806381fc4d901461077857806395d89b41146107cb578063a9059cbb1461085b578063a9dab167146108c0578063ab4a2eb314610913578063dd62ed3e1461096a575b600080fd5b34801561014457600080fd5b5061014d6109e1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a1a565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610286600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919080359060200190929190505050610a31565b6040518082815260200191505060405180910390f35b3480156102a857600080fd5b506102b1610b4c565b6040518082815260200191505060405180910390f35b3480156102d357600080fd5b5061032e600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c14565b6040518082815260200191505060405180910390f35b34801561035057600080fd5b506103af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c89565b604051808215151515815260200191505060405180910390f35b3480156103d557600080fd5b5061040c60048036038101908080356000191690602001909291908035906020019092919080359060200190929190505050610fd8565b604051808215151515815260200191505060405180910390f35b34801561043257600080fd5b50610467600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611532565b604051808215151515815260200191505060405180910390f35b34801561048d57600080fd5b506104c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061158b565b6040518082815260200191505060405180910390f35b3480156104e457600080fd5b506104ed61193c565b604051808260ff1660ff16815260200191505060405180910390f35b34801561051557600080fd5b5061054a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611941565b6040518082815260200191505060405180910390f35b34801561056c57600080fd5b506105c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291908035906020019092919080359060200190929190505050611a4f565b604051808215151515815260200191505060405180910390f35b3480156105e957600080fd5b5061062c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050612075565b6040518082815260200191505060405180910390f35b34801561064e57600080fd5b50610691600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050612187565b6040518082815260200191505060405180910390f35b3480156106b357600080fd5b506106e8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612299565b6040518082815260200191505060405180910390f35b34801561070a57600080fd5b50610749600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061239a565b005b34801561075757600080fd5b5061077660048036038101908080359060200190929190505050612615565b005b34801561078457600080fd5b506107b16004803603810190808035600019169060200190929190803590602001909291905050506127f2565b604051808215151515815260200191505060405180910390f35b3480156107d757600080fd5b506107e0612b97565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610820578082015181840152602081019050610805565b50505050905090810190601f16801561084d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086757600080fd5b506108a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612bd0565b604051808215151515815260200191505060405180910390f35b3480156108cc57600080fd5b506108f9600480360381019080803560001916906020019092919080359060200190929190505050612be7565b604051808215151515815260200191505060405180910390f35b34801561091f57600080fd5b50610954600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f5f565b6040518082815260200191505060405180910390f35b34801561097657600080fd5b506109cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613191565b6040518082815260200191505060405180910390f35b6040805190810160405280600f81526020017f526f626f416920436f696e20523252000000000000000000000000000000000081525081565b6000610a273384846132c7565b6001905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395a90e5c8585856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018281526020019350505050602060405180830381600087803b158015610b0857600080fd5b505af1158015610b1c573d6000803e3d6000fd5b505050506040513d6020811015610b3257600080fd5b810190808051906020019092919050505090509392505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4e41b226040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610bd457600080fd5b505af1158015610be8573d6000803e3d6000fd5b505050506040513d6020811015610bfe57600080fd5b8101908080519060200190929190505050905090565b60006003826040518082805190602001908083835b602083101515610c4e5780518252602082019150602081019050602083039250610c29565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050919050565b600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630af4187d86336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610d7d57600080fd5b505af1158015610d91573d6000803e3d6000fd5b505050506040513d6020811015610da757600080fd5b810190808051906020019092919050505010151515610e7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605e8152602001807f416c6c6f77616e63654572726f723a20546865207370656e64657220646f657381526020017f206e6f74206876652074686520726571756972656420616c6c6f77616e63652081526020017f746f207370656e6420746f6b656e20686f6c646572277320746f6b656e73000081525060600191505060405180910390fd5b610e858484846135d8565b610fcd8433610fc885600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630af4187d8a336040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610f7f57600080fd5b505af1158015610f93573d6000803e3d6000fd5b505050506040513d6020811015610fa957600080fd5b8101908080519060200190929190505050613b0190919063ffffffff16565b6132c7565b600190509392505050565b6000806000610ff08442613b1a90919063ffffffff16565b9150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b11108533886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b1580156110bf57600080fd5b505af11580156110d3573d6000803e3d6000fd5b505050506040513d60208110156110e957600080fd5b81019080805190602001909291905050509050600081146040805190810160405280601581526020017f546f6b656e7320616c7265616479206c6f636b656400000000000000000000008152509015156111de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111a3578082015181840152602081019050611188565b50505050905090810190601f1680156111d05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008514156040805190810160405280601381526020017f416d6f756e742063616e206e6f742062652030000000000000000000000000008152509015156112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561128757808201518184015260208101905061126c565b50505050905090810190601f1680156112b45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae89559933886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050600060405180830381600087803b15801561139057600080fd5b505af11580156113a4573d6000803e3d6000fd5b505050506113d533600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876135d8565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb9e00cb338888866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460001916600019168152602001838152602001828152602001945050505050600060405180830381600087803b1580156114b257600080fd5b505af11580156114c6573d6000803e3d6000fd5b5050505085600019163373ffffffffffffffffffffffffffffffffffffffff167fd173f98f4a2080eab40a0bff4d9a575753270cb2401c74efdec1feb0ba31b4268785604051808381526020018281526020019250505060405180910390a36001925050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000806000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636556c18a876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561165057600080fd5b505af1158015611664573d6000803e3d6000fd5b505050506040513d602081101561167a57600080fd5b81019080805190602001909291905050509250600091505b828210156118fc57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635db76cfa87846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561175f57600080fd5b505af1158015611773573d6000803e3d6000fd5b505050506040513d602081101561178957600080fd5b810190808051906020019092919050505090506117a68682612075565b935060008411156118ef578385019450600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e6618c187836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050600060405180830381600087803b15801561188357600080fd5b505af1158015611897573d6000803e3d6000fd5b5050505080600019168673ffffffffffffffffffffffffffffffffffffffff167f0c35a7765dc80648aa68cb8cf542e73a11500a6e58527cfe7aea2bf7e6b89c87866040518082815260200191505060405180910390a35b8180600101925050611692565b600085111561193357611932600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687876135d8565b5b50505050919050565b601281565b600061194c82612299565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75e2c58836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611a0b57600080fd5b505af1158015611a1f573d6000803e3d6000fd5b505050506040513d6020811015611a3557600080fd5b810190808051906020019092919050505081019050919050565b6000806000611a678442613b1a90919063ffffffff16565b9150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b11108588886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b158015611b3657600080fd5b505af1158015611b4a573d6000803e3d6000fd5b505050506040513d6020811015611b6057600080fd5b81019080805190602001909291905050509050600081146040805190810160405280601581526020017f546f6b656e7320616c7265616479206c6f636b65640000000000000000000000815250901515611c55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c1a578082015181840152602081019050611bff565b50505050905090810190601f168015611c475780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008514156040805190810160405280601381526020017f416d6f756e742063616e206e6f74206265203000000000000000000000000000815250901515611d39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cfe578082015181840152602081019050611ce3565b50505050905090810190601f168015611d2b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515611e05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae89559988886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050600060405180830381600087803b158015611ed257600080fd5b505af1158015611ee6573d6000803e3d6000fd5b50505050611f1733600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876135d8565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb9e00cb888888866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018460001916600019168152602001838152602001828152602001945050505050600060405180830381600087803b158015611ff457600080fd5b505af1158015612008573d6000803e3d6000fd5b5050505085600019168773ffffffffffffffffffffffffffffffffffffffff167fd173f98f4a2080eab40a0bff4d9a575753270cb2401c74efdec1feb0ba31b4268785604051808381526020018281526020019250505060405180910390a3600192505050949350505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae7b000684846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b15801561214457600080fd5b505af1158015612158573d6000803e3d6000fd5b505050506040513d602081101561216e57600080fd5b8101908080519060200190929190505050905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b11108584846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b15801561225657600080fd5b505af115801561226a573d6000803e3d6000fd5b505050506040513d602081101561228057600080fd5b8101908080519060200190929190505050905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f8b2cb4f836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561235857600080fd5b505af115801561236c573d6000803e3d6000fd5b505050506040513d602081101561238257600080fd5b81019080805190602001909291905050509050919050565b6123a333611532565b151561243d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4f776e6572526f6c653a2063616c6c657220646f6573206e6f7420686176652081526020017f746865204f776e657220726f6c6500000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e468688e826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156124ce57600080fd5b505af11580156124e2573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321e5383a83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156125ab57600080fd5b505af11580156125bf573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a25050565b6000339050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf8eeb7e82846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156126df57600080fd5b505af11580156126f3573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166382838c76836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561278857600080fd5b505af115801561279c573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a25050565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b11108533886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b1580156128c557600080fd5b505af11580156128d9573d6000803e3d6000fd5b505050506040513d60208110156128ef57600080fd5b81019080805190602001909291905050509250600083116040805190810160405280601081526020017f4e6f20746f6b656e73206c6f636b6564000000000000000000000000000000008152509015156129e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129a957808201518184015260208101905061298e565b50505050905090810190601f1680156129d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50612a1233600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876135d8565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c415ab0a3388886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182815260200193505050506040805180830381600087803b158015612ae657600080fd5b505af1158015612afa573d6000803e3d6000fd5b505050506040513d6040811015612b1057600080fd5b8101908080519060200190929190805190602001909291905050509150915085600019163373ffffffffffffffffffffffffffffffffffffffff167fd173f98f4a2080eab40a0bff4d9a575753270cb2401c74efdec1feb0ba31b4268484604051808381526020018281526020019250505060405180910390a36001935050505092915050565b6040805190810160405280600381526020017f523252000000000000000000000000000000000000000000000000000000000081525081565b6000612bdd3384846135d8565b6001905092915050565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637b11108533886040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050602060405180830381600087803b158015612cba57600080fd5b505af1158015612cce573d6000803e3d6000fd5b505050506040513d6020811015612ce457600080fd5b81019080805190602001909291905050509250600083116040805190810160405280601081526020017f4e6f20746f6b656e73206c6f636b656400000000000000000000000000000000815250901515612dd9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d9e578082015181840152602081019050612d83565b50505050905090810190601f168015612dcb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d954148e3388886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182815260200193505050506040805180830381600087803b158015612eae57600080fd5b505af1158015612ec2573d6000803e3d6000fd5b505050506040513d6040811015612ed857600080fd5b8101908080519060200190929190805190602001909291905050509150915085600019163373ffffffffffffffffffffffffffffffffffffffff167fd173f98f4a2080eab40a0bff4d9a575753270cb2401c74efdec1feb0ba31b4268484604051808381526020018281526020019250505060405180910390a36001935050505092915050565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636556c18a866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561302257600080fd5b505af1158015613036573d6000803e3d6000fd5b505050506040513d602081101561304c57600080fd5b81019080805190602001909291905050509250600091505b8282101561318957600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635db76cfa86846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561313157600080fd5b505af1158015613145573d6000803e3d6000fd5b505050506040513d602081101561315b57600080fd5b810190808051906020019092919050505090506131788582612075565b840193508180600101925050613064565b505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630af4187d84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561328457600080fd5b505af1158015613298573d6000803e3d6000fd5b505050506040513d60208110156132ae57600080fd5b8101908080519060200190929190505050905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613392576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561345d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da46098c8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561355657600080fd5b505af115801561356a573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156136a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561376e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f8b2cb4f856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561382c57600080fd5b505af1158015613840573d6000803e3d6000fd5b505050506040513d602081101561385657600080fd5b8101908080519060200190929190505050101515156138dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e73756666696369656e742046756e6473000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf8eeb7e84836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156139a257600080fd5b505af11580156139b6573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321e5383a83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613a7f57600080fd5b505af1158015613a93573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000828211151515613b0f57fe5b818303905092915050565b60008183019050828110151515613b2d57fe5b809050929150505600a165627a7a72305820b9ff474f8c191087b263d6f895e5f1ce7ee5d950c6be2e48cc290e4e25920d4b0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006da3b1c40cf4591fb55dccc09f22763e36a7db9e
-----Decoded View---------------
Arg [0] : storeAddress (address): 0x6DA3B1C40Cf4591fb55Dccc09F22763E36a7dB9E
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006da3b1c40cf4591fb55dccc09f22763e36a7db9e
Deployed Bytecode Sourcemap
60:535:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;319:47:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;319:47:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;319:47:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2048:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2048:145:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6613:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6613:204:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1506:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1506:103:6;;;;;;;;;;;;;;;;;;;;;;;442:151:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;442:151:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2199:432:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2199:432:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4226:624;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4226:624:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;646:102:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;646:102:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8984:676:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8984:676:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;415:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;415:35:6;;;;;;;;;;;;;;;;;;;;;;;;;;;6964:193;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6964:193:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5197:696;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5197:696:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8662:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8662:170:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6126:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6126:173:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1615:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1615:119:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3490:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3490:202:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3698:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3698:208:6;;;;;;;;;;;;;;;;;;;;;;;;;;7933:484;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7933:484:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;372:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;372:37:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;372:37:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1740:153:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7332:419;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7332:419:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9815:392;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9815:392:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1899:143;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1899:143:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;319:47;;;;;;;;;;;;;;;;;;;;:::o;2048:145::-;2113:4;2129:36;2138:10;2150:7;2159:5;2129:8;:36::i;:::-;2182:4;2175:11;;2048:145;;;;:::o;6613:204::-;6719:14;6758:9;;;;;;;;;;;:31;;;6790:3;6795:7;6804:5;6758:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6758:52:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6758:52:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6758:52:6;;;;;;;;;;;;;;;;6749:61;;6613:204;;;;;:::o;1506:103::-;1549:7;1575:9;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1575:26:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1575:26:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1575:26:6;;;;;;;;;;;;;;;;1568:34;;1506:103;:::o;442:151:7:-;520:15;559:16;576:9;559:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;559:27:7;;;;;;;;;;;;;;;;;;;;;;546:40;;442:151;;;:::o;2199:432:6:-;2288:4;2358:6;2312:9;;;;;;;;;;;:22;;;2335:6;2343:10;2312:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2312:42:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2312:42:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2312:42:6;;;;;;;;;;;;;;;;:52;;2304:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2473:36;2483:6;2491:9;2502:6;2473:9;:36::i;:::-;2519:84;2528:6;2536:10;2548:54;2595:6;2548:9;;;;;;;;;;;:22;;;2571:6;2579:10;2548:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2548:42:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2548:42:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2548:42:6;;;;;;;;;;;;;;;;:46;;:54;;;;:::i;:::-;2519:8;:84::i;:::-;2620:4;2613:11;;2199:432;;;;;:::o;4226:624::-;4313:4;4333:18;4391:27;4354:26;4374:5;4354:15;:19;;:26;;;;:::i;:::-;4333:47;;4421:9;;;;;;;;;;;:30;;;4452:10;4464:7;4421:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4421:51:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4421:51:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4421:51:6;;;;;;;;;;;;;;;;4391:81;;4514:1;4491:19;:24;4517:14;;;;;;;;;;;;;;;;;;4483:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4483:49:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4561:1;4550:7;:12;;4564:11;;;;;;;;;;;;;;;;;;4542:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4542:34:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4587:9;;;;;;;;;;;:23;;;4611:10;4623:7;4587:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4587:44:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4587:44:6;;;;4642:41;4652:10;4664:9;;;;;;;;;;;4675:7;4642:9;:41::i;:::-;4694:9;;;;;;;;;;;:24;;;4719:10;4731:7;4740;4749:10;4694:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4694:66:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4694:66:6;;;;4793:7;4776:46;;;4781:10;4776:46;;;4802:7;4811:10;4776:46;;;;;;;;;;;;;;;;;;;;;;;;4839:4;4832:11;;4226:624;;;;;;;:::o;646:102:3:-;701:4;735:6;;;;;;;;;;;724:17;;:7;:17;;;717:24;;646:102;;;:::o;8984:676:6:-;9037:24;9077:20;9107:22;9184:9;9238:14;9132:9;;;;;;;;;;;:32;;;9165:3;9132:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9132:37:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9132:37:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9132:37:6;;;;;;;;;;;;;;;;9107:62;;9196:1;9184:13;;9179:383;9203:14;9199:1;:18;9179:383;;;9255:9;;;;;;;;;;;:23;;;9279:3;9284:1;9255:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9255:31:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9255:31:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9255:31:6;;;;;;;;;;;;;;;;9238:48;;9315:29;9332:3;9337:6;9315:16;:29::i;:::-;9300:44;;9377:1;9362:12;:16;9358:194;;;9418:12;9398:32;;;;9448:9;;;;;;;;;;;:20;;;9469:3;9474:6;9448:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9448:33:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9448:33:6;;;;9516:6;9504:33;;;9511:3;9504:33;;;9524:12;9504:33;;;;;;;;;;;;;;;;;;9358:194;9219:3;;;;;;;9179:383;;;9595:1;9576:16;:20;9572:81;;;9610:43;9620:9;;;;;;;;;;;9631:3;9636:16;9610:9;:43::i;:::-;9572:81;8984:676;;;;;;;:::o;415:35::-;448:2;415:35;:::o;6964:193::-;7034:14;7073;7083:3;7073:9;:14::i;:::-;7064:23;;7115:9;;;;;;;;;;;:30;;;7146:3;7115:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7115:35:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7115:35:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7115:35:6;;;;;;;;;;;;;;;;7106:6;:44;7097:53;;6964:193;;;:::o;5197:696::-;5309:4;5329:18;5387:27;5350:26;5370:5;5350:15;:19;;:26;;;;:::i;:::-;5329:47;;5417:9;;;;;;;;;;;:30;;;5448:3;5453:7;5417:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5417:44:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5417:44:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5417:44:6;;;;;;;;;;;;;;;;5387:74;;5503:1;5480:19;:24;5506:14;;;;;;;;;;;;;;;;;;5472:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5472:49:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5550:1;5539:7;:12;;5553:11;;;;;;;;;;;;;;;;;;5531:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5531:34:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5598:1;5583:17;;:3;:17;;;;5575:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5651:9;;;;;;;;;;;:23;;;5675:3;5680:7;5651:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5651:37:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5651:37:6;;;;5699:41;5709:10;5721:9;;;;;;;;;;;5732:7;5699:9;:41::i;:::-;5751:9;;;;;;;;;;;:24;;;5776:3;5781:7;5790;5799:10;5751:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5751:59:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5751:59:6;;;;5836:7;5826:39;;;5831:3;5826:39;;;5845:7;5854:10;5826:39;;;;;;;;;;;;;;;;;;;;;;;;5882:4;5875:11;;5197:696;;;;;;;;:::o;8662:170::-;8751:14;8788:9;;;;;;;;;;;:23;;;8812:3;8817:7;8788:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8788:37:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8788:37:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8788:37:6;;;;;;;;;;;;;;;;8781:44;;8662:170;;;;:::o;6126:173::-;6211:14;6248:9;;;;;;;;;;;:30;;;6279:3;6284:7;6248:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6248:44:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6248:44:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6248:44:6;;;;;;;;;;;;;;;;6241:51;;6126:173;;;;:::o;1615:119::-;1672:7;1698:9;;;;;;;;;;;:20;;;1719:7;1698:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1698:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1698:29:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1698:29:6;;;;;;;;;;;;;;;;1691:36;;1615:119;;;:::o;3490:202::-;552:19:3;560:10;552:7;:19::i;:::-;544:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3569:9:6;;;;;;;;;;;:24;;;3594:5;3569:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3569:31:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3569:31:6;;;;3610:9;;;;;;;;;;;:20;;;3631:9;3642:5;3610:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3610:38:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3610:38:6;;;;3668:9;3663:22;;;3679:5;3663:22;;;;;;;;;;;;;;;;;;3490:202;;:::o;3698:208::-;3748:14;3765:10;3748:27;;3785:9;;;;;;;;;;;:20;;;3806:6;3814:5;3785:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3785:35:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3785:35:6;;;;3830:9;;;;;;;;;;;:24;;;3855:5;3830:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3830:31:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3830:31:6;;;;3881:10;3876:23;;;3893:5;3876:23;;;;;;;;;;;;;;;;;;3698:208;;:::o;7933:484::-;8019:4;8039:27;8236:14;8252:16;8069:9;;;;;;;;;;;:30;;;8100:10;8112:7;8069:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8069:51:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8069:51:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8069:51:6;;;;;;;;;;;;;;;;8039:81;;8160:1;8138:19;:23;8163:10;;;;;;;;;;;;;;;;;;8130:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8130:44:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8184:41;8194:10;8206:9;;;;;;;;;;;8217:7;8184:9;:41::i;:::-;8272:9;;;;;;;;;;;:28;;;8301:10;8313:7;8322;8272:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8272:58:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8272:58:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8272:58:6;;;;;;;;;;;;;;;;;;;;;;;;;8235:95;;;;8363:7;8346:43;;;8351:10;8346:43;;;8372:6;8380:8;8346:43;;;;;;;;;;;;;;;;;;;;;;;;8406:4;8399:11;;7933:484;;;;;;;:::o;372:37::-;;;;;;;;;;;;;;;;;;;;:::o;1740:153::-;1809:4;1825:40;1835:10;1847:9;1858:6;1825:9;:40::i;:::-;1882:4;1875:11;;1740:153;;;;:::o;7332:419::-;7408:4;7428:27;7575:14;7591:16;7458:9;;;;;;;;;;;:30;;;7489:10;7501:7;7458:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7458:51:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7458:51:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7458:51:6;;;;;;;;;;;;;;;;7428:81;;7549:1;7527:19;:23;7552:10;;;;;;;;;;;;;;;;;;7519:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7519:44:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7611:9;;;;;;;;;;;:25;;;7637:10;7649:7;7658:5;7611:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7611:53:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7611:53:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7611:53:6;;;;;;;;;;;;;;;;;;;;;;;;;7574:90;;;;7697:7;7680:43;;;7685:10;7680:43;;;7706:6;7714:8;7680:43;;;;;;;;;;;;;;;;;;;;;;;;7740:4;7733:11;;7332:419;;;;;;;:::o;9815:392::-;9890:24;9930:22;10007:9;10061:14;9955:9;;;;;;;;;;;:32;;;9988:3;9955:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9955:37:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9955:37:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9955:37:6;;;;;;;;;;;;;;;;9930:62;;10019:1;10007:13;;10002:199;10026:14;10022:1;:18;10002:199;;;10078:9;;;;;;;;;;;:23;;;10102:3;10107:1;10078:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10078:31:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10078:31:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10078:31:6;;;;;;;;;;;;;;;;10061:48;;10161:29;10178:3;10183:6;10161:16;:29::i;:::-;10142:16;:48;10123:67;;10042:3;;;;;;;10002:199;;;9815:392;;;;;;:::o;1899:143::-;1971:7;1997:9;;;;;;;;;;;:22;;;2020:5;2027:7;1997:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1997:38:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1997:38:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1997:38:6;;;;;;;;;;;;;;;;1990:45;;1899:143;;;;:::o;3115:339::-;3224:1;3207:19;;:5;:19;;;;3199:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3304:1;3285:21;;:7;:21;;;;3277:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3356:9;;;;;;;;;;;:22;;;3379:5;3386:7;3395:5;3356:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3356:45:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3356:45:6;;;;3432:7;3416:31;;3425:5;3416:31;;;3441:5;3416:31;;;;;;;;;;;;;;;;;;3115:339;;;:::o;2637:472::-;2752:1;2734:20;;:6;:20;;;;2726:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2835:1;2814:23;;:9;:23;;;;2806:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2927:6;2895:9;;;;;;;;;;;:20;;;2916:6;2895:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2895:28:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2895:28:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2895:28:6;;;;;;;;;;;;;;;;:38;;2887:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2967:9;;;;;;;;;;;:20;;;2988:6;2996;2967:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2967:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2967:36:6;;;;3013:9;;;;;;;;;;;:20;;;3034:9;3045:6;3013:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3013:39:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3013:39:6;;;;3084:9;3067:35;;3076:6;3067:35;;;3095:6;3067:35;;;;;;;;;;;;;;;;;;2637:472;;;:::o;1142:126:4:-;1202:7;1234:2;1228;:8;;1221:16;;;;;;1259:2;1254;:7;1247:14;;1142:126;;;;:::o;1338:142::-;1398:9;1428:2;1423;:7;1419:11;;1452:2;1447:1;:7;;1440:15;;;;;;1472:1;1465:8;;1338:142;;;;:::o
Swarm Source
bzzr://b9ff474f8c191087b263d6f895e5f1ce7ee5d950c6be2e48cc290e4e25920d4b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.