ERC-20
Source Code
Overview
Max Total Supply
1,000,000 ERC20 ***
Holders
17
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
TeraKey
Compiler Version
v0.5.6+commit.b259423e
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-11-03
*/
pragma solidity 0.5.6;
/**
* @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 delegate;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
constructor() public {
owner = msg.sender;
emit OwnershipTransferred(address(0), owner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner, "You must be owner.");
_;
}
/**
* @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) public onlyOwner {
require(newOwner != address(0), "Invalid new owner address.");
delegate = newOwner;
}
function confirmChangeOwnership() public {
require(msg.sender == delegate, "You must be delegate.");
emit OwnershipTransferred(owner, delegate);
owner = delegate;
delegate = address(0);
}
}
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "Multiplying uint256 overflow.");
return c;
}
/**
* @dev Integer division of two numbers, truncating the quotient.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0, "Dividing by zero is not allowed.");
uint256 c = a / b;
return c;
}
/**
* @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a, "Negative uint256 is now allowed.");
return a - b;
}
/**
* @dev Adds two numbers, throws on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "Adding uint256 overflow.");
return c;
}
}
contract TransferFilter is Ownable {
bool public isTransferable;
mapping( address => bool ) internal mapAddressPass;
mapping( address => bool ) internal mapAddressBlock;
event LogSetTransferable(bool transferable);
event LogFilterPass(address indexed target, bool status);
event LogFilterBlock(address indexed target, bool status);
// if Token transfer
modifier checkTokenTransfer(address source) {
if (isTransferable) {
require(!mapAddressBlock[source], "Source address is in block filter.");
}
else {
require(mapAddressPass[source], "Source address must be in pass filter.");
}
_;
}
constructor() public {
isTransferable = true;
}
function setTransferable(bool transferable) external onlyOwner {
isTransferable = transferable;
emit LogSetTransferable(transferable);
}
function isInPassFilter(address user) external view returns (bool) {
return mapAddressPass[user];
}
function isInBlockFilter(address user) external view returns (bool) {
return mapAddressBlock[user];
}
function addressToPass(address[] calldata target, bool status)
external
onlyOwner
{
for( uint i = 0 ; i < target.length ; i++ ) {
address targetAddress = target[i];
bool old = mapAddressPass[targetAddress];
if (old != status) {
if (status) {
mapAddressPass[targetAddress] = true;
emit LogFilterPass(targetAddress, true);
}
else {
delete mapAddressPass[targetAddress];
emit LogFilterPass(targetAddress, false);
}
}
}
}
function addressToBlock(address[] calldata target, bool status)
external
onlyOwner
{
for( uint i = 0 ; i < target.length ; i++ ) {
address targetAddress = target[i];
bool old = mapAddressBlock[targetAddress];
if (old != status) {
if (status) {
mapAddressBlock[targetAddress] = true;
emit LogFilterBlock(targetAddress, true);
}
else {
delete mapAddressBlock[targetAddress];
emit LogFilterBlock(targetAddress, false);
}
}
}
}
}
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
*/
contract ERC20 {
uint256 public totalSupply;
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
function allowance(address owner, address spender) public view returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* @title Standard ERC20 token
*
* @dev Implementation of the basic standard token.
* @dev https://github.com/ethereum/EIPs/issues/20
* @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
*/
contract StandardToken is ERC20, TransferFilter {
using SafeMath for uint256;
mapping(address => uint256) internal balances;
mapping (address => mapping (address => uint256)) internal allowed;
modifier onlyPayloadSize(uint8 param) {
// Check payload size to prevent short address attack.
// Payload size must be longer than sum of methodID length and size of parameters.
require(msg.data.length >= param * 32 + 4);
_;
}
/**
* @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)
onlyPayloadSize(2) // number of parameters
checkTokenTransfer(msg.sender)
public returns (bool) {
require(_to != address(0), "Invalid destination address.");
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _owner The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
*/
function balanceOf(address _owner) public view returns (uint256 balance) {
return balances[_owner];
}
/**
* @dev Transfer tokens from one address to another
* @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)
onlyPayloadSize(3) // number of parameters
checkTokenTransfer(_from)
public returns (bool) {
require(_from != address(0), "Invalid source address.");
require(_to != address(0), "Invalid destination address.");
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
uint256 _allowedValue = allowed[_from][msg.sender].sub(_value);
allowed[_from][msg.sender] = _allowedValue;
emit Transfer(_from, _to, _value);
emit Approval(_from, msg.sender, _allowedValue);
return true;
}
function approve(address _spender, uint256 _value)
onlyPayloadSize(2) // number of parameters
checkTokenTransfer(msg.sender)
public returns (bool) {
require(_spender != address(0), "Invalid spender address.");
// To change the approve amount you first have to reduce the addresses`
// allowance to zero by calling `approve(_spender,0)` if it is not
// already 0 to mitigate the race condition described here:
// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
require((_value == 0) || (allowed[msg.sender][_spender] == 0), "Already approved.");
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
/**
* @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];
}
}
/**
* @title Mintable token
* @dev Simple ERC20 Token example, with mintable token creation
* @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120
* Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
*/
contract MintableToken is StandardToken {
event MinterTransferred(address indexed previousMinter, address indexed newMinter);
event Mint(address indexed to, uint256 amount);
event MintFinished();
event Burn(address indexed from, uint256 value);
bool public mintingFinished = false;
address public minter;
constructor() public {
minter = msg.sender;
emit MinterTransferred(address(0), minter);
}
modifier canMint() {
require(!mintingFinished, "Minting is already finished.");
_;
}
modifier hasPermission() {
require(msg.sender == owner || msg.sender == minter, "You must be either owner or minter.");
_;
}
/**
* @dev Function to mint tokens
* @param _to The address that will receive the minted tokens.
* @param _amount The amount of tokens to mint.
* @return A boolean that indicates if the operation was successful.
*/
function mint(address _to, uint256 _amount) canMint hasPermission external returns (bool) {
require(_to != address(0), "Invalid destination address.");
totalSupply = totalSupply.add(_amount);
balances[_to] = balances[_to].add(_amount);
emit Mint(_to, _amount);
emit Transfer(address(0), _to, _amount);
return true;
}
/**
* @dev Function to stop minting new tokens.
* @return True if the operation was successful.
*/
function finishMinting() canMint onlyOwner external returns (bool) {
mintingFinished = true;
emit MintFinished();
return true;
}
function transferMinter(address newMinter) public onlyOwner {
require(newMinter != address(0), "Invalid new minter address.");
address prevMinter = minter;
minter = newMinter;
emit MinterTransferred(prevMinter, minter);
}
function burn(address _from, uint256 _amount) external hasPermission {
require(_from != address(0), "Invalid source address.");
balances[_from] = balances[_from].sub(_amount);
totalSupply = totalSupply.sub(_amount);
emit Transfer(_from, address(0), _amount);
emit Burn(_from, _amount);
}
}
contract TeraKey is MintableToken {
string public constant name = "Terraforming Mars Key"; // solium-disable-line uppercase
string public constant symbol = "TERAKEY"; // solium-disable-line uppercase
uint8 public constant decimals = 18; // solium-disable-line uppercase
/**
* @dev Constructor that initialize token.
*/
constructor() public {
//totalSupply = 0;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minter","outputs":[{"name":"","type":"address"}],"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":"isTransferable","outputs":[{"name":"","type":"bool"}],"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":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"isInPassFilter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address[]"},{"name":"status","type":"bool"}],"name":"addressToBlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"transferable","type":"bool"}],"name":"setTransferable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_amount","type":"uint256"}],"name":"burn","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":"isInBlockFilter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address[]"},{"name":"status","type":"bool"}],"name":"addressToPass","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"delegate","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":"confirmChangeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMinter","type":"address"}],"name":"transferMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousMinter","type":"address"},{"indexed":true,"name":"newMinter","type":"address"}],"name":"MinterTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"transferable","type":"bool"}],"name":"LogSetTransferable","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"status","type":"bool"}],"name":"LogFilterPass","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"status","type":"bool"}],"name":"LogFilterBlock","type":"event"},{"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
60806040526000600760006101000a81548160ff02191690831515021790555034801561002b57600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001600260146101000a81548160ff02191690831515021790555033600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f02ad39e5173f89bdd5497202bd74024b5da045106c3163ddb078d2e89ff6d6de60405160405180910390a3613020806101d26000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80638da5cb5b116100de578063afbdaa0511610097578063dd62ed3e11610071578063dd62ed3e14610854578063e602af06146108cc578063f2fde38b146108d6578063fe99ad5a1461091a57610173565b8063afbdaa0514610729578063b57874ce14610785578063c89e43611461080a57610173565b80638da5cb5b146104f357806394b44f3e1461053d57806395d89b41146105c25780639cd23707146106455780639dc29fac14610675578063a9059cbb146106c357610173565b806323b872dd1161013057806323b872dd1461030d578063313ce5671461039357806340c10f19146103b7578063483b1a761461041d57806370a08231146104795780637d64bcb4146104d157610173565b806305d2035b1461017857806306fdde031461019a578063075461721461021d578063095ea7b31461026757806318160ddd146102cd5780632121dc75146102eb575b600080fd5b61018061095e565b604051808215151515815260200191505060405180910390f35b6101a2610971565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e25780820151818401526020810190506101c7565b50505050905090810190601f16801561020f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102256109aa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b36004803603604081101561027d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109d0565b604051808215151515815260200191505060405180910390f35b6102d5610de1565b6040518082815260200191505060405180910390f35b6102f3610de7565b604051808215151515815260200191505060405180910390f35b6103796004803603606081101561032357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dfa565b604051808215151515815260200191505060405180910390f35b61039b6113d5565b604051808260ff1660ff16815260200191505060405180910390f35b610403600480360360408110156103cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113da565b604051808215151515815260200191505060405180910390f35b61045f6004803603602081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061176e565b604051808215151515815260200191505060405180910390f35b6104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c4565b6040518082815260200191505060405180910390f35b6104d961180d565b604051808215151515815260200191505060405180910390f35b6104fb6119a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105c06004803603604081101561055357600080fd5b810190808035906020019064010000000081111561057057600080fd5b82018360208201111561058257600080fd5b803590602001918460208302840111640100000000831117156105a457600080fd5b90919293919293908035151590602001909291905050506119c9565b005b6105ca611c95565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561060a5780820151818401526020810190506105ef565b50505050905090810190601f1680156106375780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106736004803603602081101561065b57600080fd5b81019080803515159060200190929190505050611cce565b005b6106c16004803603604081101561068b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611de9565b005b61070f600480360360408110156106d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120f2565b604051808215151515815260200191505060405180910390f35b61076b6004803603602081101561073f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124af565b604051808215151515815260200191505060405180910390f35b6108086004803603604081101561079b57600080fd5b81019080803590602001906401000000008111156107b857600080fd5b8201836020820111156107ca57600080fd5b803590602001918460208302840111640100000000831117156107ec57600080fd5b9091929391929390803515159060200190929190505050612505565b005b6108126127d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108b66004803603604081101561086a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127f7565b6040518082815260200191505060405180910390f35b6108d461287e565b005b610918600480360360208110156108ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a86565b005b61095c6004803603602081101561093057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c30565b005b600760009054906101000a900460ff1681565b6040518060400160405280601581526020017f5465727261666f726d696e67204d617273204b6579000000000000000000000081525081565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060026004602082020160ff16600036905010156109ee57600080fd5b33600260149054906101000a900460ff1615610aac57600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f8a6022913960400191505060405180910390fd5b610b4f565b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612fac6026913960400191505060405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610bf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964207370656e64657220616464726573732e000000000000000081525060200191505060405180910390fd5b6000841480610c7d57506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610cef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f416c726561647920617070726f7665642e00000000000000000000000000000081525060200191505060405180910390fd5b83600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040518082815260200191505060405180910390a360019250505092915050565b60005481565b600260149054906101000a900460ff1681565b600060036004602082020160ff1660003690501015610e1857600080fd5b84600260149054906101000a900460ff1615610ed657600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ed1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f8a6022913960400191505060405180910390fd5b610f79565b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612fac6026913960400191505060405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561101c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420736f7572636520616464726573732e00000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156110bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c69642064657374696e6174696f6e20616464726573732e0000000081525060200191505060405180910390fd5b61111184600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e7e90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111a684600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0190919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061127a85600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e7e90919063ffffffff16565b905080600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3600193505050509392505050565b601281565b6000600760009054906101000a900460ff161561145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d696e74696e6720697320616c72656164792066696e69736865642e0000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115085750600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61155d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612fd26023913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611600576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c69642064657374696e6174696f6e20616464726573732e0000000081525060200191505060405180910390fd5b61161582600054612f0190919063ffffffff16565b60008190555061166d82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600760009054906101000a900460ff1615611892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d696e74696e6720697320616c72656164792066696e69736865642e0000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611955576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75206d757374206265206f776e65722e000000000000000000000000000081525060200191505060405180910390fd5b6001600760006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75206d757374206265206f776e65722e000000000000000000000000000081525060200191505060405180910390fd5b60008090505b83839050811015611c8f576000848483818110611aab57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1690506000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905083151581151514611c80578315611bdc576001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fa09e978c90f25c2a977904ade347948ac4761e23cf07a17f87c8b77ef301e89c6001604051808215151515815260200191505060405180910390a2611c7f565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558173ffffffffffffffffffffffffffffffffffffffff167fa09e978c90f25c2a977904ade347948ac4761e23cf07a17f87c8b77ef301e89c6000604051808215151515815260200191505060405180910390a25b5b50508080600101915050611a92565b50505050565b6040518060400160405280600781526020017f544552414b45590000000000000000000000000000000000000000000000000081525081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75206d757374206265206f776e65722e000000000000000000000000000081525060200191505060405180910390fd5b80600260146101000a81548160ff0219169083151502179055507f4d49befdca73a4dc2f0a3a9ed2dd8ddd7a76d19758d7e27dbb88c5a576d6f92e81604051808215151515815260200191505060405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611e925750600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612fd26023913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420736f7572636520616464726573732e00000000000000000081525060200191505060405180910390fd5b611fdc81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e7e90919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061203481600054612e7e90919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b600060026004602082020160ff166000369050101561211057600080fd5b33600260149054906101000a900460ff16156121ce57600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f8a6022913960400191505060405180910390fd5b612271565b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612270576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612fac6026913960400191505060405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c69642064657374696e6174696f6e20616464726573732e0000000081525060200191505060405180910390fd5b61236684600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e7e90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123fb84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0190919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75206d757374206265206f776e65722e000000000000000000000000000081525060200191505060405180910390fd5b60008090505b838390508110156127cb5760008484838181106125e757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1690506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050831515811515146127bc578315612718576001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f369e0b70fff47e7b3ceb33e2f6f5d67c3d85ab70974ae25e5b2ef2516863d1996001604051808215151515815260200191505060405180910390a26127bb565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558173ffffffffffffffffffffffffffffffffffffffff167f369e0b70fff47e7b3ceb33e2f6f5d67c3d85ab70974ae25e5b2ef2516863d1996000604051808215151515815260200191505060405180910390a25b5b505080806001019150506125ce565b50505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612941576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f75206d7573742062652064656c65676174652e000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75206d757374206265206f776e65722e000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f496e76616c6964206e6577206f776e657220616464726573732e00000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612cf3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75206d757374206265206f776e65722e000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612d96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c6964206e6577206d696e74657220616464726573732e000000000081525060200191505060405180910390fd5b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f02ad39e5173f89bdd5497202bd74024b5da045106c3163ddb078d2e89ff6d6de60405160405180910390a35050565b600082821115612ef6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4e656761746976652075696e74323536206973206e6f7720616c6c6f7765642e81525060200191505060405180910390fd5b818303905092915050565b600080828401905083811015612f7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f416464696e672075696e74323536206f766572666c6f772e000000000000000081525060200191505060405180910390fd5b809150509291505056fe536f75726365206164647265737320697320696e20626c6f636b2066696c7465722e536f757263652061646472657373206d75737420626520696e20706173732066696c7465722e596f75206d75737420626520656974686572206f776e6572206f72206d696e7465722ea165627a7a7230582045811a2c4b94660838fdd0d4383dbf168aca41db05d987d39455d422c7bd168c0029
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c80638da5cb5b116100de578063afbdaa0511610097578063dd62ed3e11610071578063dd62ed3e14610854578063e602af06146108cc578063f2fde38b146108d6578063fe99ad5a1461091a57610173565b8063afbdaa0514610729578063b57874ce14610785578063c89e43611461080a57610173565b80638da5cb5b146104f357806394b44f3e1461053d57806395d89b41146105c25780639cd23707146106455780639dc29fac14610675578063a9059cbb146106c357610173565b806323b872dd1161013057806323b872dd1461030d578063313ce5671461039357806340c10f19146103b7578063483b1a761461041d57806370a08231146104795780637d64bcb4146104d157610173565b806305d2035b1461017857806306fdde031461019a578063075461721461021d578063095ea7b31461026757806318160ddd146102cd5780632121dc75146102eb575b600080fd5b61018061095e565b604051808215151515815260200191505060405180910390f35b6101a2610971565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e25780820151818401526020810190506101c7565b50505050905090810190601f16801561020f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102256109aa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b36004803603604081101561027d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109d0565b604051808215151515815260200191505060405180910390f35b6102d5610de1565b6040518082815260200191505060405180910390f35b6102f3610de7565b604051808215151515815260200191505060405180910390f35b6103796004803603606081101561032357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dfa565b604051808215151515815260200191505060405180910390f35b61039b6113d5565b604051808260ff1660ff16815260200191505060405180910390f35b610403600480360360408110156103cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113da565b604051808215151515815260200191505060405180910390f35b61045f6004803603602081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061176e565b604051808215151515815260200191505060405180910390f35b6104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c4565b6040518082815260200191505060405180910390f35b6104d961180d565b604051808215151515815260200191505060405180910390f35b6104fb6119a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105c06004803603604081101561055357600080fd5b810190808035906020019064010000000081111561057057600080fd5b82018360208201111561058257600080fd5b803590602001918460208302840111640100000000831117156105a457600080fd5b90919293919293908035151590602001909291905050506119c9565b005b6105ca611c95565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561060a5780820151818401526020810190506105ef565b50505050905090810190601f1680156106375780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106736004803603602081101561065b57600080fd5b81019080803515159060200190929190505050611cce565b005b6106c16004803603604081101561068b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611de9565b005b61070f600480360360408110156106d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120f2565b604051808215151515815260200191505060405180910390f35b61076b6004803603602081101561073f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124af565b604051808215151515815260200191505060405180910390f35b6108086004803603604081101561079b57600080fd5b81019080803590602001906401000000008111156107b857600080fd5b8201836020820111156107ca57600080fd5b803590602001918460208302840111640100000000831117156107ec57600080fd5b9091929391929390803515159060200190929190505050612505565b005b6108126127d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108b66004803603604081101561086a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127f7565b6040518082815260200191505060405180910390f35b6108d461287e565b005b610918600480360360208110156108ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a86565b005b61095c6004803603602081101561093057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c30565b005b600760009054906101000a900460ff1681565b6040518060400160405280601581526020017f5465727261666f726d696e67204d617273204b6579000000000000000000000081525081565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060026004602082020160ff16600036905010156109ee57600080fd5b33600260149054906101000a900460ff1615610aac57600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f8a6022913960400191505060405180910390fd5b610b4f565b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612fac6026913960400191505060405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610bf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964207370656e64657220616464726573732e000000000000000081525060200191505060405180910390fd5b6000841480610c7d57506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610cef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f416c726561647920617070726f7665642e00000000000000000000000000000081525060200191505060405180910390fd5b83600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040518082815260200191505060405180910390a360019250505092915050565b60005481565b600260149054906101000a900460ff1681565b600060036004602082020160ff1660003690501015610e1857600080fd5b84600260149054906101000a900460ff1615610ed657600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ed1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f8a6022913960400191505060405180910390fd5b610f79565b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612fac6026913960400191505060405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141561101c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420736f7572636520616464726573732e00000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156110bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c69642064657374696e6174696f6e20616464726573732e0000000081525060200191505060405180910390fd5b61111184600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e7e90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111a684600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0190919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061127a85600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e7e90919063ffffffff16565b905080600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3600193505050509392505050565b601281565b6000600760009054906101000a900460ff161561145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d696e74696e6720697320616c72656164792066696e69736865642e0000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115085750600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61155d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612fd26023913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611600576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c69642064657374696e6174696f6e20616464726573732e0000000081525060200191505060405180910390fd5b61161582600054612f0190919063ffffffff16565b60008190555061166d82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600760009054906101000a900460ff1615611892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d696e74696e6720697320616c72656164792066696e69736865642e0000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611955576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75206d757374206265206f776e65722e000000000000000000000000000081525060200191505060405180910390fd5b6001600760006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75206d757374206265206f776e65722e000000000000000000000000000081525060200191505060405180910390fd5b60008090505b83839050811015611c8f576000848483818110611aab57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1690506000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905083151581151514611c80578315611bdc576001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fa09e978c90f25c2a977904ade347948ac4761e23cf07a17f87c8b77ef301e89c6001604051808215151515815260200191505060405180910390a2611c7f565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558173ffffffffffffffffffffffffffffffffffffffff167fa09e978c90f25c2a977904ade347948ac4761e23cf07a17f87c8b77ef301e89c6000604051808215151515815260200191505060405180910390a25b5b50508080600101915050611a92565b50505050565b6040518060400160405280600781526020017f544552414b45590000000000000000000000000000000000000000000000000081525081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75206d757374206265206f776e65722e000000000000000000000000000081525060200191505060405180910390fd5b80600260146101000a81548160ff0219169083151502179055507f4d49befdca73a4dc2f0a3a9ed2dd8ddd7a76d19758d7e27dbb88c5a576d6f92e81604051808215151515815260200191505060405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611e925750600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612fd26023913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420736f7572636520616464726573732e00000000000000000081525060200191505060405180910390fd5b611fdc81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e7e90919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061203481600054612e7e90919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b600060026004602082020160ff166000369050101561211057600080fd5b33600260149054906101000a900460ff16156121ce57600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f8a6022913960400191505060405180910390fd5b612271565b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612270576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612fac6026913960400191505060405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c69642064657374696e6174696f6e20616464726573732e0000000081525060200191505060405180910390fd5b61236684600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e7e90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123fb84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f0190919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75206d757374206265206f776e65722e000000000000000000000000000081525060200191505060405180910390fd5b60008090505b838390508110156127cb5760008484838181106125e757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1690506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050831515811515146127bc578315612718576001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f369e0b70fff47e7b3ceb33e2f6f5d67c3d85ab70974ae25e5b2ef2516863d1996001604051808215151515815260200191505060405180910390a26127bb565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558173ffffffffffffffffffffffffffffffffffffffff167f369e0b70fff47e7b3ceb33e2f6f5d67c3d85ab70974ae25e5b2ef2516863d1996000604051808215151515815260200191505060405180910390a25b5b505080806001019150506125ce565b50505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612941576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f75206d7573742062652064656c65676174652e000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75206d757374206265206f776e65722e000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f496e76616c6964206e6577206f776e657220616464726573732e00000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612cf3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75206d757374206265206f776e65722e000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612d96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c6964206e6577206d696e74657220616464726573732e000000000081525060200191505060405180910390fd5b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f02ad39e5173f89bdd5497202bd74024b5da045106c3163ddb078d2e89ff6d6de60405160405180910390a35050565b600082821115612ef6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4e656761746976652075696e74323536206973206e6f7720616c6c6f7765642e81525060200191505060405180910390fd5b818303905092915050565b600080828401905083811015612f7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f416464696e672075696e74323536206f766572666c6f772e000000000000000081525060200191505060405180910390fd5b809150509291505056fe536f75726365206164647265737320697320696e20626c6f636b2066696c7465722e536f757263652061646472657373206d75737420626520696e20706173732066696c7465722e596f75206d75737420626520656974686572206f776e6572206f72206d696e7465722ea165627a7a7230582045811a2c4b94660838fdd0d4383dbf168aca41db05d987d39455d422c7bd168c0029
Deployed Bytecode Sourcemap
11784:396:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11784:396:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9925:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11823:53;;;:::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;11823:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9965:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8177:726;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8177:726:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5002:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2562;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7540:631;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7540:631:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11993:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10585:351;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10585:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3422:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3422:107:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7148:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7148:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11056:146;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;243:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4251:629;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4251:629:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4251:629:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4251:629:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;4251:629:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11914:41;;;:::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;11914:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3263:153;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3263:153:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11458:317;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11458:317:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6477:462;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6477:462:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3535:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3535:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3650:595;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3650:595:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3650:595:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3650:595:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3650:595:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;268:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9230:128;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9230:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1123:210;;;:::i;:::-;;955:162;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;955:162:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11208:244;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11208:244:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9925:35;;;;;;;;;;;;;:::o;11823:53::-;;;;;;;;;;;;;;;;;;;:::o;9965:21::-;;;;;;;;;;;;;:::o;8177:726::-;8327:4;8247:1;6300;6295:2;6287:5;:10;:14;6268:33;;:8;;:15;;:33;;6260:42;;;;;;8296:10;2960:14;;;;;;;;;;;2956:223;;;2998:15;:23;3014:6;2998:23;;;;;;;;;;;;;;;;;;;;;;;;;2997:24;2989:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:223;;;3104:14;:22;3119:6;3104:22;;;;;;;;;;;;;;;;;;;;;;;;;3096:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:223;8368:1;8348:22;;:8;:22;;;;8340:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8718:1;8708:6;:11;8707:53;;;;8758:1;8725:7;:19;8733:10;8725:19;;;;;;;;;;;;;;;:29;8745:8;8725:29;;;;;;;;;;;;;;;;:34;8707:53;8699:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8823:6;8791:7;:19;8799:10;8791:19;;;;;;;;;;;;;;;:29;8811:8;8791:29;;;;;;;;;;;;;;;:38;;;;8862:8;8841:38;;8850:10;8841:38;;;8872:6;8841:38;;;;;;;;;;;;;;;;;;8893:4;8886:11;;6309:1;8177:726;;;;;:::o;5002:26::-;;;;:::o;2562:::-;;;;;;;;;;;;;:::o;7540:631::-;7700:4;7625:1;6300;6295:2;6287:5;:10;:14;6268:33;;:8;;:15;;:33;;6260:42;;;;;;7674:5;2960:14;;;;;;;;;;;2956:223;;;2998:15;:23;3014:6;2998:23;;;;;;;;;;;;;;;;;;;;;;;;;2997:24;2989:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:223;;;3104:14;:22;3119:6;3104:22;;;;;;;;;;;;;;;;;;;;;;;;;3096:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:223;7738:1;7721:19;;:5;:19;;;;7713:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7798:1;7783:17;;:3;:17;;;;7775:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7860:27;7880:6;7860:8;:15;7869:5;7860:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;7842:8;:15;7851:5;7842:15;;;;;;;;;;;;;;;:45;;;;7910:25;7928:6;7910:8;:13;7919:3;7910:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;7894:8;:13;7903:3;7894:13;;;;;;;;;;;;;;;:41;;;;7942:21;7966:38;7997:6;7966:7;:14;7974:5;7966:14;;;;;;;;;;;;;;;:26;7981:10;7966:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;7942:62;;8040:13;8011:7;:14;8019:5;8011:14;;;;;;;;;;;;;;;:26;8026:10;8011:26;;;;;;;;;;;;;;;:42;;;;8081:3;8065:28;;8074:5;8065:28;;;8086:6;8065:28;;;;;;;;;;;;;;;;;;8121:10;8105:42;;8114:5;8105:42;;;8133:13;8105:42;;;;;;;;;;;;;;;;;;8161:4;8154:11;;;6309:1;7540:631;;;;;;:::o;11993:35::-;12026:2;11993:35;:::o;10585:351::-;10669:4;10136:15;;;;;;;;;;;10135:16;10127:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10258:5;;;;;;;;;;;10244:19;;:10;:19;;;:43;;;;10281:6;;;;;;;;;;;10267:20;;:10;:20;;;10244:43;10236:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10705:1;10690:17;;:3;:17;;;;10682:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10763:24;10779:7;10763:11;;:15;;:24;;;;:::i;:::-;10749:11;:38;;;;10810:26;10828:7;10810:8;:13;10819:3;10810:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;10794:8;:13;10803:3;10794:13;;;;;;;;;;;;;;;:42;;;;10853:3;10848:18;;;10858:7;10848:18;;;;;;;;;;;;;;;;;;10899:3;10878:34;;10895:1;10878:34;;;10904:7;10878:34;;;;;;;;;;;;;;;;;;10926:4;10919:11;;10585:351;;;;:::o;3422:107::-;3483:4;3503:14;:20;3518:4;3503:20;;;;;;;;;;;;;;;;;;;;;;;;;3496:27;;3422:107;;;:::o;7148:109::-;7204:15;7235:8;:16;7244:6;7235:16;;;;;;;;;;;;;;;;7228:23;;7148:109;;;:::o;11056:146::-;11117:4;10136:15;;;;;;;;;;;10135:16;10127:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;746:5;;;;;;;;;;;732:19;;:10;:19;;;724:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11148:4;11130:15;;:22;;;;;;;;;;;;;;;;;;11164:14;;;;;;;;;;11192:4;11185:11;;11056:146;:::o;243:20::-;;;;;;;;;;;;;:::o;4251:629::-;746:5;;;;;;;;;;;732:19;;:10;:19;;;724:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4357:6;4366:1;4357:10;;4352:523;4374:6;;:13;;4370:1;:17;4352:523;;;4409:21;4433:6;;4440:1;4433:9;;;;;;;;;;;;;;;4409:33;;4455:8;4466:15;:30;4482:13;4466:30;;;;;;;;;;;;;;;;;;;;;;;;;4455:41;;4520:6;4513:13;;:3;:13;;;4509:357;;4549:6;4545:308;;;4611:4;4578:15;:30;4594:13;4578:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;4656:13;4641:35;;;4671:4;4641:35;;;;;;;;;;;;;;;;;;;;;;4545:308;;;4743:15;:30;4759:13;4743:30;;;;;;;;;;;;;;;;4736:37;;;;;;;;;;;4814:13;4799:36;;;4829:5;4799:36;;;;;;;;;;;;;;;;;;;;;;4545:308;4509:357;4352:523;;4390:3;;;;;;;4352:523;;;;4251:629;;;:::o;11914:41::-;;;;;;;;;;;;;;;;;;;:::o;3263:153::-;746:5;;;;;;;;;;;732:19;;:10;:19;;;724:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3352:12;3335:14;;:29;;;;;;;;;;;;;;;;;;3378:32;3397:12;3378:32;;;;;;;;;;;;;;;;;;;;;;3263:153;:::o;11458:317::-;10258:5;;;;;;;;;;;10244:19;;:10;:19;;;:43;;;;10281:6;;;;;;;;;;;10267:20;;:10;:20;;;10244:43;10236:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11559:1;11542:19;;:5;:19;;;;11534:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11616:28;11636:7;11616:8;:15;11625:5;11616:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11598:8;:15;11607:5;11598:15;;;;;;;;;;;;;;;:46;;;;11665:24;11681:7;11665:11;;:15;;:24;;;;:::i;:::-;11651:11;:38;;;;11725:1;11701:36;;11710:5;11701:36;;;11729:7;11701:36;;;;;;;;;;;;;;;;;;11754:5;11749:20;;;11761:7;11749:20;;;;;;;;;;;;;;;;;;11458:317;;:::o;6477:462::-;6623:4;6543:1;6300;6295:2;6287:5;:10;:14;6268:33;;:8;;:15;;:33;;6260:42;;;;;;6592:10;2960:14;;;;;;;;;;;2956:223;;;2998:15;:23;3014:6;2998:23;;;;;;;;;;;;;;;;;;;;;;;;;2997:24;2989:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:223;;;3104:14;:22;3119:6;3104:22;;;;;;;;;;;;;;;;;;;;;;;;;3096:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:223;6659:1;6644:17;;:3;:17;;;;6636:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6790:32;6815:6;6790:8;:20;6799:10;6790:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6767:8;:20;6776:10;6767:20;;;;;;;;;;;;;;;:55;;;;6845:25;6863:6;6845:8;:13;6854:3;6845:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;6829:8;:13;6838:3;6829:13;;;;;;;;;;;;;;;:41;;;;6903:3;6882:33;;6891:10;6882:33;;;6908:6;6882:33;;;;;;;;;;;;;;;;;;6929:4;6922:11;;6309:1;6477:462;;;;;:::o;3535:109::-;3597:4;3617:15;:21;3633:4;3617:21;;;;;;;;;;;;;;;;;;;;;;;;;3610:28;;3535:109;;;:::o;3650:595::-;746:5;;;;;;;;;;;732:19;;:10;:19;;;724:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3753:6;3762:1;3753:10;;3748:492;3770:6;;:13;;3766:1;:17;3748:492;;;3803:21;3827:6;;3834:1;3827:9;;;;;;;;;;;;;;;3803:33;;3847:8;3858:14;:29;3873:13;3858:29;;;;;;;;;;;;;;;;;;;;;;;;;3847:40;;3909:6;3902:13;;:3;:13;;;3898:335;;3936:6;3932:290;;;3995:4;3963:14;:29;3978:13;3963:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;4037:13;4023:34;;;4052:4;4023:34;;;;;;;;;;;;;;;;;;;;;;3932:290;;;4118:14;:29;4133:13;4118:29;;;;;;;;;;;;;;;;4111:36;;;;;;;;;;;4185:13;4171:35;;;4200:5;4171:35;;;;;;;;;;;;;;;;;;;;;;3932:290;3898:335;3748:492;;3786:3;;;;;;;3748:492;;;;3650:595;;;:::o;268:23::-;;;;;;;;;;;;;:::o;9230:128::-;9304:7;9327;:15;9335:6;9327:15;;;;;;;;;;;;;;;:25;9343:8;9327:25;;;;;;;;;;;;;;;;9320:32;;9230:128;;;;:::o;1123:210::-;1193:8;;;;;;;;;;;1179:22;;:10;:22;;;1171:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1267:8;;;;;;;;;;;1239:37;;1260:5;;;;;;;;;;;1239:37;;;;;;;;;;;;1291:8;;;;;;;;;;;1283:5;;:16;;;;;;;;;;;;;;;;;;1325:1;1306:8;;:21;;;;;;;;;;;;;;;;;;1123:210::o;955:162::-;746:5;;;;;;;;;;;732:19;;:10;:19;;;724:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1052:1;1032:22;;:8;:22;;;;1024:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1103:8;1092;;:19;;;;;;;;;;;;;;;;;;955:162;:::o;11208:244::-;746:5;;;;;;;;;;;732:19;;:10;:19;;;724:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11304:1;11283:23;;:9;:23;;;;11275:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11345:18;11366:6;;;;;;;;;;;11345:27;;11388:9;11379:6;;:18;;;;;;;;;;;;;;;;;;11439:6;;;;;;;;;;;11409:37;;11427:10;11409:37;;;;;;;;;;;;781:1;11208:244;:::o;2124:150::-;2182:7;2211:1;2206;:6;;2198:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:1;2263;:5;2256:12;;2124:150;;;;:::o;2341:162::-;2399:7;2415:9;2431:1;2427;:5;2415:17;;2452:1;2447;:6;;2439:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2496:1;2489:8;;;2341:162;;;;:::o
Swarm Source
bzzr://45811a2c4b94660838fdd0d4383dbf168aca41db05d987d39455d422c7bd168c
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.
Add Token to MetaMask (Web3)