ETH Price: $3,120.36 (-0.05%)

Token

Megaweapon ($WEAPON)
 

Overview

Max Total Supply

10,000,000 $WEAPON

Holders

1,803 ( -0.056%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
53 $WEAPON

Value
$0.00
0x6a223ee663654f7a39a84d46758878a4cf392737
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:
WEAPON

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-05
*/

pragma solidity 0.8.1;


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);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
// SPDX-License-Identifier: MIT

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IWEAPONStakable is IERC20 {
    function stakedBalanceOf(address account) external view returns (uint256);
    function getStake(address account) external view returns (uint256, uint256, uint256);

    function stake(address account, uint256 amount, uint256 unstakeTime, bool isPlayer, uint256 adjustedStake) external;
    function unstake(address account, uint256 unstakeAmount, bool isPlayer, uint256 adjustedStake) external;
    function sync(address account, uint256 adjustedStake) external;
    function toggleStaking() external;
}


contract WEAPON is Context, IWEAPONStakable {

    bool private _swapping;

    bool public stakingEnabled = false;

    bool public mintLocked = true;
    uint public mintLockTime = 1643673599;

    mapping (address => bool) private _isPool;

    mapping (address => uint256) private _balances;
    mapping (address => uint256) private _stakedBalances;
    mapping (address => uint256) private _stakeExpireTime;
    mapping (address => uint256) private _stakeBeginTime;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply = 10 * 10**6 * 10**9; 

    string private constant _name = "Megaweapon";
    string private constant _symbol = "$WEAPON";
    string private constant _version = "2";
    uint8 private constant _decimals = 9;
    uint8 private _buyTax = 10;
    uint8 private _sellTax = 10;
    uint8 private _stakingRewards = 20;

    address immutable private _lp;
    address payable immutable private _vault;
    address payable immutable private _multiSig;
    address payable private _stakingContract;
    address private constant _uniRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 private UniV2Router;

    constructor(address vault, address multiSig) {
        require(vault != address(0) && multiSig != address(0), "$WEAPON: cannot assign privilege to zero address");
        _lp = _msgSender();
        _balances[_msgSender()] = _totalSupply;
        UniV2Router = IUniswapV2Router02(_uniRouter);
        _vault = payable(vault);
        _multiSig = payable(multiSig);
    }

    event Stake(address indexed staker, uint256 amount, uint256 stakeTime, uint256 stakeExpire);
    event Unstake(address indexed staker, uint256 amount, uint256 stakeAmountRemaining);
    event Adjust(address indexed staker, uint256 oldStake, uint256 newStake);
    event ChangeBuyTax(uint256 prevTax, uint256 newTax);
    event ChangeSellTax(uint256 prevTax, uint256 newTax);
    event ChangeRewards(uint256 prevRew, uint256 newRew);
    event ToggleStaking(bool enabled);
    event SetStakingContract(address stakingCon);
    event SetPool(address isNowPool);
    event FailsafeTokenSwap(uint256 amount);
    event FailsafeETHTransfer(uint256 amount);
    event FreezeMint(uint256 mintLockTime);
    event ThawMint(uint256 mintLockTime);

    modifier onlyMultiSig {
        require (_msgSender() == _multiSig, "$WEAPON: unauthorized");
        _;
    }

    modifier lockSwap {
        _swapping = true;
        _;
        _swapping = false;
    }

    function name() external pure returns (string memory) {
        return _name;
    }

    function symbol() external pure returns (string memory) {
        return _symbol;
    }

    function version() external pure returns (string memory) {
        return _version;
    }

    function decimals() external pure returns (uint8) {
        return _decimals;
    }

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

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

    function stakedBalanceOf(address account) external view override returns (uint256) {
        return _stakedBalances[account];    
    }

    function getStake(address account) external view override returns (uint256, uint256, uint256) {
        if (stakingEnabled && _stakedBalances[account] > 0)
            return (_stakedBalances[account], _stakeBeginTime[account], _stakeExpireTime[account]);
        else return (0,0,0);
    }

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require (_allowances[sender][_msgSender()] >= amount, "ERC20: transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - 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 _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(_balances[sender] >= amount, "ERC20: transfer exceeds balance");
        require(amount > 0, "$WEAPON: cannot transfer zero");
        require(!(_isPool[sender] && _isPool[recipient]), "$WEAPON: cannot transfer pool to pool");

        uint256 taxedAmount = amount;
        uint256 tax = 0;
    
        if (_isPool[sender] == true && recipient != _lp && recipient != _uniRouter) {
            tax = amount * _buyTax / 100;
            taxedAmount = amount - tax;
            _balances[address(this)] += tax;
        }
        if (_isPool[recipient] == true && sender != _lp && sender != _uniRouter){ 
            tax = amount * _sellTax / 100;
            taxedAmount = amount - tax;
            _balances[address(this)] += tax;

            if (_balances[address(this)] > 100 * 10**9 && !_swapping) {
                uint256 _swapAmount = _balances[address(this)];
                if (_swapAmount > amount * 40 / 100) _swapAmount = amount * 40 / 100;
                _tokensToETH(_swapAmount);
            }
        }
    
        _balances[recipient] += taxedAmount;
        _balances[sender] -= amount;

        emit Transfer(sender, recipient, amount);
    }

    function stake(address account, uint256 amount, uint256 unstakeTime, bool isPlayer, uint256 adjustedStake) external override {
        require (_msgSender() == _stakingContract, "$WEAPON: must stake through staking contract");
        require (account != address(0), "$WEAPON: cannot stake zero address");
        require (stakingEnabled, "$WEAPON: staking currently not enabled"); 

        if (isPlayer)
        { 
            if (_stakedBalances[account] != adjustedStake){
                emit Adjust(account, _stakedBalances[account], adjustedStake);
                _stakedBalances[account] = adjustedStake;
            }
        }

        require (unstakeTime > (block.timestamp + 86100),"$WEAPON: minimum stake time 23 hours 55 min"); 
        require (unstakeTime >= _stakeExpireTime[account], "$WEAPON: new stake time cannot be shorter");
        require (_balances[account] >= amount, "$WEAPON: stake exceeds available balance");
        if (_stakedBalances[account] == 0) require (amount > 0, "$WEAPON: cannot stake 0 tokens");

        _balances[account] = _balances[account] - amount;
        _balances[_stakingContract] = _balances[_stakingContract] + amount;
        _stakedBalances[account] = _stakedBalances[account] + amount;

        _stakeExpireTime[account] = unstakeTime;
        _stakeBeginTime[account] = block.timestamp;

        emit Stake(account, amount, block.timestamp, unstakeTime);
    }

    function unstake(address account, uint256 unstakeAmount, bool isPlayer, uint256 adjustedStake) external override {
        require (_msgSender() == _stakingContract, "$WEAPON: must unstake through staking contract");
        require (account != address(0), "$WEAPON: cannot unstake zero address");
        require(unstakeAmount > 0, "$WEAPON: cannot unstake zero tokens");

        if (isPlayer)
        { 
            if (_stakedBalances[account] != adjustedStake){
                emit Adjust(account, _stakedBalances[account], adjustedStake);
                _stakedBalances[account] = adjustedStake;
            }
        }

        require(unstakeAmount <= _stakedBalances[account], "$WEAPON: unstake exceeds staked balance");
        
        _stakedBalances[account] = _stakedBalances[account] - unstakeAmount;
        _balances[account] = _balances[account] + unstakeAmount;
        _balances[_stakingContract] = _balances[_stakingContract] - unstakeAmount;
        
        emit Unstake(account, unstakeAmount, _stakedBalances[account]);
    }

    function sync(address account, uint256 adjustedStake) external override {
        require (_msgSender() == _stakingContract, "$WEAPON: unauthorized");
        require (account != address(0), "$WEAPON: cannot sync zero address");
        emit Adjust(account, _stakedBalances[account], adjustedStake);
        _stakedBalances[account] = adjustedStake;
    }

    function freezeMint(uint256 timestamp) external onlyMultiSig {
        require (timestamp > mintLockTime, "$WEAPON: cannot reduce lock time");
        mintLocked = true;
        mintLockTime = timestamp;

        emit FreezeMint(mintLockTime);
    }

    function thawMint() external onlyMultiSig {
        require (block.timestamp >= mintLockTime, "$WEAPON: still frozen");
        mintLocked = false;
        mintLockTime = block.timestamp + 86400;

        emit ThawMint(mintLockTime);
    } 

    function mint(uint256 amount, address recipient) external onlyMultiSig {
        require (block.timestamp > mintLockTime && mintLocked == false, "$WEAPON: still frozen");
        _totalSupply = _totalSupply + amount;
        _balances[recipient] = _balances[recipient] + amount;

        emit Transfer(address(0), recipient, amount);
    }

    function toggleStaking() external override onlyMultiSig {
        require (_stakingContract != address(0), "$WEAPON: staking contract not set");
        if (stakingEnabled == true) stakingEnabled = false;
        else stakingEnabled = true;
        emit ToggleStaking(stakingEnabled);
    }

    function setStakingContract(address addr) external onlyMultiSig {
        require(addr != address(0), "$WEAPON: cannot be zero address");
        _stakingContract = payable(addr);
        emit SetStakingContract(addr);
    }

    function getStakingContract() external view returns (address) {
        return _stakingContract;
    }

    function setBuyTax(uint8 newTax) external onlyMultiSig {
        require (newTax <= 10, "$WEAPON: tax cannot exceed 10%");
        emit ChangeBuyTax(_buyTax, newTax);
        _buyTax = newTax;
    }

    function setSellTax(uint8 newTax) external onlyMultiSig {
        require (newTax <= 10, "$WEAPON: tax cannot exceed 10%");
        emit ChangeSellTax(_sellTax, newTax);
        _sellTax = newTax;
    }

    function setRewards(uint8 newRewards) external onlyMultiSig {
        require (newRewards >= 20, "$WEAPON: rewards minimum 20%");
        require (newRewards <= 100, "$WEAPON: rewards maximum 100%");
        emit ChangeRewards(_stakingRewards, newRewards);
        _stakingRewards = newRewards;
    }

    function setPool(address addr) external onlyMultiSig {
        require(addr != address(0), "$WEAPON: zero address cannot be pool");
        _isPool[addr] = true;
        emit SetPool(addr);
    }
    
    function isPool(address addr) external view returns (bool){
        return _isPool[addr];
    }

    function _transferETH(uint256 amount, address payable _to) private {
        (bool sent, bytes memory data) = _to.call{value: amount}("");
        require(sent, "Failed to send Ether");
    }

    function _tokensToETH(uint256 amount) private lockSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = UniV2Router.WETH();

        _approve(address(this), _uniRouter, amount);
        UniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount, 0, path, address(this), block.timestamp);

        if (address(this).balance > 0) 
        {
            if (stakingEnabled) {
                uint stakingShare = address(this).balance * _stakingRewards / 100;
                _transferETH(stakingShare, _stakingContract);
            }
            _transferETH(address(this).balance, _vault);
        }
    }
    
    function failsafeTokenSwap(uint256 amount) external onlyMultiSig {
        _tokensToETH(amount);
        emit FailsafeTokenSwap(amount);
    }

    function failsafeETHtransfer() external onlyMultiSig {
        emit FailsafeETHTransfer(address(this).balance);
        (bool sent, bytes memory data) = _msgSender().call{value: address(this).balance}("");
        require(sent, "Failed to send Ether");
    }

    receive() external payable {}

    fallback() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"multiSig","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"oldStake","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newStake","type":"uint256"}],"name":"Adjust","type":"event"},{"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":false,"internalType":"uint256","name":"prevTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"ChangeBuyTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"prevRew","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newRew","type":"uint256"}],"name":"ChangeRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"prevTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"ChangeSellTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FailsafeETHTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FailsafeTokenSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"mintLockTime","type":"uint256"}],"name":"FreezeMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"isNowPool","type":"address"}],"name":"SetPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"stakingCon","type":"address"}],"name":"SetStakingContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeExpire","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"mintLockTime","type":"uint256"}],"name":"ThawMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ToggleStaking","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeAmountRemaining","type":"uint256"}],"name":"Unstake","type":"event"},{"stateMutability":"payable","type":"fallback"},{"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":"pure","type":"function"},{"inputs":[],"name":"failsafeETHtransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"failsafeTokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"freezeMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakingContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintLockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"newTax","type":"uint8"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newRewards","type":"uint8"}],"name":"setRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newTax","type":"uint8"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setStakingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"unstakeTime","type":"uint256"},{"internalType":"bool","name":"isPlayer","type":"bool"},{"internalType":"uint256","name":"adjustedStake","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"stakedBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"adjustedStake","type":"uint256"}],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"thawMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleStaking","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"},{"internalType":"uint256","name":"unstakeAmount","type":"uint256"},{"internalType":"bool","name":"isPlayer","type":"bool"},{"internalType":"uint256","name":"adjustedStake","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e06040526000805462ffff001916620100001790556361f877ff600155662386f26fc100006008556009805462140000610a0060ff19909216600a1761ff0019169190911762ff000019161790553480156200005b57600080fd5b5060405162003022380380620030228339810160408190526200007e9162000172565b6001600160a01b038216158015906200009f57506001600160a01b03811615155b620000c75760405162461bcd60e51b8152600401620000be90620001a9565b60405180910390fd5b620000d162000151565b60601b6001600160601b03191660805260085460036000620000f262000151565b6001600160a01b03168152602081019190915260400160002055600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556001600160601b0319606092831b811660a052911b1660c052620001f9565b3390565b80516001600160a01b03811681146200016d57600080fd5b919050565b6000806040838503121562000185578182fd5b620001908362000155565b9150620001a06020840162000155565b90509250929050565b60208082526030908201527f24574541504f4e3a2063616e6e6f742061737369676e2070726976696c65676560408201526f20746f207a65726f206164647265737360801b606082015260800190565b60805160601c60a05160601c60c05160601c612da36200027f600039600081816105f00152818161081e01528181610923015281816109ff01528181610b3401528181610cb501528181610d7a01528181610ecf01528181610f95015281816115f701526116c101526000611f86015260008181611a800152611b600152612da36000f3fe6080604052600436106101dc5760003560e01c80637a76646011610102578063a2bad69211610095578063dd62ed3e11610064578063dd62ed3e14610525578063df3c3a3014610545578063e3ed39951461055a578063ef4fcafa1461057a576101e3565b8063a2bad692146104a5578063a9059cbb146104c5578063bb11c627146104e5578063d8fda58d14610505576101e3565b806394bf804d116100d157806394bf804d1461043b57806395d89b411461045b578063962b5df9146104705780639dd373b914610485576101e3565b80637a766460146103b55780638e68dce4146103e4578063938caa381461040657806393fea3f814610426576101e3565b8063313ce5671161017a57806354fd4d501161014957806354fd4d50146103405780635b16ebb7146103555780636081752b1461037557806370a0823114610395576101e3565b8063313ce567146102c95780633b8105b3146102eb5780634437152a1461030057806349abdc1414610320576101e3565b806316765391116101b6578063167653911461025257806318160ddd1461027f5780631cfff51b1461029457806323b872dd146102a9576101e3565b806306fdde03146101e5578063095ea7b3146102105780631023231c1461023d576101e3565b366101e357005b005b3480156101f157600080fd5b506101fa61059a565b6040516102079190612241565b60405180910390f35b34801561021c57600080fd5b5061023061022b366004612103565b6105d1565b6040516102079190612236565b34801561024957600080fd5b506101e36105ee565b34801561025e57600080fd5b5061027261026d36600461204c565b61070f565b6040516102079190612bf4565b34801561028b57600080fd5b5061027261072e565b3480156102a057600080fd5b50610230610734565b3480156102b557600080fd5b506102306102c43660046120c3565b610742565b3480156102d557600080fd5b506102de610817565b6040516102079190612c91565b3480156102f757600080fd5b506101e361081c565b34801561030c57600080fd5b506101e361031b36600461204c565b610921565b34801561032c57600080fd5b506101e361033b3660046121fe565b6109fd565b34801561034c57600080fd5b506101fa610add565b34801561036157600080fd5b5061023061037036600461204c565b610b14565b34801561038157600080fd5b506101e36103903660046121fe565b610b32565b3480156103a157600080fd5b506102726103b036600461204c565b610c05565b3480156103c157600080fd5b506103d56103d036600461204c565b610c20565b60405161020793929190612c7b565b3480156103f057600080fd5b506103f9610c9d565b6040516102079190612222565b34801561041257600080fd5b506101e36104213660046121c2565b610cb3565b34801561043257600080fd5b50610272610d72565b34801561044757600080fd5b506101e36104563660046121da565b610d78565b34801561046757600080fd5b506101fa610e96565b34801561047c57600080fd5b506101e3610ecd565b34801561049157600080fd5b506101e36104a036600461204c565b610f93565b3480156104b157600080fd5b506101e36104c0366004612173565b61107a565b3480156104d157600080fd5b506102306104e0366004612103565b611389565b3480156104f157600080fd5b506101e361050036600461212e565b61139d565b34801561051157600080fd5b506101e36105203660046121c2565b6115f5565b34801561053157600080fd5b5061027261054036600461208b565b611685565b34801561055157600080fd5b506102306116b0565b34801561056657600080fd5b506101e36105753660046121fe565b6116bf565b34801561058657600080fd5b506101e3610595366004612103565b6117c5565b60408051808201909152600a81527f4d656761776561706f6e00000000000000000000000000000000000000000000602082015290565b60006105e56105de61189a565b848461189e565b50600192915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661062061189a565b6001600160a01b03161461064f5760405162461bcd60e51b81526004016106469061280a565b60405180910390fd5b7f1f64c685e757b0c83e841acaf1a5ce47a4fb3aa43f46bdc8217f4a7a5e8d7ed84760405161067e9190612bf4565b60405180910390a160008061069161189a565b6001600160a01b0316476040516106a79061221f565b60006040518083038185875af1925050503d80600081146106e4576040519150601f19603f3d011682016040523d82523d6000602084013e6106e9565b606091505b50915091508161070b5760405162461bcd60e51b8152600401610646906124a3565b5050565b6001600160a01b0381166000908152600460205260409020545b919050565b60085490565b600054610100900460ff1681565b6001600160a01b038316600090815260076020526040812082908261076561189a565b6001600160a01b03166001600160a01b031681526020019081526020016000205410156107a45760405162461bcd60e51b8152600401610646906127ad565b6107af848484611952565b61080d846107bb61189a565b6001600160a01b038716600090815260076020526040812086916107dd61189a565b6001600160a01b03166001600160a01b03168152602001908152602001600020546108089190612d28565b61189e565b5060019392505050565b600990565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661084e61189a565b6001600160a01b0316146108745760405162461bcd60e51b81526004016106469061280a565b600954630100000090046001600160a01b03166108a35760405162461bcd60e51b815260040161064690612b3a565b60005460ff610100909104161515600114156108c9576000805461ff00191690556108d9565b6000805461ff0019166101001790555b7f39c3c37112aa9f1b74ce99befb140716c3f946730c4b9d9f4939c003ce446c77600060019054906101000a900460ff166040516109179190612236565b60405180910390a1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661095361189a565b6001600160a01b0316146109795760405162461bcd60e51b81526004016106469061280a565b6001600160a01b03811661099f5760405162461bcd60e51b815260040161064690612841565b6001600160a01b03811660009081526002602052604090819020805460ff19166001179055517f67816c9262630d6052ccaada1732fda377aa9e9abb3bc91cfd887a016a18a43a906109f2908390612222565b60405180910390a150565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a2f61189a565b6001600160a01b031614610a555760405162461bcd60e51b81526004016106469061280a565b600a8160ff161115610a795760405162461bcd60e51b815260040161064690612958565b7f6d9880198c1159f52707b61a6882da80275b14b90bd9e5f332b3ed9d39eeb42c600960019054906101000a900460ff1682604051610ab9929190612c9f565b60405180910390a16009805460ff9092166101000261ff0019909216919091179055565b60408051808201909152600181527f3200000000000000000000000000000000000000000000000000000000000000602082015290565b6001600160a01b031660009081526002602052604090205460ff1690565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b6461189a565b6001600160a01b031614610b8a5760405162461bcd60e51b81526004016106469061280a565b600a8160ff161115610bae5760405162461bcd60e51b815260040161064690612958565b6009546040517fae004c20b38d4d71a0cf8304ec672eacfd34dedc962fa7e5e82d9e55ac7444c091610be79160ff909116908490612c9f565b60405180910390a16009805460ff191660ff92909216919091179055565b6001600160a01b031660009081526003602052604090205490565b6000805481908190610100900460ff168015610c5357506001600160a01b03841660009081526004602052604090205415155b15610c8c575050506001600160a01b03811660009081526004602090815260408083205460068352818420546005909352922054610c96565b5060009150819050805b9193909250565b600954630100000090046001600160a01b031690565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ce561189a565b6001600160a01b031614610d0b5760405162461bcd60e51b81526004016106469061280a565b6001548111610d2c5760405162461bcd60e51b815260040161064690612400565b6000805462ff000019166201000017905560018190556040517f22d94bc7514daebac7d4ba58d9c133477215e3ca7d28fdc673301c1473345ea2906109f2908390612bf4565b60015481565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610daa61189a565b6001600160a01b031614610dd05760405162461bcd60e51b81526004016106469061280a565b60015442118015610dea575060005462010000900460ff16155b610e065760405162461bcd60e51b8152600401610646906125f1565b81600854610e149190612cb3565b6008556001600160a01b038116600090815260036020526040902054610e3b908390612cb3565b6001600160a01b0382166000818152600360205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e8a908690612bf4565b60405180910390a35050565b60408051808201909152600781527f24574541504f4e00000000000000000000000000000000000000000000000000602082015290565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610eff61189a565b6001600160a01b031614610f255760405162461bcd60e51b81526004016106469061280a565b600154421015610f475760405162461bcd60e51b8152600401610646906125f1565b6000805462ff000019169055610f604262015180612cb3565b60018190556040517f69f59bb2e123082e696cc484745189309eda69163011dce939f71d19c714b3dc9161091791612bf4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fc561189a565b6001600160a01b031614610feb5760405162461bcd60e51b81526004016106469061280a565b6001600160a01b0381166110115760405162461bcd60e51b815260040161064690612719565b600980547fffffffffffffffffff0000000000000000000000000000000000000000ffffff1663010000006001600160a01b038416021790556040517f77da29da4ba6bf0a49e709076c8fc946886ea566b52a1429ac484d59f879be37906109f2908390612222565b600954630100000090046001600160a01b031661109561189a565b6001600160a01b0316146110bb5760405162461bcd60e51b815260040161064690612b97565b6001600160a01b0385166110e15760405162461bcd60e51b815260040161064690612594565b600054610100900460ff166111085760405162461bcd60e51b815260040161064690612628565b811561119b576001600160a01b038516600090815260046020526040902054811461119b576001600160a01b038516600081815260046020526040908190205490517f5cb6b338abc32929561a7c976045b80ae6af37304b361e7d9f5076e6cb4569e791611177918590612c6d565b60405180910390a26001600160a01b03851660009081526004602052604090208190555b6111a84262015054612cb3565b83116111c65760405162461bcd60e51b8152600401610646906124da565b6001600160a01b0385166000908152600560205260409020548310156111fe5760405162461bcd60e51b81526004016106469061230f565b6001600160a01b0385166000908152600360205260409020548411156112365760405162461bcd60e51b815260040161064690612a80565b6001600160a01b03851660009081526004602052604090205461127357600084116112735760405162461bcd60e51b81526004016106469061236c565b6001600160a01b038516600090815260036020526040902054611297908590612d28565b6001600160a01b038087166000908152600360205260408082209390935560095463010000009004909116815220546112d1908590612cb3565b6009546001600160a01b0363010000009091048116600090815260036020908152604080832094909455918816815260049091522054611312908590612cb3565b6001600160a01b03861660008181526004602090815260408083209490945560058152838220879055600690528290204290819055915190917ff556991011e831bcfac4f406d547e5e32cdd98267efab83935230d5f8d02c4469161137a9188918890612c7b565b60405180910390a25050505050565b60006105e561139661189a565b8484611952565b600954630100000090046001600160a01b03166113b861189a565b6001600160a01b0316146113de5760405162461bcd60e51b815260040161064690612537565b6001600160a01b0384166114045760405162461bcd60e51b815260040161064690612750565b600083116114245760405162461bcd60e51b815260040161064690612add565b81156114b7576001600160a01b03841660009081526004602052604090205481146114b7576001600160a01b038416600081815260046020526040908190205490517f5cb6b338abc32929561a7c976045b80ae6af37304b361e7d9f5076e6cb4569e791611493918590612c6d565b60405180910390a26001600160a01b03841660009081526004602052604090208190555b6001600160a01b0384166000908152600460205260409020548311156114ef5760405162461bcd60e51b815260040161064690612685565b6001600160a01b038416600090815260046020526040902054611513908490612d28565b6001600160a01b038516600090815260046020908152604080832093909355600390522054611543908490612cb3565b6001600160a01b0380861660009081526003602052604080822093909355600954630100000090049091168152205461157d908490612d28565b6009546001600160a01b0363010000009091048116600090815260036020908152604080832094909455918716808252600490925282902054915190917ff960dbf9e5d0682f7a298ed974e33a28b4464914b7a2bfac12ae419a9afeb280916115e7918791612c6d565b60405180910390a250505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661162761189a565b6001600160a01b03161461164d5760405162461bcd60e51b81526004016106469061280a565b61165681611d46565b7f8ae3c994b30b13928ab97e09c40c6723fd78cb4c761449737ecc51cb1f91d877816040516109f29190612bf4565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b60005462010000900460ff1681565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116f161189a565b6001600160a01b0316146117175760405162461bcd60e51b81526004016106469061280a565b60148160ff16101561173b5760405162461bcd60e51b81526004016106469061246c565b60648160ff16111561175f5760405162461bcd60e51b815260040161064690612a49565b7f717d38a0af5ed15f7369104a29a63331d40ff3543f1dbc8ad39b22689f88b517600960029054906101000a900460ff168260405161179f929190612c9f565b60405180910390a16009805460ff909216620100000262ff000019909216919091179055565b600954630100000090046001600160a01b03166117e061189a565b6001600160a01b0316146118065760405162461bcd60e51b81526004016106469061280a565b6001600160a01b03821661182c5760405162461bcd60e51b81526004016106469061289e565b6001600160a01b038216600081815260046020526040908190205490517f5cb6b338abc32929561a7c976045b80ae6af37304b361e7d9f5076e6cb4569e791611876918590612c6d565b60405180910390a26001600160a01b03909116600090815260046020526040902055565b3390565b6001600160a01b0383166118c45760405162461bcd60e51b81526004016106469061298f565b6001600160a01b0382166118ea5760405162461bcd60e51b8152600401610646906123a3565b6001600160a01b0380841660008181526007602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611945908590612bf4565b60405180910390a3505050565b6001600160a01b0383166119785760405162461bcd60e51b8152600401610646906128fb565b6001600160a01b03821661199e5760405162461bcd60e51b8152600401610646906122b2565b6001600160a01b0383166000908152600360205260409020548111156119d65760405162461bcd60e51b8152600401610646906126e2565b600081116119f65760405162461bcd60e51b815260040161064690612435565b6001600160a01b03831660009081526002602052604090205460ff168015611a3657506001600160a01b03821660009081526002602052604090205460ff165b15611a535760405162461bcd60e51b8152600401610646906129ec565b6001600160a01b03831660009081526002602052604081205482919060ff1615156001148015611ab557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b8015611ade57506001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d14155b15611b3657600954606490611af69060ff1685612ceb565b611b009190612ccb565b9050611b0c8184612d28565b30600090815260036020526040812080549294508392909190611b30908490612cb3565b90915550505b6001600160a01b03841660009081526002602052604090205460ff1615156001148015611b9557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b8015611bbe57506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d14155b15611c9857600954606490611bdb90610100900460ff1685612ceb565b611be59190612ccb565b9050611bf18184612d28565b30600090815260036020526040812080549294508392909190611c15908490612cb3565b90915550503060009081526003602052604090205464174876e800108015611c40575060005460ff16155b15611c9857306000908152600360205260409020546064611c62856028612ceb565b611c6c9190612ccb565b811115611c8d576064611c80856028612ceb565b611c8a9190612ccb565b90505b611c9681611d46565b505b6001600160a01b03841660009081526003602052604081208054849290611cc0908490612cb3565b90915550506001600160a01b03851660009081526003602052604081208054859290611ced908490612d28565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611d379190612bf4565b60405180910390a35050505050565b6000805460ff1916600117815560408051600280825260608201835290916020830190803683370190505090503081600081518110611d9557634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600a54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b158015611e0257600080fd5b505afa158015611e16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3a919061206f565b81600181518110611e5b57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050611e9a30737a250d5630b4cf539739df2c5dacb4c659f2488d8461189e565b600a546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac94790611eec908590600090869030904290600401612bfd565b600060405180830381600087803b158015611f0657600080fd5b505af1158015611f1a573d6000803e3d6000fd5b505050506000471115611faa57600054610100900460ff1615611f8057600954600090606490611f539062010000900460ff1647612ceb565b611f5d9190612ccb565b9050611f7e81600960039054906101000a90046001600160a01b0316611fb8565b505b611faa477f0000000000000000000000000000000000000000000000000000000000000000611fb8565b50506000805460ff19169055565b600080826001600160a01b031684604051611fd29061221f565b60006040518083038185875af1925050503d806000811461200f576040519150601f19603f3d011682016040523d82523d6000602084013e612014565b606091505b5091509150816120365760405162461bcd60e51b8152600401610646906124a3565b50505050565b8035801515811461072957600080fd5b60006020828403121561205d578081fd5b813561206881612d55565b9392505050565b600060208284031215612080578081fd5b815161206881612d55565b6000806040838503121561209d578081fd5b82356120a881612d55565b915060208301356120b881612d55565b809150509250929050565b6000806000606084860312156120d7578081fd5b83356120e281612d55565b925060208401356120f281612d55565b929592945050506040919091013590565b60008060408385031215612115578182fd5b823561212081612d55565b946020939093013593505050565b60008060008060808587031215612143578081fd5b843561214e81612d55565b9350602085013592506121636040860161203c565b9396929550929360600135925050565b600080600080600060a0868803121561218a578081fd5b853561219581612d55565b945060208601359350604086013592506121b16060870161203c565b949793965091946080013592915050565b6000602082840312156121d3578081fd5b5035919050565b600080604083850312156121ec578182fd5b8235915060208301356120b881612d55565b60006020828403121561220f578081fd5b813560ff81168114612068578182fd5b90565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b8181101561226d57858101830151858201604001528201612251565b8181111561227e5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201527f6573730000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526029908201527f24574541504f4e3a206e6577207374616b652074696d652063616e6e6f74206260408201527f652073686f727465720000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f24574541504f4e3a2063616e6e6f74207374616b65203020746f6b656e730000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f24574541504f4e3a2063616e6e6f7420726564756365206c6f636b2074696d65604082015260600190565b6020808252601d908201527f24574541504f4e3a2063616e6e6f74207472616e73666572207a65726f000000604082015260600190565b6020808252601c908201527f24574541504f4e3a2072657761726473206d696e696d756d2032302500000000604082015260600190565b60208082526014908201527f4661696c656420746f2073656e64204574686572000000000000000000000000604082015260600190565b6020808252602b908201527f24574541504f4e3a206d696e696d756d207374616b652074696d65203233206860408201527f6f757273203535206d696e000000000000000000000000000000000000000000606082015260800190565b6020808252602e908201527f24574541504f4e3a206d75737420756e7374616b65207468726f75676820737460408201527f616b696e6720636f6e7472616374000000000000000000000000000000000000606082015260800190565b60208082526022908201527f24574541504f4e3a2063616e6e6f74207374616b65207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526015908201527f24574541504f4e3a207374696c6c2066726f7a656e0000000000000000000000604082015260600190565b60208082526026908201527f24574541504f4e3a207374616b696e672063757272656e746c79206e6f74206560408201527f6e61626c65640000000000000000000000000000000000000000000000000000606082015260800190565b60208082526027908201527f24574541504f4e3a20756e7374616b652065786365656473207374616b65642060408201527f62616c616e636500000000000000000000000000000000000000000000000000606082015260800190565b6020808252601f908201527f45524332303a207472616e7366657220657863656564732062616c616e636500604082015260600190565b6020808252601f908201527f24574541504f4e3a2063616e6e6f74206265207a65726f206164647265737300604082015260600190565b60208082526024908201527f24574541504f4e3a2063616e6e6f7420756e7374616b65207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160408201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000606082015260800190565b60208082526015908201527f24574541504f4e3a20756e617574686f72697a65640000000000000000000000604082015260600190565b60208082526024908201527f24574541504f4e3a207a65726f20616464726573732063616e6e6f742062652060408201527f706f6f6c00000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f24574541504f4e3a2063616e6e6f742073796e63207a65726f2061646472657360408201527f7300000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460408201527f6472657373000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f24574541504f4e3a207461782063616e6e6f7420657863656564203130250000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f24574541504f4e3a2063616e6e6f74207472616e7366657220706f6f6c20746f60408201527f20706f6f6c000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f24574541504f4e3a2072657761726473206d6178696d756d2031303025000000604082015260600190565b60208082526028908201527f24574541504f4e3a207374616b65206578636565647320617661696c61626c6560408201527f2062616c616e6365000000000000000000000000000000000000000000000000606082015260800190565b60208082526023908201527f24574541504f4e3a2063616e6e6f7420756e7374616b65207a65726f20746f6b60408201527f656e730000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f24574541504f4e3a207374616b696e6720636f6e7472616374206e6f7420736560408201527f7400000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602c908201527f24574541504f4e3a206d757374207374616b65207468726f756768207374616b60408201527f696e6720636f6e74726163740000000000000000000000000000000000000000606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015612c4c5784516001600160a01b031683529383019391830191600101612c27565b50506001600160a01b03969096166060850152505050608001529392505050565b918252602082015260400190565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b60ff92831681529116602082015260400190565b60008219821115612cc657612cc6612d3f565b500190565b600082612ce657634e487b7160e01b81526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d2357612d23612d3f565b500290565b600082821015612d3a57612d3a612d3f565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114612d6a57600080fd5b5056fea26469706673582212206579fe0f42afe3205b7deb200f9295bff0e1b426db0e8d69f9a4a73ca17db1a764736f6c63430008010033000000000000000000000000d8d1e6a874a4fda4136f11b57cc65f037ab2789300000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80637a76646011610102578063a2bad69211610095578063dd62ed3e11610064578063dd62ed3e14610525578063df3c3a3014610545578063e3ed39951461055a578063ef4fcafa1461057a576101e3565b8063a2bad692146104a5578063a9059cbb146104c5578063bb11c627146104e5578063d8fda58d14610505576101e3565b806394bf804d116100d157806394bf804d1461043b57806395d89b411461045b578063962b5df9146104705780639dd373b914610485576101e3565b80637a766460146103b55780638e68dce4146103e4578063938caa381461040657806393fea3f814610426576101e3565b8063313ce5671161017a57806354fd4d501161014957806354fd4d50146103405780635b16ebb7146103555780636081752b1461037557806370a0823114610395576101e3565b8063313ce567146102c95780633b8105b3146102eb5780634437152a1461030057806349abdc1414610320576101e3565b806316765391116101b6578063167653911461025257806318160ddd1461027f5780631cfff51b1461029457806323b872dd146102a9576101e3565b806306fdde03146101e5578063095ea7b3146102105780631023231c1461023d576101e3565b366101e357005b005b3480156101f157600080fd5b506101fa61059a565b6040516102079190612241565b60405180910390f35b34801561021c57600080fd5b5061023061022b366004612103565b6105d1565b6040516102079190612236565b34801561024957600080fd5b506101e36105ee565b34801561025e57600080fd5b5061027261026d36600461204c565b61070f565b6040516102079190612bf4565b34801561028b57600080fd5b5061027261072e565b3480156102a057600080fd5b50610230610734565b3480156102b557600080fd5b506102306102c43660046120c3565b610742565b3480156102d557600080fd5b506102de610817565b6040516102079190612c91565b3480156102f757600080fd5b506101e361081c565b34801561030c57600080fd5b506101e361031b36600461204c565b610921565b34801561032c57600080fd5b506101e361033b3660046121fe565b6109fd565b34801561034c57600080fd5b506101fa610add565b34801561036157600080fd5b5061023061037036600461204c565b610b14565b34801561038157600080fd5b506101e36103903660046121fe565b610b32565b3480156103a157600080fd5b506102726103b036600461204c565b610c05565b3480156103c157600080fd5b506103d56103d036600461204c565b610c20565b60405161020793929190612c7b565b3480156103f057600080fd5b506103f9610c9d565b6040516102079190612222565b34801561041257600080fd5b506101e36104213660046121c2565b610cb3565b34801561043257600080fd5b50610272610d72565b34801561044757600080fd5b506101e36104563660046121da565b610d78565b34801561046757600080fd5b506101fa610e96565b34801561047c57600080fd5b506101e3610ecd565b34801561049157600080fd5b506101e36104a036600461204c565b610f93565b3480156104b157600080fd5b506101e36104c0366004612173565b61107a565b3480156104d157600080fd5b506102306104e0366004612103565b611389565b3480156104f157600080fd5b506101e361050036600461212e565b61139d565b34801561051157600080fd5b506101e36105203660046121c2565b6115f5565b34801561053157600080fd5b5061027261054036600461208b565b611685565b34801561055157600080fd5b506102306116b0565b34801561056657600080fd5b506101e36105753660046121fe565b6116bf565b34801561058657600080fd5b506101e3610595366004612103565b6117c5565b60408051808201909152600a81527f4d656761776561706f6e00000000000000000000000000000000000000000000602082015290565b60006105e56105de61189a565b848461189e565b50600192915050565b7f00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb6001600160a01b031661062061189a565b6001600160a01b03161461064f5760405162461bcd60e51b81526004016106469061280a565b60405180910390fd5b7f1f64c685e757b0c83e841acaf1a5ce47a4fb3aa43f46bdc8217f4a7a5e8d7ed84760405161067e9190612bf4565b60405180910390a160008061069161189a565b6001600160a01b0316476040516106a79061221f565b60006040518083038185875af1925050503d80600081146106e4576040519150601f19603f3d011682016040523d82523d6000602084013e6106e9565b606091505b50915091508161070b5760405162461bcd60e51b8152600401610646906124a3565b5050565b6001600160a01b0381166000908152600460205260409020545b919050565b60085490565b600054610100900460ff1681565b6001600160a01b038316600090815260076020526040812082908261076561189a565b6001600160a01b03166001600160a01b031681526020019081526020016000205410156107a45760405162461bcd60e51b8152600401610646906127ad565b6107af848484611952565b61080d846107bb61189a565b6001600160a01b038716600090815260076020526040812086916107dd61189a565b6001600160a01b03166001600160a01b03168152602001908152602001600020546108089190612d28565b61189e565b5060019392505050565b600990565b7f00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb6001600160a01b031661084e61189a565b6001600160a01b0316146108745760405162461bcd60e51b81526004016106469061280a565b600954630100000090046001600160a01b03166108a35760405162461bcd60e51b815260040161064690612b3a565b60005460ff610100909104161515600114156108c9576000805461ff00191690556108d9565b6000805461ff0019166101001790555b7f39c3c37112aa9f1b74ce99befb140716c3f946730c4b9d9f4939c003ce446c77600060019054906101000a900460ff166040516109179190612236565b60405180910390a1565b7f00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb6001600160a01b031661095361189a565b6001600160a01b0316146109795760405162461bcd60e51b81526004016106469061280a565b6001600160a01b03811661099f5760405162461bcd60e51b815260040161064690612841565b6001600160a01b03811660009081526002602052604090819020805460ff19166001179055517f67816c9262630d6052ccaada1732fda377aa9e9abb3bc91cfd887a016a18a43a906109f2908390612222565b60405180910390a150565b7f00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb6001600160a01b0316610a2f61189a565b6001600160a01b031614610a555760405162461bcd60e51b81526004016106469061280a565b600a8160ff161115610a795760405162461bcd60e51b815260040161064690612958565b7f6d9880198c1159f52707b61a6882da80275b14b90bd9e5f332b3ed9d39eeb42c600960019054906101000a900460ff1682604051610ab9929190612c9f565b60405180910390a16009805460ff9092166101000261ff0019909216919091179055565b60408051808201909152600181527f3200000000000000000000000000000000000000000000000000000000000000602082015290565b6001600160a01b031660009081526002602052604090205460ff1690565b7f00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb6001600160a01b0316610b6461189a565b6001600160a01b031614610b8a5760405162461bcd60e51b81526004016106469061280a565b600a8160ff161115610bae5760405162461bcd60e51b815260040161064690612958565b6009546040517fae004c20b38d4d71a0cf8304ec672eacfd34dedc962fa7e5e82d9e55ac7444c091610be79160ff909116908490612c9f565b60405180910390a16009805460ff191660ff92909216919091179055565b6001600160a01b031660009081526003602052604090205490565b6000805481908190610100900460ff168015610c5357506001600160a01b03841660009081526004602052604090205415155b15610c8c575050506001600160a01b03811660009081526004602090815260408083205460068352818420546005909352922054610c96565b5060009150819050805b9193909250565b600954630100000090046001600160a01b031690565b7f00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb6001600160a01b0316610ce561189a565b6001600160a01b031614610d0b5760405162461bcd60e51b81526004016106469061280a565b6001548111610d2c5760405162461bcd60e51b815260040161064690612400565b6000805462ff000019166201000017905560018190556040517f22d94bc7514daebac7d4ba58d9c133477215e3ca7d28fdc673301c1473345ea2906109f2908390612bf4565b60015481565b7f00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb6001600160a01b0316610daa61189a565b6001600160a01b031614610dd05760405162461bcd60e51b81526004016106469061280a565b60015442118015610dea575060005462010000900460ff16155b610e065760405162461bcd60e51b8152600401610646906125f1565b81600854610e149190612cb3565b6008556001600160a01b038116600090815260036020526040902054610e3b908390612cb3565b6001600160a01b0382166000818152600360205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e8a908690612bf4565b60405180910390a35050565b60408051808201909152600781527f24574541504f4e00000000000000000000000000000000000000000000000000602082015290565b7f00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb6001600160a01b0316610eff61189a565b6001600160a01b031614610f255760405162461bcd60e51b81526004016106469061280a565b600154421015610f475760405162461bcd60e51b8152600401610646906125f1565b6000805462ff000019169055610f604262015180612cb3565b60018190556040517f69f59bb2e123082e696cc484745189309eda69163011dce939f71d19c714b3dc9161091791612bf4565b7f00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb6001600160a01b0316610fc561189a565b6001600160a01b031614610feb5760405162461bcd60e51b81526004016106469061280a565b6001600160a01b0381166110115760405162461bcd60e51b815260040161064690612719565b600980547fffffffffffffffffff0000000000000000000000000000000000000000ffffff1663010000006001600160a01b038416021790556040517f77da29da4ba6bf0a49e709076c8fc946886ea566b52a1429ac484d59f879be37906109f2908390612222565b600954630100000090046001600160a01b031661109561189a565b6001600160a01b0316146110bb5760405162461bcd60e51b815260040161064690612b97565b6001600160a01b0385166110e15760405162461bcd60e51b815260040161064690612594565b600054610100900460ff166111085760405162461bcd60e51b815260040161064690612628565b811561119b576001600160a01b038516600090815260046020526040902054811461119b576001600160a01b038516600081815260046020526040908190205490517f5cb6b338abc32929561a7c976045b80ae6af37304b361e7d9f5076e6cb4569e791611177918590612c6d565b60405180910390a26001600160a01b03851660009081526004602052604090208190555b6111a84262015054612cb3565b83116111c65760405162461bcd60e51b8152600401610646906124da565b6001600160a01b0385166000908152600560205260409020548310156111fe5760405162461bcd60e51b81526004016106469061230f565b6001600160a01b0385166000908152600360205260409020548411156112365760405162461bcd60e51b815260040161064690612a80565b6001600160a01b03851660009081526004602052604090205461127357600084116112735760405162461bcd60e51b81526004016106469061236c565b6001600160a01b038516600090815260036020526040902054611297908590612d28565b6001600160a01b038087166000908152600360205260408082209390935560095463010000009004909116815220546112d1908590612cb3565b6009546001600160a01b0363010000009091048116600090815260036020908152604080832094909455918816815260049091522054611312908590612cb3565b6001600160a01b03861660008181526004602090815260408083209490945560058152838220879055600690528290204290819055915190917ff556991011e831bcfac4f406d547e5e32cdd98267efab83935230d5f8d02c4469161137a9188918890612c7b565b60405180910390a25050505050565b60006105e561139661189a565b8484611952565b600954630100000090046001600160a01b03166113b861189a565b6001600160a01b0316146113de5760405162461bcd60e51b815260040161064690612537565b6001600160a01b0384166114045760405162461bcd60e51b815260040161064690612750565b600083116114245760405162461bcd60e51b815260040161064690612add565b81156114b7576001600160a01b03841660009081526004602052604090205481146114b7576001600160a01b038416600081815260046020526040908190205490517f5cb6b338abc32929561a7c976045b80ae6af37304b361e7d9f5076e6cb4569e791611493918590612c6d565b60405180910390a26001600160a01b03841660009081526004602052604090208190555b6001600160a01b0384166000908152600460205260409020548311156114ef5760405162461bcd60e51b815260040161064690612685565b6001600160a01b038416600090815260046020526040902054611513908490612d28565b6001600160a01b038516600090815260046020908152604080832093909355600390522054611543908490612cb3565b6001600160a01b0380861660009081526003602052604080822093909355600954630100000090049091168152205461157d908490612d28565b6009546001600160a01b0363010000009091048116600090815260036020908152604080832094909455918716808252600490925282902054915190917ff960dbf9e5d0682f7a298ed974e33a28b4464914b7a2bfac12ae419a9afeb280916115e7918791612c6d565b60405180910390a250505050565b7f00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb6001600160a01b031661162761189a565b6001600160a01b03161461164d5760405162461bcd60e51b81526004016106469061280a565b61165681611d46565b7f8ae3c994b30b13928ab97e09c40c6723fd78cb4c761449737ecc51cb1f91d877816040516109f29190612bf4565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b60005462010000900460ff1681565b7f00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb6001600160a01b03166116f161189a565b6001600160a01b0316146117175760405162461bcd60e51b81526004016106469061280a565b60148160ff16101561173b5760405162461bcd60e51b81526004016106469061246c565b60648160ff16111561175f5760405162461bcd60e51b815260040161064690612a49565b7f717d38a0af5ed15f7369104a29a63331d40ff3543f1dbc8ad39b22689f88b517600960029054906101000a900460ff168260405161179f929190612c9f565b60405180910390a16009805460ff909216620100000262ff000019909216919091179055565b600954630100000090046001600160a01b03166117e061189a565b6001600160a01b0316146118065760405162461bcd60e51b81526004016106469061280a565b6001600160a01b03821661182c5760405162461bcd60e51b81526004016106469061289e565b6001600160a01b038216600081815260046020526040908190205490517f5cb6b338abc32929561a7c976045b80ae6af37304b361e7d9f5076e6cb4569e791611876918590612c6d565b60405180910390a26001600160a01b03909116600090815260046020526040902055565b3390565b6001600160a01b0383166118c45760405162461bcd60e51b81526004016106469061298f565b6001600160a01b0382166118ea5760405162461bcd60e51b8152600401610646906123a3565b6001600160a01b0380841660008181526007602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611945908590612bf4565b60405180910390a3505050565b6001600160a01b0383166119785760405162461bcd60e51b8152600401610646906128fb565b6001600160a01b03821661199e5760405162461bcd60e51b8152600401610646906122b2565b6001600160a01b0383166000908152600360205260409020548111156119d65760405162461bcd60e51b8152600401610646906126e2565b600081116119f65760405162461bcd60e51b815260040161064690612435565b6001600160a01b03831660009081526002602052604090205460ff168015611a3657506001600160a01b03821660009081526002602052604090205460ff165b15611a535760405162461bcd60e51b8152600401610646906129ec565b6001600160a01b03831660009081526002602052604081205482919060ff1615156001148015611ab557507f0000000000000000000000000a470402dea4c40feac6ed76442752f7e30e31f96001600160a01b0316846001600160a01b031614155b8015611ade57506001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d14155b15611b3657600954606490611af69060ff1685612ceb565b611b009190612ccb565b9050611b0c8184612d28565b30600090815260036020526040812080549294508392909190611b30908490612cb3565b90915550505b6001600160a01b03841660009081526002602052604090205460ff1615156001148015611b9557507f0000000000000000000000000a470402dea4c40feac6ed76442752f7e30e31f96001600160a01b0316856001600160a01b031614155b8015611bbe57506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d14155b15611c9857600954606490611bdb90610100900460ff1685612ceb565b611be59190612ccb565b9050611bf18184612d28565b30600090815260036020526040812080549294508392909190611c15908490612cb3565b90915550503060009081526003602052604090205464174876e800108015611c40575060005460ff16155b15611c9857306000908152600360205260409020546064611c62856028612ceb565b611c6c9190612ccb565b811115611c8d576064611c80856028612ceb565b611c8a9190612ccb565b90505b611c9681611d46565b505b6001600160a01b03841660009081526003602052604081208054849290611cc0908490612cb3565b90915550506001600160a01b03851660009081526003602052604081208054859290611ced908490612d28565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611d379190612bf4565b60405180910390a35050505050565b6000805460ff1916600117815560408051600280825260608201835290916020830190803683370190505090503081600081518110611d9557634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600a54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b158015611e0257600080fd5b505afa158015611e16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3a919061206f565b81600181518110611e5b57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050611e9a30737a250d5630b4cf539739df2c5dacb4c659f2488d8461189e565b600a546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac94790611eec908590600090869030904290600401612bfd565b600060405180830381600087803b158015611f0657600080fd5b505af1158015611f1a573d6000803e3d6000fd5b505050506000471115611faa57600054610100900460ff1615611f8057600954600090606490611f539062010000900460ff1647612ceb565b611f5d9190612ccb565b9050611f7e81600960039054906101000a90046001600160a01b0316611fb8565b505b611faa477f000000000000000000000000d8d1e6a874a4fda4136f11b57cc65f037ab27893611fb8565b50506000805460ff19169055565b600080826001600160a01b031684604051611fd29061221f565b60006040518083038185875af1925050503d806000811461200f576040519150601f19603f3d011682016040523d82523d6000602084013e612014565b606091505b5091509150816120365760405162461bcd60e51b8152600401610646906124a3565b50505050565b8035801515811461072957600080fd5b60006020828403121561205d578081fd5b813561206881612d55565b9392505050565b600060208284031215612080578081fd5b815161206881612d55565b6000806040838503121561209d578081fd5b82356120a881612d55565b915060208301356120b881612d55565b809150509250929050565b6000806000606084860312156120d7578081fd5b83356120e281612d55565b925060208401356120f281612d55565b929592945050506040919091013590565b60008060408385031215612115578182fd5b823561212081612d55565b946020939093013593505050565b60008060008060808587031215612143578081fd5b843561214e81612d55565b9350602085013592506121636040860161203c565b9396929550929360600135925050565b600080600080600060a0868803121561218a578081fd5b853561219581612d55565b945060208601359350604086013592506121b16060870161203c565b949793965091946080013592915050565b6000602082840312156121d3578081fd5b5035919050565b600080604083850312156121ec578182fd5b8235915060208301356120b881612d55565b60006020828403121561220f578081fd5b813560ff81168114612068578182fd5b90565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b8181101561226d57858101830151858201604001528201612251565b8181111561227e5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201527f6573730000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526029908201527f24574541504f4e3a206e6577207374616b652074696d652063616e6e6f74206260408201527f652073686f727465720000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f24574541504f4e3a2063616e6e6f74207374616b65203020746f6b656e730000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f24574541504f4e3a2063616e6e6f7420726564756365206c6f636b2074696d65604082015260600190565b6020808252601d908201527f24574541504f4e3a2063616e6e6f74207472616e73666572207a65726f000000604082015260600190565b6020808252601c908201527f24574541504f4e3a2072657761726473206d696e696d756d2032302500000000604082015260600190565b60208082526014908201527f4661696c656420746f2073656e64204574686572000000000000000000000000604082015260600190565b6020808252602b908201527f24574541504f4e3a206d696e696d756d207374616b652074696d65203233206860408201527f6f757273203535206d696e000000000000000000000000000000000000000000606082015260800190565b6020808252602e908201527f24574541504f4e3a206d75737420756e7374616b65207468726f75676820737460408201527f616b696e6720636f6e7472616374000000000000000000000000000000000000606082015260800190565b60208082526022908201527f24574541504f4e3a2063616e6e6f74207374616b65207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526015908201527f24574541504f4e3a207374696c6c2066726f7a656e0000000000000000000000604082015260600190565b60208082526026908201527f24574541504f4e3a207374616b696e672063757272656e746c79206e6f74206560408201527f6e61626c65640000000000000000000000000000000000000000000000000000606082015260800190565b60208082526027908201527f24574541504f4e3a20756e7374616b652065786365656473207374616b65642060408201527f62616c616e636500000000000000000000000000000000000000000000000000606082015260800190565b6020808252601f908201527f45524332303a207472616e7366657220657863656564732062616c616e636500604082015260600190565b6020808252601f908201527f24574541504f4e3a2063616e6e6f74206265207a65726f206164647265737300604082015260600190565b60208082526024908201527f24574541504f4e3a2063616e6e6f7420756e7374616b65207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160408201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000606082015260800190565b60208082526015908201527f24574541504f4e3a20756e617574686f72697a65640000000000000000000000604082015260600190565b60208082526024908201527f24574541504f4e3a207a65726f20616464726573732063616e6e6f742062652060408201527f706f6f6c00000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f24574541504f4e3a2063616e6e6f742073796e63207a65726f2061646472657360408201527f7300000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460408201527f6472657373000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f24574541504f4e3a207461782063616e6e6f7420657863656564203130250000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f24574541504f4e3a2063616e6e6f74207472616e7366657220706f6f6c20746f60408201527f20706f6f6c000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f24574541504f4e3a2072657761726473206d6178696d756d2031303025000000604082015260600190565b60208082526028908201527f24574541504f4e3a207374616b65206578636565647320617661696c61626c6560408201527f2062616c616e6365000000000000000000000000000000000000000000000000606082015260800190565b60208082526023908201527f24574541504f4e3a2063616e6e6f7420756e7374616b65207a65726f20746f6b60408201527f656e730000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f24574541504f4e3a207374616b696e6720636f6e7472616374206e6f7420736560408201527f7400000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602c908201527f24574541504f4e3a206d757374207374616b65207468726f756768207374616b60408201527f696e6720636f6e74726163740000000000000000000000000000000000000000606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015612c4c5784516001600160a01b031683529383019391830191600101612c27565b50506001600160a01b03969096166060850152505050608001529392505050565b918252602082015260400190565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b60ff92831681529116602082015260400190565b60008219821115612cc657612cc6612d3f565b500190565b600082612ce657634e487b7160e01b81526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d2357612d23612d3f565b500290565b600082821015612d3a57612d3a612d3f565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114612d6a57600080fd5b5056fea26469706673582212206579fe0f42afe3205b7deb200f9295bff0e1b426db0e8d69f9a4a73ca17db1a764736f6c63430008010033

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

000000000000000000000000d8d1e6a874a4fda4136f11b57cc65f037ab2789300000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb

-----Decoded View---------------
Arg [0] : vault (address): 0xd8D1E6A874a4FdA4136F11B57CC65f037aB27893
Arg [1] : multiSig (address): 0x11D4A4149226dD618a674ec07217AaC3AAF247bB

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000d8d1e6a874a4fda4136f11b57cc65f037ab27893
Arg [1] : 00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb


Deployed Bytecode Sourcemap

8985:13232:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11591:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12989:163;;;;;;;;;;-1:-1:-1;12989:163:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;21877:262::-;;;;;;;;;;;;;:::i;12212:137::-;;;;;;;;;;-1:-1:-1;12212:137:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11973:102::-;;;;;;;;;;;;;:::i;9069:34::-;;;;;;;;;;;;;:::i;13160:376::-;;;;;;;;;;-1:-1:-1;13160:376:0;;;;;:::i;:::-;;:::i;11880:85::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;19121:295::-;;;;;;;;;;;;;:::i;20509:199::-;;;;;;;;;;-1:-1:-1;20509:199:0;;;;;:::i;:::-;;:::i;19982:206::-;;;;;;;;;;-1:-1:-1;19982:206:0;;;;;:::i;:::-;;:::i;11781:91::-;;;;;;;;;;;;;:::i;20720:97::-;;;;;;;;;;-1:-1:-1;20720:97:0;;;;;:::i;:::-;;:::i;19772:202::-;;;;;;;;;;-1:-1:-1;19772:202:0;;;;;:::i;:::-;;:::i;12083:121::-;;;;;;;;;;-1:-1:-1;12083:121:0;;;;;:::i;:::-;;:::i;12357:294::-;;;;;;;;;;-1:-1:-1;12357:294:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;19660:104::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18251:255::-;;;;;;;;;;-1:-1:-1;18251:255:0;;;;;:::i;:::-;;:::i;9148:37::-;;;;;;;;;;;;;:::i;18768:345::-;;;;;;;;;;-1:-1:-1;18768:345:0;;;;;:::i;:::-;;:::i;11684:89::-;;;;;;;;;;;;;:::i;18514:245::-;;;;;;;;;;;;;:::i;19424:228::-;;;;;;;;;;-1:-1:-1;19424:228:0;;;;;:::i;:::-;;:::i;15348:1447::-;;;;;;;;;;-1:-1:-1;15348:1447:0;;;;;:::i;:::-;;:::i;12659:169::-;;;;;;;;;;-1:-1:-1;12659:169:0;;;;;:::i;:::-;;:::i;16803:1072::-;;;;;;;;;;-1:-1:-1;16803:1072:0;;;;;:::i;:::-;;:::i;21724:145::-;;;;;;;;;;-1:-1:-1;21724:145:0;;;;;:::i;:::-;;:::i;12836:::-;;;;;;;;;;-1:-1:-1;12836:145:0;;;;;:::i;:::-;;:::i;9112:29::-;;;;;;;;;;;;;:::i;20196:305::-;;;;;;;;;;-1:-1:-1;20196:305:0;;;;;:::i;:::-;;:::i;17883:360::-;;;;;;;;;;-1:-1:-1;17883:360:0;;;;;:::i;:::-;;:::i;11591:85::-;11663:5;;;;;;;;;;;;;;;;;11591:85;:::o;12989:163::-;13066:4;13083:39;13092:12;:10;:12::i;:::-;13106:7;13115:6;13083:8;:39::i;:::-;-1:-1:-1;13140:4:0;12989:163;;;;:::o;21877:262::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;;;;;;;;;21946:42:::1;21966:21;21946:42;;;;;;:::i;:::-;;;;;;;;22000:9;22011:17:::0;22032:12:::1;:10;:12::i;:::-;-1:-1:-1::0;;;;;22032:17:0::1;22057:21;22032:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21999:84;;;;22102:4;22094:37;;;;-1:-1:-1::0;;;22094:37:0::1;;;;;;;:::i;:::-;11473:1;;21877:262::o:0;12212:137::-;-1:-1:-1;;;;;12313:24:0;;12286:7;12313:24;;;:15;:24;;;;;;12212:137;;;;:::o;11973:102::-;12055:12;;11973:102;:::o;9069:34::-;;;;;;;;;:::o;13160:376::-;-1:-1:-1;;;;;13286:19:0;;13260:4;13286:19;;;:11;:19;;;;;13323:6;;13260:4;13306:12;:10;:12::i;:::-;-1:-1:-1;;;;;13286:33:0;-1:-1:-1;;;;;13286:33:0;;;;;;;;;;;;;:43;;13277:97;;;;-1:-1:-1;;;13277:97:0;;;;;;;:::i;:::-;13385:36;13395:6;13403:9;13414:6;13385:9;:36::i;:::-;13432:74;13441:6;13449:12;:10;:12::i;:::-;-1:-1:-1;;;;;13463:19:0;;;;;;:11;:19;;;;;13499:6;;13483:12;:10;:12::i;:::-;-1:-1:-1;;;;;13463:33:0;-1:-1:-1;;;;;13463:33:0;;;;;;;;;;;;;:42;;;;:::i;:::-;13432:8;:74::i;:::-;-1:-1:-1;13524:4:0;13160:376;;;;;:::o;11880:85::-;9793:1;11880:85;:::o;19121:295::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;19197:16:::1;::::0;;;::::1;-1:-1:-1::0;;;;;19197:16:0::1;19188:77;;;;-1:-1:-1::0;;;19188:77:0::1;;;;;;;:::i;:::-;19280:14;::::0;::::1;;::::0;;::::1;;:22;;:14;:22;19276:87;;;19321:5;19304:22:::0;;-1:-1:-1;;19304:22:0::1;::::0;;19276:87:::1;;;19342:14;:21:::0;;-1:-1:-1;;19342:21:0::1;;;::::0;;19276:87:::1;19379:29;19393:14;;;;;;;;;;;19379:29;;;;;;:::i;:::-;;;;;;;;19121:295::o:0;20509:199::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20581:18:0;::::1;20573:67;;;;-1:-1:-1::0;;;20573:67:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20651:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;;:20;;-1:-1:-1;;20651:20:0::1;20667:4;20651:20;::::0;;20687:13;::::1;::::0;::::1;::::0;20659:4;;20687:13:::1;:::i;:::-;;;;;;;;20509:199:::0;:::o;19982:206::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;20068:2:::1;20058:6;:12;;;;20049:56;;;;-1:-1:-1::0;;;20049:56:0::1;;;;;;;:::i;:::-;20121:31;20135:8;;;;;;;;;;;20145:6;20121:31;;;;;;;:::i;:::-;;;;;;;;20163:8;:17:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;20163:17:0;;::::1;::::0;;;::::1;::::0;;19982:206::o;11781:91::-;11856:8;;;;;;;;;;;;;;;;;11781:91;:::o;20720:97::-;-1:-1:-1;;;;;20796:13:0;20773:4;20796:13;;;:7;:13;;;;;;;;;20720:97::o;19772:202::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;19857:2:::1;19847:6;:12;;;;19838:56;;;;-1:-1:-1::0;;;19838:56:0::1;;;;;;;:::i;:::-;19923:7;::::0;19910:29:::1;::::0;::::1;::::0;::::1;::::0;19923:7:::1;::::0;;::::1;::::0;19932:6;;19910:29:::1;:::i;:::-;;;;;;;;19950:7;:16:::0;;-1:-1:-1;;19950:16:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;19772:202::o;12083:121::-;-1:-1:-1;;;;;12178:18:0;12151:7;12178:18;;;:9;:18;;;;;;;12083:121::o;12357:294::-;12424:7;12466:14;;12424:7;;;;12466:14;;;;;:46;;;;-1:-1:-1;;;;;;12484:24:0;;12511:1;12484:24;;;:15;:24;;;;;;:28;;12466:46;12462:181;;;-1:-1:-1;;;;;;;;12535:24:0;;;;;;:15;:24;;;;;;;;;12561:15;:24;;;;;;12587:16;:25;;;;;;12527:86;;12462:181;-1:-1:-1;12637:1:0;;-1:-1:-1;12637:1:0;;-1:-1:-1;12637:1:0;12462:181;12357:294;;;;;:::o;19660:104::-;19740:16;;;;;-1:-1:-1;;;;;19740:16:0;;19660:104::o;18251:255::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;18344:12:::1;;18332:9;:24;18323:70;;;;-1:-1:-1::0;;;18323:70:0::1;;;;;;;:::i;:::-;18404:10;:17:::0;;-1:-1:-1;;18404:17:0::1;::::0;::::1;::::0;;18417:4:::1;18432:24:::0;;;18474::::1;::::0;::::1;::::0;::::1;::::0;18447:9;;18474:24:::1;:::i;9148:37::-:0;;;;:::o;18768:345::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;18877:12:::1;;18859:15;:30;:53;;;;-1:-1:-1::0;18893:10:0::1;::::0;;;::::1;;;:19;18859:53;18850:88;;;;-1:-1:-1::0;;;18850:88:0::1;;;;;;;:::i;:::-;18979:6;18964:12;;:21;;;;:::i;:::-;18949:12;:36:::0;-1:-1:-1;;;;;19019:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;:29:::1;::::0;19042:6;;19019:29:::1;:::i;:::-;-1:-1:-1::0;;;;;18996:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;:52;;;;19066:39;;18996:20;;;19066:39:::1;::::0;::::1;::::0;19098:6;;19066:39:::1;:::i;:::-;;;;;;;;18768:345:::0;;:::o;11684:89::-;11758:7;;;;;;;;;;;;;;;;;11684:89;:::o;18514:245::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;18595:12:::1;;18576:15;:31;;18567:66;;;;-1:-1:-1::0;;;18567:66:0::1;;;;;;;:::i;:::-;18657:5;18644:18:::0;;-1:-1:-1;;18644:18:0::1;::::0;;18688:23:::1;:15;18706:5;18688:23;:::i;:::-;18673:12;:38:::0;;;18729:22:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;19424:228::-:0;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19507:18:0;::::1;19499:62;;;;-1:-1:-1::0;;;19499:62:0::1;;;;;;;:::i;:::-;19572:16;:32:::0;;;::::1;::::0;-1:-1:-1;;;;;19572:32:0;::::1;;;::::0;;19620:24:::1;::::0;::::1;::::0;::::1;::::0;19572:32;;19620:24:::1;:::i;15348:1447::-:0;15509:16;;;;;-1:-1:-1;;;;;15509:16:0;15493:12;:10;:12::i;:::-;-1:-1:-1;;;;;15493:32:0;;15484:90;;;;-1:-1:-1;;;15484:90:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15594:21:0;;15585:69;;;;-1:-1:-1;;;15585:69:0;;;;;;;:::i;:::-;15674:14;;;;;;;15665:66;;;;-1:-1:-1;;;15665:66:0;;;;;;;:::i;:::-;15749:8;15745:251;;;-1:-1:-1;;;;;15788:24:0;;;;;;:15;:24;;;;;;:41;;15784:201;;-1:-1:-1;;;;;15854:56:0;;15870:24;;;;:15;:24;;;;;;;;15854:56;;;;;;15896:13;;15854:56;:::i;:::-;;;;;;;;-1:-1:-1;;;;;15929:24:0;;;;;;:15;:24;;;;;:40;;;15784:201;16032:23;:15;16050:5;16032:23;:::i;:::-;16017:11;:39;16008:95;;;;-1:-1:-1;;;16008:95:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16139:25:0;;;;;;:16;:25;;;;;;16124:40;;;16115:95;;;;-1:-1:-1;;;16115:95:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16230:18:0;;;;;;:9;:18;;;;;;:28;-1:-1:-1;16230:28:0;16221:82;;;;-1:-1:-1;;;16221:82:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16318:24:0;;;;;;:15;:24;;;;;;16314:89;;16367:1;16358:6;:10;16349:54;;;;-1:-1:-1;;;16349:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16437:18:0;;;;;;:9;:18;;;;;;:27;;16458:6;;16437:27;:::i;:::-;-1:-1:-1;;;;;16416:18:0;;;;;;;:9;:18;;;;;;:48;;;;16515:16;;;;;;;;16505:27;;;;:36;;16535:6;;16505:36;:::i;:::-;16485:16;;-1:-1:-1;;;;;16485:16:0;;;;;;16475:27;;;;:9;:27;;;;;;;;:66;;;;16579:24;;;;;:15;:24;;;;;:33;;16606:6;;16579:33;:::i;:::-;-1:-1:-1;;;;;16552:24:0;;;;;;:15;:24;;;;;;;;:60;;;;16625:16;:25;;;;;:39;;;16675:15;:24;;;;;16702:15;16675:42;;;;16735:52;;16552:24;;16735:52;;;;16750:6;;16653:11;;16735:52;:::i;:::-;;;;;;;;15348:1447;;;;;:::o;12659:169::-;12739:4;12756:42;12766:12;:10;:12::i;:::-;12780:9;12791:6;12756:9;:42::i;16803:1072::-;16952:16;;;;;-1:-1:-1;;;;;16952:16:0;16936:12;:10;:12::i;:::-;-1:-1:-1;;;;;16936:32:0;;16927:92;;;;-1:-1:-1;;;16927:92:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17039:21:0;;17030:71;;;;-1:-1:-1;;;17030:71:0;;;;;;;:::i;:::-;17136:1;17120:13;:17;17112:65;;;;-1:-1:-1;;;17112:65:0;;;;;;;:::i;:::-;17194:8;17190:251;;;-1:-1:-1;;;;;17233:24:0;;;;;;:15;:24;;;;;;:41;;17229:201;;-1:-1:-1;;;;;17299:56:0;;17315:24;;;;:15;:24;;;;;;;;17299:56;;;;;;17341:13;;17299:56;:::i;:::-;;;;;;;;-1:-1:-1;;;;;17374:24:0;;;;;;:15;:24;;;;;:40;;;17229:201;-1:-1:-1;;;;;17478:24:0;;;;;;:15;:24;;;;;;17461:41;;;17453:93;;;;-1:-1:-1;;;17453:93:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17594:24:0;;;;;;:15;:24;;;;;;:40;;17621:13;;17594:40;:::i;:::-;-1:-1:-1;;;;;17567:24:0;;;;;;:15;:24;;;;;;;;:67;;;;17666:9;:18;;;;:34;;17687:13;;17666:34;:::i;:::-;-1:-1:-1;;;;;17645:18:0;;;;;;;:9;:18;;;;;;:55;;;;17751:16;;;;;;;;17741:27;;;;:43;;17771:13;;17741:43;:::i;:::-;17721:16;;-1:-1:-1;;;;;17721:16:0;;;;;;17711:27;;;;:9;:27;;;;;;;;:73;;;;17810:57;;;17842:24;;;:15;:24;;;;;;;17810:57;;;;;;;;17827:13;;17810:57;:::i;:::-;;;;;;;;16803:1072;;;;:::o;21724:145::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;21800:20:::1;21813:6;21800:12;:20::i;:::-;21836:25;21854:6;21836:25;;;;;;:::i;12836:145::-:0;-1:-1:-1;;;;;12946:18:0;;;12919:7;12946:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12836:145::o;9112:29::-;;;;;;;;;:::o;20196:305::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;20290:2:::1;20276:10;:16;;;;20267:58;;;;-1:-1:-1::0;;;20267:58:0::1;;;;;;;:::i;:::-;20359:3;20345:10;:17;;;;20336:60;;;;-1:-1:-1::0;;;20336:60:0::1;;;;;;;:::i;:::-;20412:42;20426:15;;;;;;;;;;;20443:10;20412:42;;;;;;;:::i;:::-;;;;;;;;20465:15;:28:::0;;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;20465:28:0;;::::1;::::0;;;::::1;::::0;;20196:305::o;17883:360::-;17991:16;;;;;-1:-1:-1;;;;;17991:16:0;17975:12;:10;:12::i;:::-;-1:-1:-1;;;;;17975:32:0;;17966:67;;;;-1:-1:-1;;;17966:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18053:21:0;;18044:68;;;;-1:-1:-1;;;18044:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18128:56:0;;18144:24;;;;:15;:24;;;;;;;;18128:56;;;;;;18170:13;;18128:56;:::i;:::-;;;;;;;;-1:-1:-1;;;;;18195:24:0;;;;;;;:15;:24;;;;;:40;17883:360::o;5462:98::-;5542:10;5462:98;:::o;13544:337::-;-1:-1:-1;;;;;13637:19:0;;13629:68;;;;-1:-1:-1;;;13629:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13716:21:0;;13708:68;;;;-1:-1:-1;;;13708:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13789:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;13841:32;;;;;13819:6;;13841:32;:::i;:::-;;;;;;;;13544:337;;;:::o;13889:1451::-;-1:-1:-1;;;;;13986:20:0;;13978:70;;;;-1:-1:-1;;;13978:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14067:23:0;;14059:71;;;;-1:-1:-1;;;14059:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14149:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;14149:27:0;14141:71;;;;-1:-1:-1;;;14141:71:0;;;;;;;:::i;:::-;14240:1;14231:6;:10;14223:52;;;;-1:-1:-1;;;14223:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14296:15:0;;;;;;:7;:15;;;;;;;;:37;;;;-1:-1:-1;;;;;;14315:18:0;;;;;;:7;:18;;;;;;;;14296:37;14294:40;14286:90;;;;-1:-1:-1;;;14286:90:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14464:15:0;;14389:19;14464:15;;;:7;:15;;;;;;14411:6;;14389:19;14464:15;;:23;;:15;:23;:43;;;;;14504:3;-1:-1:-1;;;;;14491:16:0;:9;-1:-1:-1;;;;;14491:16:0;;;14464:43;:70;;;;-1:-1:-1;;;;;;14511:23:0;;10129:42;14511:23;;14464:70;14460:218;;;14566:7;;14576:3;;14557:16;;14566:7;;14557:6;:16;:::i;:::-;:22;;;;:::i;:::-;14551:28;-1:-1:-1;14608:12:0;14551:28;14608:6;:12;:::i;:::-;14653:4;14635:24;;;;:9;:24;;;;;:31;;14594:26;;-1:-1:-1;14663:3:0;;14635:24;;;:31;;14663:3;;14635:31;:::i;:::-;;;;-1:-1:-1;;14460:218:0;-1:-1:-1;;;;;14692:18:0;;;;;;:7;:18;;;;;;;;:26;;:18;:26;:43;;;;;14732:3;-1:-1:-1;;;;;14722:13:0;:6;-1:-1:-1;;;;;14722:13:0;;;14692:43;:67;;;;-1:-1:-1;;;;;;14739:20:0;;10129:42;14739:20;;14692:67;14688:502;;;14791:8;;14802:3;;14782:17;;14791:8;;;;;14782:6;:17;:::i;:::-;:23;;;;:::i;:::-;14776:29;-1:-1:-1;14834:12:0;14776:29;14834:6;:12;:::i;:::-;14879:4;14861:24;;;;:9;:24;;;;;:31;;14820:26;;-1:-1:-1;14889:3:0;;14861:24;;;:31;;14889:3;;14861:31;:::i;:::-;;;;-1:-1:-1;;14931:4:0;14913:24;;;;:9;:24;;;;;;14940:11;-1:-1:-1;14913:52:0;;;;-1:-1:-1;14956:9:0;;;;14955:10;14913:52;14909:270;;;15026:4;14986:19;15008:24;;;:9;:24;;;;;;15083:3;15069:11;:6;15078:2;15069:11;:::i;:::-;:17;;;;:::i;:::-;15055:11;:31;15051:68;;;15116:3;15102:11;:6;15111:2;15102:11;:::i;:::-;:17;;;;:::i;:::-;15088:31;;15051:68;15138:25;15151:11;15138:12;:25::i;:::-;14909:270;;-1:-1:-1;;;;;15206:20:0;;;;;;:9;:20;;;;;:35;;15230:11;;15206:20;:35;;15230:11;;15206:35;:::i;:::-;;;;-1:-1:-1;;;;;;;15252:17:0;;;;;;:9;:17;;;;;:27;;15273:6;;15252:17;:27;;15273:6;;15252:27;:::i;:::-;;;;;;;;15314:9;-1:-1:-1;;;;;15297:35:0;15306:6;-1:-1:-1;;;;;15297:35:0;;15325:6;15297:35;;;;;;:::i;:::-;;;;;;;;13889:1451;;;;;:::o;21027:685::-;11519:9;:16;;-1:-1:-1;;11519:16:0;11531:4;11519:16;;;21117::::1;::::0;;21131:1:::1;21117:16:::0;;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21117:16:0::1;21093:40;;21162:4;21144;21149:1;21144:7;;;;;;-1:-1:-1::0;;;21144:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;21144:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;21188:11:::1;::::0;:18:::1;::::0;;;;;;;:11;;;::::1;::::0;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;21144:7;;21188:18;;;;;:11;:18;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21178:4;21183:1;21178:7;;;;;;-1:-1:-1::0;;;21178:7:0::1;;;;;;;;;;;;;;:28;-1:-1:-1::0;;;;;21178:28:0::1;;;-1:-1:-1::0;;;;;21178:28:0::1;;;::::0;::::1;21219:43;21236:4;10129:42;21255:6;21219:8;:43::i;:::-;21273:11;::::0;:111:::1;::::0;;;;-1:-1:-1;;;;;21273:11:0;;::::1;::::0;:62:::1;::::0;:111:::1;::::0;21336:6;;21273:11:::1;::::0;21347:4;;21361::::1;::::0;21368:15:::1;::::0;21273:111:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21425:1;21401:21;:25;21397:308;;;21457:14;::::0;::::1;::::0;::::1;;;21453:183;;;21536:15;::::0;21492:17:::1;::::0;21554:3:::1;::::0;21512:39:::1;::::0;21536:15;;::::1;;;21512:21;:39;:::i;:::-;:45;;;;:::i;:::-;21492:65;;21576:44;21589:12;21603:16;;;;;;;;;-1:-1:-1::0;;;;;21603:16:0::1;21576:12;:44::i;:::-;21453:183;;21650:43;21663:21;21686:6;21650:12;:43::i;:::-;-1:-1:-1::0;;11570:5:0;11558:17;;-1:-1:-1;;11558:17:0;;;21027:685::o;20825:194::-;20904:9;20915:17;20936:3;-1:-1:-1;;;;;20936:8:0;20952:6;20936:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20903:60;;;;20982:4;20974:37;;;;-1:-1:-1;;;20974:37:0;;;;;;;:::i;:::-;20825:194;;;;:::o;14:162:1:-;81:20;;137:13;;130:21;120:32;;110:2;;166:1;163;156:12;181:259;;293:2;281:9;272:7;268:23;264:32;261:2;;;314:6;306;299:22;261:2;358:9;345:23;377:33;404:5;377:33;:::i;:::-;429:5;251:189;-1:-1:-1;;;251:189:1:o;445:263::-;;568:2;556:9;547:7;543:23;539:32;536:2;;;589:6;581;574:22;536:2;626:9;620:16;645:33;672:5;645:33;:::i;713:402::-;;;842:2;830:9;821:7;817:23;813:32;810:2;;;863:6;855;848:22;810:2;907:9;894:23;926:33;953:5;926:33;:::i;:::-;978:5;-1:-1:-1;1035:2:1;1020:18;;1007:32;1048:35;1007:32;1048:35;:::i;:::-;1102:7;1092:17;;;800:315;;;;;:::o;1120:470::-;;;;1266:2;1254:9;1245:7;1241:23;1237:32;1234:2;;;1287:6;1279;1272:22;1234:2;1331:9;1318:23;1350:33;1377:5;1350:33;:::i;:::-;1402:5;-1:-1:-1;1459:2:1;1444:18;;1431:32;1472:35;1431:32;1472:35;:::i;:::-;1224:366;;1526:7;;-1:-1:-1;;;1580:2:1;1565:18;;;;1552:32;;1224:366::o;1595:327::-;;;1724:2;1712:9;1703:7;1699:23;1695:32;1692:2;;;1745:6;1737;1730:22;1692:2;1789:9;1776:23;1808:33;1835:5;1808:33;:::i;:::-;1860:5;1912:2;1897:18;;;;1884:32;;-1:-1:-1;;;1682:240:1:o;1927:466::-;;;;;2087:3;2075:9;2066:7;2062:23;2058:33;2055:2;;;2109:6;2101;2094:22;2055:2;2153:9;2140:23;2172:33;2199:5;2172:33;:::i;:::-;2224:5;-1:-1:-1;2276:2:1;2261:18;;2248:32;;-1:-1:-1;2299:37:1;2332:2;2317:18;;2299:37;:::i;:::-;2045:348;;;;-1:-1:-1;2289:47:1;;2383:2;2368:18;2355:32;;-1:-1:-1;;2045:348:1:o;2398:535::-;;;;;;2575:3;2563:9;2554:7;2550:23;2546:33;2543:2;;;2597:6;2589;2582:22;2543:2;2641:9;2628:23;2660:33;2687:5;2660:33;:::i;:::-;2712:5;-1:-1:-1;2764:2:1;2749:18;;2736:32;;-1:-1:-1;2815:2:1;2800:18;;2787:32;;-1:-1:-1;2838:37:1;2871:2;2856:18;;2838:37;:::i;:::-;2533:400;;;;-1:-1:-1;2533:400:1;;2922:3;2907:19;2894:33;;2533:400;-1:-1:-1;;2533:400:1:o;2938:190::-;;3050:2;3038:9;3029:7;3025:23;3021:32;3018:2;;;3071:6;3063;3056:22;3018:2;-1:-1:-1;3099:23:1;;3008:120;-1:-1:-1;3008:120:1:o;3133:327::-;;;3262:2;3250:9;3241:7;3237:23;3233:32;3230:2;;;3283:6;3275;3268:22;3230:2;3324:9;3311:23;3301:33;;3384:2;3373:9;3369:18;3356:32;3397:33;3424:5;3397:33;:::i;3465:289::-;;3575:2;3563:9;3554:7;3550:23;3546:32;3543:2;;;3596:6;3588;3581:22;3543:2;3640:9;3627:23;3690:4;3683:5;3679:16;3672:5;3669:27;3659:2;;3715:6;3707;3700:22;3759:205;3959:3;3950:14::o;3969:226::-;-1:-1:-1;;;;;4133:55:1;;;;4115:74;;4103:2;4088:18;;4070:125::o;4200:187::-;4365:14;;4358:22;4340:41;;4328:2;4313:18;;4295:92::o;4392:662::-;;4533:2;4562;4551:9;4544:21;4594:6;4588:13;4637:6;4632:2;4621:9;4617:18;4610:34;4662:4;4675:140;4689:6;4686:1;4683:13;4675:140;;;4784:14;;;4780:23;;4774:30;4750:17;;;4769:2;4746:26;4739:66;4704:10;;4675:140;;;4833:6;4830:1;4827:13;4824:2;;;4903:4;4898:2;4889:6;4878:9;4874:22;4870:31;4863:45;4824:2;-1:-1:-1;4970:2:1;4958:15;4975:66;4954:88;4939:104;;;;5045:2;4935:113;;4513:541;-1:-1:-1;;;4513:541:1:o;5059:399::-;5261:2;5243:21;;;5300:2;5280:18;;;5273:30;5339:34;5334:2;5319:18;;5312:62;5410:5;5405:2;5390:18;;5383:33;5448:3;5433:19;;5233:225::o;5463:405::-;5665:2;5647:21;;;5704:2;5684:18;;;5677:30;5743:34;5738:2;5723:18;;5716:62;5814:11;5809:2;5794:18;;5787:39;5858:3;5843:19;;5637:231::o;5873:354::-;6075:2;6057:21;;;6114:2;6094:18;;;6087:30;6153:32;6148:2;6133:18;;6126:60;6218:2;6203:18;;6047:180::o;6232:398::-;6434:2;6416:21;;;6473:2;6453:18;;;6446:30;6512:34;6507:2;6492:18;;6485:62;6583:4;6578:2;6563:18;;6556:32;6620:3;6605:19;;6406:224::o;6635:356::-;6837:2;6819:21;;;6856:18;;;6849:30;6915:34;6910:2;6895:18;;6888:62;6982:2;6967:18;;6809:182::o;6996:353::-;7198:2;7180:21;;;7237:2;7217:18;;;7210:30;7276:31;7271:2;7256:18;;7249:59;7340:2;7325:18;;7170:179::o;7354:352::-;7556:2;7538:21;;;7595:2;7575:18;;;7568:30;7634;7629:2;7614:18;;7607:58;7697:2;7682:18;;7528:178::o;7711:344::-;7913:2;7895:21;;;7952:2;7932:18;;;7925:30;7991:22;7986:2;7971:18;;7964:50;8046:2;8031:18;;7885:170::o;8060:407::-;8262:2;8244:21;;;8301:2;8281:18;;;8274:30;8340:34;8335:2;8320:18;;8313:62;8411:13;8406:2;8391:18;;8384:41;8457:3;8442:19;;8234:233::o;8472:410::-;8674:2;8656:21;;;8713:2;8693:18;;;8686:30;8752:34;8747:2;8732:18;;8725:62;8823:16;8818:2;8803:18;;8796:44;8872:3;8857:19;;8646:236::o;8887:398::-;9089:2;9071:21;;;9128:2;9108:18;;;9101:30;9167:34;9162:2;9147:18;;9140:62;9238:4;9233:2;9218:18;;9211:32;9275:3;9260:19;;9061:224::o;9290:345::-;9492:2;9474:21;;;9531:2;9511:18;;;9504:30;9570:23;9565:2;9550:18;;9543:51;9626:2;9611:18;;9464:171::o;9640:402::-;9842:2;9824:21;;;9881:2;9861:18;;;9854:30;9920:34;9915:2;9900:18;;9893:62;9991:8;9986:2;9971:18;;9964:36;10032:3;10017:19;;9814:228::o;10047:403::-;10249:2;10231:21;;;10288:2;10268:18;;;10261:30;10327:34;10322:2;10307:18;;10300:62;10398:9;10393:2;10378:18;;10371:37;10440:3;10425:19;;10221:229::o;10455:355::-;10657:2;10639:21;;;10696:2;10676:18;;;10669:30;10735:33;10730:2;10715:18;;10708:61;10801:2;10786:18;;10629:181::o;10815:355::-;11017:2;10999:21;;;11056:2;11036:18;;;11029:30;11095:33;11090:2;11075:18;;11068:61;11161:2;11146:18;;10989:181::o;11175:400::-;11377:2;11359:21;;;11416:2;11396:18;;;11389:30;11455:34;11450:2;11435:18;;11428:62;11526:6;11521:2;11506:18;;11499:34;11565:3;11550:19;;11349:226::o;11580:404::-;11782:2;11764:21;;;11821:2;11801:18;;;11794:30;11860:34;11855:2;11840:18;;11833:62;11931:10;11926:2;11911:18;;11904:38;11974:3;11959:19;;11754:230::o;11989:345::-;12191:2;12173:21;;;12230:2;12210:18;;;12203:30;12269:23;12264:2;12249:18;;12242:51;12325:2;12310:18;;12163:171::o;12339:400::-;12541:2;12523:21;;;12580:2;12560:18;;;12553:30;12619:34;12614:2;12599:18;;12592:62;12690:6;12685:2;12670:18;;12663:34;12729:3;12714:19;;12513:226::o;12744:397::-;12946:2;12928:21;;;12985:2;12965:18;;;12958:30;13024:34;13019:2;13004:18;;12997:62;13095:3;13090:2;13075:18;;13068:31;13131:3;13116:19;;12918:223::o;13146:401::-;13348:2;13330:21;;;13387:2;13367:18;;;13360:30;13426:34;13421:2;13406:18;;13399:62;13497:7;13492:2;13477:18;;13470:35;13537:3;13522:19;;13320:227::o;13552:354::-;13754:2;13736:21;;;13793:2;13773:18;;;13766:30;13832:32;13827:2;13812:18;;13805:60;13897:2;13882:18;;13726:180::o;13911:400::-;14113:2;14095:21;;;14152:2;14132:18;;;14125:30;14191:34;14186:2;14171:18;;14164:62;14262:6;14257:2;14242:18;;14235:34;14301:3;14286:19;;14085:226::o;14316:401::-;14518:2;14500:21;;;14557:2;14537:18;;;14530:30;14596:34;14591:2;14576:18;;14569:62;14667:7;14662:2;14647:18;;14640:35;14707:3;14692:19;;14490:227::o;14722:353::-;14924:2;14906:21;;;14963:2;14943:18;;;14936:30;15002:31;14997:2;14982:18;;14975:59;15066:2;15051:18;;14896:179::o;15080:404::-;15282:2;15264:21;;;15321:2;15301:18;;;15294:30;15360:34;15355:2;15340:18;;15333:62;15431:10;15426:2;15411:18;;15404:38;15474:3;15459:19;;15254:230::o;15489:399::-;15691:2;15673:21;;;15730:2;15710:18;;;15703:30;15769:34;15764:2;15749:18;;15742:62;15840:5;15835:2;15820:18;;15813:33;15878:3;15863:19;;15663:225::o;15893:397::-;16095:2;16077:21;;;16134:2;16114:18;;;16107:30;16173:34;16168:2;16153:18;;16146:62;16244:3;16239:2;16224:18;;16217:31;16280:3;16265:19;;16067:223::o;16295:408::-;16497:2;16479:21;;;16536:2;16516:18;;;16509:30;16575:34;16570:2;16555:18;;16548:62;16646:14;16641:2;16626:18;;16619:42;16693:3;16678:19;;16469:234::o;16708:177::-;16854:25;;;16842:2;16827:18;;16809:76::o;16890:1029::-;;17200:3;17189:9;17185:19;17231:6;17220:9;17213:25;17257:2;17295:6;17290:2;17279:9;17275:18;17268:34;17338:3;17333:2;17322:9;17318:18;17311:31;17362:6;17397;17391:13;17428:6;17420;17413:22;17466:3;17455:9;17451:19;17444:26;;17505:2;17497:6;17493:15;17479:29;;17526:4;17539:218;17553:6;17550:1;17547:13;17539:218;;;17618:13;;-1:-1:-1;;;;;17614:62:1;17602:75;;17732:15;;;;17697:12;;;;17575:1;17568:9;17539:218;;;-1:-1:-1;;;;;;;17813:55:1;;;;17808:2;17793:18;;17786:83;-1:-1:-1;;;17900:3:1;17885:19;17878:35;17774:3;17161:758;-1:-1:-1;;;17161:758:1:o;17924:248::-;18098:25;;;18154:2;18139:18;;18132:34;18086:2;18071:18;;18053:119::o;18177:319::-;18379:25;;;18435:2;18420:18;;18413:34;;;;18478:2;18463:18;;18456:34;18367:2;18352:18;;18334:162::o;18501:184::-;18673:4;18661:17;;;;18643:36;;18631:2;18616:18;;18598:87::o;18690:266::-;18890:4;18878:17;;;18860:36;;18932:17;;18927:2;18912:18;;18905:45;18848:2;18833:18;;18815:141::o;18961:128::-;;19032:1;19028:6;19025:1;19022:13;19019:2;;;19038:18;;:::i;:::-;-1:-1:-1;19074:9:1;;19009:80::o;19094:274::-;;19160:1;19150:2;;-1:-1:-1;;;19192:1:1;19185:88;19296:4;19293:1;19286:15;19324:4;19321:1;19314:15;19150:2;-1:-1:-1;19353:9:1;;19140:228::o;19373:::-;;19539:1;19471:66;19467:74;19464:1;19461:81;19456:1;19449:9;19442:17;19438:105;19435:2;;;19546:18;;:::i;:::-;-1:-1:-1;19586:9:1;;19425:176::o;19606:125::-;;19674:1;19671;19668:8;19665:2;;;19679:18;;:::i;:::-;-1:-1:-1;19716:9:1;;19655:76::o;19736:184::-;-1:-1:-1;;;19785:1:1;19778:88;19885:4;19882:1;19875:15;19909:4;19906:1;19899:15;19925:156;-1:-1:-1;;;;;20006:5:1;20002:54;19995:5;19992:65;19982:2;;20071:1;20068;20061:12;19982:2;19972:109;:::o

Swarm Source

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