ERC-20
Overview
Max Total Supply
150,000,000 WLF
Holders
107
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Wolfs
Compiler Version
v0.5.8+commit.23d335f2
Contract Source Code (Solidity Multiple files format)
pragma solidity ^0.5.8; import "./ierc20.sol"; import "./safemath.sol"; import "./erc20.sol"; import "./burnable.sol"; import "./ownable.sol"; import "./timelocks.sol"; contract ContractFallbacks { function receiveApproval(address from, uint256 _amount, address _token, bytes memory _data) public; function onTokenTransfer(address from, uint256 amount, bytes memory data) public returns (bool success); } contract Wolfs is IERC20, ERC20, ERC20Burnable, Ownable, Timelocks { using SafeMath for uint256; string public name; string public symbol; uint8 public decimals; /** * @dev Token constructor */ constructor () public { name = "Wolfs Group AG"; symbol = "WLF"; decimals = 0; owner = 0x7fd429DBb710674614A35e967788Fa3e23A5c1C9; emit OwnershipTransferred(address(0), owner); _mint(0xc7eEef150818b5D3301cc93a965195F449603805, 15000000); _mint(0x7fd429DBb710674614A35e967788Fa3e23A5c1C9, 135000000); } /** * @dev function that allow to approve for transfer and call contract in one transaction * @param _spender contract address * @param _amount amount of tokens * @param _extraData optional encoded data to send to contract * @return True if function call was succesfull */ function approveAndCall(address _spender, uint256 _amount, bytes calldata _extraData) external returns (bool success) { require(approve(_spender, _amount), "ERC20: Approve unsuccesfull"); ContractFallbacks(_spender).receiveApproval(msg.sender, _amount, address(this), _extraData); return true; } /** * @dev function that transer tokens to diven address and call function on that address * @param _to address to send tokens and call * @param _value amount of tokens * @param _data optional extra data to process in calling contract * @return success True if all succedd */ function transferAndCall(address _to, uint _value, bytes calldata _data) external returns (bool success) { _transfer(msg.sender, _to, _value); ContractFallbacks(_to).onTokenTransfer(msg.sender, _value, _data); return true; } }
pragma solidity ^0.5.8; import "./erc20.sol"; /** * @title Burnable Token * @dev Token that can be irreversibly burned (destroyed). */ contract ERC20Burnable is ERC20 { /** * @dev Burns a specific amount of tokens. * @param value The amount of token to be burned. */ function burn(uint256 value) external { _burn(msg.sender, value); } /** * @dev Burns a specific amount of tokens from the target address and decrements allowance. * @param from address The account whose tokens will be burned. * @param value uint256 The amount of token to be burned. */ function burnFrom(address from, uint256 value) external { _burnFrom(from, value); } }
pragma solidity ^0.5.8; import "./safemath.sol"; import "./ierc20.sol"; /** * @title Standard ERC20 token ** @dev Implementation of the basic standard token. * https://eips.ethereum.org/EIPS/eip-20 * Originally based on code by FirstBlood: * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol ** This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for * all accounts just by listening to said events. Note that this isn't required by the specification, and other * compliant implementations may not do it. */ contract ERC20 is IERC20 { using SafeMath for uint256; mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) private _allowed; uint256 private _totalSupply; /** * @dev Total number of tokens in existence. */ function totalSupply() external view returns (uint256) { return _totalSupply; } /** * @dev Gets the balance of the specified address. * @param owner The address to query the balance of. * @return A uint256 representing the amount owned by the passed address. */ function balanceOf(address owner) external view returns (uint256) { return _balances[owner]; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param owner address The address which owns the funds. * @param spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address owner, address spender) external view returns (uint256) { return _allowed[owner][spender]; } /** * @dev Transfer token to a specified address. * @param to The address to transfer to. * @param value The amount to be transferred. */ function transfer(address to, uint256 value) external returns (bool) { _transfer(msg.sender, to, value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param spender The address which will spend the funds. * @param value The amount of tokens to be spent. */ function approve(address spender, uint256 value) public returns (bool) { _approve(msg.sender, spender, value); return true; } /** * @dev Transfer tokens from one address to another. * Note that while this function emits an Approval event, this is not required as per the specification, * and other compliant implementations may not emit the event. * @param from address The address which you want to send tokens from * @param to address The address which you want to transfer to * @param value uint256 the amount of tokens to be transferred */ function transferFrom(address from, address to, uint256 value) external returns (bool) { _transfer(from, to, value); _approve(from, msg.sender, _allowed[from][msg.sender].sub(value)); return true; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when _allowed[msg.sender][spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * Emits an Approval event. * @param spender The address which will spend the funds. * @param addedValue The amount of tokens to increase the allowance by. */ function increaseAllowance(address spender, uint256 addedValue) external returns (bool) { _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue)); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when _allowed[msg.sender][spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * Emits an Approval event. * @param spender The address which will spend the funds. * @param subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) { _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue)); return true; } /** * @dev Transfer token for a specified addresses. * @param from The address to transfer from. * @param to The address to transfer to. * @param value The amount to be transferred. */ function _transfer(address from, address to, uint256 value) internal { require(to != address(0), "ERC20: transfer to the zero address"); require(_balances[from]>=value, "ERC20 transfer: not enough tokens"); _balances[from] = _balances[from].sub(value); _balances[to] = _balances[to].add(value); emit Transfer(from, to, value); } /** * @dev Internal function that mints an amount of the token and assigns it to * an account. This encapsulates the modification of balances such that the * proper events are emitted. * @param account The account that will receive the created tokens. * @param value The amount that will be created. */ function _mint(address account, uint256 value) internal { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); emit Transfer(address(0), account, value); } /** * @dev Internal function that burns an amount of the token of a given * account. * @param account The account whose tokens will be burnt. * @param value The amount that will be burnt. */ function _burn(address account, uint256 value) internal { require(account != address(0), "ERC20: burn from the zero address"); require(_balances[account] >= value, "Burn: not enough tokens"); _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); emit Transfer(account, address(0), value); } /** * @dev Approve an address to spend another addresses' tokens. * @param owner The address that owns the tokens. * @param spender The address that will spend the tokens. * @param value The number of tokens that can be spent. */ 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"); _allowed[owner][spender] = value; emit Approval(owner, spender, value); } /** * @dev Internal function that burns an amount of the token of a given * account, deducting from the sender's allowance for said account. Uses the * internal burn function. * Emits an Approval event (reflecting the reduced allowance). * @param account The account whose tokens will be burnt. * @param value The amount that will be burnt. */ function _burnFrom(address account, uint256 value) internal { require(_allowed[account][msg.sender]>=value, "Burn: allowance too low"); _burn(account, value); _approve(account, msg.sender, _allowed[account][msg.sender].sub(value)); } }
pragma solidity ^0.5.8; /** * @title ERC20 interface * @dev see https://eips.ethereum.org/EIPS/eip-20 */ interface IERC20 { function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); }
pragma solidity ^0.5.8; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; address public newOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } /** * @return true if `msg.sender` is the owner of the contract. */ function isOwner() public view returns (bool) { return msg.sender == owner; } /** * @dev Allows the current owner to relinquish control of the contract. * It will not be possible to call the functions with the `onlyOwner` * modifier anymore. * @notice Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() external onlyOwner { emit OwnershipTransferred(owner, address(0)); owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) external onlyOwner { newOwner = _newOwner; } function acceptOwnership() public{ require (newOwner == msg.sender, "Ownable: only new Owner can accept"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } }
pragma solidity ^0.5.7; /** * @title SafeMath * @dev Unsigned math operations with safety checks that revert on error. */ library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring '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; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath: division by zero"); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath: modulo by zero"); return a % b; } }
pragma solidity ^0.5.8; import "./erc20.sol"; import "./ownable.sol"; contract Timelocks is ERC20, Ownable{ uint public lockedBalance; struct Locker { uint amount; uint locktime; } mapping(address => Locker[]) timeLocks; /** * @dev function that lock tokens held by contract. Tokens can be unlocked and send to user after fime pass * @param lockTimestamp timestamp after whih coins can be unlocked * @param amount amount of tokens to lock * @param user address of uset that cn unlock and posess tokens */ function lock(uint lockTimestamp, uint amount, address user) external onlyOwner { _lock(lockTimestamp, amount, user); } function _lock(uint lockTimestamp, uint amount, address user) internal{ uint current = _balances[address(this)]; require(amount <= current.sub(lockedBalance), "Lock: Not enough tokens"); lockedBalance = lockedBalance.add(amount); timeLocks[user].push(Locker(amount, lockTimestamp)); } /** * @dev Function to unlock timelocked tokens * If block.timestap passed tokens are sent to owner and lock is removed from database */ function unlock() external { require(timeLocks[msg.sender].length > 0, "Unlock: No locks!"); Locker[] storage l = timeLocks[msg.sender]; for (uint i = 0; i < l.length; i++) { if (l[i].locktime < block.timestamp) { uint amount = l[i].amount; require(amount <= lockedBalance && amount <= _balances[address(this)], "Unlock: Not enough coins on contract!"); lockedBalance = lockedBalance.sub(amount); _transfer(address(this), msg.sender, amount); for (uint j = i; j < l.length - 1; j++) { l[j] = l[j + 1]; } l.length--; i--; } } } /** * @dev Function to check how many locks are on caller account * We need it because (for now) contract can not retrurn array of structs * @return number of timelocked locks */ function locks() external view returns(uint) { return _locks(msg.sender); } /** * @dev Function to check timelocks of any user * @param user addres of user * @return nuber of locks */ function locksOf(address user) external view returns(uint) { return _locks(user); } function _locks(address user) internal view returns(uint){ return timeLocks[user].length; } /** * @dev Function to check given timeLock * @param num number of timeLock * @return amount locked * @return timestamp after whih coins can be unlocked */ function showLock(uint num) external view returns(uint, uint) { return _showLock(msg.sender, num); } /** * @dev Function to show timeLock of any user * @param user address of user * @param num number of lock * @return amount locked * @return timestamp after whih can be unlocked */ function showLockOf(address user, uint num) external view returns(uint, uint) { return _showLock(user, num); } function _showLock(address user, uint num) internal view returns(uint, uint) { require(timeLocks[user].length > 0, "ShowLock: No locks!"); require(num < timeLocks[user].length, "ShowLock: Index over number of locks."); Locker[] storage l = timeLocks[user]; return (l[num].amount, l[num].locktime); } }
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":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"num","type":"uint256"}],"name":"showLock","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lockedBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"locksOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"lockTimestamp","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"user","type":"address"}],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"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"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"locks","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"},{"name":"num","type":"uint256"}],"name":"showLockOf","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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
60806040523480156200001157600080fd5b506040518060400160405280600e81526020017f576f6c66732047726f7570204147000000000000000000000000000000000000815250600790805190602001906200005f92919062000448565b506040518060400160405280600381526020017f574c46000000000000000000000000000000000000000000000000000000000081525060089080519060200190620000ad92919062000448565b506000600960006101000a81548160ff021916908360ff160217905550737fd429dbb710674614a35e967788fa3e23a5c1c9600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3620001c573c7eeef150818b5d3301cc93a965195f44960380562e4e1c0620001f560201b60201c565b620001ef737fd429dbb710674614a35e967788fa3e23a5c1c963080befc0620001f560201b60201c565b620004f7565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620002b581600254620003bf60201b620020ea1790919060201c565b60028190555062000313816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620003bf60201b620020ea1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000808284019050838110156200043e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200048b57805160ff1916838001178555620004bc565b82800160010185558215620004bc579182015b82811115620004bb5782518255916020019190600101906200049e565b5b509050620004cb9190620004cf565b5090565b620004f491905b80821115620004f0576000816000905550600101620004d6565b5090565b90565b6128d180620005076000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063cae9ca5111610097578063dd62ed3e11610071578063dd62ed3e14610964578063f2fde38b146109dc578063f557ab0314610a20578063fe01aad114610a3e576101c4565b8063cae9ca5114610807578063d35cf790146108c2578063d4ee1d901461091a576101c4565b8063a457c2d7116100d3578063a457c2d7146106d9578063a69df4b51461073f578063a9059cbb14610749578063c3f9ab58146107af576101c4565b80638da5cb5b146105ea5780638f32d59b1461063457806395d89b4114610656576101c4565b80634000aea011610166578063715018a611610140578063715018a61461056a57806379ba50971461057457806379cc67901461057e5780637b80889b146105cc576101c4565b80634000aea01461042957806342966c68146104e457806370a0823114610512576101c4565b80631ace059f116101a25780631ace059f146102d057806323b872dd14610319578063313ce5671461039f57806339509351146103c3576101c4565b806306fdde03146101c9578063095ea7b31461024c57806318160ddd146102b2575b600080fd5b6101d1610aa7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102986004803603604081101561026257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b45565b604051808215151515815260200191505060405180910390f35b6102ba610b5c565b6040518082815260200191505060405180910390f35b6102fc600480360360208110156102e657600080fd5b8101908080359060200190929190505050610b66565b604051808381526020018281526020019250505060405180910390f35b6103856004803603606081101561032f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b7c565b604051808215151515815260200191505060405180910390f35b6103a7610c2d565b604051808260ff1660ff16815260200191505060405180910390f35b61040f600480360360408110156103d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c40565b604051808215151515815260200191505060405180910390f35b6104ca6004803603606081101561043f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561048657600080fd5b82018360208201111561049857600080fd5b803590602001918460018302840111640100000000831117156104ba57600080fd5b9091929391929390505050610ce5565b604051808215151515815260200191505060405180910390f35b610510600480360360208110156104fa57600080fd5b8101908080359060200190929190505050610df5565b005b6105546004803603602081101561052857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e02565b6040518082815260200191505060405180910390f35b610572610e4a565b005b61057c610f85565b005b6105ca6004803603604081101561059457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611170565b005b6105d461117e565b6040518082815260200191505060405180910390f35b6105f2611184565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61063c6111aa565b604051808215151515815260200191505060405180910390f35b61065e611202565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561069e578082015181840152602081019050610683565b50505050905090810190601f1680156106cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610725600480360360408110156106ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112a0565b604051808215151515815260200191505060405180910390f35b610747611345565b005b6107956004803603604081101561075f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611606565b604051808215151515815260200191505060405180910390f35b6107f1600480360360208110156107c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061161d565b6040518082815260200191505060405180910390f35b6108a86004803603606081101561081d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561086457600080fd5b82018360208201111561087657600080fd5b8035906020019184600183028401116401000000008311171561089857600080fd5b909192939192939050505061162f565b604051808215151515815260200191505060405180910390f35b610918600480360360608110156108d857600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c0565b005b61092261184a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109c66004803603604081101561097a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611870565b6040518082815260200191505060405180910390f35b610a1e600480360360208110156109f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f7565b005b610a286119b5565b6040518082815260200191505060405180910390f35b610a8a60048036036040811015610a5457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119c5565b604051808381526020018281526020019250505060405180910390f35b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b3d5780601f10610b1257610100808354040283529160200191610b3d565b820191906000526020600020905b815481529060010190602001808311610b2057829003601f168201915b505050505081565b6000610b523384846119dd565b6001905092915050565b6000600254905090565b600080610b733384611bd4565b91509150915091565b6000610b89848484611db4565b610c228433610c1d85600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b6119dd565b600190509392505050565b600960009054906101000a900460ff1681565b6000610cdb3384610cd685600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ea90919063ffffffff16565b6119dd565b6001905092915050565b6000610cf2338686611db4565b8473ffffffffffffffffffffffffffffffffffffffff1663a4c0ed36338686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610dad57600080fd5b505af1158015610dc1573d6000803e3d6000fd5b505050506040513d6020811015610dd757600080fd5b81019080805190602001909291905050505060019050949350505050565b610dff3382612172565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e526111aa565b610ec4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061283f6022913960400191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61117a82826123c4565b5050565b60055481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112985780601f1061126d57610100808354040283529160200191611298565b820191906000526020600020905b81548152906001019060200180831161127b57829003601f168201915b505050505081565b600061133b338461133685600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b6119dd565b6001905092915050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050116113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e6c6f636b3a204e6f206c6f636b732100000000000000000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008090505b8180549050811015611602574282828154811061145f57fe5b90600052602060002090600202016001015410156115f557600082828154811061148557fe5b906000526020600020906002020160000154905060055481111580156114e957506000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111155b61153e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806127f96025913960400191505060405180910390fd5b6115538160055461206190919063ffffffff16565b600581905550611564303383611db4565b60008290505b60018480549050038110156115d45783600182018154811061158857fe5b90600052602060002090600202018482815481106115a257fe5b90600052602060002090600202016000820154816000015560018201548160010155905050808060010191505061156a565b50828054809190600190036115e9919061272d565b50818060019003925050505b8080600101915050611446565b5050565b6000611613338484611db4565b6001905092915050565b60006116288261255d565b9050919050565b600061163b8585610b45565b6116ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45524332303a20417070726f766520756e73756363657366756c6c000000000081525060200191505060405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16638f4ffcb133863087876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561179c57600080fd5b505af11580156117b0573d6000803e3d6000fd5b5050505060019050949350505050565b6117c86111aa565b61183a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6118458383836125a9565b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118ff6111aa565b611971576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006119c03361255d565b905090565b6000806119d28484611bd4565b915091509250929050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128826024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ae9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806127d76022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000806000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011611c8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f53686f774c6f636b3a204e6f206c6f636b73210000000000000000000000000081525060200191505060405180910390fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508310611d29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806127b26025913960400191505060405180910390fd5b6000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050808481548110611d7857fe5b906000526020600020906002020160000154818581548110611d9657fe5b90600052602060002090600202016001015492509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061278f6023913960400191505060405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611ed1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061281e6021913960400191505060405180910390fd5b611f22816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fb5816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ea90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000828211156120d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080828401905083811015612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806128616021913960400191505060405180910390fd5b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4275726e3a206e6f7420656e6f75676820746f6b656e7300000000000000000081525060200191505060405180910390fd5b6122c18160025461206190919063ffffffff16565b600281905550612318816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4275726e3a20616c6c6f77616e636520746f6f206c6f7700000000000000000081525060200191505060405180910390fd5b6124c08282612172565b612559823361255484600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b6119dd565b5050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60008060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506126016005548261206190919063ffffffff16565b831115612676576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4c6f636b3a204e6f7420656e6f75676820746f6b656e7300000000000000000081525060200191505060405180910390fd5b61268b836005546120ea90919063ffffffff16565b600581905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052808581526020018681525090806001815401808255809150509060018203906000526020600020906002020160009091929091909150600082015181600001556020820151816001015550505050505050565b81548183558181111561275a57600202816002028360005260206000209182019101612759919061275f565b5b505050565b61278b91905b8082111561278757600080820160009055600182016000905550600201612765565b5090565b9056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737353686f774c6f636b3a20496e646578206f766572206e756d626572206f66206c6f636b732e45524332303a20617070726f766520746f20746865207a65726f2061646472657373556e6c6f636b3a204e6f7420656e6f75676820636f696e73206f6e20636f6e7472616374214552433230207472616e736665723a206e6f7420656e6f75676820746f6b656e734f776e61626c653a206f6e6c79206e6577204f776e65722063616e2061636365707445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820de6e4dbb2f3d53693e4c4aa7917ff95e64aba8eeea466344150679a3ca51b75d0029
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063cae9ca5111610097578063dd62ed3e11610071578063dd62ed3e14610964578063f2fde38b146109dc578063f557ab0314610a20578063fe01aad114610a3e576101c4565b8063cae9ca5114610807578063d35cf790146108c2578063d4ee1d901461091a576101c4565b8063a457c2d7116100d3578063a457c2d7146106d9578063a69df4b51461073f578063a9059cbb14610749578063c3f9ab58146107af576101c4565b80638da5cb5b146105ea5780638f32d59b1461063457806395d89b4114610656576101c4565b80634000aea011610166578063715018a611610140578063715018a61461056a57806379ba50971461057457806379cc67901461057e5780637b80889b146105cc576101c4565b80634000aea01461042957806342966c68146104e457806370a0823114610512576101c4565b80631ace059f116101a25780631ace059f146102d057806323b872dd14610319578063313ce5671461039f57806339509351146103c3576101c4565b806306fdde03146101c9578063095ea7b31461024c57806318160ddd146102b2575b600080fd5b6101d1610aa7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102986004803603604081101561026257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b45565b604051808215151515815260200191505060405180910390f35b6102ba610b5c565b6040518082815260200191505060405180910390f35b6102fc600480360360208110156102e657600080fd5b8101908080359060200190929190505050610b66565b604051808381526020018281526020019250505060405180910390f35b6103856004803603606081101561032f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b7c565b604051808215151515815260200191505060405180910390f35b6103a7610c2d565b604051808260ff1660ff16815260200191505060405180910390f35b61040f600480360360408110156103d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c40565b604051808215151515815260200191505060405180910390f35b6104ca6004803603606081101561043f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561048657600080fd5b82018360208201111561049857600080fd5b803590602001918460018302840111640100000000831117156104ba57600080fd5b9091929391929390505050610ce5565b604051808215151515815260200191505060405180910390f35b610510600480360360208110156104fa57600080fd5b8101908080359060200190929190505050610df5565b005b6105546004803603602081101561052857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e02565b6040518082815260200191505060405180910390f35b610572610e4a565b005b61057c610f85565b005b6105ca6004803603604081101561059457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611170565b005b6105d461117e565b6040518082815260200191505060405180910390f35b6105f2611184565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61063c6111aa565b604051808215151515815260200191505060405180910390f35b61065e611202565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561069e578082015181840152602081019050610683565b50505050905090810190601f1680156106cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610725600480360360408110156106ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112a0565b604051808215151515815260200191505060405180910390f35b610747611345565b005b6107956004803603604081101561075f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611606565b604051808215151515815260200191505060405180910390f35b6107f1600480360360208110156107c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061161d565b6040518082815260200191505060405180910390f35b6108a86004803603606081101561081d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561086457600080fd5b82018360208201111561087657600080fd5b8035906020019184600183028401116401000000008311171561089857600080fd5b909192939192939050505061162f565b604051808215151515815260200191505060405180910390f35b610918600480360360608110156108d857600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c0565b005b61092261184a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109c66004803603604081101561097a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611870565b6040518082815260200191505060405180910390f35b610a1e600480360360208110156109f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f7565b005b610a286119b5565b6040518082815260200191505060405180910390f35b610a8a60048036036040811015610a5457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119c5565b604051808381526020018281526020019250505060405180910390f35b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b3d5780601f10610b1257610100808354040283529160200191610b3d565b820191906000526020600020905b815481529060010190602001808311610b2057829003601f168201915b505050505081565b6000610b523384846119dd565b6001905092915050565b6000600254905090565b600080610b733384611bd4565b91509150915091565b6000610b89848484611db4565b610c228433610c1d85600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b6119dd565b600190509392505050565b600960009054906101000a900460ff1681565b6000610cdb3384610cd685600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ea90919063ffffffff16565b6119dd565b6001905092915050565b6000610cf2338686611db4565b8473ffffffffffffffffffffffffffffffffffffffff1663a4c0ed36338686866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610dad57600080fd5b505af1158015610dc1573d6000803e3d6000fd5b505050506040513d6020811015610dd757600080fd5b81019080805190602001909291905050505060019050949350505050565b610dff3382612172565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e526111aa565b610ec4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061283f6022913960400191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61117a82826123c4565b5050565b60055481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112985780601f1061126d57610100808354040283529160200191611298565b820191906000526020600020905b81548152906001019060200180831161127b57829003601f168201915b505050505081565b600061133b338461133685600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b6119dd565b6001905092915050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050116113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f556e6c6f636b3a204e6f206c6f636b732100000000000000000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008090505b8180549050811015611602574282828154811061145f57fe5b90600052602060002090600202016001015410156115f557600082828154811061148557fe5b906000526020600020906002020160000154905060055481111580156114e957506000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111155b61153e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806127f96025913960400191505060405180910390fd5b6115538160055461206190919063ffffffff16565b600581905550611564303383611db4565b60008290505b60018480549050038110156115d45783600182018154811061158857fe5b90600052602060002090600202018482815481106115a257fe5b90600052602060002090600202016000820154816000015560018201548160010155905050808060010191505061156a565b50828054809190600190036115e9919061272d565b50818060019003925050505b8080600101915050611446565b5050565b6000611613338484611db4565b6001905092915050565b60006116288261255d565b9050919050565b600061163b8585610b45565b6116ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45524332303a20417070726f766520756e73756363657366756c6c000000000081525060200191505060405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16638f4ffcb133863087876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561179c57600080fd5b505af11580156117b0573d6000803e3d6000fd5b5050505060019050949350505050565b6117c86111aa565b61183a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6118458383836125a9565b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118ff6111aa565b611971576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006119c03361255d565b905090565b6000806119d28484611bd4565b915091509250929050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128826024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ae9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806127d76022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000806000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011611c8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f53686f774c6f636b3a204e6f206c6f636b73210000000000000000000000000081525060200191505060405180910390fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508310611d29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806127b26025913960400191505060405180910390fd5b6000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050808481548110611d7857fe5b906000526020600020906002020160000154818581548110611d9657fe5b90600052602060002090600202016001015492509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061278f6023913960400191505060405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611ed1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061281e6021913960400191505060405180910390fd5b611f22816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fb5816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ea90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000828211156120d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080828401905083811015612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806128616021913960400191505060405180910390fd5b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4275726e3a206e6f7420656e6f75676820746f6b656e7300000000000000000081525060200191505060405180910390fd5b6122c18160025461206190919063ffffffff16565b600281905550612318816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4275726e3a20616c6c6f77616e636520746f6f206c6f7700000000000000000081525060200191505060405180910390fd5b6124c08282612172565b612559823361255484600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206190919063ffffffff16565b6119dd565b5050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60008060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506126016005548261206190919063ffffffff16565b831115612676576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4c6f636b3a204e6f7420656e6f75676820746f6b656e7300000000000000000081525060200191505060405180910390fd5b61268b836005546120ea90919063ffffffff16565b600581905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180604001604052808581526020018681525090806001815401808255809150509060018203906000526020600020906002020160009091929091909150600082015181600001556020820151816001015550505050505050565b81548183558181111561275a57600202816002028360005260206000209182019101612759919061275f565b5b505050565b61278b91905b8082111561278757600080820160009055600182016000905550600201612765565b5090565b9056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737353686f774c6f636b3a20496e646578206f766572206e756d626572206f66206c6f636b732e45524332303a20617070726f766520746f20746865207a65726f2061646472657373556e6c6f636b3a204e6f7420656e6f75676820636f696e73206f6e20636f6e7472616374214552433230207472616e736665723a206e6f7420656e6f75676820746f6b656e734f776e61626c653a206f6e6c79206e6577204f776e65722063616e2061636365707445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820de6e4dbb2f3d53693e4c4aa7917ff95e64aba8eeea466344150679a3ca51b75d0029
Deployed Bytecode Sourcemap
427:1745:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;427:1745:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;530:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;530:18:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2603:133:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2603:133:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;897:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2869:119:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2869:119:5;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3175:209:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3175:209:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;576:21:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3868:190:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3868:190:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1921:246:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1921:246:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1921:246:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1921:246:6;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1921:246:6;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;287:72:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;287:72:0;;;;;;;;;;;;;;;;;:::i;:::-;;1178:99:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1178:99:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1040:125:3;;;:::i;:::-;;1425:207;;;:::i;:::-;;592:88:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;592:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;122:25:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;239:20:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;625:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;552:20:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;552:20:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4547:200:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4547:200:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1224:781:5;;;:::i;:::-;;1867:127:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1867:127:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2460:97:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2460:97:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1270:329:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1270:329:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1270:329:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1270:329:6;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1270:329:6;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;593:133:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;593:133:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;263:23:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1590:124:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1590:124:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1325:95:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1325:95:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;2221:94:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3218:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3218:124:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;530:18:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2603:133:1:-;2668:4;2679:36;2688:10;2700:7;2709:5;2679:8;:36::i;:::-;2727:4;2720:11;;2603:133;;;;:::o;897:84::-;943:7;964:12;;957:19;;897:84;:::o;2869:119:5:-;2919:4;2925;2954:26;2964:10;2976:3;2954:9;:26::i;:::-;2947:33;;;;2869:119;;;:::o;3175:209:1:-;3256:4;3267:26;3277:4;3283:2;3287:5;3267:9;:26::i;:::-;3298:65;3307:4;3313:10;3325:37;3356:5;3325:8;:14;3334:4;3325:14;;;;;;;;;;;;;;;:26;3340:10;3325:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3298:8;:65::i;:::-;3375:4;3368:11;;3175:209;;;;;:::o;576:21:6:-;;;;;;;;;;;;;:::o;3868:190:1:-;3950:4;3961:76;3970:10;3982:7;3991:45;4025:10;3991:8;:20;4000:10;3991:20;;;;;;;;;;;;;;;:29;4012:7;3991:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3961:8;:76::i;:::-;4049:4;4042:11;;3868:190;;;;:::o;1921:246:6:-;2012:12;2040:34;2050:10;2062:3;2067:6;2040:9;:34::i;:::-;2097:3;2079:38;;;2118:10;2130:6;2138:5;;2079:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2079:65:6;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2079:65:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2079:65:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2079:65:6;;;;;;;;;;;;;;;;;2156:4;2149:11;;1921:246;;;;;;:::o;287:72:0:-;330:24;336:10;348:5;330;:24::i;:::-;287:72;:::o;1178:99:1:-;1235:7;1256:9;:16;1266:5;1256:16;;;;;;;;;;;;;;;;1249:23;;1178:99;;;:::o;1040:125:3:-;489:9;:7;:9::i;:::-;481:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1134:1;1098:39;;1119:5;;;;;;;;;;;1098:39;;;;;;;;;;;;1158:1;1142:5;;:18;;;;;;;;;;;;;;;;;;1040:125::o;1425:207::-;1484:10;1472:22;;:8;;;;;;;;;;;:22;;;1463:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1571:8;;;;;;;;;;;1543:37;;1564:5;;;;;;;;;;;1543:37;;;;;;;;;;;;1593:8;;;;;;;;;;;1585:5;;:16;;;;;;;;;;;;;;;;;;1625:1;1606:8;;:21;;;;;;;;;;;;;;;;;;1425:207::o;592:88:0:-;653:22;663:4;669:5;653:9;:22::i;:::-;592:88;;:::o;122:25:5:-;;;;:::o;239:20:3:-;;;;;;;;;;;;;:::o;625:82::-;665:4;697:5;;;;;;;;;;;683:19;;:10;:19;;;676:26;;625:82;:::o;552:20:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4547:200:1:-;4634:4;4645:81;4654:10;4666:7;4675:50;4709:15;4675:8;:20;4684:10;4675:20;;;;;;;;;;;;;;;:29;4696:7;4675:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4645:8;:81::i;:::-;4738:4;4731:11;;4547:200;;;;:::o;1224:781:5:-;1306:1;1275:9;:21;1285:10;1275:21;;;;;;;;;;;;;;;:28;;;;:32;1267:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1340:18;1361:9;:21;1371:10;1361:21;;;;;;;;;;;;;;;1340:42;;1398:6;1407:1;1398:10;;1393:605;1414:1;:8;;;;1410:1;:12;1393:605;;;1473:15;1457:1;1459;1457:4;;;;;;;;;;;;;;;;;;:13;;;:31;1453:534;;;1509:11;1523:1;1525;1523:4;;;;;;;;;;;;;;;;;;:11;;;1509:25;;1571:13;;1561:6;:23;;:61;;;;;1598:9;:24;1616:4;1598:24;;;;;;;;;;;;;;;;1588:6;:34;;1561:61;1553:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1699:25;1717:6;1699:13;;:17;;:25;;;;:::i;:::-;1683:13;:41;;;;1743:44;1761:4;1768:10;1780:6;1743:9;:44::i;:::-;1811:6;1820:1;1811:10;;1806:115;1838:1;1827;:8;;;;:12;1823:1;:16;1806:115;;;1893:1;1899;1895;:5;1893:8;;;;;;;;;;;;;;;;;;1886:1;1888;1886:4;;;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;;;;;;;;1841:3;;;;;;;1806:115;;;;1939:1;:10;;;;;;;;;;;;:::i;:::-;;1968:3;;;;;;;;1453:534;;1424:3;;;;;;;1393:605;;;;1224:781;:::o;1867:127:1:-;1930:4;1941:32;1951:10;1963:2;1967:5;1941:9;:32::i;:::-;1985:4;1978:11;;1867:127;;;;:::o;2460:97:5:-;2513:4;2537:12;2544:4;2537:6;:12::i;:::-;2530:19;;2460:97;;;:::o;1270:329:6:-;1374:12;1409:26;1417:8;1427:7;1409;:26::i;:::-;1401:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1496:8;1478:43;;;1522:10;1534:7;1551:4;1558:10;;1478:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1478:91:6;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1478:91:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1478:91:6;;;;1587:4;1580:11;;1270:329;;;;;;:::o;593:133:5:-;489:9:3;:7;:9::i;:::-;481:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;684:34:5;690:13;705:6;713:4;684:5;:34::i;:::-;593:133;;;:::o;263:23:3:-;;;;;;;;;;;;;:::o;1590:124:1:-;1664:7;1685:8;:15;1694:5;1685:15;;;;;;;;;;;;;;;:24;1701:7;1685:24;;;;;;;;;;;;;;;;1678:31;;1590:124;;;;:::o;1325:95:3:-;489:9;:7;:9::i;:::-;481:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1406:9;1395:8;;:20;;;;;;;;;;;;;;;;;;1325:95;:::o;2221:94:5:-;2260:4;2289:18;2296:10;2289:6;:18::i;:::-;2282:25;;2221:94;:::o;3218:124::-;3284:4;3290;3314:20;3324:4;3330:3;3314:9;:20::i;:::-;3307:27;;;;3218:124;;;;;:::o;6699:303:1:-;6803:1;6786:19;;:5;:19;;;;6778:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6878:1;6859:21;;:7;:21;;;;6851:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6951:5;6924:8;:15;6933:5;6924:15;;;;;;;;;;;;;;;:24;6940:7;6924:24;;;;;;;;;;;;;;;:32;;;;6982:7;6966:31;;6975:5;6966:31;;;6991:5;6966:31;;;;;;;;;;;;;;;;;;6699:303;;;:::o;3350:340:5:-;3415:4;3421;3471:1;3446:9;:15;3456:4;3446:15;;;;;;;;;;;;;;;:22;;;;:26;3438:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3521:9;:15;3531:4;3521:15;;;;;;;;;;;;;;;:22;;;;3515:3;:28;3507:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3596:18;3617:9;:15;3627:4;3617:15;;;;;;;;;;;;;;;3596:36;;3651:1;3653:3;3651:6;;;;;;;;;;;;;;;;;;:13;;;3666:1;3668:3;3666:6;;;;;;;;;;;;;;;;;;:15;;;3643:39;;;;;3350:340;;;;;:::o;4949:351:1:-;5045:1;5031:16;;:2;:16;;;;5023:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5123:5;5106:9;:15;5116:4;5106:15;;;;;;;;;;;;;;;;:22;;5098:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5189:26;5209:5;5189:9;:15;5199:4;5189:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;5171:9;:15;5181:4;5171:15;;;;;;;;;;;;;;;:44;;;;5236:24;5254:5;5236:9;:13;5246:2;5236:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5220:9;:13;5230:2;5220:13;;;;;;;;;;;;;;;:40;;;;5285:2;5270:25;;5279:4;5270:25;;;5289:5;5270:25;;;;;;;;;;;;;;;;;;4949:351;;;:::o;1180:163:4:-;1238:7;1265:1;1260;:6;;1252:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1306:9;1322:1;1318;:5;1306:17;;1337:1;1330:8;;;1180:163;;;;:::o;1417:160::-;1475:7;1489:9;1505:1;1501;:5;1489:17;;1524:1;1519;:6;;1511:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1571:1;1564:8;;;1417:160;;;;:::o;6107:345:1:-;6195:1;6176:21;;:7;:21;;;;6168:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6270:5;6248:9;:18;6258:7;6248:18;;;;;;;;;;;;;;;;:27;;6240:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6323:23;6340:5;6323:12;;:16;;:23;;;;:::i;:::-;6308:12;:38;;;;6372:29;6395:5;6372:9;:18;6382:7;6372:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;6351:9;:18;6361:7;6351:18;;;;;;;;;;;;;;;:50;;;;6437:1;6411:36;;6420:7;6411:36;;;6441:5;6411:36;;;;;;;;;;;;;;;;;;6107:345;;:::o;7367:244::-;7471:5;7440:8;:17;7449:7;7440:17;;;;;;;;;;;;;;;:29;7458:10;7440:29;;;;;;;;;;;;;;;;:36;;7432:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7509:21;7515:7;7524:5;7509;:21::i;:::-;7535:71;7544:7;7553:10;7565:40;7599:5;7565:8;:17;7574:7;7565:17;;;;;;;;;;;;;;;:29;7583:10;7565:29;;;;;;;;;;;;;;;;:33;;:40;;;;:::i;:::-;7535:8;:71::i;:::-;7367:244;;:::o;2565:105:5:-;2617:4;2640:9;:15;2650:4;2640:15;;;;;;;;;;;;;;;:22;;;;2633:29;;2565:105;;;:::o;731:325::-;812:12;827:9;:24;845:4;827:24;;;;;;;;;;;;;;;;812:39;;880:26;892:13;;880:7;:11;;:26;;;;:::i;:::-;870:6;:36;;862:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;961:25;979:6;961:13;;:17;;:25;;;;:::i;:::-;945:13;:41;;;;997:9;:15;1007:4;997:15;;;;;;;;;;;;;;;1018:29;;;;;;;;1025:6;1018:29;;;;1033:13;1018:29;;;997:51;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;997:51:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;731:325;;;;:::o;427:1745:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://de6e4dbb2f3d53693e4c4aa7917ff95e64aba8eeea466344150679a3ca51b75d
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.