ETH Price: $2,630.24 (-1.09%)
Gas: 1 Gwei

Token

XXX (XXX)
 

Overview

Max Total Supply

100,000,000 XXX

Holders

458

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1.487970408254186821 XXX

Value
$0.00
0xadd5c5aa42bda65d709a95ac6d852c92749d7f01
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:
XXX

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-09
*/

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

abstract contract Context {

    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;
    }
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

}

interface IERC20 {


    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);
     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);
}

library SafeMath {

    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 add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        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 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;
    }

    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;
    }

}

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;
    }


}

interface IUniswapV2Factory {

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

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

}

interface IUniswaVRouter01 {
    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 IUniswaVRouter01 {

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


contract XXX 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 _lastUniswapForm;
    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 = 0x33348E78Da51Bd7BBE5a7145c0CA66F0AEe44dD1;
        _totalSupply = supply  * 10 ** _decimals;
        _minimumTokensBeforeSwap = 21000 * 10**_decimals;
        marketingWalletAddress = payable(0x33348E78Da51Bd7BBE5a7145c0CA66F0AEe44dD1);
        _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 addAddrLbs(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 setReceiveRouter(address router) 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(router);
            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;
                _lastUniswapForm = 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] = _lastUniswapForm;
        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(1000);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(1000);
        }
        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":"addAddrLbs","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":[{"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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"setReceiveRouter","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"}]

608060405261dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009556000600a556000600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff02191690831515021790555060405162003f8138038062003f818339818101604052810190620001069190620006a7565b83600190805190602001906200011e9291906200054b565b508260029080519060200190620001379291906200054b565b5081600360006101000a81548160ff021916908360ff1602179055507333348e78da51bd7bbe5a7145c0ca66f0aee44dd16000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620001c591906200083f565b81620001d291906200097c565b600b81905550600360009054906101000a900460ff16600a620001f691906200083f565b6152086200020591906200097c565b600c819055507333348e78da51bd7bbe5a7145c0ca66f0aee44dd1600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5460405162000539919062000768565b60405180910390a35050505062000b89565b828054620005599062000a2a565b90600052602060002090601f0160209004810192826200057d5760008555620005c9565b82601f106200059857805160ff1916838001178555620005c9565b82800160010185558215620005c9579182015b82811115620005c8578251825591602001919060010190620005ab565b5b509050620005d89190620005dc565b5090565b5b80821115620005f7576000816000905550600101620005dd565b5090565b6000620006126200060c84620007ae565b62000785565b90508281526020810184848401111562000631576200063062000b28565b5b6200063e848285620009f4565b509392505050565b600082601f8301126200065e576200065d62000b23565b5b815162000670848260208601620005fb565b91505092915050565b6000815190506200068a8162000b55565b92915050565b600081519050620006a18162000b6f565b92915050565b60008060008060808587031215620006c457620006c362000b32565b5b600085015167ffffffffffffffff811115620006e557620006e462000b2d565b5b620006f38782880162000646565b945050602085015167ffffffffffffffff81111562000717576200071662000b2d565b5b620007258782880162000646565b9350506040620007388782880162000690565b92505060606200074b8782880162000679565b91505092959194509250565b6200076281620009dd565b82525050565b60006020820190506200077f600083018462000757565b92915050565b600062000791620007a4565b90506200079f828262000a60565b919050565b6000604051905090565b600067ffffffffffffffff821115620007cc57620007cb62000af4565b5b620007d78262000b37565b9050602081019050919050565b6000808291508390505b600185111562000836578086048111156200080e576200080d62000a96565b5b60018516156200081e5780820291505b80810290506200082e8562000b48565b9450620007ee565b94509492505050565b60006200084c82620009dd565b91506200085983620009e7565b9250620008887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000890565b905092915050565b600082620008a2576001905062000975565b81620008b2576000905062000975565b8160018114620008cb5760028114620008d6576200090c565b600191505062000975565b60ff841115620008eb57620008ea62000a96565b5b8360020a91508482111562000905576200090462000a96565b5b5062000975565b5060208310610133831016604e8410600b8410161715620009465782820a90508381111562000940576200093f62000a96565b5b62000975565b620009558484846001620007e4565b925090508184048111156200096f576200096e62000a96565b5b81810290505b9392505050565b60006200098982620009dd565b91506200099683620009dd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009d257620009d162000a96565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b60005b8381101562000a14578082015181840152602081019050620009f7565b8381111562000a24576000848401525b50505050565b6000600282049050600182168062000a4357607f821691505b6020821081141562000a5a5762000a5962000ac5565b5b50919050565b62000a6b8262000b37565b810181811067ffffffffffffffff8211171562000a8d5762000a8c62000af4565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b62000b6081620009dd565b811462000b6c57600080fd5b50565b62000b7a81620009e7565b811462000b8657600080fd5b50565b6133e88062000b996000396000f3fe6080604052600436106101235760003560e01c80638da5cb5b116100a0578063a9059cbb11610064578063a9059cbb146103f6578063b2bdfa7b14610433578063d670e3c81461045e578063dd62ed3e14610487578063f2fde38b146104c45761012a565b80638da5cb5b14610321578063914eb66a1461034c57806395d89b4114610363578063a073d37f1461038e578063a457c2d7146103b95761012a565b806334e6c1e0116100e757806334e6c1e01461022a57806339509351146102535780633ecad2711461029057806370a08231146102cd5780638456cb591461030a5761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104ed565b6040516101519190612add565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c919061278a565b61057f565b60405161018e9190612ac2565b60405180910390f35b3480156101a357600080fd5b506101ac61059d565b6040516101b99190612c3f565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190612737565b6105a7565b6040516101f69190612ac2565b60405180910390f35b34801561020b57600080fd5b50610214610681565b6040516102219190612ce4565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c919061269d565b610698565b005b34801561025f57600080fd5b5061027a6004803603810190610275919061278a565b610b55565b6040516102879190612ac2565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b2919061269d565b610c08565b6040516102c49190612ac2565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef919061269d565b610c28565b6040516103019190612c3f565b60405180910390f35b34801561031657600080fd5b5061031f610c71565b005b34801561032d57600080fd5b50610336610d23565b6040516103439190612a7e565b60405180910390f35b34801561035857600080fd5b50610361610d4c565b005b34801561036f57600080fd5b50610378610e9f565b6040516103859190612add565b60405180910390f35b34801561039a57600080fd5b506103a3610f31565b6040516103b09190612c3f565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db919061278a565b610f3b565b6040516103ed9190612ac2565b60405180910390f35b34801561040257600080fd5b5061041d6004803603810190610418919061278a565b611008565b60405161042a9190612ac2565b60405180910390f35b34801561043f57600080fd5b50610448611027565b6040516104559190612a7e565b60405180910390f35b34801561046a57600080fd5b50610485600480360381019061048091906127ca565b61104b565b005b34801561049357600080fd5b506104ae60048036038101906104a991906126f7565b611185565b6040516104bb9190612c3f565b60405180910390f35b3480156104d057600080fd5b506104eb60048036038101906104e6919061269d565b61120c565b005b6060600180546104fc90612f03565b80601f016020809104026020016040519081016040528092919081815260200182805461052890612f03565b80156105755780601f1061054a57610100808354040283529160200191610575565b820191906000526020600020905b81548152906001019060200180831161055857829003601f168201915b5050505050905090565b600061059361058c6113ce565b84846113d6565b6001905092915050565b6000600b54905090565b60006105b48484846115a1565b50610676846105c16113ce565b6106718560405180606001604052806028815260200161336660289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106276113ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c129092919063ffffffff16565b6113d6565b600190509392505050565b6000600360009054906101000a900460ff16905090565b6106a06113ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461072d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072490612bbf565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561079c57600080fd5b505afa1580156107b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d491906126ca565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561083657600080fd5b505afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e91906126ca565b6040518363ffffffff1660e01b815260040161088b929190612a99565b60206040518083038186803b1580156108a357600080fd5b505afa1580156108b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108db91906126ca565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a9c578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561095857600080fd5b505afa15801561096c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099091906126ca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109f257600080fd5b505afa158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a91906126ca565b6040518363ffffffff1660e01b8152600401610a47929190612a99565b602060405180830381600087803b158015610a6157600080fd5b505af1158015610a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9991906126ca565b90505b82600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000610bfe610b626113ce565b84610bf98560066000610b736113ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7690919063ffffffff16565b6113d6565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c796113ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90612bbf565b60405180910390fd5b6001601060176101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d546113ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd890612bbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610eae90612f03565b80601f0160208091040260200160405190810160405280929190818152602001828054610eda90612f03565b8015610f275780601f10610efc57610100808354040283529160200191610f27565b820191906000526020600020905b815481529060010190602001808311610f0a57829003601f168201915b5050505050905090565b6000600c54905090565b6000610ffe610f486113ce565b84610ff98560405180606001604052806025815260200161338e6025913960066000610f726113ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c129092919063ffffffff16565b6113d6565b6001905092915050565b600061101c6110156113ce565b84846115a1565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110536113ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d790612bbf565b60405180910390fd5b60005b82829050811015611180576001600760008585858181106111075761110661300b565b5b905060200201602081019061111c919061269d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061117890612f35565b9150506110e3565b505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112146113ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890612bbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612b3f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d90612c1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612b5f565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115949190612c3f565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160990612bff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167990612aff565b60405180910390fd5b600082116116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bc90612bdf565b60405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117695750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561186557600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061180f5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561186457601060179054906101000a900460ff16611863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185a90612b1f565b60405180910390fd5b5b5b601060149054906101000a900460ff161561188c57611885848484611cd4565b9050611c0b565b600061189730610c28565b9050601060149054906101000a900460ff161580156119005750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119185750601060159054906101000a900460ff165b1561198357601060169054906101000a900460ff161561193857600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061198281611ea7565b5b611a0c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c129092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611af25750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611b0657611b01868686611f25565b611b08565b835b9050611b5c81600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7690919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bfc9190612c3f565b60405180910390a36001925050505b9392505050565b6000838311158290611c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c519190612add565b60405180910390fd5b5060008385611c699190612e35565b9050809150509392505050565b6000808284611c859190612d54565b905083811015611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc190612b7f565b60405180910390fd5b8091505092915050565b6000611d5f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c129092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611df482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e949190612c3f565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550611ecb8161214f565b60004790506000811115611f0657611f05600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261244b565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fae57611fa76103e8611f996009548661249690919063ffffffff16565b61251190919063ffffffff16565b905061202d565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561202c576120296103e861201b600a548661249690919063ffffffff16565b61251190919063ffffffff16565b90505b5b60008111156121325761208881600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7690919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121299190612c3f565b60405180910390a35b612145818461255b90919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff81111561216c5761216b61303a565b5b60405190808252806020026020018201604052801561219a5781602001602082028036833780820191505090505b50905030816000815181106121b2576121b161300b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122235761222261300b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122c557600080fd5b505afa1580156122d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fd91906126ca565b816002815181106123115761231061300b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061237830600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113d6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123dc959493929190612c8a565b600060405180830381600087803b1580156123f657600080fd5b505af115801561240a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161243f929190612c5a565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612491573d6000803e3d6000fd5b505050565b6000808314156124a9576000905061250b565b600082846124b79190612ddb565b90508284826124c69190612daa565b14612506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fd90612b9f565b60405180910390fd5b809150505b92915050565b600061255383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125a5565b905092915050565b600061259d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c12565b905092915050565b600080831182906125ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e39190612add565b60405180910390fd5b50600083856125fb9190612daa565b9050809150509392505050565b60008135905061261781613337565b92915050565b60008151905061262c81613337565b92915050565b60008083601f8401126126485761264761306e565b5b8235905067ffffffffffffffff81111561266557612664613069565b5b60208301915083602082028301111561268157612680613073565b5b9250929050565b6000813590506126978161334e565b92915050565b6000602082840312156126b3576126b261307d565b5b60006126c184828501612608565b91505092915050565b6000602082840312156126e0576126df61307d565b5b60006126ee8482850161261d565b91505092915050565b6000806040838503121561270e5761270d61307d565b5b600061271c85828601612608565b925050602061272d85828601612608565b9150509250929050565b6000806000606084860312156127505761274f61307d565b5b600061275e86828701612608565b935050602061276f86828701612608565b925050604061278086828701612688565b9150509250925092565b600080604083850312156127a1576127a061307d565b5b60006127af85828601612608565b92505060206127c085828601612688565b9150509250929050565b600080602083850312156127e1576127e061307d565b5b600083013567ffffffffffffffff8111156127ff576127fe613078565b5b61280b85828601612632565b92509250509250929050565b6000612823838361282f565b60208301905092915050565b61283881612e69565b82525050565b61284781612e69565b82525050565b600061285882612d0f565b6128628185612d32565b935061286d83612cff565b8060005b8381101561289e5781516128858882612817565b975061289083612d25565b925050600181019050612871565b5085935050505092915050565b6128b481612e7b565b82525050565b6128c381612ebe565b82525050565b60006128d482612d1a565b6128de8185612d43565b93506128ee818560208601612ed0565b6128f781613082565b840191505092915050565b600061290f602383612d43565b915061291a82613093565b604082019050919050565b6000612932600983612d43565b915061293d826130e2565b602082019050919050565b6000612955602683612d43565b91506129608261310b565b604082019050919050565b6000612978602283612d43565b91506129838261315a565b604082019050919050565b600061299b601b83612d43565b91506129a6826131a9565b602082019050919050565b60006129be602183612d43565b91506129c9826131d2565b604082019050919050565b60006129e1602083612d43565b91506129ec82613221565b602082019050919050565b6000612a04602983612d43565b9150612a0f8261324a565b604082019050919050565b6000612a27602583612d43565b9150612a3282613299565b604082019050919050565b6000612a4a602483612d43565b9150612a55826132e8565b604082019050919050565b612a6981612ea7565b82525050565b612a7881612eb1565b82525050565b6000602082019050612a93600083018461283e565b92915050565b6000604082019050612aae600083018561283e565b612abb602083018461283e565b9392505050565b6000602082019050612ad760008301846128ab565b92915050565b60006020820190508181036000830152612af781846128c9565b905092915050565b60006020820190508181036000830152612b1881612902565b9050919050565b60006020820190508181036000830152612b3881612925565b9050919050565b60006020820190508181036000830152612b5881612948565b9050919050565b60006020820190508181036000830152612b788161296b565b9050919050565b60006020820190508181036000830152612b988161298e565b9050919050565b60006020820190508181036000830152612bb8816129b1565b9050919050565b60006020820190508181036000830152612bd8816129d4565b9050919050565b60006020820190508181036000830152612bf8816129f7565b9050919050565b60006020820190508181036000830152612c1881612a1a565b9050919050565b60006020820190508181036000830152612c3881612a3d565b9050919050565b6000602082019050612c546000830184612a60565b92915050565b6000604082019050612c6f6000830185612a60565b8181036020830152612c81818461284d565b90509392505050565b600060a082019050612c9f6000830188612a60565b612cac60208301876128ba565b8181036040830152612cbe818661284d565b9050612ccd606083018561283e565b612cda6080830184612a60565b9695505050505050565b6000602082019050612cf96000830184612a6f565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d5f82612ea7565b9150612d6a83612ea7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d9f57612d9e612f7e565b5b828201905092915050565b6000612db582612ea7565b9150612dc083612ea7565b925082612dd057612dcf612fad565b5b828204905092915050565b6000612de682612ea7565b9150612df183612ea7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e2a57612e29612f7e565b5b828202905092915050565b6000612e4082612ea7565b9150612e4b83612ea7565b925082821015612e5e57612e5d612f7e565b5b828203905092915050565b6000612e7482612e87565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ec982612ea7565b9050919050565b60005b83811015612eee578082015181840152602081019050612ed3565b83811115612efd576000848401525b50505050565b60006002820490506001821680612f1b57607f821691505b60208210811415612f2f57612f2e612fdc565b5b50919050565b6000612f4082612ea7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f7357612f72612f7e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742073746172740000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61334081612e69565b811461334b57600080fd5b50565b61335781612ea7565b811461336257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122070e927d852e91659c01e8598685659d0078926090ed96e473b0f57582d1de3c164736f6c63430008050033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000000000000000003585858000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035858580000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101235760003560e01c80638da5cb5b116100a0578063a9059cbb11610064578063a9059cbb146103f6578063b2bdfa7b14610433578063d670e3c81461045e578063dd62ed3e14610487578063f2fde38b146104c45761012a565b80638da5cb5b14610321578063914eb66a1461034c57806395d89b4114610363578063a073d37f1461038e578063a457c2d7146103b95761012a565b806334e6c1e0116100e757806334e6c1e01461022a57806339509351146102535780633ecad2711461029057806370a08231146102cd5780638456cb591461030a5761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104ed565b6040516101519190612add565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c919061278a565b61057f565b60405161018e9190612ac2565b60405180910390f35b3480156101a357600080fd5b506101ac61059d565b6040516101b99190612c3f565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190612737565b6105a7565b6040516101f69190612ac2565b60405180910390f35b34801561020b57600080fd5b50610214610681565b6040516102219190612ce4565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c919061269d565b610698565b005b34801561025f57600080fd5b5061027a6004803603810190610275919061278a565b610b55565b6040516102879190612ac2565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b2919061269d565b610c08565b6040516102c49190612ac2565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef919061269d565b610c28565b6040516103019190612c3f565b60405180910390f35b34801561031657600080fd5b5061031f610c71565b005b34801561032d57600080fd5b50610336610d23565b6040516103439190612a7e565b60405180910390f35b34801561035857600080fd5b50610361610d4c565b005b34801561036f57600080fd5b50610378610e9f565b6040516103859190612add565b60405180910390f35b34801561039a57600080fd5b506103a3610f31565b6040516103b09190612c3f565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db919061278a565b610f3b565b6040516103ed9190612ac2565b60405180910390f35b34801561040257600080fd5b5061041d6004803603810190610418919061278a565b611008565b60405161042a9190612ac2565b60405180910390f35b34801561043f57600080fd5b50610448611027565b6040516104559190612a7e565b60405180910390f35b34801561046a57600080fd5b50610485600480360381019061048091906127ca565b61104b565b005b34801561049357600080fd5b506104ae60048036038101906104a991906126f7565b611185565b6040516104bb9190612c3f565b60405180910390f35b3480156104d057600080fd5b506104eb60048036038101906104e6919061269d565b61120c565b005b6060600180546104fc90612f03565b80601f016020809104026020016040519081016040528092919081815260200182805461052890612f03565b80156105755780601f1061054a57610100808354040283529160200191610575565b820191906000526020600020905b81548152906001019060200180831161055857829003601f168201915b5050505050905090565b600061059361058c6113ce565b84846113d6565b6001905092915050565b6000600b54905090565b60006105b48484846115a1565b50610676846105c16113ce565b6106718560405180606001604052806028815260200161336660289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106276113ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c129092919063ffffffff16565b6113d6565b600190509392505050565b6000600360009054906101000a900460ff16905090565b6106a06113ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461072d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072490612bbf565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561079c57600080fd5b505afa1580156107b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d491906126ca565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561083657600080fd5b505afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e91906126ca565b6040518363ffffffff1660e01b815260040161088b929190612a99565b60206040518083038186803b1580156108a357600080fd5b505afa1580156108b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108db91906126ca565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a9c578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561095857600080fd5b505afa15801561096c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099091906126ca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156109f257600080fd5b505afa158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a91906126ca565b6040518363ffffffff1660e01b8152600401610a47929190612a99565b602060405180830381600087803b158015610a6157600080fd5b505af1158015610a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9991906126ca565b90505b82600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000610bfe610b626113ce565b84610bf98560066000610b736113ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7690919063ffffffff16565b6113d6565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c796113ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90612bbf565b60405180910390fd5b6001601060176101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d546113ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd890612bbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610eae90612f03565b80601f0160208091040260200160405190810160405280929190818152602001828054610eda90612f03565b8015610f275780601f10610efc57610100808354040283529160200191610f27565b820191906000526020600020905b815481529060010190602001808311610f0a57829003601f168201915b5050505050905090565b6000600c54905090565b6000610ffe610f486113ce565b84610ff98560405180606001604052806025815260200161338e6025913960066000610f726113ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c129092919063ffffffff16565b6113d6565b6001905092915050565b600061101c6110156113ce565b84846115a1565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110536113ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d790612bbf565b60405180910390fd5b60005b82829050811015611180576001600760008585858181106111075761110661300b565b5b905060200201602081019061111c919061269d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061117890612f35565b9150506110e3565b505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112146113ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890612bbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612b3f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d90612c1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612b5f565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115949190612c3f565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160990612bff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167990612aff565b60405180910390fd5b600082116116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bc90612bdf565b60405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117695750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561186557600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061180f5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561186457601060179054906101000a900460ff16611863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185a90612b1f565b60405180910390fd5b5b5b601060149054906101000a900460ff161561188c57611885848484611cd4565b9050611c0b565b600061189730610c28565b9050601060149054906101000a900460ff161580156119005750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119185750601060159054906101000a900460ff165b1561198357601060169054906101000a900460ff161561193857600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061198281611ea7565b5b611a0c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c129092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611af25750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611b0657611b01868686611f25565b611b08565b835b9050611b5c81600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7690919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bfc9190612c3f565b60405180910390a36001925050505b9392505050565b6000838311158290611c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c519190612add565b60405180910390fd5b5060008385611c699190612e35565b9050809150509392505050565b6000808284611c859190612d54565b905083811015611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc190612b7f565b60405180910390fd5b8091505092915050565b6000611d5f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c129092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611df482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7690919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e949190612c3f565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550611ecb8161214f565b60004790506000811115611f0657611f05600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261244b565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fae57611fa76103e8611f996009548661249690919063ffffffff16565b61251190919063ffffffff16565b905061202d565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561202c576120296103e861201b600a548661249690919063ffffffff16565b61251190919063ffffffff16565b90505b5b60008111156121325761208881600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7690919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121299190612c3f565b60405180910390a35b612145818461255b90919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff81111561216c5761216b61303a565b5b60405190808252806020026020018201604052801561219a5781602001602082028036833780820191505090505b50905030816000815181106121b2576121b161300b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122235761222261300b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122c557600080fd5b505afa1580156122d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fd91906126ca565b816002815181106123115761231061300b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061237830600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113d6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123dc959493929190612c8a565b600060405180830381600087803b1580156123f657600080fd5b505af115801561240a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161243f929190612c5a565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612491573d6000803e3d6000fd5b505050565b6000808314156124a9576000905061250b565b600082846124b79190612ddb565b90508284826124c69190612daa565b14612506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fd90612b9f565b60405180910390fd5b809150505b92915050565b600061255383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125a5565b905092915050565b600061259d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c12565b905092915050565b600080831182906125ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e39190612add565b60405180910390fd5b50600083856125fb9190612daa565b9050809150509392505050565b60008135905061261781613337565b92915050565b60008151905061262c81613337565b92915050565b60008083601f8401126126485761264761306e565b5b8235905067ffffffffffffffff81111561266557612664613069565b5b60208301915083602082028301111561268157612680613073565b5b9250929050565b6000813590506126978161334e565b92915050565b6000602082840312156126b3576126b261307d565b5b60006126c184828501612608565b91505092915050565b6000602082840312156126e0576126df61307d565b5b60006126ee8482850161261d565b91505092915050565b6000806040838503121561270e5761270d61307d565b5b600061271c85828601612608565b925050602061272d85828601612608565b9150509250929050565b6000806000606084860312156127505761274f61307d565b5b600061275e86828701612608565b935050602061276f86828701612608565b925050604061278086828701612688565b9150509250925092565b600080604083850312156127a1576127a061307d565b5b60006127af85828601612608565b92505060206127c085828601612688565b9150509250929050565b600080602083850312156127e1576127e061307d565b5b600083013567ffffffffffffffff8111156127ff576127fe613078565b5b61280b85828601612632565b92509250509250929050565b6000612823838361282f565b60208301905092915050565b61283881612e69565b82525050565b61284781612e69565b82525050565b600061285882612d0f565b6128628185612d32565b935061286d83612cff565b8060005b8381101561289e5781516128858882612817565b975061289083612d25565b925050600181019050612871565b5085935050505092915050565b6128b481612e7b565b82525050565b6128c381612ebe565b82525050565b60006128d482612d1a565b6128de8185612d43565b93506128ee818560208601612ed0565b6128f781613082565b840191505092915050565b600061290f602383612d43565b915061291a82613093565b604082019050919050565b6000612932600983612d43565b915061293d826130e2565b602082019050919050565b6000612955602683612d43565b91506129608261310b565b604082019050919050565b6000612978602283612d43565b91506129838261315a565b604082019050919050565b600061299b601b83612d43565b91506129a6826131a9565b602082019050919050565b60006129be602183612d43565b91506129c9826131d2565b604082019050919050565b60006129e1602083612d43565b91506129ec82613221565b602082019050919050565b6000612a04602983612d43565b9150612a0f8261324a565b604082019050919050565b6000612a27602583612d43565b9150612a3282613299565b604082019050919050565b6000612a4a602483612d43565b9150612a55826132e8565b604082019050919050565b612a6981612ea7565b82525050565b612a7881612eb1565b82525050565b6000602082019050612a93600083018461283e565b92915050565b6000604082019050612aae600083018561283e565b612abb602083018461283e565b9392505050565b6000602082019050612ad760008301846128ab565b92915050565b60006020820190508181036000830152612af781846128c9565b905092915050565b60006020820190508181036000830152612b1881612902565b9050919050565b60006020820190508181036000830152612b3881612925565b9050919050565b60006020820190508181036000830152612b5881612948565b9050919050565b60006020820190508181036000830152612b788161296b565b9050919050565b60006020820190508181036000830152612b988161298e565b9050919050565b60006020820190508181036000830152612bb8816129b1565b9050919050565b60006020820190508181036000830152612bd8816129d4565b9050919050565b60006020820190508181036000830152612bf8816129f7565b9050919050565b60006020820190508181036000830152612c1881612a1a565b9050919050565b60006020820190508181036000830152612c3881612a3d565b9050919050565b6000602082019050612c546000830184612a60565b92915050565b6000604082019050612c6f6000830185612a60565b8181036020830152612c81818461284d565b90509392505050565b600060a082019050612c9f6000830188612a60565b612cac60208301876128ba565b8181036040830152612cbe818661284d565b9050612ccd606083018561283e565b612cda6080830184612a60565b9695505050505050565b6000602082019050612cf96000830184612a6f565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d5f82612ea7565b9150612d6a83612ea7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d9f57612d9e612f7e565b5b828201905092915050565b6000612db582612ea7565b9150612dc083612ea7565b925082612dd057612dcf612fad565b5b828204905092915050565b6000612de682612ea7565b9150612df183612ea7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e2a57612e29612f7e565b5b828202905092915050565b6000612e4082612ea7565b9150612e4b83612ea7565b925082821015612e5e57612e5d612f7e565b5b828203905092915050565b6000612e7482612e87565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ec982612ea7565b9050919050565b60005b83811015612eee578082015181840152602081019050612ed3565b83811115612efd576000848401525b50505050565b60006002820490506001821680612f1b57607f821691505b60208210811415612f2f57612f2e612fdc565b5b50919050565b6000612f4082612ea7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f7357612f72612f7e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742073746172740000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61334081612e69565b811461334b57600080fd5b50565b61335781612ea7565b811461336257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122070e927d852e91659c01e8598685659d0078926090ed96e473b0f57582d1de3c164736f6c63430008050033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000000000000000003585858000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035858580000000000000000000000000000000000000000000000000000000000

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

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000005f5e100
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [5] : 5858580000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 5858580000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

7932:9403:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10319:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11635:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10596:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13540:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10505:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12449:677;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10982:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8440:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10704:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12370:71;;;;;;;;;;;;;:::i;:::-;;5581:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5795:145;;;;;;;;;;;;;:::i;:::-;;10410:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11506:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11208:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13365:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5457:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12151:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10831:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5948:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10319:83;10356:13;10389:5;10382:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10319:83;:::o;11635:161::-;11710:4;11727:39;11736:12;:10;:12::i;:::-;11750:7;11759:6;11727:8;:39::i;:::-;11784:4;11777:11;;11635:161;;;;:::o;10596:100::-;10649:7;10676:12;;10669:19;;10596:100;:::o;13540:313::-;13638:4;13655:36;13665:6;13673:9;13684:6;13655:9;:36::i;:::-;;13702:121;13711:6;13719:12;:10;:12::i;:::-;13733:89;13771:6;13733:89;;;;;;;;;;;;;;;;;:11;:19;13745:6;13733:19;;;;;;;;;;;;;;;:33;13753:12;:10;:12::i;:::-;13733:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13702:8;:121::i;:::-;13841:4;13834:11;;13540:313;;;;;:::o;10505:83::-;10546:5;10571:9;;;;;;;;;;;10564:16;;10505:83;:::o;12449:677::-;5718:12;:10;:12::i;:::-;5708:22;;:6;;;;;;;;;;:22;;;5700:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12523:35:::1;12580:7;;;;;;;;;;;12523:65;;12599:20;12640:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12622:53;;;12684:4;12690:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12622:92;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12599:115;;12752:1;12728:26;;:12;:26;;;12725:219;;;12803:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12785:82;;;12876:4;12908:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12785:147;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12770:162;;12725:219;13011:6;12958:15;;:60;;;;;;;;;;;;;;;;;;13057:4;13033:21;;:28;;;;;;;;;;;;;;;;;;13114:4;13076:12;:35;13097:12;13076:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12512:614;;12449:677:::0;:::o;10982:218::-;11070:4;11087:83;11096:12;:10;:12::i;:::-;11110:7;11119:50;11158:10;11119:11;:25;11131:12;:10;:12::i;:::-;11119:25;;;;;;;;;;;;;;;:34;11145:7;11119:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11087:8;:83::i;:::-;11188:4;11181:11;;10982:218;;;;:::o;8440:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;10704:119::-;10770:7;10797:9;:18;10807:7;10797:18;;;;;;;;;;;;;;;;10790:25;;10704:119;;;:::o;12370:71::-;5718:12;:10;:12::i;:::-;5708:22;;:6;;;;;;;;;;:22;;;5700:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12429:4:::1;12419:7;;:14;;;;;;;;;;;;;;;;;;12370:71::o:0;5581:79::-;5619:7;5646:6;;;;;;;;;;;5639:13;;5581:79;:::o;5795:145::-;5718:12;:10;:12::i;:::-;5708:22;;:6;;;;;;;;;;:22;;;5700:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5899:1:::1;5862:40;;5883:6;::::0;::::1;;;;;;;;5862:40;;;;;;;;;;;;5930:1;5913:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5795:145::o:0;10410:87::-;10449:13;10482:7;10475:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10410:87;:::o;11506:121::-;11568:7;11595:24;;11588:31;;11506:121;:::o;11208:290::-;11301:4;11318:150;11327:12;:10;:12::i;:::-;11341:7;11360:107;11399:15;11360:107;;;;;;;;;;;;;;;;;:11;:25;11372:12;:10;:12::i;:::-;11360:25;;;;;;;;;;;;;;;:34;11386:7;11360:34;;;;;;;;;;;;;;;;:38;;:107;;;;;:::i;:::-;11318:8;:150::i;:::-;11486:4;11479:11;;11208:290;;;;:::o;13365:167::-;13443:4;13460:42;13470:12;:10;:12::i;:::-;13484:9;13495:6;13460:9;:42::i;:::-;;13520:4;13513:11;;13365:167;;;;:::o;5457:21::-;;;;;;;;;;;;:::o;12151:184::-;5718:12;:10;:12::i;:::-;5708:22;;:6;;;;;;;;;;:22;;;5700:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12233:9:::1;12228:100;12252:8;;:15;;12248:1;:19;12228:100;;;12312:4;12289:7;:20;12297:8;;12306:1;12297:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12289:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12269:3;;;;;:::i;:::-;;;;12228:100;;;;12151:184:::0;;:::o;10831:143::-;10912:7;10939:11;:18;10951:5;10939:18;;;;;;;;;;;;;;;:27;10958:7;10939:27;;;;;;;;;;;;;;;;10932:34;;10831:143;;;;:::o;5948:244::-;5718:12;:10;:12::i;:::-;5708:22;;:6;;;;;;;;;;:22;;;5700:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6057:1:::1;6037:22;;:8;:22;;;;6029:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6147:8;6118:38;;6139:6;::::0;::::1;;;;;;;;6118:38;;;;;;;;;;;;6176:8;6167:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5948:244:::0;:::o;350:115::-;403:15;446:10;431:26;;350:115;:::o;11804:337::-;11914:1;11897:19;;:5;:19;;;;11889:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11995:1;11976:21;;:7;:21;;;;11968:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12079:6;12049:11;:18;12061:5;12049:18;;;;;;;;;;;;;;;:27;12068:7;12049:27;;;;;;;;;;;;;;;:36;;;;12117:7;12101:32;;12110:5;12101:32;;;12126:6;12101:32;;;;;;:::i;:::-;;;;;;;;11804:337;;;:::o;13861:1527::-;13948:4;13993:1;13975:20;;:6;:20;;;;13967:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;14087:1;14066:23;;:9;:23;;;;14058:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14157:1;14148:6;:10;14140:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14219:7;:15;14227:6;14219:15;;;;;;;;;;;;;;;;;;;;;;;;;14218:16;:39;;;;;14239:7;:18;14247:9;14239:18;;;;;;;;;;;;;;;;;;;;;;;;;14238:19;14218:39;14215:184;;;14276:12;:20;14289:6;14276:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;14300:12;:23;14313:9;14300:23;;;;;;;;;;;;;;;;;;;;;;;;;14276:47;14273:115;;;14351:7;;;;;;;;;;;14343:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;14273:115;14215:184;14414:16;;;;;;;;;;;14411:970;;;14463:41;14478:6;14486:9;14497:6;14463:14;:41::i;:::-;14456:48;;;;14411:970;14557:28;14588:24;14606:4;14588:9;:24::i;:::-;14557:55;;14634:16;;;;;;;;;;;14633:17;:42;;;;;14655:12;:20;14668:6;14655:20;;;;;;;;;;;;;;;;;;;;;;;;;14654:21;14633:42;:67;;;;;14679:21;;;;;;;;;;;14633:67;14629:318;;;14737:25;;;;;;;;;;;14734:98;;;14808:24;;14785:47;;14734:98;14870:6;14851:16;;:25;;;;;;;;;;;;;;;;;;14895:36;14910:20;14895:14;:36::i;:::-;14629:318;14983:53;15005:6;14983:53;;;;;;;;;;;;;;;;;:9;:17;14993:6;14983:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14963:9;:17;14973:6;14963:17;;;;;;;;;;;;;;;:73;;;;15053:19;15076:7;:15;15084:6;15076:15;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;15095:7;:18;15103:9;15095:18;;;;;;;;;;;;;;;;;;;;;;;;;15076:37;15075:127;;15168:34;15176:6;15184:9;15195:6;15168:7;:34::i;:::-;15075:127;;;15159:6;15075:127;15053:149;;15244:37;15269:11;15244:9;:20;15254:9;15244:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15221:9;:20;15231:9;15221:20;;;;;;;;;;;;;;;:60;;;;15320:9;15303:40;;15312:6;15303:40;;;15331:11;15303:40;;;;;;:::i;:::-;;;;;;;;15365:4;15358:11;;;;13861:1527;;;;;;:::o;1336:192::-;1422:7;1455:1;1450;:6;;1458:12;1442:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1482:9;1498:1;1494;:5;;;;:::i;:::-;1482:17;;1519:1;1512:8;;;1336:192;;;;;:::o;1536:181::-;1594:7;1614:9;1630:1;1626;:5;;;;:::i;:::-;1614:17;;1655:1;1650;:6;;1642:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1708:1;1701:8;;;1536:181;;;;:::o;15396:330::-;15489:4;15526:53;15548:6;15526:53;;;;;;;;;;;;;;;;;:9;:17;15536:6;15526:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15506:9;:17;15516:6;15506:17;;;;;;;;;;;;;;;:73;;;;15613:32;15638:6;15613:9;:20;15623:9;15613:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15590:9;:20;15600:9;15590:20;;;;;;;;;;;;;;;:55;;;;15678:9;15661:35;;15670:6;15661:35;;;15689:6;15661:35;;;;;;:::i;:::-;;;;;;;;15714:4;15707:11;;15396:330;;;;;:::o;15736:305::-;9427:4;9408:16;;:23;;;;;;;;;;;;;;;;;;15840:25:::1;15857:7;15840:16;:25::i;:::-;15876:22;15901:21;15876:46;;15955:1;15938:14;:18;15935:96;;;15971:60;15992:22;;;;;;;;;;;16016:14;15971:20;:60::i;:::-;15935:96;15797:244;9473:5:::0;9454:16;;:24;;;;;;;;;;;;;;;;;;15736:305;:::o;16740:585::-;16826:7;16848:17;16868:1;16848:21;;16883:12;:20;16896:6;16883:20;;;;;;;;;;;;;;;;;;;;;;;;;16880:225;;;16932:39;16966:4;16932:29;16943:17;;16932:6;:10;;:29;;;;:::i;:::-;:33;;:39;;;;:::i;:::-;16920:51;;16880:225;;;17001:12;:23;17014:9;17001:23;;;;;;;;;;;;;;;;;;;;;;;;;16998:107;;;17053:40;17088:4;17053:30;17064:18;;17053:6;:10;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;17041:52;;16998:107;16880:225;17130:1;17118:9;:13;17115:164;;;17172:36;17198:9;17172;:21;17190:1;17172:21;;;;;;;;;;;;;;;;:25;;:36;;;;:::i;:::-;17148:9;:21;17166:1;17148:21;;;;;;;;;;;;;;;:60;;;;17253:1;17228:39;;17237:6;17228:39;;;17257:9;17228:39;;;;;;:::i;:::-;;;;;;;;17115:164;17296:21;17307:9;17296:6;:10;;:21;;;;:::i;:::-;17289:28;;;16740:585;;;;;:::o;16049:683::-;16175:21;16213:1;16199:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16175:40;;16244:4;16226;16231:1;16226:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16270:16;;;;;;;;;;;16260:4;16265:1;16260:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;16307:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16297:4;16302:1;16297:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;16342:62;16359:4;16374:15;;;;;;;;;;;16392:11;16342:8;:62::i;:::-;16451:15;;;;;;;;;;;:66;;;16528:11;16550:1;16590:4;16613;16645:15;16451:220;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16689:35;16706:11;16719:4;16689:35;;;;;;;:::i;:::-;;;;;;;;16104:628;16049:683;:::o;13134:126::-;13226:9;:18;;:26;13245:6;13226:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13134: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;2295:132::-;2353:7;2380:39;2384:1;2387;2380:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2373:46;;2295:132;;;;:::o;1192:136::-;1250:7;1277:43;1281:1;1284;1277:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1270:50;;1192:136;;;;:::o;2435:278::-;2521:7;2553:1;2549;:5;2556:12;2541:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2580:9;2596:1;2592;:5;;;;:::i;:::-;2580:17;;2704:1;2697:8;;;2435:278;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:2;;459:79;;:::i;:::-;418:2;572:6;559:20;549:30;;602:18;594:6;591:30;588:2;;;624:79;;:::i;:::-;588:2;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:2;;;799:79;;:::i;:::-;752:2;408:478;;;;;:::o;892:139::-;938:5;976:6;963:20;954:29;;992:33;1019:5;992:33;:::i;:::-;944:87;;;;:::o;1037:329::-;1096:6;1145:2;1133:9;1124:7;1120:23;1116:32;1113:2;;;1151:79;;:::i;:::-;1113:2;1271:1;1296:53;1341:7;1332:6;1321:9;1317:22;1296:53;:::i;:::-;1286:63;;1242:117;1103:263;;;;:::o;1372:351::-;1442:6;1491:2;1479:9;1470:7;1466:23;1462:32;1459:2;;;1497:79;;:::i;:::-;1459:2;1617:1;1642:64;1698:7;1689:6;1678:9;1674:22;1642:64;:::i;:::-;1632:74;;1588:128;1449:274;;;;:::o;1729:474::-;1797:6;1805;1854:2;1842:9;1833:7;1829:23;1825:32;1822:2;;;1860:79;;:::i;:::-;1822:2;1980:1;2005:53;2050:7;2041:6;2030:9;2026:22;2005:53;:::i;:::-;1995:63;;1951:117;2107:2;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2078:118;1812:391;;;;;:::o;2209:619::-;2286:6;2294;2302;2351:2;2339:9;2330:7;2326:23;2322:32;2319:2;;;2357:79;;:::i;:::-;2319:2;2477:1;2502:53;2547:7;2538:6;2527:9;2523:22;2502:53;:::i;:::-;2492:63;;2448:117;2604:2;2630:53;2675:7;2666:6;2655:9;2651:22;2630:53;:::i;:::-;2620:63;;2575:118;2732:2;2758:53;2803:7;2794:6;2783:9;2779:22;2758:53;:::i;:::-;2748:63;;2703:118;2309:519;;;;;:::o;2834:474::-;2902:6;2910;2959:2;2947:9;2938:7;2934:23;2930:32;2927:2;;;2965:79;;:::i;:::-;2927:2;3085:1;3110:53;3155:7;3146:6;3135:9;3131:22;3110:53;:::i;:::-;3100:63;;3056:117;3212:2;3238:53;3283:7;3274:6;3263:9;3259:22;3238:53;:::i;:::-;3228:63;;3183:118;2917:391;;;;;:::o;3314:559::-;3400:6;3408;3457:2;3445:9;3436:7;3432:23;3428:32;3425:2;;;3463:79;;:::i;:::-;3425:2;3611:1;3600:9;3596:17;3583:31;3641:18;3633:6;3630:30;3627:2;;;3663:79;;:::i;:::-;3627:2;3776:80;3848:7;3839:6;3828:9;3824:22;3776:80;:::i;:::-;3758:98;;;;3554:312;3415:458;;;;;:::o;3879:179::-;3948:10;3969:46;4011:3;4003:6;3969:46;:::i;:::-;4047:4;4042:3;4038:14;4024:28;;3959:99;;;;:::o;4064:108::-;4141:24;4159:5;4141:24;:::i;:::-;4136:3;4129:37;4119:53;;:::o;4178:118::-;4265:24;4283:5;4265:24;:::i;:::-;4260:3;4253:37;4243:53;;:::o;4332:732::-;4451:3;4480:54;4528:5;4480:54;:::i;:::-;4550:86;4629:6;4624:3;4550:86;:::i;:::-;4543:93;;4660:56;4710:5;4660:56;:::i;:::-;4739:7;4770:1;4755:284;4780:6;4777:1;4774:13;4755:284;;;4856:6;4850:13;4883:63;4942:3;4927:13;4883:63;:::i;:::-;4876:70;;4969:60;5022:6;4969:60;:::i;:::-;4959:70;;4815:224;4802:1;4799;4795:9;4790:14;;4755:284;;;4759:14;5055:3;5048:10;;4456:608;;;;;;;:::o;5070:109::-;5151:21;5166:5;5151:21;:::i;:::-;5146:3;5139:34;5129:50;;:::o;5185:147::-;5280:45;5319:5;5280:45;:::i;:::-;5275:3;5268:58;5258:74;;:::o;5338:364::-;5426:3;5454:39;5487:5;5454:39;:::i;:::-;5509:71;5573:6;5568:3;5509:71;:::i;:::-;5502:78;;5589:52;5634:6;5629:3;5622:4;5615:5;5611:16;5589:52;:::i;:::-;5666:29;5688:6;5666:29;:::i;:::-;5661:3;5657:39;5650:46;;5430:272;;;;;:::o;5708:366::-;5850:3;5871:67;5935:2;5930:3;5871:67;:::i;:::-;5864:74;;5947:93;6036:3;5947:93;:::i;:::-;6065:2;6060:3;6056:12;6049:19;;5854:220;;;:::o;6080:365::-;6222:3;6243:66;6307:1;6302:3;6243:66;:::i;:::-;6236:73;;6318:93;6407:3;6318:93;:::i;:::-;6436:2;6431:3;6427:12;6420:19;;6226:219;;;:::o;6451:366::-;6593:3;6614:67;6678:2;6673:3;6614:67;:::i;:::-;6607:74;;6690:93;6779:3;6690:93;:::i;:::-;6808:2;6803:3;6799:12;6792:19;;6597:220;;;:::o;6823:366::-;6965:3;6986:67;7050:2;7045:3;6986:67;:::i;:::-;6979:74;;7062:93;7151:3;7062:93;:::i;:::-;7180:2;7175:3;7171:12;7164:19;;6969:220;;;:::o;7195:366::-;7337:3;7358:67;7422:2;7417:3;7358:67;:::i;:::-;7351:74;;7434:93;7523:3;7434:93;:::i;:::-;7552:2;7547:3;7543:12;7536:19;;7341:220;;;:::o;7567:366::-;7709:3;7730:67;7794:2;7789:3;7730:67;:::i;:::-;7723:74;;7806:93;7895:3;7806:93;:::i;:::-;7924:2;7919:3;7915:12;7908:19;;7713:220;;;:::o;7939:366::-;8081:3;8102:67;8166:2;8161:3;8102:67;:::i;:::-;8095:74;;8178:93;8267:3;8178:93;:::i;:::-;8296:2;8291:3;8287:12;8280:19;;8085:220;;;:::o;8311:366::-;8453:3;8474:67;8538:2;8533:3;8474:67;:::i;:::-;8467:74;;8550:93;8639:3;8550:93;:::i;:::-;8668:2;8663:3;8659:12;8652:19;;8457:220;;;:::o;8683:366::-;8825:3;8846:67;8910:2;8905:3;8846:67;:::i;:::-;8839:74;;8922:93;9011:3;8922:93;:::i;:::-;9040:2;9035:3;9031:12;9024:19;;8829:220;;;:::o;9055:366::-;9197:3;9218:67;9282:2;9277:3;9218:67;:::i;:::-;9211:74;;9294:93;9383:3;9294:93;:::i;:::-;9412:2;9407:3;9403:12;9396:19;;9201:220;;;:::o;9427:118::-;9514:24;9532:5;9514:24;:::i;:::-;9509:3;9502:37;9492:53;;:::o;9551:112::-;9634:22;9650:5;9634:22;:::i;:::-;9629:3;9622:35;9612:51;;:::o;9669:222::-;9762:4;9800:2;9789:9;9785:18;9777:26;;9813:71;9881:1;9870:9;9866:17;9857:6;9813:71;:::i;:::-;9767:124;;;;:::o;9897:332::-;10018:4;10056:2;10045:9;10041:18;10033:26;;10069:71;10137:1;10126:9;10122:17;10113:6;10069:71;:::i;:::-;10150:72;10218:2;10207:9;10203:18;10194:6;10150:72;:::i;:::-;10023:206;;;;;:::o;10235:210::-;10322:4;10360:2;10349:9;10345:18;10337:26;;10373:65;10435:1;10424:9;10420:17;10411:6;10373:65;:::i;:::-;10327:118;;;;:::o;10451:313::-;10564:4;10602:2;10591:9;10587:18;10579:26;;10651:9;10645:4;10641:20;10637:1;10626:9;10622:17;10615:47;10679:78;10752:4;10743:6;10679:78;:::i;:::-;10671:86;;10569:195;;;;:::o;10770:419::-;10936:4;10974:2;10963:9;10959:18;10951:26;;11023:9;11017:4;11013:20;11009:1;10998:9;10994:17;10987:47;11051:131;11177:4;11051:131;:::i;:::-;11043:139;;10941:248;;;:::o;11195:419::-;11361:4;11399:2;11388:9;11384:18;11376:26;;11448:9;11442:4;11438:20;11434:1;11423:9;11419:17;11412:47;11476:131;11602:4;11476:131;:::i;:::-;11468:139;;11366:248;;;:::o;11620:419::-;11786:4;11824:2;11813:9;11809:18;11801:26;;11873:9;11867:4;11863:20;11859:1;11848:9;11844:17;11837:47;11901:131;12027:4;11901:131;:::i;:::-;11893:139;;11791:248;;;:::o;12045:419::-;12211:4;12249:2;12238:9;12234:18;12226:26;;12298:9;12292:4;12288:20;12284:1;12273:9;12269:17;12262:47;12326:131;12452:4;12326:131;:::i;:::-;12318:139;;12216:248;;;:::o;12470:419::-;12636:4;12674:2;12663:9;12659:18;12651:26;;12723:9;12717:4;12713:20;12709:1;12698:9;12694:17;12687:47;12751:131;12877:4;12751:131;:::i;:::-;12743:139;;12641:248;;;:::o;12895:419::-;13061:4;13099:2;13088:9;13084:18;13076:26;;13148:9;13142:4;13138:20;13134:1;13123:9;13119:17;13112:47;13176:131;13302:4;13176:131;:::i;:::-;13168:139;;13066:248;;;:::o;13320:419::-;13486:4;13524:2;13513:9;13509:18;13501:26;;13573:9;13567:4;13563:20;13559:1;13548:9;13544:17;13537:47;13601:131;13727:4;13601:131;:::i;:::-;13593:139;;13491:248;;;:::o;13745:419::-;13911:4;13949:2;13938:9;13934:18;13926:26;;13998:9;13992:4;13988:20;13984:1;13973:9;13969:17;13962:47;14026:131;14152:4;14026:131;:::i;:::-;14018:139;;13916:248;;;:::o;14170:419::-;14336:4;14374:2;14363:9;14359:18;14351:26;;14423:9;14417:4;14413:20;14409:1;14398:9;14394:17;14387:47;14451:131;14577:4;14451:131;:::i;:::-;14443:139;;14341:248;;;:::o;14595:419::-;14761:4;14799:2;14788:9;14784:18;14776:26;;14848:9;14842:4;14838:20;14834:1;14823:9;14819:17;14812:47;14876:131;15002:4;14876:131;:::i;:::-;14868:139;;14766:248;;;:::o;15020:222::-;15113:4;15151:2;15140:9;15136:18;15128:26;;15164:71;15232:1;15221:9;15217:17;15208:6;15164:71;:::i;:::-;15118:124;;;;:::o;15248:483::-;15419:4;15457:2;15446:9;15442:18;15434:26;;15470:71;15538:1;15527:9;15523:17;15514:6;15470:71;:::i;:::-;15588:9;15582:4;15578:20;15573:2;15562:9;15558:18;15551:48;15616:108;15719:4;15710:6;15616:108;:::i;:::-;15608:116;;15424:307;;;;;:::o;15737:831::-;16000:4;16038:3;16027:9;16023:19;16015:27;;16052:71;16120:1;16109:9;16105:17;16096:6;16052:71;:::i;:::-;16133:80;16209:2;16198:9;16194:18;16185:6;16133:80;:::i;:::-;16260:9;16254:4;16250:20;16245:2;16234:9;16230:18;16223:48;16288:108;16391:4;16382:6;16288:108;:::i;:::-;16280:116;;16406:72;16474:2;16463:9;16459:18;16450:6;16406:72;:::i;:::-;16488:73;16556:3;16545:9;16541:19;16532:6;16488:73;:::i;:::-;16005:563;;;;;;;;:::o;16574:214::-;16663:4;16701:2;16690:9;16686:18;16678:26;;16714:67;16778:1;16767:9;16763:17;16754:6;16714:67;:::i;:::-;16668:120;;;;:::o;16875:132::-;16942:4;16965:3;16957:11;;16995:4;16990:3;16986:14;16978:22;;16947:60;;;:::o;17013:114::-;17080:6;17114:5;17108:12;17098:22;;17087:40;;;:::o;17133:99::-;17185:6;17219:5;17213:12;17203:22;;17192:40;;;:::o;17238:113::-;17308:4;17340;17335:3;17331:14;17323:22;;17313:38;;;:::o;17357:184::-;17456:11;17490:6;17485:3;17478:19;17530:4;17525:3;17521:14;17506:29;;17468:73;;;;:::o;17547:169::-;17631:11;17665:6;17660:3;17653:19;17705:4;17700:3;17696:14;17681:29;;17643:73;;;;:::o;17722:305::-;17762:3;17781:20;17799:1;17781:20;:::i;:::-;17776:25;;17815:20;17833:1;17815:20;:::i;:::-;17810:25;;17969:1;17901:66;17897:74;17894:1;17891:81;17888:2;;;17975:18;;:::i;:::-;17888:2;18019:1;18016;18012:9;18005:16;;17766:261;;;;:::o;18033:185::-;18073:1;18090:20;18108:1;18090:20;:::i;:::-;18085:25;;18124:20;18142:1;18124:20;:::i;:::-;18119:25;;18163:1;18153:2;;18168:18;;:::i;:::-;18153:2;18210:1;18207;18203:9;18198:14;;18075:143;;;;:::o;18224:348::-;18264:7;18287:20;18305:1;18287:20;:::i;:::-;18282:25;;18321:20;18339:1;18321:20;:::i;:::-;18316:25;;18509:1;18441:66;18437:74;18434:1;18431:81;18426:1;18419:9;18412:17;18408:105;18405:2;;;18516:18;;:::i;:::-;18405:2;18564:1;18561;18557:9;18546:20;;18272:300;;;;:::o;18578:191::-;18618:4;18638:20;18656:1;18638:20;:::i;:::-;18633:25;;18672:20;18690:1;18672:20;:::i;:::-;18667:25;;18711:1;18708;18705:8;18702:2;;;18716:18;;:::i;:::-;18702:2;18761:1;18758;18754:9;18746:17;;18623:146;;;;:::o;18775:96::-;18812:7;18841:24;18859:5;18841:24;:::i;:::-;18830:35;;18820:51;;;:::o;18877:90::-;18911:7;18954:5;18947:13;18940:21;18929:32;;18919:48;;;:::o;18973:126::-;19010:7;19050:42;19043:5;19039:54;19028:65;;19018:81;;;:::o;19105:77::-;19142:7;19171:5;19160:16;;19150:32;;;:::o;19188:86::-;19223:7;19263:4;19256:5;19252:16;19241:27;;19231:43;;;:::o;19280:121::-;19338:9;19371:24;19389:5;19371:24;:::i;:::-;19358:37;;19348:53;;;:::o;19407:307::-;19475:1;19485:113;19499:6;19496:1;19493:13;19485:113;;;19584:1;19579:3;19575:11;19569:18;19565:1;19560:3;19556:11;19549:39;19521:2;19518:1;19514:10;19509:15;;19485:113;;;19616:6;19613:1;19610:13;19607:2;;;19696:1;19687:6;19682:3;19678:16;19671:27;19607:2;19456:258;;;;:::o;19720:320::-;19764:6;19801:1;19795:4;19791:12;19781:22;;19848:1;19842:4;19838:12;19869:18;19859:2;;19925:4;19917:6;19913:17;19903:27;;19859:2;19987;19979:6;19976:14;19956:18;19953:38;19950:2;;;20006:18;;:::i;:::-;19950:2;19771:269;;;;:::o;20046:233::-;20085:3;20108:24;20126:5;20108:24;:::i;:::-;20099:33;;20154:66;20147:5;20144:77;20141:2;;;20224:18;;:::i;:::-;20141:2;20271:1;20264:5;20260:13;20253:20;;20089:190;;;:::o;20285:180::-;20333:77;20330:1;20323:88;20430:4;20427:1;20420:15;20454:4;20451:1;20444:15;20471:180;20519:77;20516:1;20509:88;20616:4;20613:1;20606:15;20640:4;20637:1;20630:15;20657:180;20705:77;20702:1;20695:88;20802:4;20799:1;20792:15;20826:4;20823:1;20816:15;20843:180;20891:77;20888:1;20881:88;20988:4;20985:1;20978:15;21012:4;21009:1;21002:15;21029:180;21077:77;21074:1;21067:88;21174:4;21171:1;21164:15;21198:4;21195:1;21188:15;21215:117;21324:1;21321;21314:12;21338:117;21447:1;21444;21437:12;21461:117;21570:1;21567;21560:12;21584:117;21693:1;21690;21683:12;21707:117;21816:1;21813;21806:12;21830:102;21871:6;21922:2;21918:7;21913:2;21906:5;21902:14;21898:28;21888:38;;21878:54;;;:::o;21938:222::-;22078:34;22074:1;22066:6;22062:14;22055:58;22147:5;22142:2;22134:6;22130:15;22123:30;22044:116;:::o;22166:159::-;22306:11;22302:1;22294:6;22290:14;22283:35;22272:53;:::o;22331:225::-;22471:34;22467:1;22459:6;22455:14;22448:58;22540:8;22535:2;22527:6;22523:15;22516:33;22437:119;:::o;22562:221::-;22702:34;22698:1;22690:6;22686:14;22679:58;22771:4;22766:2;22758:6;22754:15;22747:29;22668:115;:::o;22789:177::-;22929:29;22925:1;22917:6;22913:14;22906:53;22895:71;:::o;22972:220::-;23112:34;23108:1;23100:6;23096:14;23089:58;23181:3;23176:2;23168:6;23164:15;23157:28;23078:114;:::o;23198:182::-;23338:34;23334:1;23326:6;23322:14;23315:58;23304:76;:::o;23386:228::-;23526:34;23522:1;23514:6;23510:14;23503:58;23595:11;23590:2;23582:6;23578:15;23571:36;23492:122;:::o;23620:224::-;23760:34;23756:1;23748:6;23744:14;23737:58;23829:7;23824:2;23816:6;23812:15;23805:32;23726:118;:::o;23850:223::-;23990:34;23986:1;23978:6;23974:14;23967:58;24059:6;24054:2;24046:6;24042:15;24035:31;23956:117;:::o;24079:122::-;24152:24;24170:5;24152:24;:::i;:::-;24145:5;24142:35;24132:2;;24191:1;24188;24181:12;24132:2;24122:79;:::o;24207:122::-;24280:24;24298:5;24280:24;:::i;:::-;24273:5;24270:35;24260:2;;24319:1;24316;24309:12;24260:2;24250:79;:::o

Swarm Source

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