ERC-20
NFT
Overview
Max Total Supply
500,000,000 ORT
Holders
1,248 (0.00%)
Market
Price
$0.00 @ 0.000000 ETH (+5.36%)
Onchain Market Cap
$729,210.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
100 ORTValue
$0.15 ( ~4.14239955699548E-05 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|---|---|---|---|---|
1 | Gate.io | ORT-USDT | $0.0015 0.0000004 Eth | $162.60 111,829.200 ORT | 100.0000% |
Contract Name:
ORT
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-05-10 */ pragma solidity ^0.5.0; 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); 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); 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); 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); 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); return a % b; } } library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev give an account access to this role */ function add(Role storage role, address account) internal { require(account != address(0)); require(!has(role, account)); role.bearer[account] = true; } /** * @dev remove an account's access to this role */ function remove(Role storage role, address account) internal { require(account != address(0)); require(has(role, account)); role.bearer[account] = false; } /** * @dev check if an account has this role * @return bool */ function has(Role storage role, address account) internal view returns (bool) { require(account != address(0)); return role.bearer[account]; } } contract Ownable { address public owner; address public newOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() public { owner = msg.sender; newOwner = address(0); } modifier onlyOwner() { require(msg.sender == owner); _; } modifier onlyNewOwner() { require(msg.sender != address(0)); require(msg.sender == newOwner); _; } function isOwner(address account) public view returns (bool) { if( account == owner ){ return true; } else { return false; } } function transferOwnership(address _newOwner) public onlyOwner { require(_newOwner != address(0)); newOwner = _newOwner; } function acceptOwnership() public onlyNewOwner returns(bool) { emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } } contract PauserRole is Ownable { using Roles for Roles.Role; event PauserAdded(address indexed account); event PauserRemoved(address indexed account); Roles.Role private _pausers; constructor () internal { _addPauser(msg.sender); } modifier onlyPauser() { require(isPauser(msg.sender)|| isOwner(msg.sender)); _; } function isPauser(address account) public view returns (bool) { return _pausers.has(account); } function addPauser(address account) public onlyPauser { _addPauser(account); } function removePauser(address account) public onlyOwner { _removePauser(account); } function renouncePauser() public { _removePauser(msg.sender); } function _addPauser(address account) internal { _pausers.add(account); emit PauserAdded(account); } function _removePauser(address account) internal { _pausers.remove(account); emit PauserRemoved(account); } } 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); } contract ERC20 is IERC20 { using SafeMath for uint256; mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) internal _allowed; uint256 private _totalSupply; /** * @dev Total number of tokens in existence */ function totalSupply() public view returns (uint256) { return _totalSupply; } /** * @dev Gets the balance of the specified address. * @param owner The address to query the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address owner) public 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) public view returns (uint256) { return _allowed[owner][spender]; } /** * @dev Transfer token for a specified address * @param to The address to transfer to. * @param value The amount to be transferred. */ function transfer(address to, uint256 value) public 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) { require(spender != address(0)); _allowed[msg.sender][spender] = value; emit Approval(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) public returns (bool) { _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value); _transfer(from, to, value); emit Approval(from, msg.sender, _allowed[from][msg.sender]); return true; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when allowed_[_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) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue); emit Approval(msg.sender, spender, _allowed[msg.sender][spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when allowed_[_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) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue); emit Approval(msg.sender, spender, _allowed[msg.sender][spender]); 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)); _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)); _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); emit Transfer(address(0), account, value); } } contract ERC20Detailed is ERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } /** * @return the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @return the symbol of the token. */ function symbol() public view returns (string memory) { return _symbol; } /** * @return the number of decimals of the token. */ function decimals() public view returns (uint8) { return _decimals; } } contract ORT is ERC20Detailed, PauserRole { struct LockInfo { uint256 _releaseTime; uint256 _amount; } mapping (address => LockInfo[]) public timelockList; event Lock(address indexed holder, uint256 value, uint256 releaseTime); event Unlock(address indexed holder, uint256 value); constructor() ERC20Detailed("XREATORS", "ORT", 18) public { _mint(msg.sender, 500000000 * (10 ** 18)); } function balanceOf(address owner) public view returns (uint256) { uint256 totalBalance = super.balanceOf(owner); if( timelockList[owner].length >0 ){ for(uint i=0; i<timelockList[owner].length;i++){ totalBalance = totalBalance.add(timelockList[owner][i]._amount); } } return totalBalance; } function transfer(address to, uint256 value) public returns (bool) { if (timelockList[msg.sender].length > 0 ) { _autoUnlock(msg.sender); } return super.transfer(to, value); } function transferFrom(address from, address to, uint256 value) public returns (bool) { if (timelockList[from].length > 0) { _autoUnlock(from); } return super.transferFrom(from, to, value); } function transferWithLock(address holder, uint256 value, uint256 releaseTime) public onlyPauser returns (bool) { _transfer(msg.sender, holder, value); _lock(holder,value,releaseTime); return true; } function unlock(address holder, uint256 idx) public onlyPauser returns (bool) { require( timelockList[holder].length > idx, "There is not lock info."); _unlock(holder,idx); return true; } function _lock(address holder, uint256 value, uint256 releaseTime) internal returns(bool) { _balances[holder] = _balances[holder].sub(value); timelockList[holder].push( LockInfo(releaseTime, value) ); emit Lock(holder, value, releaseTime); return true; } function _unlock(address holder, uint256 idx) internal returns(bool) { LockInfo storage lockinfo = timelockList[holder][idx]; uint256 releaseAmount = lockinfo._amount; delete timelockList[holder][idx]; timelockList[holder][idx] = timelockList[holder][timelockList[holder].length.sub(1)]; timelockList[holder].length -=1; emit Unlock(holder, releaseAmount); _balances[holder] = _balances[holder].add(releaseAmount); return true; } function _autoUnlock(address holder) internal returns(bool) { for(uint256 idx =0; idx < timelockList[holder].length ; idx++ ) { if (timelockList[holder][idx]._releaseTime <= now) { // If lockupinfo was deleted, loop restart at same position. if( _unlock(holder, idx) ) { idx -=1; } } } return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Unlock","type":"event"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isPauser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"timelockList","outputs":[{"internalType":"uint256","name":"_releaseTime","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"transferWithLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"unlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600881526020016758524541544f525360c01b8152506040518060400160405280600381526020016213d49560ea1b8152506012826003908051906020019062000069929190620002ac565b5081516200007f906004906020850190620002ac565b5060058054336101008102610100600160a81b031960ff90951660ff199093169290921793909316179055600680546001600160a01b0319169055620000d1925090506001600160e01b03620000f816565b620000f2336b019d971e4fe8401e740000006001600160e01b036200014a16565b62000351565b620001138160076200020360201b6200118c1790919060201c565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6001600160a01b0382166200015e57600080fd5b6200017a816002546200025c60201b62000cdd1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620001ad91839062000cdd6200025c821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0381166200021757600080fd5b6200022c82826001600160e01b036200027616565b156200023757600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000828201838110156200026f57600080fd5b9392505050565b60006001600160a01b0382166200028c57600080fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002ef57805160ff19168380011785556200031f565b828001600101855582156200031f579182015b828111156200031f57825182559160200191906001019062000302565b506200032d92915062000331565b5090565b6200034e91905b808211156200032d576000815560010162000338565b90565b61126280620003616000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806379ba5097116100c3578063a9059cbb1161007c578063a9059cbb146103fd578063d26c4a7614610429578063d4ee1d901461046e578063dd62ed3e14610476578063de6baccb146104a4578063f2fde38b146104d65761014d565b806379ba50971461034b5780637eee288d1461035357806382dc1ec41461037f5780638da5cb5b146103a557806395d89b41146103c9578063a457c2d7146103d15761014d565b8063313ce56711610115578063313ce5671461028557806339509351146102a357806346fbf68e146102cf5780636b2c0f55146102f55780636ef8d66d1461031d57806370a08231146103255761014d565b806306fdde0314610152578063095ea7b3146101cf57806318160ddd1461020f57806323b872dd146102295780632f54bf6e1461025f575b600080fd5b61015a6104fc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb600480360360408110156101e557600080fd5b506001600160a01b038135169060200135610593565b604080519115158252519081900360200190f35b61021761060f565b60408051918252519081900360200190f35b6101fb6004803603606081101561023f57600080fd5b506001600160a01b03813581169160208101359091169060400135610615565b6101fb6004803603602081101561027557600080fd5b50356001600160a01b0316610651565b61028d610680565b6040805160ff9092168252519081900360200190f35b6101fb600480360360408110156102b957600080fd5b506001600160a01b038135169060200135610689565b6101fb600480360360208110156102e557600080fd5b50356001600160a01b0316610737565b61031b6004803603602081101561030b57600080fd5b50356001600160a01b0316610750565b005b61031b610778565b6102176004803603602081101561033b57600080fd5b50356001600160a01b0316610783565b6101fb61082e565b6101fb6004803603604081101561036957600080fd5b506001600160a01b0381351690602001356108c9565b61031b6004803603602081101561039557600080fd5b50356001600160a01b031661096c565b6103ad610996565b604080516001600160a01b039092168252519081900360200190f35b61015a6109aa565b6101fb600480360360408110156103e757600080fd5b506001600160a01b038135169060200135610a0b565b6101fb6004803603604081101561041357600080fd5b506001600160a01b038135169060200135610a54565b6104556004803603604081101561043f57600080fd5b506001600160a01b038135169060200135610a85565b6040805192835260208301919091528051918290030190f35b6103ad610abe565b6102176004803603604081101561048c57600080fd5b506001600160a01b0381358116916020013516610acd565b6101fb600480360360608110156104ba57600080fd5b506001600160a01b038135169060208101359060400135610af8565b61031b600480360360208110156104ec57600080fd5b50356001600160a01b0316610b3c565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105885780601f1061055d57610100808354040283529160200191610588565b820191906000526020600020905b81548152906001019060200180831161056b57829003601f168201915b505050505090505b90565b60006001600160a01b0383166105a857600080fd5b3360008181526001602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b6001600160a01b0383166000908152600860205260408120541561063e5761063c84610b8d565b505b610649848484610c14565b949350505050565b6005546000906001600160a01b038381166101009092041614156106775750600161067b565b5060005b919050565b60055460ff1690565b60006001600160a01b03831661069e57600080fd5b3360009081526001602090815260408083206001600160a01b03871684529091529020546106d2908363ffffffff610cdd16565b3360008181526001602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600061074a60078363ffffffff610cef16565b92915050565b60055461010090046001600160a01b0316331461076c57600080fd5b61077581610d24565b50565b61078133610d24565b565b60008061078f83610d6c565b6001600160a01b0384166000908152600860205260409020549091501561074a5760005b6001600160a01b038416600090815260086020526040902054811015610827576001600160a01b0384166000908152600860205260409020805461081d9190839081106107fc57fe5b90600052602060002090600202016001015483610cdd90919063ffffffff16565b91506001016107b3565b5092915050565b60003361083a57600080fd5b6006546001600160a01b0316331461085157600080fd5b6006546005546040516001600160a01b0392831692610100909204909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805460058054610100600160a81b0319166101006001600160a01b038416021790556001600160a01b031916905590565b60006108d433610737565b806108e357506108e333610651565b6108ec57600080fd5b6001600160a01b0383166000908152600860205260409020548210610958576040805162461bcd60e51b815260206004820152601760248201527f5468657265206973206e6f74206c6f636b20696e666f2e000000000000000000604482015290519081900360640190fd5b6109628383610d87565b5060019392505050565b61097533610737565b80610984575061098433610651565b61098d57600080fd5b61077581610f50565b60055461010090046001600160a01b031681565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105885780601f1061055d57610100808354040283529160200191610588565b60006001600160a01b038316610a2057600080fd5b3360009081526001602090815260408083206001600160a01b03871684529091529020546106d2908363ffffffff610f9816565b3360009081526008602052604081205415610a7457610a7233610b8d565b505b610a7e8383610fad565b9392505050565b60086020528160005260406000208181548110610a9e57fe5b600091825260209091206002909102018054600190910154909250905082565b6006546001600160a01b031681565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610b0333610737565b80610b125750610b1233610651565b610b1b57600080fd5b610b26338585610fb6565b610b31848484611081565b506001949350505050565b60055461010090046001600160a01b03163314610b5857600080fd5b6001600160a01b038116610b6b57600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b6001600160a01b038316600090815260086020526040902054811015610c0b576001600160a01b0383166000908152600860205260409020805442919083908110610bd857fe5b90600052602060002090600202016000015411610c0357610bf98382610d87565b15610c0357600019015b600101610b91565b50600192915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054610c48908363ffffffff610f9816565b6001600160a01b0385166000908152600160209081526040808320338452909152902055610c77848484610fb6565b6001600160a01b0384166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600082820183811015610a7e57600080fd5b60006001600160a01b038216610d0457600080fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610d3560078263ffffffff61114416565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b0382166000908152600860205260408120805482919084908110610dae57fe5b600091825260208083206001600290930201918201546001600160a01b03881684526008909152604090922080549193509085908110610dea57fe5b60009182526020808320600290920290910182815560019081018390556001600160a01b03881683526008909152604090912080549091610e31919063ffffffff610f9816565b81548110610e3b57fe5b906000526020600020906002020160086000876001600160a01b03166001600160a01b031681526020019081526020016000208581548110610e7957fe5b60009182526020808320845460029093020191825560019384015493909101929092556001600160a01b038716815260089091526040902080546000190190610ec290826111d8565b506040805182815290516001600160a01b038716917f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1919081900360200190a26001600160a01b038516600090815260208190526040902054610f2b908263ffffffff610cdd16565b6001600160a01b03861660009081526020819052604090205550600191505092915050565b610f6160078263ffffffff61118c16565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600082821115610fa757600080fd5b50900390565b6000610c0b3384845b6001600160a01b038216610fc957600080fd5b6001600160a01b038316600090815260208190526040902054610ff2908263ffffffff610f9816565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611027908263ffffffff610cdd16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b0383166000908152602081905260408120546110aa908463ffffffff610f9816565b6001600160a01b0385166000818152602081815260408083209490945560088152838220845180860186528781528083018981528254600181810185559386529484902091516002909502909101938455519201919091558251868152908101859052825191927f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b92918290030190a25060019392505050565b6001600160a01b03811661115757600080fd5b6111618282610cef565b61116a57600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b03811661119f57600080fd5b6111a98282610cef565b156111b357600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b815481835581811115611204576002028160020283600052602060002091820191016112049190611209565b505050565b61059091905b80821115611229576000808255600182015560020161120f565b509056fea265627a7a72315820cf58c5ddfa859553fee4ba262e6331c70853d3fb9b0d72e9a5af12f1b849ef6664736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806379ba5097116100c3578063a9059cbb1161007c578063a9059cbb146103fd578063d26c4a7614610429578063d4ee1d901461046e578063dd62ed3e14610476578063de6baccb146104a4578063f2fde38b146104d65761014d565b806379ba50971461034b5780637eee288d1461035357806382dc1ec41461037f5780638da5cb5b146103a557806395d89b41146103c9578063a457c2d7146103d15761014d565b8063313ce56711610115578063313ce5671461028557806339509351146102a357806346fbf68e146102cf5780636b2c0f55146102f55780636ef8d66d1461031d57806370a08231146103255761014d565b806306fdde0314610152578063095ea7b3146101cf57806318160ddd1461020f57806323b872dd146102295780632f54bf6e1461025f575b600080fd5b61015a6104fc565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb600480360360408110156101e557600080fd5b506001600160a01b038135169060200135610593565b604080519115158252519081900360200190f35b61021761060f565b60408051918252519081900360200190f35b6101fb6004803603606081101561023f57600080fd5b506001600160a01b03813581169160208101359091169060400135610615565b6101fb6004803603602081101561027557600080fd5b50356001600160a01b0316610651565b61028d610680565b6040805160ff9092168252519081900360200190f35b6101fb600480360360408110156102b957600080fd5b506001600160a01b038135169060200135610689565b6101fb600480360360208110156102e557600080fd5b50356001600160a01b0316610737565b61031b6004803603602081101561030b57600080fd5b50356001600160a01b0316610750565b005b61031b610778565b6102176004803603602081101561033b57600080fd5b50356001600160a01b0316610783565b6101fb61082e565b6101fb6004803603604081101561036957600080fd5b506001600160a01b0381351690602001356108c9565b61031b6004803603602081101561039557600080fd5b50356001600160a01b031661096c565b6103ad610996565b604080516001600160a01b039092168252519081900360200190f35b61015a6109aa565b6101fb600480360360408110156103e757600080fd5b506001600160a01b038135169060200135610a0b565b6101fb6004803603604081101561041357600080fd5b506001600160a01b038135169060200135610a54565b6104556004803603604081101561043f57600080fd5b506001600160a01b038135169060200135610a85565b6040805192835260208301919091528051918290030190f35b6103ad610abe565b6102176004803603604081101561048c57600080fd5b506001600160a01b0381358116916020013516610acd565b6101fb600480360360608110156104ba57600080fd5b506001600160a01b038135169060208101359060400135610af8565b61031b600480360360208110156104ec57600080fd5b50356001600160a01b0316610b3c565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105885780601f1061055d57610100808354040283529160200191610588565b820191906000526020600020905b81548152906001019060200180831161056b57829003601f168201915b505050505090505b90565b60006001600160a01b0383166105a857600080fd5b3360008181526001602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b6001600160a01b0383166000908152600860205260408120541561063e5761063c84610b8d565b505b610649848484610c14565b949350505050565b6005546000906001600160a01b038381166101009092041614156106775750600161067b565b5060005b919050565b60055460ff1690565b60006001600160a01b03831661069e57600080fd5b3360009081526001602090815260408083206001600160a01b03871684529091529020546106d2908363ffffffff610cdd16565b3360008181526001602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600061074a60078363ffffffff610cef16565b92915050565b60055461010090046001600160a01b0316331461076c57600080fd5b61077581610d24565b50565b61078133610d24565b565b60008061078f83610d6c565b6001600160a01b0384166000908152600860205260409020549091501561074a5760005b6001600160a01b038416600090815260086020526040902054811015610827576001600160a01b0384166000908152600860205260409020805461081d9190839081106107fc57fe5b90600052602060002090600202016001015483610cdd90919063ffffffff16565b91506001016107b3565b5092915050565b60003361083a57600080fd5b6006546001600160a01b0316331461085157600080fd5b6006546005546040516001600160a01b0392831692610100909204909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805460058054610100600160a81b0319166101006001600160a01b038416021790556001600160a01b031916905590565b60006108d433610737565b806108e357506108e333610651565b6108ec57600080fd5b6001600160a01b0383166000908152600860205260409020548210610958576040805162461bcd60e51b815260206004820152601760248201527f5468657265206973206e6f74206c6f636b20696e666f2e000000000000000000604482015290519081900360640190fd5b6109628383610d87565b5060019392505050565b61097533610737565b80610984575061098433610651565b61098d57600080fd5b61077581610f50565b60055461010090046001600160a01b031681565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105885780601f1061055d57610100808354040283529160200191610588565b60006001600160a01b038316610a2057600080fd5b3360009081526001602090815260408083206001600160a01b03871684529091529020546106d2908363ffffffff610f9816565b3360009081526008602052604081205415610a7457610a7233610b8d565b505b610a7e8383610fad565b9392505050565b60086020528160005260406000208181548110610a9e57fe5b600091825260209091206002909102018054600190910154909250905082565b6006546001600160a01b031681565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610b0333610737565b80610b125750610b1233610651565b610b1b57600080fd5b610b26338585610fb6565b610b31848484611081565b506001949350505050565b60055461010090046001600160a01b03163314610b5857600080fd5b6001600160a01b038116610b6b57600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b6001600160a01b038316600090815260086020526040902054811015610c0b576001600160a01b0383166000908152600860205260409020805442919083908110610bd857fe5b90600052602060002090600202016000015411610c0357610bf98382610d87565b15610c0357600019015b600101610b91565b50600192915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054610c48908363ffffffff610f9816565b6001600160a01b0385166000908152600160209081526040808320338452909152902055610c77848484610fb6565b6001600160a01b0384166000818152600160209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600082820183811015610a7e57600080fd5b60006001600160a01b038216610d0457600080fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610d3560078263ffffffff61114416565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b0382166000908152600860205260408120805482919084908110610dae57fe5b600091825260208083206001600290930201918201546001600160a01b03881684526008909152604090922080549193509085908110610dea57fe5b60009182526020808320600290920290910182815560019081018390556001600160a01b03881683526008909152604090912080549091610e31919063ffffffff610f9816565b81548110610e3b57fe5b906000526020600020906002020160086000876001600160a01b03166001600160a01b031681526020019081526020016000208581548110610e7957fe5b60009182526020808320845460029093020191825560019384015493909101929092556001600160a01b038716815260089091526040902080546000190190610ec290826111d8565b506040805182815290516001600160a01b038716917f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1919081900360200190a26001600160a01b038516600090815260208190526040902054610f2b908263ffffffff610cdd16565b6001600160a01b03861660009081526020819052604090205550600191505092915050565b610f6160078263ffffffff61118c16565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b600082821115610fa757600080fd5b50900390565b6000610c0b3384845b6001600160a01b038216610fc957600080fd5b6001600160a01b038316600090815260208190526040902054610ff2908263ffffffff610f9816565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611027908263ffffffff610cdd16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b0383166000908152602081905260408120546110aa908463ffffffff610f9816565b6001600160a01b0385166000818152602081815260408083209490945560088152838220845180860186528781528083018981528254600181810185559386529484902091516002909502909101938455519201919091558251868152908101859052825191927f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b92918290030190a25060019392505050565b6001600160a01b03811661115757600080fd5b6111618282610cef565b61116a57600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b03811661119f57600080fd5b6111a98282610cef565b156111b357600080fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b815481835581811115611204576002028160020283600052602060002091820191016112049190611209565b505050565b61059091905b80821115611229576000808255600182015560020161120f565b509056fea265627a7a72315820cf58c5ddfa859553fee4ba262e6331c70853d3fb9b0d72e9a5af12f1b849ef6664736f6c63430005110032
Deployed Bytecode Sourcemap
12199:3042:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12199:3042:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11793:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11793:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7615:244;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7615:244:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5774:91;;;:::i;:::-;;;;;;;;;;;;;;;;13275:235;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13275:235:0;;;;;;;;;;;;;;;;;:::i;3193:193::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3193:193:0;-1:-1:-1;;;;;3193:193:0;;:::i;12109:83::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9146:323;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9146:323:0;;;;;;;;:::i;4131:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4131:109:0;-1:-1:-1;;;;;4131:109:0;;:::i;4348:97::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4348:97:0;-1:-1:-1;;;;;4348:97:0;;:::i;:::-;;4453:77;;;:::i;12663:376::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12663:376:0;-1:-1:-1;;;;;12663:376:0;;:::i;3547:181::-;;;:::i;13756:219::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13756:219:0;;;;;;;;:::i;4248:92::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4248:92:0;-1:-1:-1;;;;;4248:92:0;;:::i;2718:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;2718:20:0;;;;;;;;;;;;;;11943:87;;;:::i;9989:333::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9989:333:0;;;;;;;;:::i;13047:220::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13047:220:0;;;;;;;;:::i;12339:51::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12339:51:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2745:23;;;:::i;6526:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6526:131:0;;;;;;;;;;:::i;13518:230::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13518:230:0;;;;;;;;;;;;;:::i;3394:145::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3394:145:0;-1:-1:-1;;;;;3394:145:0;;:::i;11793:83::-;11863:5;11856:12;;;;;;;;-1:-1:-1;;11856:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11830:13;;11856:12;;11863:5;;11856:12;;11863:5;11856:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11793:83;;:::o;7615:244::-;7680:4;-1:-1:-1;;;;;7705:21:0;;7697:30;;;;;;7749:10;7740:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;7740:29:0;;;;;;;;;;;;:37;;;7793:36;;;;;;;7740:29;;7749:10;7793:36;;;;;;;;;;;-1:-1:-1;7847:4:0;7615:244;;;;:::o;5774:91::-;5845:12;;5774:91;:::o;13275:235::-;-1:-1:-1;;;;;13375:18:0;;13354:4;13375:18;;;:12;:18;;;;;:25;:29;13371:79;;13421:17;13433:4;13421:11;:17::i;:::-;;13371:79;13467:35;13486:4;13492:2;13496:5;13467:18;:35::i;:::-;13460:42;13275:235;-1:-1:-1;;;;13275:235:0:o;3193:193::-;3280:5;;3248:4;;-1:-1:-1;;;;;3269:16:0;;;3280:5;;;;;3269:16;3265:114;;;-1:-1:-1;3309:4:0;3302:11;;3265:114;-1:-1:-1;3362:5:0;3265:114;3193:193;;;:::o;12109:83::-;12175:9;;;;12109:83;:::o;9146:323::-;9226:4;-1:-1:-1;;;;;9251:21:0;;9243:30;;;;;;9327:10;9318:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;9318:29:0;;;;;;;;;;:45;;9352:10;9318:45;:33;:45;:::i;:::-;9295:10;9286:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;9286:29:0;;;;;;;;;;;;:77;;;9379:60;;;;;;9286:29;;9379:60;;;;;;;;;;;-1:-1:-1;9457:4:0;9146:323;;;;:::o;4131:109::-;4187:4;4211:21;:8;4224:7;4211:21;:12;:21;:::i;:::-;4204:28;4131:109;-1:-1:-1;;4131:109:0:o;4348:97::-;3021:5;;;;;-1:-1:-1;;;;;3021:5:0;3007:10;:19;2999:28;;;;;;4415:22;4429:7;4415:13;:22::i;:::-;4348:97;:::o;4453:77::-;4497:25;4511:10;4497:13;:25::i;:::-;4453:77::o;12663:376::-;12718:7;12738:20;12761:22;12777:5;12761:15;:22::i;:::-;-1:-1:-1;;;;;12798:19:0;;12826:1;12798:19;;;:12;:19;;;;;:26;12738:45;;-1:-1:-1;12798:29:0;12794:206;;12848:6;12844:145;-1:-1:-1;;;;;12860:19:0;;;;;;:12;:19;;;;;:26;12858:28;;12844:145;;;-1:-1:-1;;;;;12942:19:0;;;;;;:12;:19;;;;;:22;;12925:48;;12942:19;12962:1;;12942:22;;;;;;;;;;;;;;;;:30;;;12925:12;:16;;:48;;;;:::i;:::-;12910:63;-1:-1:-1;12887:3:0;;12844:145;;;;13019:12;12663:376;-1:-1:-1;;12663:376:0:o;3547:181::-;3602:4;3098:10;3090:33;;;;;;3156:8;;-1:-1:-1;;;;;3156:8:0;3142:10;:22;3134:31;;;;;;3652:8;;3645:5;;3624:37;;-1:-1:-1;;;;;3652:8:0;;;;;3645:5;;;;;;;3624:37;;3652:8;;3624:37;3680:8;;;3672:5;:16;;-1:-1:-1;;;;;;3672:16:0;3680:8;-1:-1:-1;;;;;3680:8:0;;3672:16;;;;-1:-1:-1;;;;;;3699:21:0;;;3547:181;:::o;13756:219::-;13828:4;4060:20;4069:10;4060:8;:20::i;:::-;:42;;;;4083:19;4091:10;4083:7;:19::i;:::-;4052:51;;;;;;-1:-1:-1;;;;;13854:20:0;;;;;;:12;:20;;;;;:27;:33;-1:-1:-1;13845:70:0;;;;;-1:-1:-1;;;13845:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13926:19;13934:6;13941:3;13926:7;:19::i;:::-;-1:-1:-1;13963:4:0;;13756:219;-1:-1:-1;;;13756:219:0:o;4248:92::-;4060:20;4069:10;4060:8;:20::i;:::-;:42;;;;4083:19;4091:10;4083:7;:19::i;:::-;4052:51;;;;;;4313:19;4324:7;4313:10;:19::i;2718:20::-;;;;;;-1:-1:-1;;;;;2718:20:0;;:::o;11943:87::-;12015:7;12008:14;;;;;;;;-1:-1:-1;;12008:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11982:13;;12008:14;;12015:7;;12008:14;;12015:7;12008:14;;;;;;;;;;;;;;;;;;;;;;;;9989:333;10074:4;-1:-1:-1;;;;;10099:21:0;;10091:30;;;;;;10175:10;10166:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;10166:29:0;;;;;;;;;;:50;;10200:15;10166:50;:33;:50;:::i;13047:220::-;13142:10;13108:4;13129:24;;;:12;:24;;;;;:31;:35;13125:92;;13182:23;13194:10;13182:11;:23::i;:::-;;13125:92;13234:25;13249:2;13253:5;13234:14;:25::i;:::-;13227:32;13047:220;-1:-1:-1;;;13047:220:0:o;12339:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12339:51:0;-1:-1:-1;12339:51:0;:::o;2745:23::-;;;-1:-1:-1;;;;;2745:23:0;;:::o;6526:131::-;-1:-1:-1;;;;;6625:15:0;;;6598:7;6625:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;6526:131::o;13518:230::-;13623:4;4060:20;4069:10;4060:8;:20::i;:::-;:42;;;;4083:19;4091:10;4083:7;:19::i;:::-;4052:51;;;;;;13640:36;13650:10;13662:6;13670:5;13640:9;:36::i;:::-;13687:31;13693:6;13700:5;13706:11;13687:5;:31::i;:::-;-1:-1:-1;13736:4:0;;13518:230;-1:-1:-1;;;;13518:230:0:o;3394:145::-;3021:5;;;;;-1:-1:-1;;;;;3021:5:0;3007:10;:19;2999:28;;;;;;-1:-1:-1;;;;;3476:23:0;;3468:32;;;;;;3511:8;:20;;-1:-1:-1;;;;;;3511:20:0;-1:-1:-1;;;;;3511:20:0;;;;;;;;;;3394:145::o;14808:430::-;14862:4;;14879:330;-1:-1:-1;;;;;14905:20:0;;;;;;:12;:20;;;;;:27;14899:33;;14879:330;;;-1:-1:-1;;;;;14962:20:0;;;;;;:12;:20;;;;;:25;;15004:3;;14962:20;14983:3;;14962:25;;;;;;;;;;;;;;;;:38;;;:45;14958:240;;15110:20;15118:6;15126:3;15110:7;:20::i;:::-;15106:77;;;-1:-1:-1;;15156:7:0;15106:77;14935:5;;14879:330;;;-1:-1:-1;15226:4:0;;14808:430;-1:-1:-1;;14808:430:0:o;8332:299::-;-1:-1:-1;;;;;8457:14:0;;8411:4;8457:14;;;:8;:14;;;;;;;;8472:10;8457:26;;;;;;;;:37;;8488:5;8457:37;:30;:37;:::i;:::-;-1:-1:-1;;;;;8428:14:0;;;;;;:8;:14;;;;;;;;8443:10;8428:26;;;;;;;:66;8505:26;8437:4;8521:2;8525:5;8505:9;:26::i;:::-;-1:-1:-1;;;;;8547:54:0;;8574:14;;;;:8;:14;;;;;;;;8562:10;8574:26;;;;;;;;;;;8547:54;;;;;;;8562:10;;8547:54;;;;;;;;;;;;-1:-1:-1;8619:4:0;8332:299;;;;;:::o;1376:150::-;1434:7;1466:5;;;1490:6;;;;1482:15;;;;;2522:165;2594:4;-1:-1:-1;;;;;2619:21:0;;2611:30;;;;;;-1:-1:-1;;;;;;2659:20:0;:11;:20;;;;;;;;;;;;;;;2522:165::o;4668:130::-;4728:24;:8;4744:7;4728:24;:15;:24;:::i;:::-;4768:22;;-1:-1:-1;;;;;4768:22:0;;;;;;;;4668:130;:::o;6081:106::-;-1:-1:-1;;;;;6163:16:0;6136:7;6163:16;;;;;;;;;;;;6081:106::o;14288:512::-;-1:-1:-1;;;;;14396:20:0;;14351:4;14396:20;;;:12;:20;;;;;:25;;14351:4;;14396:20;14417:3;;14396:25;;;;;;;;;;;;;;14456:16;14396:25;;;;;14456:16;;;;-1:-1:-1;;;;;14492:20:0;;;;:12;:20;;;;;;;:25;;14396;;-1:-1:-1;14492:20:0;14513:3;;14492:25;;;;;;;;;;;;;;;;;;;;;14485:32;;;;;;;;;;-1:-1:-1;;;;;14556:20:0;;;;:12;:20;;;;;;;14577:27;;14556:20;;14577:34;;:27;:34;:31;:34;:::i;:::-;14556:56;;;;;;;;;;;;;;;;;;14528:12;:20;14541:6;-1:-1:-1;;;;;14528:20:0;-1:-1:-1;;;;;14528:20:0;;;;;;;;;;;;14549:3;14528:25;;;;;;;;;;;;;;;;:84;;:25;;;;;:84;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14623:20:0;;;;:12;:20;;;;;;:31;;-1:-1:-1;;14623:31:0;;;;;;:::i;:::-;-1:-1:-1;14672:29:0;;;;;;;;-1:-1:-1;;;;;14672:29:0;;;;;;;;;;;;;-1:-1:-1;;;;;14732:17:0;;:9;:17;;;;;;;;;;;:36;;14754:13;14732:36;:21;:36;:::i;:::-;-1:-1:-1;;;;;14712:17:0;;:9;:17;;;;;;;;;;:56;-1:-1:-1;14788:4:0;;-1:-1:-1;;14288:512:0;;;;:::o;4538:122::-;4595:21;:8;4608:7;4595:21;:12;:21;:::i;:::-;4632:20;;-1:-1:-1;;;;;4632:20:0;;;;;;;;4538:122;:::o;1140:150::-;1198:7;1231:1;1226;:6;;1218:15;;;;;;-1:-1:-1;1256:5:0;;;1140:150::o;6828:140::-;6889:4;6906:32;6916:10;6928:2;6932:5;10544:262;-1:-1:-1;;;;;10632:16:0;;10624:25;;;;;;-1:-1:-1;;;;;10680:15:0;;:9;:15;;;;;;;;;;;:26;;10700:5;10680:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;10662:15:0;;;:9;:15;;;;;;;;;;;:44;;;;10733:13;;;;;;;:24;;10751:5;10733:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;10717:13:0;;;:9;:13;;;;;;;;;;;;:40;;;;10773:25;;;;;;;10717:13;;10773:25;;;;;;;;;;;;;10544:262;;;:::o;13983:297::-;-1:-1:-1;;;;;14104:17:0;;14067:4;14104:17;;;;;;;;;;;:28;;14126:5;14104:28;:21;:28;:::i;:::-;-1:-1:-1;;;;;14084:17:0;;:9;:17;;;;;;;;;;;:48;;;;14143:12;:20;;;;;14170:28;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;14143:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;14218:32;;;;;;;;;;;;;14084:17;;14218:32;;;;;;;;;-1:-1:-1;14268:4:0;13983:297;;;;;:::o;2239:189::-;-1:-1:-1;;;;;2319:21:0;;2311:30;;;;;;2360:18;2364:4;2370:7;2360:3;:18::i;:::-;2352:27;;;;;;-1:-1:-1;;;;;2392:20:0;2415:5;2392:20;;;;;;;;;;;:28;;-1:-1:-1;;2392:28:0;;;2239:189::o;1974:186::-;-1:-1:-1;;;;;2051:21:0;;2043:30;;;;;;2093:18;2097:4;2103:7;2093:3;:18::i;:::-;2092:19;2084:28;;;;;;-1:-1:-1;;;;;2125:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;2125:27:0;2148:4;2125:27;;;1974:186::o;12199:3042::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://cf58c5ddfa859553fee4ba262e6331c70853d3fb9b0d72e9a5af12f1b849ef66
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.