ETH Price: $2,640.19 (-2.98%)

Token

Vcash (Vcash)
 

Overview

Max Total Supply

1,000,000,000,000 Vcash

Holders

43,261

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
146,866,634,689.8916518 Vcash

Value
$0.00
0xc2d1880c71a896bb768369ee222cac455d7db77d
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Vcash

Compiler Version
v0.5.0+commit.1d4f565a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-01-29
*/

pragma solidity ^0.5.0;

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }
    function toPayable(address account) internal pure returns (address payable) {
        return address(uint160(account));
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(isOwner(), "Ownable: caller is not the owner");
        _;
    }
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public onlyOwner {
        //_transferOwnership(newOwner);
        _pendingowner = newOwner;
        emit OwnershipTransferPending(_owner, newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    address private _pendingowner;
    event OwnershipTransferPending(address indexed previousOwner, address indexed newOwner);
    function pendingowner() public view returns (address) {
        return _pendingowner;
    }

    modifier onlyPendingOwner() {
        require(msg.sender == _pendingowner, "Ownable: caller is not the pending owner");
        _;
    }
    function claimOwnership() public onlyPendingOwner {
        _transferOwnership(msg.sender);
    }

}

contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;
    modifier whenNotPaused() {
        require(!paused, "Pausable: paused");
        _;
    }
    modifier whenPaused() {
        require(paused, "Pausable: not paused");
        _;
    }
    function pause() public onlyOwner whenNotPaused {
        paused = true;
        emit Pause();
    }
    function unpause() public onlyOwner whenPaused {
        paused = false;
        emit Unpause();
    }
}


contract ERC20Token is IERC20, Pausable {
    using SafeMath for uint256;
    using Address for address;

    string internal _name;
    string internal _symbol;
    uint8 internal _decimals;
    uint256 internal _totalSupply;

    mapping (address => uint256) internal _balances;
    mapping (address => mapping (address => uint256)) internal _allowances;

    constructor(string memory name, string memory symbol, uint8 decimals, uint256 totalSupply) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
        _totalSupply = totalSupply;
        _balances[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256 balance) {
        return _balances[account];
    }


    // Function that is called when a user or another contract wants to transfer funds .
    function transfer(address recipient, uint256 amount)
    public
    whenNotPaused
    returns (bool success)
    {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
    public
    view
    returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 value)
    public
    whenNotPaused
    returns (bool)
    {
        _approve(msg.sender, spender, value);
        return true;
    }


    function transferFrom(address sender, address recipient, uint256 amount)
    public
    whenNotPaused
    returns (bool)
    {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }



    function increaseAllowance(address spender, uint256 addedValue)
    public
    whenNotPaused
    returns (bool)
    {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
    public
    whenNotPaused
    returns (bool)
    {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function mint(address account,uint256 amount) public onlyOwner returns (bool) {
        _mint(account, amount);
        return true;
    }
    
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }    

    function burn(address account,uint256 amount) public onlyOwner returns (bool) {
        _burn(account, amount);
        return true;
    }
    
    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn to the zero address");

	 _balances[account] = _balances[account].sub(amount);
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }    
    
}

contract Vcash is ERC20Token {
    constructor() public
    ERC20Token("Vcash", "Vcash", 18, 100000000000 * (10 ** 18)) {
    }
    mapping (address => uint256) internal _locked_balances;

    event TokenLocked(address indexed owner, uint256 value);
    event TokenUnlocked(address indexed beneficiary, uint256 value);

    function balanceOfLocked(address account) public view returns (uint256 balance)
    {
        return _locked_balances[account];
    }

    function lockToken(address[] memory addresses, uint256[] memory amounts)
    public
    onlyOwner
    returns (bool) {
        require(addresses.length > 0, "LockToken: address is empty");
        require(addresses.length == amounts.length, "LockToken: invalid array size");

        for (uint i = 0; i < addresses.length; i++) {
            _lock_token(addresses[i], amounts[i]);
        }
        return true;
    }

    function lockTokenWhole(address[] memory addresses)
    public
    onlyOwner
    returns (bool) {
        require(addresses.length > 0, "LockToken: address is empty");

        for (uint i = 0; i < addresses.length; i++) {
            _lock_token(addresses[i], _balances[addresses[i]]);
        }
        return true;
    }

    function unlockToken(address[] memory addresses, uint256[] memory amounts)
    public
    onlyOwner
    returns (bool) {
        require(addresses.length > 0, "LockToken: unlock address is empty");
        require(addresses.length == amounts.length, "LockToken: invalid array size");

        for (uint i = 0; i < addresses.length; i++) {
            _unlock_token(addresses[i], amounts[i]);
        }
        return true;
    }

    function _lock_token(address owner, uint256 amount) internal {
        require(owner != address(0), "LockToken: lock from the zero address");
        require(amount > 0, "LockToken: the amount is empty");

        _balances[owner] = _balances[owner].sub(amount);
        _locked_balances[owner] = _locked_balances[owner].add(amount);
        emit TokenLocked(owner, amount);
    }

    function _unlock_token(address owner, uint256 amount) internal {
        require(owner != address(0), "LockToken: lock from the zero address");
        require(amount > 0, "LockToken: the amount is empty");

        _locked_balances[owner] = _locked_balances[owner].sub(amount);
        _balances[owner] = _balances[owner].add(amount);
        emit TokenUnlocked(owner, amount);
    }

    event Collect(address indexed from, address indexed to, uint256 value);
    event CollectLocked(address indexed from, address indexed to, uint256 value); //Lock이 해지 되었다.

    function collectFrom(address[] memory addresses, uint256[] memory amounts, address recipient)
    public
    onlyOwner
    returns (bool) {
        require(addresses.length > 0, "Collect: collect address is empty");
        require(addresses.length == amounts.length, "Collect: invalid array size");

        for (uint i = 0; i < addresses.length; i++) {
            _transfer(addresses[i], recipient, amounts[i]);
            emit Collect(addresses[i], recipient, amounts[i]);
        }
        return true;
    }

    function collectFromLocked(address[] memory addresses, uint256[] memory amounts, address recipient)
    public
    onlyOwner
    returns (bool) {
        require(addresses.length > 0, "Collect: collect address is empty");
        require(addresses.length == amounts.length, "Collect: invalid array size");

        for (uint i = 0; i < addresses.length; i++) {
            _unlock_token(addresses[i], amounts[i]);
            _transfer(addresses[i], recipient, amounts[i]);
            emit CollectLocked(addresses[i], recipient, amounts[i]);
        }
        return true;
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"amounts","type":"uint256[]"},{"name":"recipient","type":"address"}],"name":"collectFrom","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":false,"inputs":[{"name":"sender","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"amounts","type":"uint256[]"},{"name":"recipient","type":"address"}],"name":"collectFromLocked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingowner","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":"addresses","type":"address[]"}],"name":"lockTokenWhole","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOfLocked","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"unlockToken","outputs":[{"name":"","type":"bool"}],"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":"addresses","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"lockToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TokenLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TokenUnlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"CollectLocked","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","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":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferPending","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"}]

60806040526000600160146101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040805190810160405280600581526020017f56636173680000000000000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f566361736800000000000000000000000000000000000000000000000000000081525060126c01431e0fae6d7217caa0000000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a383600290805190602001906200017d9291906200026d565b508260039080519060200190620001969291906200026d565b5081600460006101000a81548160ff021916908360ff1602179055508060058190555080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050506200031c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002b057805160ff1916838001178555620002e1565b82800160010185558215620002e1579182015b82811115620002e0578251825591602001919060010190620002c3565b5b509050620002f09190620002f4565b5090565b6200031991905b8082111562000315576000816000905550600101620002fb565b5090565b90565b613b4d806200032c6000396000f3fe60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff57806314a7a6311461027257806318160ddd1461040357806323b872dd1461042e578063313ce567146104c157806339509351146104f25780633f4ba83a1461056557806340c10f191461057c5780634e71e0c8146105ef5780635c975abb1461060657806370a0823114610635578063715018a61461069a5780638456cb59146106b15780638da5cb5b146106c85780638f32d59b1461071f57806395d89b411461074e5780639dc29fac146107de578063a457c2d714610851578063a9059cbb146108c4578063b9bcabe914610937578063da4a898e14610ac8578063dd62ed3e14610b1f578063e50c652914610ba4578063e960bb4814610c81578063f2cb9bea14610ce6578063f2fde38b14610e57578063f612436114610ea8575b600080fd5b34801561017b57600080fd5b50610184611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b506102586004803603604081101561022257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110bb565b604051808215151515815260200191505060405180910390f35b34801561027e57600080fd5b506103e96004803603606081101561029557600080fd5b81019080803590602001906401000000008111156102b257600080fd5b8201836020820111156102c457600080fd5b803590602001918460208302840111640100000000831117156102e657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561034657600080fd5b82018360208201111561035857600080fd5b8035906020019184602083028401116401000000008311171561037a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611157565b604051808215151515815260200191505060405180910390f35b34801561040f57600080fd5b506104186113e1565b6040518082815260200191505060405180910390f35b34801561043a57600080fd5b506104a76004803603606081101561045157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113eb565b604051808215151515815260200191505060405180910390f35b3480156104cd57600080fd5b506104d6611521565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104fe57600080fd5b5061054b6004803603604081101561051557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611538565b604051808215151515815260200191505060405180910390f35b34801561057157600080fd5b5061057a611662565b005b34801561058857600080fd5b506105d56004803603604081101561059f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ab565b604051808215151515815260200191505060405180910390f35b3480156105fb57600080fd5b5061060461183d565b005b34801561061257600080fd5b5061061b611933565b604051808215151515815260200191505060405180910390f35b34801561064157600080fd5b506106846004803603602081101561065857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611946565b6040518082815260200191505060405180910390f35b3480156106a657600080fd5b506106af61198f565b005b3480156106bd57600080fd5b506106c6611aca565b005b3480156106d457600080fd5b506106dd611c13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072b57600080fd5b50610734611c3c565b604051808215151515815260200191505060405180910390f35b34801561075a57600080fd5b50610763611c93565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107a3578082015181840152602081019050610788565b50505050905090810190601f1680156107d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107ea57600080fd5b506108376004803603604081101561080157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d35565b604051808215151515815260200191505060405180910390f35b34801561085d57600080fd5b506108aa6004803603604081101561087457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dc7565b604051808215151515815260200191505060405180910390f35b3480156108d057600080fd5b5061091d600480360360408110156108e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ef1565b604051808215151515815260200191505060405180910390f35b34801561094357600080fd5b50610aae6004803603606081101561095a57600080fd5b810190808035906020019064010000000081111561097757600080fd5b82018360208201111561098957600080fd5b803590602001918460208302840111640100000000831117156109ab57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610a0b57600080fd5b820183602082011115610a1d57600080fd5b80359060200191846020830284011164010000000083111715610a3f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f8d565b604051808215151515815260200191505060405180910390f35b348015610ad457600080fd5b50610add61224f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b2b57600080fd5b50610b8e60048036036040811015610b4257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612279565b6040518082815260200191505060405180910390f35b348015610bb057600080fd5b50610c6760048036036020811015610bc757600080fd5b8101908080359060200190640100000000811115610be457600080fd5b820183602082011115610bf657600080fd5b80359060200191846020830284011164010000000083111715610c1857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612300565b604051808215151515815260200191505060405180910390f35b348015610c8d57600080fd5b50610cd060048036036020811015610ca457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612494565b6040518082815260200191505060405180910390f35b348015610cf257600080fd5b50610e3d60048036036040811015610d0957600080fd5b8101908080359060200190640100000000811115610d2657600080fd5b820183602082011115610d3857600080fd5b80359060200191846020830284011164010000000083111715610d5a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610dba57600080fd5b820183602082011115610dcc57600080fd5b80359060200191846020830284011164010000000083111715610dee57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506124dd565b604051808215151515815260200191505060405180910390f35b348015610e6357600080fd5b50610ea660048036036020811015610e7a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126d2565b005b348015610eb457600080fd5b50610fff60048036036040811015610ecb57600080fd5b8101908080359060200190640100000000811115610ee857600080fd5b820183602082011115610efa57600080fd5b80359060200191846020830284011164010000000083111715610f1c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610f7c57600080fd5b820183602082011115610f8e57600080fd5b80359060200191846020830284011164010000000083111715610fb057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061280d565b604051808215151515815260200191505060405180910390f35b606060028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110b15780601f10611086576101008083540402835291602001916110b1565b820191906000526020600020905b81548152906001019060200180831161109457829003601f168201915b5050505050905090565b6000600160149054906101000a900460ff16151515611142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61114d3384846129dc565b6001905092915050565b6000611161611c3c565b15156111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008451111515611274576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f436f6c6c6563743a20636f6c6c656374206164647265737320697320656d707481526020017f790000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b825184511415156112ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f436f6c6c6563743a20696e76616c69642061727261792073697a65000000000081525060200191505060405180910390fd5b60008090505b84518110156113d557611335858281518110151561130d57fe5b9060200190602002015184868481518110151561132657fe5b90602001906020020151612c5d565b8273ffffffffffffffffffffffffffffffffffffffff16858281518110151561135a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f1314fd112a381beea61539dbd21ec04afcff2662ac7d1b83273aade1f53d1b9786848151811015156113a957fe5b906020019060200201516040518082815260200191505060405180910390a380806001019150506112f3565b50600190509392505050565b6000600554905090565b6000600160149054906101000a900460ff16151515611472576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61147d848484612c5d565b611516843361151185600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b6129dc565b600190509392505050565b6000600460009054906101000a900460ff16905090565b6000600160149054906101000a900460ff161515156115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b611658338461165385600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461301290919063ffffffff16565b6129dc565b6001905092915050565b61166a611c3c565b15156116de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600160149054906101000a900460ff161515611762576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60006117b5611c3c565b1515611829576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611833838361309c565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611928576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f4f776e61626c653a2063616c6c6572206973206e6f74207468652070656e646981526020017f6e67206f776e657200000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6119313361325b565b565b600160149054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611997611c3c565b1515611a0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611ad2611c3c565b1515611b46576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600160149054906101000a900460ff16151515611bcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60018060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d2b5780601f10611d0057610100808354040283529160200191611d2b565b820191906000526020600020905b815481529060010190602001808311611d0e57829003601f168201915b5050505050905090565b6000611d3f611c3c565b1515611db3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611dbd83836133e4565b6001905092915050565b6000600160149054906101000a900460ff16151515611e4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b611ee73384611ee285600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b6129dc565b6001905092915050565b6000600160149054906101000a900460ff16151515611f78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b611f83338484612c5d565b6001905092915050565b6000611f97611c3c565b151561200b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600084511115156120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f436f6c6c6563743a20636f6c6c656374206164647265737320697320656d707481526020017f790000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82518451141515612123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f436f6c6c6563743a20696e76616c69642061727261792073697a65000000000081525060200191505060405180910390fd5b60008090505b84518110156122435761216a858281518110151561214357fe5b90602001906020020151858381518110151561215b57fe5b906020019060200201516135a3565b6121a3858281518110151561217b57fe5b9060200190602002015184868481518110151561219457fe5b90602001906020020151612c5d565b8273ffffffffffffffffffffffffffffffffffffffff1685828151811015156121c857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167fcef2a588ab872cf14edd1b152ab54525aa85d0ccf08912fb5cdd419f0ef6d063868481518110151561221757fe5b906020019060200201516040518082815260200191505060405180910390a38080600101915050612129565b50600190509392505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061230a611c3c565b151561237e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600082511115156123f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4c6f636b546f6b656e3a206164647265737320697320656d707479000000000081525060200191505060405180910390fd5b60008090505b825181101561248a5761247d838281518110151561241757fe5b9060200190602002015160066000868581518110151561243357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613862565b80806001019150506123fd565b5060019050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006124e7611c3c565b151561255b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600083511115156125fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4c6f636b546f6b656e3a20756e6c6f636b206164647265737320697320656d7081526020017f747900000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81518351141515612673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c6f636b546f6b656e3a20696e76616c69642061727261792073697a6500000081525060200191505060405180910390fd5b60008090505b83518110156126c7576126ba848281518110151561269357fe5b9060200190602002015184838151811015156126ab57fe5b906020019060200201516135a3565b8080600101915050612679565b506001905092915050565b6126da611c3c565b151561274e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8573d4aae9f7fb051c6b88d7440011a1c12376acda6603a45f45bad36a8db4ce60405160405180910390a350565b6000612817611c3c565b151561288b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008351111515612904576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4c6f636b546f6b656e3a206164647265737320697320656d707479000000000081525060200191505060405180910390fd5b8151835114151561297d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c6f636b546f6b656e3a20696e76616c69642061727261792073697a6500000081525060200191505060405180910390fd5b60008090505b83518110156129d1576129c4848281518110151561299d57fe5b9060200190602002015184838151811015156129b557fe5b90602001906020020151613862565b8080600101915050612983565b506001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612aa7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612b72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612df3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612e4581600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eda81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461301290919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000828211151515613001576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b6000808284019050838110151515613092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6131568160055461301290919063ffffffff16565b6005819055506131ae81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461301290919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613326576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526020017f646472657373000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206275726e20746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6134db81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061353381600554612f8790919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561366e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4c6f636b546f6b656e3a206c6f636b2066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000811115156136e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4c6f636b546f6b656e3a2074686520616d6f756e7420697320656d707479000081525060200191505060405180910390fd5b61373881600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137cd81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461301290919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f613edbda9d1e6bda8af8e869a973f88cccf93854a11f351589038de07e1ab4e3826040518082815260200191505060405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561392d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4c6f636b546f6b656e3a206c6f636b2066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000811115156139a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4c6f636b546f6b656e3a2074686520616d6f756e7420697320656d707479000081525060200191505060405180910390fd5b6139f781600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613a8c81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461301290919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167ff9626bca62c59d77fa45a204dc096874ee066a5c5e124aa9ce6c438dbdf7387a826040518082815260200191505060405180910390a2505056fea165627a7a723058201f265f34451f0846371d4dc67fb792e9f85b184c0c1b35459d43976bd08fe6290029

Deployed Bytecode

0x60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff57806314a7a6311461027257806318160ddd1461040357806323b872dd1461042e578063313ce567146104c157806339509351146104f25780633f4ba83a1461056557806340c10f191461057c5780634e71e0c8146105ef5780635c975abb1461060657806370a0823114610635578063715018a61461069a5780638456cb59146106b15780638da5cb5b146106c85780638f32d59b1461071f57806395d89b411461074e5780639dc29fac146107de578063a457c2d714610851578063a9059cbb146108c4578063b9bcabe914610937578063da4a898e14610ac8578063dd62ed3e14610b1f578063e50c652914610ba4578063e960bb4814610c81578063f2cb9bea14610ce6578063f2fde38b14610e57578063f612436114610ea8575b600080fd5b34801561017b57600080fd5b50610184611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b506102586004803603604081101561022257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110bb565b604051808215151515815260200191505060405180910390f35b34801561027e57600080fd5b506103e96004803603606081101561029557600080fd5b81019080803590602001906401000000008111156102b257600080fd5b8201836020820111156102c457600080fd5b803590602001918460208302840111640100000000831117156102e657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561034657600080fd5b82018360208201111561035857600080fd5b8035906020019184602083028401116401000000008311171561037a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611157565b604051808215151515815260200191505060405180910390f35b34801561040f57600080fd5b506104186113e1565b6040518082815260200191505060405180910390f35b34801561043a57600080fd5b506104a76004803603606081101561045157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113eb565b604051808215151515815260200191505060405180910390f35b3480156104cd57600080fd5b506104d6611521565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104fe57600080fd5b5061054b6004803603604081101561051557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611538565b604051808215151515815260200191505060405180910390f35b34801561057157600080fd5b5061057a611662565b005b34801561058857600080fd5b506105d56004803603604081101561059f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ab565b604051808215151515815260200191505060405180910390f35b3480156105fb57600080fd5b5061060461183d565b005b34801561061257600080fd5b5061061b611933565b604051808215151515815260200191505060405180910390f35b34801561064157600080fd5b506106846004803603602081101561065857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611946565b6040518082815260200191505060405180910390f35b3480156106a657600080fd5b506106af61198f565b005b3480156106bd57600080fd5b506106c6611aca565b005b3480156106d457600080fd5b506106dd611c13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072b57600080fd5b50610734611c3c565b604051808215151515815260200191505060405180910390f35b34801561075a57600080fd5b50610763611c93565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107a3578082015181840152602081019050610788565b50505050905090810190601f1680156107d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107ea57600080fd5b506108376004803603604081101561080157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d35565b604051808215151515815260200191505060405180910390f35b34801561085d57600080fd5b506108aa6004803603604081101561087457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dc7565b604051808215151515815260200191505060405180910390f35b3480156108d057600080fd5b5061091d600480360360408110156108e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ef1565b604051808215151515815260200191505060405180910390f35b34801561094357600080fd5b50610aae6004803603606081101561095a57600080fd5b810190808035906020019064010000000081111561097757600080fd5b82018360208201111561098957600080fd5b803590602001918460208302840111640100000000831117156109ab57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610a0b57600080fd5b820183602082011115610a1d57600080fd5b80359060200191846020830284011164010000000083111715610a3f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f8d565b604051808215151515815260200191505060405180910390f35b348015610ad457600080fd5b50610add61224f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b2b57600080fd5b50610b8e60048036036040811015610b4257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612279565b6040518082815260200191505060405180910390f35b348015610bb057600080fd5b50610c6760048036036020811015610bc757600080fd5b8101908080359060200190640100000000811115610be457600080fd5b820183602082011115610bf657600080fd5b80359060200191846020830284011164010000000083111715610c1857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612300565b604051808215151515815260200191505060405180910390f35b348015610c8d57600080fd5b50610cd060048036036020811015610ca457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612494565b6040518082815260200191505060405180910390f35b348015610cf257600080fd5b50610e3d60048036036040811015610d0957600080fd5b8101908080359060200190640100000000811115610d2657600080fd5b820183602082011115610d3857600080fd5b80359060200191846020830284011164010000000083111715610d5a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610dba57600080fd5b820183602082011115610dcc57600080fd5b80359060200191846020830284011164010000000083111715610dee57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506124dd565b604051808215151515815260200191505060405180910390f35b348015610e6357600080fd5b50610ea660048036036020811015610e7a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126d2565b005b348015610eb457600080fd5b50610fff60048036036040811015610ecb57600080fd5b8101908080359060200190640100000000811115610ee857600080fd5b820183602082011115610efa57600080fd5b80359060200191846020830284011164010000000083111715610f1c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610f7c57600080fd5b820183602082011115610f8e57600080fd5b80359060200191846020830284011164010000000083111715610fb057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061280d565b604051808215151515815260200191505060405180910390f35b606060028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110b15780601f10611086576101008083540402835291602001916110b1565b820191906000526020600020905b81548152906001019060200180831161109457829003601f168201915b5050505050905090565b6000600160149054906101000a900460ff16151515611142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61114d3384846129dc565b6001905092915050565b6000611161611c3c565b15156111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008451111515611274576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f436f6c6c6563743a20636f6c6c656374206164647265737320697320656d707481526020017f790000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b825184511415156112ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f436f6c6c6563743a20696e76616c69642061727261792073697a65000000000081525060200191505060405180910390fd5b60008090505b84518110156113d557611335858281518110151561130d57fe5b9060200190602002015184868481518110151561132657fe5b90602001906020020151612c5d565b8273ffffffffffffffffffffffffffffffffffffffff16858281518110151561135a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f1314fd112a381beea61539dbd21ec04afcff2662ac7d1b83273aade1f53d1b9786848151811015156113a957fe5b906020019060200201516040518082815260200191505060405180910390a380806001019150506112f3565b50600190509392505050565b6000600554905090565b6000600160149054906101000a900460ff16151515611472576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61147d848484612c5d565b611516843361151185600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b6129dc565b600190509392505050565b6000600460009054906101000a900460ff16905090565b6000600160149054906101000a900460ff161515156115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b611658338461165385600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461301290919063ffffffff16565b6129dc565b6001905092915050565b61166a611c3c565b15156116de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600160149054906101000a900460ff161515611762576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60006117b5611c3c565b1515611829576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611833838361309c565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611928576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f4f776e61626c653a2063616c6c6572206973206e6f74207468652070656e646981526020017f6e67206f776e657200000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6119313361325b565b565b600160149054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611997611c3c565b1515611a0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611ad2611c3c565b1515611b46576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600160149054906101000a900460ff16151515611bcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60018060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d2b5780601f10611d0057610100808354040283529160200191611d2b565b820191906000526020600020905b815481529060010190602001808311611d0e57829003601f168201915b5050505050905090565b6000611d3f611c3c565b1515611db3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611dbd83836133e4565b6001905092915050565b6000600160149054906101000a900460ff16151515611e4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b611ee73384611ee285600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b6129dc565b6001905092915050565b6000600160149054906101000a900460ff16151515611f78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b611f83338484612c5d565b6001905092915050565b6000611f97611c3c565b151561200b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600084511115156120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f436f6c6c6563743a20636f6c6c656374206164647265737320697320656d707481526020017f790000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82518451141515612123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f436f6c6c6563743a20696e76616c69642061727261792073697a65000000000081525060200191505060405180910390fd5b60008090505b84518110156122435761216a858281518110151561214357fe5b90602001906020020151858381518110151561215b57fe5b906020019060200201516135a3565b6121a3858281518110151561217b57fe5b9060200190602002015184868481518110151561219457fe5b90602001906020020151612c5d565b8273ffffffffffffffffffffffffffffffffffffffff1685828151811015156121c857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167fcef2a588ab872cf14edd1b152ab54525aa85d0ccf08912fb5cdd419f0ef6d063868481518110151561221757fe5b906020019060200201516040518082815260200191505060405180910390a38080600101915050612129565b50600190509392505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061230a611c3c565b151561237e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600082511115156123f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4c6f636b546f6b656e3a206164647265737320697320656d707479000000000081525060200191505060405180910390fd5b60008090505b825181101561248a5761247d838281518110151561241757fe5b9060200190602002015160066000868581518110151561243357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613862565b80806001019150506123fd565b5060019050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006124e7611c3c565b151561255b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600083511115156125fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f4c6f636b546f6b656e3a20756e6c6f636b206164647265737320697320656d7081526020017f747900000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81518351141515612673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c6f636b546f6b656e3a20696e76616c69642061727261792073697a6500000081525060200191505060405180910390fd5b60008090505b83518110156126c7576126ba848281518110151561269357fe5b9060200190602002015184838151811015156126ab57fe5b906020019060200201516135a3565b8080600101915050612679565b506001905092915050565b6126da611c3c565b151561274e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8573d4aae9f7fb051c6b88d7440011a1c12376acda6603a45f45bad36a8db4ce60405160405180910390a350565b6000612817611c3c565b151561288b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008351111515612904576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4c6f636b546f6b656e3a206164647265737320697320656d707479000000000081525060200191505060405180910390fd5b8151835114151561297d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c6f636b546f6b656e3a20696e76616c69642061727261792073697a6500000081525060200191505060405180910390fd5b60008090505b83518110156129d1576129c4848281518110151561299d57fe5b9060200190602002015184838151811015156129b557fe5b90602001906020020151613862565b8080600101915050612983565b506001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612aa7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612b72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612df3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612e4581600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eda81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461301290919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000828211151515613001576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b6000808284019050838110151515613092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6131568160055461301290919063ffffffff16565b6005819055506131ae81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461301290919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613326576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526020017f646472657373000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206275726e20746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6134db81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061353381600554612f8790919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561366e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4c6f636b546f6b656e3a206c6f636b2066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000811115156136e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4c6f636b546f6b656e3a2074686520616d6f756e7420697320656d707479000081525060200191505060405180910390fd5b61373881600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137cd81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461301290919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f613edbda9d1e6bda8af8e869a973f88cccf93854a11f351589038de07e1ab4e3826040518082815260200191505060405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561392d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4c6f636b546f6b656e3a206c6f636b2066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000811115156139a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4c6f636b546f6b656e3a2074686520616d6f756e7420697320656d707479000081525060200191505060405180910390fd5b6139f781600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613a8c81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461301290919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167ff9626bca62c59d77fa45a204dc096874ee066a5c5e124aa9ce6c438dbdf7387a826040518082815260200191505060405180910390a2505056fea165627a7a723058201f265f34451f0846371d4dc67fb792e9f85b184c0c1b35459d43976bd08fe6290029

Deployed Bytecode Sourcemap

7614:3814:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3927:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3927:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4889:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4889:182:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4889:182:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10299:526;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10299:526:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10299:526:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;10299:526:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10299:526: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;10299:526:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;10299:526:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;10299:526:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10299:526: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;10299:526:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;10299:526:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4204:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4204:91:0;;;;;;;;;;;;;;;;;;;;;;;5081:290;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5081:290:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5081:290:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4113:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4113:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5383:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5383:240:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5383:240:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3100:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3100:105:0;;;;;;6669:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6669:141:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6669:141:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2574:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2574:99:0;;;;;;2762:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2762:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4303:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4303:118:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4303:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1605:140:0;;;;;;2991:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2991:103:0;;;;;;1310:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1310:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1507:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1507:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4018:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4018:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4018:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7142:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7142:141:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7142:141:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5631:250;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5631:250:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5631:250:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4521:198;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4521:198:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4521:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10833:592;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10833:592:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10833:592:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;10833:592:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10833:592: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;10833:592:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;10833:592:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;10833:592:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10833:592: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;10833:592:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;10833:592:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2328:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2328:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:154;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4727:154:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4727:154:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8527:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8527:333:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8527:333:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8527:333:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8527:333: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;8527:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8527:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7947:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7947:136:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7947:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8868:439;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8868:439:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8868:439:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8868:439:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8868:439: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;8868:439:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8868:439:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8868:439:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8868:439: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;8868:439:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8868:439:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1751:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1751:204:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1751:204:0;;;;;;;;;;;;;;;;;;;;;;8091:428;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8091:428:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8091:428:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8091:428:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8091:428: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;8091:428:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8091:428:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8091:428:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8091:428: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;8091:428:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8091:428:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:83;3964:13;3997:5;3990:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:83;:::o;4889:182::-;4983:4;2840:6;;;;;;;;;;;2839:7;2831:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5005;5014:10;5026:7;5035:5;5005:8;:36::i;:::-;5059:4;5052:11;;4889:182;;;;:::o;10299:526::-;10434:4;1435:9;:7;:9::i;:::-;1427:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10478:1;10459:9;:16;:20;10451:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10556:7;:14;10536:9;:16;:34;10528:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10620:6;10629:1;10620:10;;10615:181;10636:9;:16;10632:1;:20;10615:181;;;10674:46;10684:9;10694:1;10684:12;;;;;;;;;;;;;;;;;;10698:9;10709:7;10717:1;10709:10;;;;;;;;;;;;;;;;;;10674:9;:46::i;:::-;10762:9;10740:44;;10748:9;10758:1;10748:12;;;;;;;;;;;;;;;;;;10740:44;;;10773:7;10781:1;10773:10;;;;;;;;;;;;;;;;;;10740:44;;;;;;;;;;;;;;;;;;10654:3;;;;;;;10615:181;;;;10813:4;10806:11;;10299:526;;;;;:::o;4204:91::-;4248:7;4275:12;;4268:19;;4204:91;:::o;5081:290::-;5199:4;2840:6;;;;;;;;;;;2839:7;2831:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5221;5231:6;5239:9;5250:6;5221:9;:36::i;:::-;5268:73;5277:6;5285:10;5297:43;5333:6;5297:11;:19;5309:6;5297:19;;;;;;;;;;;;;;;:31;5317:10;5297:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;5268:8;:73::i;:::-;5359:4;5352:11;;5081:290;;;;;:::o;4113:83::-;4154:5;4179:9;;;;;;;;;;;4172:16;;4113:83;:::o;5383:240::-;5492:4;2840:6;;;;;;;;;;;2839:7;2831:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5514:79;5523:10;5535:7;5544:48;5581:10;5544:11;:23;5556:10;5544:23;;;;;;;;;;;;;;;:32;5568:7;5544:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;5514:8;:79::i;:::-;5611:4;5604:11;;5383:240;;;;:::o;3100:105::-;1435:9;:7;:9::i;:::-;1427:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2934:6;;;;;;;;;;;2926:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3167:5;3158:6;;:14;;;;;;;;;;;;;;;;;;3188:9;;;;;;;;;;3100:105::o;6669:141::-;6741:4;1435:9;:7;:9::i;:::-;1427:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6758:22;6764:7;6773:6;6758:5;:22::i;:::-;6798:4;6791:11;;6669:141;;;;:::o;2574:99::-;2490:13;;;;;;;;;;;2476:27;;:10;:27;;;2468:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2635:30;2654:10;2635:18;:30::i;:::-;2574:99::o;2762:26::-;;;;;;;;;;;;;:::o;4303:118::-;4360:15;4395:9;:18;4405:7;4395:18;;;;;;;;;;;;;;;;4388:25;;4303:118;;;:::o;1605:140::-;1435:9;:7;:9::i;:::-;1427:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1704:1;1667:40;;1688:6;;;;;;;;;;;1667:40;;;;;;;;;;;;1735:1;1718:6;;:19;;;;;;;;;;;;;;;;;;1605:140::o;2991:103::-;1435:9;:7;:9::i;:::-;1427:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2840:6;;;;;;;;;;;2839:7;2831:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3059:4;3050:6;;:13;;;;;;;;;;;;;;;;;;3079:7;;;;;;;;;;2991:103::o;1310:79::-;1348:7;1375:6;;;;;;;;;;;1368:13;;1310:79;:::o;1507:92::-;1547:4;1585:6;;;;;;;;;;;1571:20;;:10;:20;;;1564:27;;1507:92;:::o;4018:87::-;4057:13;4090:7;4083:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4018:87;:::o;7142:141::-;7214:4;1435:9;:7;:9::i;:::-;1427:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7231:22;7237:7;7246:6;7231:5;:22::i;:::-;7271:4;7264:11;;7142:141;;;;:::o;5631:250::-;5745:4;2840:6;;;;;;;;;;;2839:7;2831:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5767:84;5776:10;5788:7;5797:53;5834:15;5797:11;:23;5809:10;5797:23;;;;;;;;;;;;;;;:32;5821:7;5797:32;;;;;;;;;;;;;;;;:36;;:53;;;;:::i;:::-;5767:8;:84::i;:::-;5869:4;5862:11;;5631:250;;;;:::o;4521:198::-;4619:12;2840:6;;;;;;;;;;;2839:7;2831:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4649:40;4659:10;4671:9;4682:6;4649:9;:40::i;:::-;4707:4;4700:11;;4521:198;;;;:::o;10833:592::-;10974:4;1435:9;:7;:9::i;:::-;1427:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11018:1;10999:9;:16;:20;10991:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11096:7;:14;11076:9;:16;:34;11068:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11160:6;11169:1;11160:10;;11155:241;11176:9;:16;11172:1;:20;11155:241;;;11214:39;11228:9;11238:1;11228:12;;;;;;;;;;;;;;;;;;11242:7;11250:1;11242:10;;;;;;;;;;;;;;;;;;11214:13;:39::i;:::-;11268:46;11278:9;11288:1;11278:12;;;;;;;;;;;;;;;;;;11292:9;11303:7;11311:1;11303:10;;;;;;;;;;;;;;;;;;11268:9;:46::i;:::-;11362:9;11334:50;;11348:9;11358:1;11348:12;;;;;;;;;;;;;;;;;;11334:50;;;11373:7;11381:1;11373:10;;;;;;;;;;;;;;;;;;11334:50;;;;;;;;;;;;;;;;;;11194:3;;;;;;;11155:241;;;;11413:4;11406:11;;10833:592;;;;;:::o;2328:93::-;2373:7;2400:13;;;;;;;;;;;2393:20;;2328:93;:::o;4727:154::-;4814:7;4846:11;:18;4858:5;4846:18;;;;;;;;;;;;;;;:27;4865:7;4846:27;;;;;;;;;;;;;;;;4839:34;;4727:154;;;;:::o;8527:333::-;8620:4;1435:9;:7;:9::i;:::-;1427:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8664:1;8645:9;:16;:20;8637:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8715:6;8724:1;8715:10;;8710:121;8731:9;:16;8727:1;:20;8710:121;;;8769:50;8781:9;8791:1;8781:12;;;;;;;;;;;;;;;;;;8795:9;:23;8805:9;8815:1;8805:12;;;;;;;;;;;;;;;;;;8795:23;;;;;;;;;;;;;;;;8769:11;:50::i;:::-;8749:3;;;;;;;8710:121;;;;8848:4;8841:11;;8527:333;;;:::o;7947:136::-;8010:15;8050:16;:25;8067:7;8050:25;;;;;;;;;;;;;;;;8043:32;;7947:136;;;:::o;8868:439::-;8984:4;1435:9;:7;:9::i;:::-;1427:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9028:1;9009:9;:16;:20;9001:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9107:7;:14;9087:9;:16;:34;9079:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9173:6;9182:1;9173:10;;9168:110;9189:9;:16;9185:1;:20;9168:110;;;9227:39;9241:9;9251:1;9241:12;;;;;;;;;;;;;;;;;;9255:7;9263:1;9255:10;;;;;;;;;;;;;;;;;;9227:13;:39::i;:::-;9207:3;;;;;;;9168:110;;;;9295:4;9288:11;;8868:439;;;;:::o;1751:204::-;1435:9;:7;:9::i;:::-;1427:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1881:8;1865:13;;:24;;;;;;;;;;;;;;;;;;1938:8;1905:42;;1930:6;;;;;;;;;;;1905:42;;;;;;;;;;;;1751:204;:::o;8091:428::-;8205:4;1435:9;:7;:9::i;:::-;1427:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8249:1;8230:9;:16;:20;8222:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8321:7;:14;8301:9;:16;:34;8293:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8387:6;8396:1;8387:10;;8382:108;8403:9;:16;8399:1;:20;8382:108;;;8441:37;8453:9;8463:1;8453:12;;;;;;;;;;;;;;;;;;8467:7;8475:1;8467:10;;;;;;;;;;;;;;;;;;8441:11;:37::i;:::-;8421:3;;;;;;;8382:108;;;;8507:4;8500:11;;8091:428;;;;:::o;6326:335::-;6436:1;6419:19;;:5;:19;;;;6411:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6517:1;6498:21;;:7;:21;;;;6490:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6601:5;6571:11;:18;6583:5;6571:18;;;;;;;;;;;;;;;:27;6590:7;6571:27;;;;;;;;;;;;;;;:35;;;;6638:7;6622:31;;6631:5;6622:31;;;6647:5;6622:31;;;;;;;;;;;;;;;;;;6326:335;;;:::o;5889:429::-;6005:1;5987:20;;:6;:20;;;;5979:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6089:1;6068:23;;:9;:23;;;;6060:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6164:29;6186:6;6164:9;:17;6174:6;6164:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;6144:9;:17;6154:6;6144:17;;;;;;;;;;;;;;;:49;;;;6227:32;6252:6;6227:9;:20;6237:9;6227:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6204:9;:20;6214:9;6204:20;;;;;;;;;;;;;;;:55;;;;6292:9;6275:35;;6284:6;6275:35;;;6303:6;6275:35;;;;;;;;;;;;;;;;;;5889:429;;;:::o;11643:184::-;11701:7;11734:1;11729;:6;;11721:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11781:9;11797:1;11793;:5;11781:17;;11818:1;11811:8;;;11643:184;;;;:::o;11456:181::-;11514:7;11534:9;11550:1;11546;:5;11534:17;;11575:1;11570;:6;;11562:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11628:1;11621:8;;;11456:181;;;;:::o;6822:308::-;6917:1;6898:21;;:7;:21;;;;6890:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6983:24;7000:6;6983:12;;:16;;:24;;;;:::i;:::-;6968:12;:39;;;;7039:30;7062:6;7039:9;:18;7049:7;7039:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;7018:9;:18;7028:7;7018:18;;;;;;;;;;;;;;;:51;;;;7106:7;7085:37;;7102:1;7085:37;;;7115:6;7085:37;;;;;;;;;;;;;;;;;;6822:308;;:::o;1963:229::-;2057:1;2037:22;;:8;:22;;;;2029:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2147:8;2118:38;;2139:6;;;;;;;;;;;2118:38;;;;;;;;;;;;2176:8;2167:6;;:17;;;;;;;;;;;;;;;;;;1963:229;:::o;7295:302::-;7390:1;7371:21;;:7;:21;;;;7363:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7456:30;7479:6;7456:9;:18;7466:7;7456:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;7435:9;:18;7445:7;7435:18;;;;;;;;;;;;;;;:51;;;;7512:24;7529:6;7512:12;;:16;;:24;;;;:::i;:::-;7497:12;:39;;;;7578:1;7552:37;;7561:7;7552:37;;;7582:6;7552:37;;;;;;;;;;;;;;;;;;7295:302;;:::o;9710:391::-;9809:1;9792:19;;:5;:19;;;;9784:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9881:1;9872:6;:10;9864:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9956:35;9984:6;9956:16;:23;9973:5;9956:23;;;;;;;;;;;;;;;;:27;;:35;;;;:::i;:::-;9930:16;:23;9947:5;9930:23;;;;;;;;;;;;;;;:61;;;;10021:28;10042:6;10021:9;:16;10031:5;10021:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;10002:9;:16;10012:5;10002:16;;;;;;;;;;;;;;;:47;;;;10079:5;10065:28;;;10086:6;10065:28;;;;;;;;;;;;;;;;;;9710:391;;:::o;9315:387::-;9412:1;9395:19;;:5;:19;;;;9387:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9484:1;9475:6;:10;9467:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9552:28;9573:6;9552:9;:16;9562:5;9552:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;9533:9;:16;9543:5;9533:16;;;;;;;;;;;;;;;:47;;;;9617:35;9645:6;9617:16;:23;9634:5;9617:23;;;;;;;;;;;;;;;;:27;;:35;;;;:::i;:::-;9591:16;:23;9608:5;9591:23;;;;;;;;;;;;;;;:61;;;;9680:5;9668:26;;;9687:6;9668:26;;;;;;;;;;;;;;;;;;9315:387;;:::o

Swarm Source

bzzr://1f265f34451f0846371d4dc67fb792e9f85b184c0c1b35459d43976bd08fe629
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.