ETH Price: $2,411.31 (-2.46%)
Gas: 3.35 Gwei
 

Overview

Max Total Supply

1,000,000,000,000,000 SHIB

Holders

13

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 SHIB

Value
$0.00
0x37dbd7c855b1124f50c57838a81d662ce7ab3e35
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:
SHIBA

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-05-22
*/

/*

            ``                                                                                      
          `oyyys+:.                                                              `-/+syyy-          
          oyyyyyyyys/.                 ``...------------...``                 `:oyyyyyyyyy`         
         .yyyyyyyyyyyyo-         `.--:::////////////////////:::--.``        -oyyyyyyyyyyyy/         
         -yyyyyyyyyyyyyys:` `.-::://///////////////////////////////::-.` `/syyyyyyyyyyyyyyo         
         :yyyyyyyyyyyyyyyys/:///////////////////////////////////////////+yyyyyyyyyyyyyyyyys         
         :yyyssssyyyyyyyyyyys+////////////////////////////////////////+yyyyyyyyyyyssssyyyys         
         :yyysssssssyyyyyyyyyys+////////////////////////////////////+syyyyyyyyyyssssssyyyy+         
         -yyysssssssssyyyyyyyyyys////++oosssyyyyyyyyyyyysssoo++////oyyyyyyyyyyssssssssyyyy:         
         `yyyssssssssssyyyyyyyyyyyssyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssyyyyyyyyyssssssssssyyyy.         
          syyyssssssssssyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysssssssssssyyys          
          /yyysssssssssssyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysssssssssssyyyy:          
          .yyysssssssssyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysssssssssyyyy.          
         `:syyyssssssyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssssssyyyyo:.         
        .:/+yyyysssyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssssyyyy///-        
       .:///syyyssyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssyyyyo////-       
      .:////+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy//////-      
     `://////oyyyyyyyyyyyyyyhddmdhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhddddhhyyyyyyyyyyyyyy+///////.     
     :////////syyyyyyyyyyyhmNMMMMMNdyyyyyyyyyyyyyyyyyyyyyyyyyyyhmNMMMMMNdyyyyyyyyyyyys/////////`    
    -/////////+yyyyyyyyyyymMMMMMMMMMdyyyyyyyyyyyyyyyyyyyyyyyyyyNMMMMMMMMMhyyyyyyyyyyy+/////////:    
   `://///////syyyyyyyyyyymMMMMMMMMMmyyyyyyyyyyyyyyyyyyyyyyyyyyNMMMMMMMMMhyyyyyyyyyyyy//////////.   
   -/////////syyyyyyyyyyyyyddddddddhyyyyyyyyyyyyyyyyyyyyyyyyyyyhhdddddddhyyyyyyyyyyyyyy/////////:   
   :////////oyyyyyyyyyyyyoosyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyso+oyyyyyyyyyyys/////////`  
  `////////+yyyyyyyyyyyy+    .:+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys/-`    yyyyyyyyyyyyo////////-  
  .////////yyyyyyyyyyyyy/        -/syyyyyyyyyyyyyyyyyyyyyyyyyyyyyo:.        syyyyyyyyyyyy+///////:  
  -///////oyyyyyyyyyyyyys.          ./syyyyyyyyyyyyyyyyyyyyyyyo:`          :yyyyyyyyyyyyys///////:  
  -///////yyyyyyyyyyyyyyyys/-`         -syyyyyyyyyyyyyyyyyyyo.         `:+yyyyyyyyyyyyyyyy+///////  
  -//////oyyyyyyyyyyyyyyyyyyyys+/:-.`   .yyyyyyyyyyyyyyyyyyy`  ``.-:/oyyyyyyyyyyyyyyyyyyyys//////:  
  .//////syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhdmmNNMMMMMNNmdhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy//////:  
  `//////yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhdNMMMMMMMMMMMMMMMMMmdhyyyyyyyyyyyyyyyyyyyyyyyyyyyyy//////-  
   :////+yyyyyyyyyyyyyyyyyyyyyyyyyyyyhmMMMMMMMMMMMMMMMMMMMMMMNdhyyyyyyyyyyyyyyyyyyyyyyyyyyy+/////.  
   -////odmmmmmmmmdddhyyyyyyyyyyyyyydMMMMMMMMh/::::::::/yMMMMMMNhyyyyyyyyyyyyyhhdddmmmmmmddo////:   
   `////sMMMMMMMMMMMMMNNmhhyyyyyyyhNMMMMMMMMM`           dMMMMMMMdyyyyyyyyhdmNMMMMMMMMMMMMMo////-   
    -////NMMMMMMMMMMMMMMMMNmhyyyyhNMMMMMMMMMM`           dMMMMMMMMdyyyyhmNMMMMMMMMMMMMMMMMN////:`   
    `:///sMMMMMMMMMMMMMMMMMMMNdhhNMMMMMMMMMMMs`         -MMMMMMMMMMhydNMMMMMMMMMMMMMMMMMMMs////.    
     .////yMMMMMMMMMMMMMMMMMMMMNNMMMMMMMMMMMMMmo-`    .oNMMMMMMMMMMNNMMMMMMMMMMMMMMMMMMMMh////-     
      .////sNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmo /dNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy////:      
       -////+dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNs////:`      
        -/////smMMMMMMMMMMMMMMMMMMMMMMMMmsoohdddds. `/ddddyoosMMMMMMMMMMMMMMMMMMMMMMMd+////:`       
         .://///ymMMMMMMMMMMMMMMMMMMMMMMM+  :o+/::--::/+os.  /MMMMMMMMMMMMMMMMMMMMMms/////-`        
          `://////smMMMMMMMMMMMMMMMMMMMMMNy +MMo+y:-o+sMMM-`hNMMMMMMMMMMMMMMMMMMMms/////:.          
           `-://////odNMMMMMMMMMMMMMMMMMMMM+oMMMMMdhMMMMMM+yMMMMMMMMMMMMMMMMMMNdo//////:`           
             `:///////+smNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmy+//////:.             
               .:////////+ydNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmyo///////:-`              
                 .://///////+shNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNds+////////:-`                
                   .-://////////+shmNMMMMMMMMMMMMMMMMMMMMMMMMMMMNNdyo//////////:.`                  
                     `.::///////////+oyhmNNMMMMMMMMMMMMMMMNNmhyo+///////////:-`                     
                        `.:://////////////+osyyhhddhhhysso+/////////////::-.                        
                           `.-::////////////////////////////////////::-.`                           
                                `.-:://////////////////////////::-..`                               
                                     ``..---:::::::::::::--..`
*/

pragma solidity 0.5.10;

/*
 * SHIBA TOKEN - The Dogecoin Killer
 *
 * https://shibatoken.com
 * Telegram Group 1: https://t.me/ShibaInuTheDogecoinKiller
 * Telegram Group 2: https://t.me/ShibaInuTheDogecoinKiller2
 * Telegram Group 3: https://t.me/ShibaInuTheDogecoinKiller3
 *  
 * Decentralized Meme Tokens that grew into a vibrant ecosystem
 * ShibaSwap. Fun tokens. Artist incubator.
 * Growing 999k+ Community & more on the horizon!
 *
 * SHIB is an experiment in decentralized spontaneous community building. 
 * SHIB token is our first token and allows users to hold Billions or even Trillions of them. 
 * Nicknamed the DOGECOIN KILLER, this ERC-20 ONLY token can remain well under a penny and still outpace Dogecoin in a small amount of time (relatively speaking).
 *
 * We locked the 50% of the total supply to Uniswap and threw away the keys! 
 * The remaining 50% was burned to Vitalik Buterin and we were the first project following this path, so everyone has to buy on the open market, ensuring a fair and complete distribution where devs don't own team tokens they can dump on the community.
 */
/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error.
 */
library SafeMath {

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {

    address internal _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(msg.sender), "Caller is not the owner");
        _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == _owner;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "New owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }


    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}

/**
 * @title MinterRole
 * @dev role for addresses who has permission to mint tokens.
 */
contract MinterRole is Ownable {
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    modifier onlyMinter() {
        require(isMinter(msg.sender), "Caller has no permission");
        _;
    }

    function isMinter(address account) public view returns (bool) {
        return(_minters.has(account) || isOwner(account));
    }

    function addMinter(address account) public onlyOwner {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function removeMinter(address account) public onlyOwner {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}

/**
 * @title HalterRole
 * @dev role for addresses who has permission to pause any token movement.
 */
contract HalterRole is Ownable {
    using Roles for Roles.Role;

    event HalterAdded(address indexed account);
    event HalterRemoved(address indexed account);

    Roles.Role private _halters;

    modifier onlyHalter() {
        require(isHalter(msg.sender), "Caller has no permission");
        _;
    }

    function isHalter(address account) public view returns (bool) {
        return(_halters.has(account) || isOwner(account));
    }

    function addHalter(address account) public onlyOwner {
        _halters.add(account);
        emit HalterAdded(account);
    }

    function removeHalter(address account) public onlyOwner {
        _halters.remove(account);
        emit HalterRemoved(account);
    }
}

/**
 * @title ERC20 interface
 * @dev see https://eips.ethereum.org/EIPS/eip-20
 */
interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);
    function totalSupply() external view returns (uint256);
    function balanceOf(address who) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * See https://eips.ethereum.org/EIPS/eip-20
 */
contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowed;

    uint256 private _totalSupply;

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

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

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

    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

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

    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        _transfer(from, to, value);
        _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));
        return true;
    }

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

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

    function _transfer(address from, address to, uint256 value) internal {
        require(to != address(0));

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }

    function _mint(address account, uint256 value) internal {
        require(account != address(0));

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

    function _approve(address owner, address spender, uint256 value) internal {
        require(spender != address(0));
        require(owner != address(0));

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

    function _burn(address account, uint256 amount) internal {
        require(account != address(0));

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

    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, msg.sender, _allowed[account][msg.sender].sub(amount));
    }

}

/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for.
 */
contract ERC20Burnable is ERC20 {

    function burn(uint256 amount) public {
        _burn(msg.sender, amount);
    }

    function burnFrom(address account, uint256 amount) public {
        _burnFrom(account, amount);
    }

}

/**
 * @dev Extension of {ERC20} that adds a set of accounts with the {MinterRole},
 * which have permission to mint (create) new tokens as they see fit.
 */
contract ERC20Mintable is ERC20Burnable, MinterRole {

    function mint(address account, uint256 amount) public onlyMinter returns (bool) {
        _mint(account, amount);
        return true;
    }

}

/**
 * @dev Extension of {ERC20} that adds a possibility to temporary prevent any token movements.
 */
contract ERC20Haltable is ERC20Mintable, HalterRole {

    bool public paused;

    event Paused(address by);
    event Unpaused(address by);

    modifier notPaused() {
        require(!paused);
        _;
    }

    function pause() public onlyHalter {
        paused = true;
        emit Paused(msg.sender);
    }

    function unpause() public onlyHalter {
        paused = false;
        emit Unpaused(msg.sender);
    }

    function _transfer(address from, address to, uint256 value) internal notPaused {
        super._transfer(from, to, value);
    }

    function _mint(address account, uint256 value) internal notPaused {
        super._mint(account, value);
    }

    function _burn(address account, uint256 amount) internal notPaused {
        super._burn(account, amount);
    }

}

/**
 * @title ApproveAndCall Interface.
 * @dev ApproveAndCall system allows to communicate with smart-contracts.
 */
interface IApproveAndCallFallBack {
    function receiveApproval(address from, uint256 amount, address token, bytes calldata extraData) external;
}

/**
 * @title The main project contract.
 */
contract SHIBA is ERC20Haltable {

    string private _name = "SHIBA INU";
    string private _symbol = "SHIB";
    uint8 private _decimals = 18;

    uint256 internal constant _emission = 1000000000000000 * (10 ** 18);

    mapping (address => bool) private _contracts;

    bool public mintingFinished;

    mapping (address => uint256) internal holderMap;

    address[] public holderList;

    modifier onlyMinter() {
        if (mintingFinished) {
            revert();
        }
        require(isMinter(msg.sender), "Caller has no permission");
        _;
    }

    constructor() public {
        _addHolder(address(0));
    }

    function _transfer(address from, address to, uint256 value) internal {
        if (value != 0) {
            if (holderMap[to] == 0) {
                _addHolder(to);
            }
            if (balanceOf(from).sub(value) == 0) {
                _removeHolder(from);
            }
        }

        super._transfer(from, to, value);
    }

    function _mint(address account, uint256 value) internal {
        require(totalSupply().add(value) <= _emission);

        if (value != 0 && holderMap[account] == 0) {
            _addHolder(account);
        }

        super._mint(account, value);
    }

    function _burn(address account, uint256 amount) internal {
        if (balanceOf(account).sub(amount) == 0) {
            _removeHolder(account);
        }

        super._burn(account, amount);
    }

    function _addHolder(address account) internal {
        holderList.push(account);
        holderMap[account] = holderList.length.sub(1);
    }

    function _removeHolder(address account) internal {
        if (holderList.length > 1) {
            holderList[holderMap[account]] = holderList[holderList.length.sub(1)];
            holderMap[holderList[holderList.length.sub(1)]] = holderMap[account];
        }
        holderMap[account] = 0;
        holderList.length = holderList.length.sub(1);
    }

    function approveAndCall(address spender, uint256 amount, bytes memory extraData) public returns (bool) {
        require(approve(spender, amount));

        IApproveAndCallFallBack(spender).receiveApproval(msg.sender, amount, address(this), extraData);

        return true;
    }

    function transfer(address to, uint256 value) public returns (bool) {

        if (_contracts[to]) {
            approveAndCall(to, value, new bytes(0));
        } else {
            super.transfer(to, value);
        }

        return true;

    }

    function registerContract(address addr) public onlyOwner {
        require(isContract(addr));
        _contracts[addr] = true;
    }

    function unregisterContract(address addr) external onlyOwner {
        _contracts[addr] = false;
    }

    function finishMinting() external onlyMinter {
        mintingFinished = true;
    }

    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 isRegistered(address addr) public view returns (bool) {
        return _contracts[addr];
    }

    function isContract(address addr) internal view returns (bool) {
        uint size;
        assembly { size := extcodesize(addr) }
        return size > 0;
    }

    function amountOfHolders() public view returns (uint256) {
        return holderList.length.sub(1);
    }

    function holders() public view returns (address[] memory) {
        return holderList;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"holderList","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"registerContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"removeMinter","outputs":[],"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":"amount","type":"uint256"}],"name":"burn","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":"isHalter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"holders","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"removeHalter","outputs":[],"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":true,"inputs":[],"name":"amountOfHolders","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isRegistered","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addHalter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"amount","type":"uint256"},{"name":"extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"unregisterContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"by","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"by","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"HalterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"HalterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040526040518060400160405280600981526020017f534849424120494e55000000000000000000000000000000000000000000000081525060079080519060200190620000519291906200028d565b506040518060400160405280600481526020017f5348494200000000000000000000000000000000000000000000000000000000815250600890805190602001906200009f9291906200028d565b506012600960006101000a81548160ff021916908360ff160217905550348015620000c957600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36200019a6000620001a060201b60201c565b6200033c565b600d8190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620002266001600d805490506200026c60201b620023601790919060201c565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000828211156200027c57600080fd5b600082840390508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002d057805160ff191683800117855562000301565b8280016001018555821562000301579182015b8281111562000300578251825591602001919060010190620002e3565b5b50905062000310919062000314565b5090565b6200033991905b80821115620003355760008160009055506001016200031b565b5090565b90565b613059806200034c6000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806379cc679011610125578063a74baaa4116100ad578063c440b5f61161007c578063c440b5f614610ae2578063cae9ca5114610b26578063dd62ed3e14610c23578063f2fde38b14610c9b578063fac2c62114610cdf5761021c565b8063a74baaa4146109a6578063a9059cbb146109c4578063aa271e1a14610a2a578063c3c5a54714610a865761021c565b80638da5cb5b116100f45780638da5cb5b146107eb57806395d89b4114610835578063983b2d56146108b8578063a1e8b4f1146108fc578063a457c2d7146109405761021c565b806379cc67901461072a5780637d64bcb4146107785780638188f71c146107825780638456cb59146107e15761021c565b8063313ce567116101a857806342966c681161017757806342966c681461061c5780635c975abb1461064a5780635fe0a0181461066c57806370a08231146106c8578063715018a6146107205761021c565b8063313ce5671461052257806339509351146105465780633f4ba83a146105ac57806340c10f19146105b65761021c565b806318160ddd116101ef57806318160ddd1461039a57806322a5dde4146103b857806323b872dd146103fc5780632f54bf6e146104825780633092afd5146104de5761021c565b806305d2035b1461022157806306fdde0314610243578063095ea7b3146102c657806316ad42ad1461032c575b600080fd5b610229610d23565b604051808215151515815260200191505060405180910390f35b61024b610d36565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028b578082015181840152602081019050610270565b50505050905090810190601f1680156102b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610312600480360360408110156102dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dd8565b604051808215151515815260200191505060405180910390f35b6103586004803603602081101561034257600080fd5b8101908080359060200190929190505050610def565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103a2610e2b565b6040518082815260200191505060405180910390f35b6103fa600480360360208110156103ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e35565b005b6104686004803603606081101561041257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f1d565b604051808215151515815260200191505060405180910390f35b6104c46004803603602081101561049857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fce565b604051808215151515815260200191505060405180910390f35b610520600480360360208110156104f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611028565b005b61052a6110fd565b604051808260ff1660ff16815260200191505060405180910390f35b6105926004803603604081101561055c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611114565b604051808215151515815260200191505060405180910390f35b6105b46111b9565b005b610602600480360360408110156105cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112b4565b604051808215151515815260200191505060405180910390f35b6106486004803603602081101561063257600080fd5b810190808035906020019092919050505061135f565b005b61065261136c565b604051808215151515815260200191505060405180910390f35b6106ae6004803603602081101561068257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061137f565b604051808215151515815260200191505060405180910390f35b61070a600480360360208110156106de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ac565b6040518082815260200191505060405180910390f35b6107286113f4565b005b6107766004803603604081101561074057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611530565b005b61078061153e565b005b61078a6115f0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107cd5780820151818401526020810190506107b2565b505050509050019250505060405180910390f35b6107e961167e565b005b6107f3611779565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61083d6117a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561087d578082015181840152602081019050610862565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108fa600480360360208110156108ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611845565b005b61093e6004803603602081101561091257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061191a565b005b61098c6004803603604081101561095657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119ef565b604051808215151515815260200191505060405180910390f35b6109ae611a94565b6040518082815260200191505060405180910390f35b610a10600480360360408110156109da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ab4565b604051808215151515815260200191505060405180910390f35b610a6c60048036036020811015610a4057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b63565b604051808215151515815260200191505060405180910390f35b610ac860048036036020811015610a9c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b90565b604051808215151515815260200191505060405180910390f35b610b2460048036036020811015610af857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611be6565b005b610c0960048036036060811015610b3c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610b8357600080fd5b820183602082011115610b9557600080fd5b80359060200191846001830284011164010000000083111715610bb757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611cbb565b604051808215151515815260200191505060405180910390f35b610c8560048036036040811015610c3957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e1b565b6040518082815260200191505060405180910390f35b610cdd60048036036020811015610cb157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ea2565b005b610d2160048036036020811015610cf557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612080565b005b600b60009054906101000a900460ff1681565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dce5780601f10610da357610100808354040283529160200191610dce565b820191906000526020600020905b815481529060010190602001808311610db157829003601f168201915b5050505050905090565b6000610de5338484612156565b6001905092915050565b600d8181548110610dfc57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610e3e33610fce565b610eb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b610eb9816122b5565b610ec257600080fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610f2a8484846122c8565b610fc38433610fbe85600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236090919063ffffffff16565b612156565b600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61103133610fce565b6110a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6110b781600461238090919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b6000600960009054906101000a900460ff16905090565b60006111af33846111aa85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243d90919063ffffffff16565b612156565b6001905092915050565b6111c23361137f565b611234576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43616c6c657220686173206e6f207065726d697373696f6e000000000000000081525060200191505060405180910390fd5b6000600660006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600b60009054906101000a900460ff16156112d057600080fd5b6112d933611b63565b61134b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43616c6c657220686173206e6f207065726d697373696f6e000000000000000081525060200191505060405180910390fd5b611355838361245c565b6001905092915050565b61136933826124fd565b50565b600660009054906101000a900460ff1681565b600061139582600561253890919063ffffffff16565b806113a557506113a482610fce565b5b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113fd33610fce565b61146f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61153a8282612616565b5050565b600b60009054906101000a900460ff161561155857600080fd5b61156133611b63565b6115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43616c6c657220686173206e6f207065726d697373696f6e000000000000000081525060200191505060405180910390fd5b6001600b60006101000a81548160ff021916908315150217905550565b6060600d80548060200260200160405190810160405280929190818152602001828054801561167457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161162a575b5050505050905090565b6116873361137f565b6116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43616c6c657220686173206e6f207065726d697373696f6e000000000000000081525060200191505060405180910390fd5b6001600660006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060088054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561183b5780601f106118105761010080835404028352916020019161183b565b820191906000526020600020905b81548152906001019060200180831161181e57829003601f168201915b5050505050905090565b61184e33610fce565b6118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6118d48160046126bd90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b61192333610fce565b611995576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6119a981600561238090919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f4aea7d7b9f1c782799f10f55c8dd49fbe23c0824d22887043ec8cb631e9289e560405160405180910390a250565b6000611a8a3384611a8585600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236090919063ffffffff16565b612156565b6001905092915050565b6000611aaf6001600d8054905061236090919063ffffffff16565b905090565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b4d57611b47838360006040519080825280601f01601f191660200182016040528015611b415781602001600182028038833980820191505090505b50611cbb565b50611b59565b611b578383612798565b505b6001905092915050565b6000611b7982600461253890919063ffffffff16565b80611b895750611b8882610fce565b5b9050919050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611bef33610fce565b611c61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b611c758160056126bd90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fc3957472ba41ba0725d850fd85857b6c5ea0070f71229e02b17fb370eb0abba760405160405180910390a250565b6000611cc78484610dd8565b611cd057600080fd5b8373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611da9578082015181840152602081019050611d8e565b50505050905090810190601f168015611dd65780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611df857600080fd5b505af1158015611e0c573d6000803e3d6000fd5b50505050600190509392505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611eab33610fce565b611f1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611fc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4e6577206f776e657220697320746865207a65726f206164647265737300000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61208933610fce565b6120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561219057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121ca57600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600080823b905060008111915050919050565b60008114612350576000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561232257612321826127af565b5b600061233f82612331866113ac565b61236090919063ffffffff16565b141561234f5761234e83612874565b5b5b61235b838383612aa8565b505050565b60008282111561236f57600080fd5b600082840390508091505092915050565b61238a8282612538565b6123df576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe26021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008082840190508381101561245257600080fd5b8091505092915050565b6d314dc6448d9338c15b0a0000000061248582612477610e2b565b61243d90919063ffffffff16565b111561249057600080fd5b600081141580156124e057506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156124ef576124ee826127af565b5b6124f98282612ad2565b5050565b600061251a8261250c856113ac565b61236090919063ffffffff16565b141561252a5761252982612874565b5b6125348282612afa565b5050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130036022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61262082826124fd565b6126b982336126b484600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236090919063ffffffff16565b612156565b5050565b6126c78282612538565b1561273a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006127a53384846122c8565b6001905092915050565b600d8190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061282e6001600d8054905061236090919063ffffffff16565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6001600d805490501115612a3957600d61289d6001600d8054905061236090919063ffffffff16565b815481106128a757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811061291e57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c6000600d6129c56001600d8054905061236090919063ffffffff16565b815481106129cf57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a976001600d8054905061236090919063ffffffff16565b600d81612aa49190612f90565b5050565b600660009054906101000a900460ff1615612ac257600080fd5b612acd838383612b22565b505050565b600660009054906101000a900460ff1615612aec57600080fd5b612af68282612cec565b5050565b600660009054906101000a900460ff1615612b1457600080fd5b612b1e8282612e3e565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b5c57600080fd5b612bad816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c40816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d2657600080fd5b612d3b8160025461243d90919063ffffffff16565b600281905550612d92816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e7857600080fd5b612ec9816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236090919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f208160025461236090919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b815481835581811115612fb757818360005260206000209182019101612fb69190612fbc565b5b505050565b612fde91905b80821115612fda576000816000905550600101612fc2565b5090565b9056fe526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a72305820f72bc9ad26052e779969e48bbde324972ea19346f0fcd9714900b1301acd30d064736f6c634300050a0032

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061021c5760003560e01c806379cc679011610125578063a74baaa4116100ad578063c440b5f61161007c578063c440b5f614610ae2578063cae9ca5114610b26578063dd62ed3e14610c23578063f2fde38b14610c9b578063fac2c62114610cdf5761021c565b8063a74baaa4146109a6578063a9059cbb146109c4578063aa271e1a14610a2a578063c3c5a54714610a865761021c565b80638da5cb5b116100f45780638da5cb5b146107eb57806395d89b4114610835578063983b2d56146108b8578063a1e8b4f1146108fc578063a457c2d7146109405761021c565b806379cc67901461072a5780637d64bcb4146107785780638188f71c146107825780638456cb59146107e15761021c565b8063313ce567116101a857806342966c681161017757806342966c681461061c5780635c975abb1461064a5780635fe0a0181461066c57806370a08231146106c8578063715018a6146107205761021c565b8063313ce5671461052257806339509351146105465780633f4ba83a146105ac57806340c10f19146105b65761021c565b806318160ddd116101ef57806318160ddd1461039a57806322a5dde4146103b857806323b872dd146103fc5780632f54bf6e146104825780633092afd5146104de5761021c565b806305d2035b1461022157806306fdde0314610243578063095ea7b3146102c657806316ad42ad1461032c575b600080fd5b610229610d23565b604051808215151515815260200191505060405180910390f35b61024b610d36565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028b578082015181840152602081019050610270565b50505050905090810190601f1680156102b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610312600480360360408110156102dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dd8565b604051808215151515815260200191505060405180910390f35b6103586004803603602081101561034257600080fd5b8101908080359060200190929190505050610def565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103a2610e2b565b6040518082815260200191505060405180910390f35b6103fa600480360360208110156103ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e35565b005b6104686004803603606081101561041257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f1d565b604051808215151515815260200191505060405180910390f35b6104c46004803603602081101561049857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fce565b604051808215151515815260200191505060405180910390f35b610520600480360360208110156104f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611028565b005b61052a6110fd565b604051808260ff1660ff16815260200191505060405180910390f35b6105926004803603604081101561055c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611114565b604051808215151515815260200191505060405180910390f35b6105b46111b9565b005b610602600480360360408110156105cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112b4565b604051808215151515815260200191505060405180910390f35b6106486004803603602081101561063257600080fd5b810190808035906020019092919050505061135f565b005b61065261136c565b604051808215151515815260200191505060405180910390f35b6106ae6004803603602081101561068257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061137f565b604051808215151515815260200191505060405180910390f35b61070a600480360360208110156106de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ac565b6040518082815260200191505060405180910390f35b6107286113f4565b005b6107766004803603604081101561074057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611530565b005b61078061153e565b005b61078a6115f0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107cd5780820151818401526020810190506107b2565b505050509050019250505060405180910390f35b6107e961167e565b005b6107f3611779565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61083d6117a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561087d578082015181840152602081019050610862565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108fa600480360360208110156108ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611845565b005b61093e6004803603602081101561091257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061191a565b005b61098c6004803603604081101561095657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119ef565b604051808215151515815260200191505060405180910390f35b6109ae611a94565b6040518082815260200191505060405180910390f35b610a10600480360360408110156109da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ab4565b604051808215151515815260200191505060405180910390f35b610a6c60048036036020811015610a4057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b63565b604051808215151515815260200191505060405180910390f35b610ac860048036036020811015610a9c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b90565b604051808215151515815260200191505060405180910390f35b610b2460048036036020811015610af857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611be6565b005b610c0960048036036060811015610b3c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610b8357600080fd5b820183602082011115610b9557600080fd5b80359060200191846001830284011164010000000083111715610bb757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611cbb565b604051808215151515815260200191505060405180910390f35b610c8560048036036040811015610c3957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e1b565b6040518082815260200191505060405180910390f35b610cdd60048036036020811015610cb157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ea2565b005b610d2160048036036020811015610cf557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612080565b005b600b60009054906101000a900460ff1681565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dce5780601f10610da357610100808354040283529160200191610dce565b820191906000526020600020905b815481529060010190602001808311610db157829003601f168201915b5050505050905090565b6000610de5338484612156565b6001905092915050565b600d8181548110610dfc57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610e3e33610fce565b610eb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b610eb9816122b5565b610ec257600080fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610f2a8484846122c8565b610fc38433610fbe85600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236090919063ffffffff16565b612156565b600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61103133610fce565b6110a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6110b781600461238090919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b6000600960009054906101000a900460ff16905090565b60006111af33846111aa85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243d90919063ffffffff16565b612156565b6001905092915050565b6111c23361137f565b611234576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43616c6c657220686173206e6f207065726d697373696f6e000000000000000081525060200191505060405180910390fd5b6000600660006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600b60009054906101000a900460ff16156112d057600080fd5b6112d933611b63565b61134b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43616c6c657220686173206e6f207065726d697373696f6e000000000000000081525060200191505060405180910390fd5b611355838361245c565b6001905092915050565b61136933826124fd565b50565b600660009054906101000a900460ff1681565b600061139582600561253890919063ffffffff16565b806113a557506113a482610fce565b5b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113fd33610fce565b61146f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61153a8282612616565b5050565b600b60009054906101000a900460ff161561155857600080fd5b61156133611b63565b6115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43616c6c657220686173206e6f207065726d697373696f6e000000000000000081525060200191505060405180910390fd5b6001600b60006101000a81548160ff021916908315150217905550565b6060600d80548060200260200160405190810160405280929190818152602001828054801561167457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161162a575b5050505050905090565b6116873361137f565b6116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43616c6c657220686173206e6f207065726d697373696f6e000000000000000081525060200191505060405180910390fd5b6001600660006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060088054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561183b5780601f106118105761010080835404028352916020019161183b565b820191906000526020600020905b81548152906001019060200180831161181e57829003601f168201915b5050505050905090565b61184e33610fce565b6118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6118d48160046126bd90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b61192333610fce565b611995576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6119a981600561238090919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f4aea7d7b9f1c782799f10f55c8dd49fbe23c0824d22887043ec8cb631e9289e560405160405180910390a250565b6000611a8a3384611a8585600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236090919063ffffffff16565b612156565b6001905092915050565b6000611aaf6001600d8054905061236090919063ffffffff16565b905090565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b4d57611b47838360006040519080825280601f01601f191660200182016040528015611b415781602001600182028038833980820191505090505b50611cbb565b50611b59565b611b578383612798565b505b6001905092915050565b6000611b7982600461253890919063ffffffff16565b80611b895750611b8882610fce565b5b9050919050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611bef33610fce565b611c61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b611c758160056126bd90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fc3957472ba41ba0725d850fd85857b6c5ea0070f71229e02b17fb370eb0abba760405160405180910390a250565b6000611cc78484610dd8565b611cd057600080fd5b8373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611da9578082015181840152602081019050611d8e565b50505050905090810190601f168015611dd65780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611df857600080fd5b505af1158015611e0c573d6000803e3d6000fd5b50505050600190509392505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611eab33610fce565b611f1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611fc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4e6577206f776e657220697320746865207a65726f206164647265737300000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61208933610fce565b6120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561219057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121ca57600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600080823b905060008111915050919050565b60008114612350576000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561232257612321826127af565b5b600061233f82612331866113ac565b61236090919063ffffffff16565b141561234f5761234e83612874565b5b5b61235b838383612aa8565b505050565b60008282111561236f57600080fd5b600082840390508091505092915050565b61238a8282612538565b6123df576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fe26021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008082840190508381101561245257600080fd5b8091505092915050565b6d314dc6448d9338c15b0a0000000061248582612477610e2b565b61243d90919063ffffffff16565b111561249057600080fd5b600081141580156124e057506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156124ef576124ee826127af565b5b6124f98282612ad2565b5050565b600061251a8261250c856113ac565b61236090919063ffffffff16565b141561252a5761252982612874565b5b6125348282612afa565b5050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130036022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61262082826124fd565b6126b982336126b484600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236090919063ffffffff16565b612156565b5050565b6126c78282612538565b1561273a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006127a53384846122c8565b6001905092915050565b600d8190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061282e6001600d8054905061236090919063ffffffff16565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6001600d805490501115612a3957600d61289d6001600d8054905061236090919063ffffffff16565b815481106128a757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811061291e57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c6000600d6129c56001600d8054905061236090919063ffffffff16565b815481106129cf57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a976001600d8054905061236090919063ffffffff16565b600d81612aa49190612f90565b5050565b600660009054906101000a900460ff1615612ac257600080fd5b612acd838383612b22565b505050565b600660009054906101000a900460ff1615612aec57600080fd5b612af68282612cec565b5050565b600660009054906101000a900460ff1615612b1457600080fd5b612b1e8282612e3e565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b5c57600080fd5b612bad816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c40816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d2657600080fd5b612d3b8160025461243d90919063ffffffff16565b600281905550612d92816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e7857600080fd5b612ec9816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236090919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f208160025461236090919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b815481835581811115612fb757818360005260206000209182019101612fb69190612fbc565b5b505050565b612fde91905b80821115612fda576000816000905550600101612fc2565b5090565b9056fe526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a72305820f72bc9ad26052e779969e48bbde324972ea19346f0fcd9714900b1301acd30d064736f6c634300050a0032

Deployed Bytecode Sourcemap

16145:3719:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16145:3719:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16431:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19087:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;19087:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12011:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12011:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16523:27;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16523:27:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11511:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18738:135;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18738:135:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12167:228;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12167:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7427:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7427:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9390:137;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9390:137:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;19273:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12403:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12403:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15327:106;;;:::i;:::-;;14730:143;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14730:143:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14306:81;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14306:81:0;;;;;;;;;;;;;;;;;:::i;:::-;;15049:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9971:130;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9971:130:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11610:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11610:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7539:140;;;:::i;:::-;;14395:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14395:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18993:86;;;:::i;:::-;;19765:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;19765:94:0;;;;;;;;;;;;;;;;;15218:101;;;:::i;:::-;;7225:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19178:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;19178:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9253:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9253:129:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10246:137;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10246:137:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12614:213;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12614:213:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19650:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18473:257;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18473:257:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9115:130;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9115:130:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19364:105;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19364:105:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10109:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10109:129:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18179:286;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18179:286:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;18179:286:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18179:286:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;18179:286: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;;18179:286:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11724:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11724:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7687:227;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7687:227:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18881:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18881:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;16431:27;;;;;;;;;;;;;:::o;19087:83::-;19124:13;19157:5;19150:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19087:83;:::o;12011:148::-;12076:4;12093:36;12102:10;12114:7;12123:5;12093:8;:36::i;:::-;12147:4;12140:11;;12011:148;;;;:::o;16523:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11511:91::-;11555:7;11582:12;;11575:19;;11511:91;:::o;18738:135::-;7352:19;7360:10;7352:7;:19::i;:::-;7344:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18814:16;18825:4;18814:10;:16::i;:::-;18806:25;;;;;;18861:4;18842:10;:16;18853:4;18842:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;18738:135;:::o;12167:228::-;12246:4;12263:26;12273:4;12279:2;12283:5;12263:9;:26::i;:::-;12300:65;12309:4;12315:10;12327:37;12358:5;12327:8;:14;12336:4;12327:14;;;;;;;;;;;;;;;:26;12342:10;12327:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;12300:8;:65::i;:::-;12383:4;12376:11;;12167:228;;;;;:::o;7427:104::-;7482:4;7517:6;;;;;;;;;;;7506:17;;:7;:17;;;7499:24;;7427:104;;;:::o;9390:137::-;7352:19;7360:10;7352:7;:19::i;:::-;7344:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9457:24;9473:7;9457:8;:15;;:24;;;;:::i;:::-;9511:7;9497:22;;;;;;;;;;;;9390:137;:::o;19273:83::-;19314:5;19339:9;;;;;;;;;;;19332:16;;19273:83;:::o;12403:203::-;12483:4;12500:76;12509:10;12521:7;12530:45;12564:10;12530:8;:20;12539:10;12530:20;;;;;;;;;;;;;;;:29;12551:7;12530:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;12500:8;:76::i;:::-;12594:4;12587:11;;12403:203;;;;:::o;15327:106::-;9894:20;9903:10;9894:8;:20::i;:::-;9886:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15384:5;15375:6;;:14;;;;;;;;;;;;;;;;;;15405:20;15414:10;15405:20;;;;;;;;;;;;;;;;;;;;;;15327:106::o;14730:143::-;14804:4;16596:15;;;;;;;;;;;16592:56;;;16628:8;;;16592:56;16666:20;16675:10;16666:8;:20::i;:::-;16658:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14821:22;14827:7;14836:6;14821:5;:22::i;:::-;14861:4;14854:11;;14730:143;;;;:::o;14306:81::-;14354:25;14360:10;14372:6;14354:5;:25::i;:::-;14306:81;:::o;15049:18::-;;;;;;;;;;;;;:::o;9971:130::-;10027:4;10051:21;10064:7;10051:8;:12;;:21;;;;:::i;:::-;:41;;;;10076:16;10084:7;10076;:16::i;:::-;10051:41;10044:49;;9971:130;;;:::o;11610:106::-;11665:7;11692:9;:16;11702:5;11692:16;;;;;;;;;;;;;;;;11685:23;;11610:106;;;:::o;7539:140::-;7352:19;7360:10;7352:7;:19::i;:::-;7344:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7638:1;7601:40;;7622:6;;;;;;;;;;;7601:40;;;;;;;;;;;;7669:1;7652:6;;:19;;;;;;;;;;;;;;;;;;7539:140::o;14395:103::-;14464:26;14474:7;14483:6;14464:9;:26::i;:::-;14395:103;;:::o;18993:86::-;16596:15;;;;;;;;;;;16592:56;;;16628:8;;;16592:56;16666:20;16675:10;16666:8;:20::i;:::-;16658:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19067:4;19049:15;;:22;;;;;;;;;;;;;;;;;;18993:86::o;19765:94::-;19805:16;19841:10;19834:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19765:94;:::o;15218:101::-;9894:20;9903:10;9894:8;:20::i;:::-;9886:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15273:4;15264:6;;:13;;;;;;;;;;;;;;;;;;15293:18;15300:10;15293:18;;;;;;;;;;;;;;;;;;;;;;15218:101::o;7225:79::-;7263:7;7290:6;;;;;;;;;;;7283:13;;7225:79;:::o;19178:87::-;19217:13;19250:7;19243:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19178:87;:::o;9253:129::-;7352:19;7360:10;7352:7;:19::i;:::-;7344:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9317:21;9330:7;9317:8;:12;;:21;;;;:::i;:::-;9366:7;9354:20;;;;;;;;;;;;9253:129;:::o;10246:137::-;7352:19;7360:10;7352:7;:19::i;:::-;7344:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10313:24;10329:7;10313:8;:15;;:24;;;;:::i;:::-;10367:7;10353:22;;;;;;;;;;;;10246:137;:::o;12614:213::-;12699:4;12716:81;12725:10;12737:7;12746:50;12780:15;12746:8;:20;12755:10;12746:20;;;;;;;;;;;;;;;:29;12767:7;12746:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;12716:8;:81::i;:::-;12815:4;12808:11;;12614:213;;;;:::o;19650:107::-;19698:7;19725:24;19747:1;19725:10;:17;;;;:21;;:24;;;;:::i;:::-;19718:31;;19650:107;:::o;18473:257::-;18534:4;18557:10;:14;18568:2;18557:14;;;;;;;;;;;;;;;;;;;;;;;;;18553:144;;;18588:39;18603:2;18607:5;18624:1;18614:12;;;;;;;;;;;;;;;;;;;;;;;;;29:1:-1;21:6;17:14;116:4;104:10;96:6;87:34;147:4;139:6;135:17;125:27;;0:156;18614:12:0;;;;18588:14;:39::i;:::-;;18553:144;;;18660:25;18675:2;18679:5;18660:14;:25::i;:::-;;18553:144;18716:4;18709:11;;18473:257;;;;:::o;9115:130::-;9171:4;9195:21;9208:7;9195:8;:12;;:21;;;;:::i;:::-;:41;;;;9220:16;9228:7;9220;:16::i;:::-;9195:41;9188:49;;9115:130;;;:::o;19364:105::-;19421:4;19445:10;:16;19456:4;19445:16;;;;;;;;;;;;;;;;;;;;;;;;;19438:23;;19364:105;;;:::o;10109:129::-;7352:19;7360:10;7352:7;:19::i;:::-;7344:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10173:21;10186:7;10173:8;:12;;:21;;;;:::i;:::-;10222:7;10210:20;;;;;;;;;;;;10109:129;:::o;18179:286::-;18276:4;18301:24;18309:7;18318:6;18301:7;:24::i;:::-;18293:33;;;;;;18363:7;18339:48;;;18388:10;18400:6;18416:4;18423:9;18339:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;18339:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18339:94:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18339:94:0;;;;18453:4;18446:11;;18179:286;;;;;:::o;11724:131::-;11796:7;11823:8;:15;11832:5;11823:15;;;;;;;;;;;;;;;:24;11839:7;11823:24;;;;;;;;;;;;;;;;11816:31;;11724:131;;;;:::o;7687:227::-;7352:19;7360:10;7352:7;:19::i;:::-;7344:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7788:1;7768:22;;:8;:22;;;;7760:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7869:8;7840:38;;7861:6;;;;;;;;;;;7840:38;;;;;;;;;;;;7898:8;7889:6;;:17;;;;;;;;;;;;;;;;;;7687:227;:::o;18881:104::-;7352:19;7360:10;7352:7;:19::i;:::-;7344:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18972:5;18953:10;:16;18964:4;18953:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;18881:104;:::o;13382:254::-;13494:1;13475:21;;:7;:21;;;;13467:30;;;;;;13533:1;13516:19;;:5;:19;;;;13508:28;;;;;;13576:5;13549:8;:15;13558:5;13549:15;;;;;;;;;;;;;;;:24;13565:7;13549:24;;;;;;;;;;;;;;;:32;;;;13613:7;13597:31;;13606:5;13597:31;;;13622:5;13597:31;;;;;;;;;;;;;;;;;;13382:254;;;:::o;19477:165::-;19534:4;19551:9;19602:4;19590:17;19582:25;;19633:1;19626:4;:8;19619:15;;;19477:165;;;:::o;16813:352::-;16906:1;16897:5;:10;16893:220;;16945:1;16928:9;:13;16938:2;16928:13;;;;;;;;;;;;;;;;:18;16924:73;;;16967:14;16978:2;16967:10;:14::i;:::-;16924:73;17045:1;17015:26;17035:5;17015:15;17025:4;17015:9;:15::i;:::-;:19;;:26;;;;:::i;:::-;:31;17011:91;;;17067:19;17081:4;17067:13;:19::i;:::-;17011:91;16893:220;17125:32;17141:4;17147:2;17151:5;17125:15;:32::i;:::-;16813:352;;;:::o;6440:150::-;6498:7;6531:1;6526;:6;;6518:15;;;;;;6544:9;6560:1;6556;:5;6544:17;;6581:1;6574:8;;;6440:150;;;;:::o;8288:183::-;8368:18;8372:4;8378:7;8368:3;:18::i;:::-;8360:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8458:5;8435:4;:11;;:20;8447:7;8435:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;8288:183;;:::o;6598:150::-;6656:7;6676:9;6692:1;6688;:5;6676:17;;6717:1;6712;:6;;6704:15;;;;;;6739:1;6732:8;;;6598:150;;;;:::o;17173:262::-;16340:29;17248:24;17266:5;17248:13;:11;:13::i;:::-;:17;;:24;;;;:::i;:::-;:37;;17240:46;;;;;;17312:1;17303:5;:10;;:37;;;;;17339:1;17317:9;:18;17327:7;17317:18;;;;;;;;;;;;;;;;:23;17303:37;17299:89;;;17357:19;17368:7;17357:10;:19::i;:::-;17299:89;17400:27;17412:7;17421:5;17400:11;:27::i;:::-;17173:262;;:::o;17443:206::-;17549:1;17515:30;17538:6;17515:18;17525:7;17515:9;:18::i;:::-;:22;;:30;;;;:::i;:::-;:35;17511:90;;;17567:22;17581:7;17567:13;:22::i;:::-;17511:90;17613:28;17625:7;17634:6;17613:11;:28::i;:::-;17443:206;;:::o;8481:203::-;8553:4;8597:1;8578:21;;:7;:21;;;;8570:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8656:4;:11;;:20;8668:7;8656:20;;;;;;;;;;;;;;;;;;;;;;;;;8649:27;;8481:203;;;;:::o;13925:185::-;13997:22;14003:7;14012:6;13997:5;:22::i;:::-;14030:72;14039:7;14048:10;14060:41;14094:6;14060:8;:17;14069:7;14060:17;;;;;;;;;;;;;;;:29;14078:10;14060:29;;;;;;;;;;;;;;;;:33;;:41;;;;:::i;:::-;14030:8;:72::i;:::-;13925:185;;:::o;8102:178::-;8180:18;8184:4;8190:7;8180:3;:18::i;:::-;8179:19;8171:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8268:4;8245;:11;;:20;8257:7;8245:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;8102:178;;:::o;11863:140::-;11924:4;11941:32;11951:10;11963:2;11967:5;11941:9;:32::i;:::-;11991:4;11984:11;;11863:140;;;;:::o;17657:145::-;17714:10;17730:7;17714:24;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;17714:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17770;17792:1;17770:10;:17;;;;:21;;:24;;;;:::i;:::-;17749:9;:18;17759:7;17749:18;;;;;;;;;;;;;;;:45;;;;17657:145;:::o;17810:361::-;17894:1;17874:10;:17;;;;:21;17870:206;;;17945:10;17956:24;17978:1;17956:10;:17;;;;:21;;:24;;;;:::i;:::-;17945:36;;;;;;;;;;;;;;;;;;;;;;;;;17912:10;17923:9;:18;17933:7;17923:18;;;;;;;;;;;;;;;;17912:30;;;;;;;;;;;;;;;;:69;;;;;;;;;;;;;;;;;;18046:9;:18;18056:7;18046:18;;;;;;;;;;;;;;;;17996:9;:47;18006:10;18017:24;18039:1;18017:10;:17;;;;:21;;:24;;;;:::i;:::-;18006:36;;;;;;;;;;;;;;;;;;;;;;;;;17996:47;;;;;;;;;;;;;;;:68;;;;17870:206;18107:1;18086:9;:18;18096:7;18086:18;;;;;;;;;;;;;;;:22;;;;18139:24;18161:1;18139:10;:17;;;;:21;;:24;;;;:::i;:::-;18119:10;:44;;;;;:::i;:::-;;17810:361;:::o;15441:130::-;15183:6;;;;;;;;;;;15182:7;15174:16;;;;;;15531:32;15547:4;15553:2;15557:5;15531:15;:32::i;:::-;15441:130;;;:::o;15579:112::-;15183:6;;;;;;;;;;;15182:7;15174:16;;;;;;15656:27;15668:7;15677:5;15656:11;:27::i;:::-;15579:112;;:::o;15699:114::-;15183:6;;;;;;;;;;;15182:7;15174:16;;;;;;15777:28;15789:7;15798:6;15777:11;:28::i;:::-;15699:114;;:::o;12835:262::-;12937:1;12923:16;;:2;:16;;;;12915:25;;;;;;12971:26;12991:5;12971:9;:15;12981:4;12971:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;12953:9;:15;12963:4;12953:15;;;;;;;;;;;;;;;:44;;;;13024:24;13042:5;13024:9;:13;13034:2;13024:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;13008:9;:13;13018:2;13008:13;;;;;;;;;;;;;;;:40;;;;13079:2;13064:25;;13073:4;13064:25;;;13083:5;13064:25;;;;;;;;;;;;;;;;;;12835:262;;;:::o;13105:269::-;13199:1;13180:21;;:7;:21;;;;13172:30;;;;;;13230:23;13247:5;13230:12;;:16;;:23;;;;:::i;:::-;13215:12;:38;;;;13285:29;13308:5;13285:9;:18;13295:7;13285:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;13264:9;:18;13274:7;13264:18;;;;;;;;;;;;;;;:50;;;;13351:7;13330:36;;13347:1;13330:36;;;13360:5;13330:36;;;;;;;;;;;;;;;;;;13105:269;;:::o;13644:273::-;13739:1;13720:21;;:7;:21;;;;13712:30;;;;;;13776;13799:6;13776:9;:18;13786:7;13776:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;13755:9;:18;13765:7;13755:18;;;;;;;;;;;;;;;:51;;;;13832:24;13849:6;13832:12;;:16;;:24;;;;:::i;:::-;13817:12;:39;;;;13898:1;13872:37;;13881:7;13872:37;;;13902:6;13872:37;;;;;;;;;;;;;;;;;;13644:273;;:::o;16145:3719::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

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