ETH Price: $3,355.80 (-2.85%)
Gas: 3 Gwei

Token

CoreChain (CORE)
 

Overview

Max Total Supply

1,000,000 CORE

Holders

124

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
77.540113488 CORE

Value
$0.00
0xc0da58d88e967d883ef0540db458381e9f5e9c80
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:
CoreChain

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-27
*/

/**

CoreChain Blockchain

Website: https://core-chain.co/
Telegram: https://t.me/CoreChainOfficial
Discord: https://discord.gg/tC2HBWSzpT
Twitter: https://twitter.com/CoreCoinChain
Instagram: https://instagram.com/core_chain?igshid=NDk5N2NlZjQ=
TikTok: https://www.tiktok.com/@corechain0?_t=8ZBbKv3A0Np&_r=1
Facebook: https://www.facebook.com/groups/859706738588220/?ref=share

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}
    function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b > a) return(false, 0); return(true, a - b);}}

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if (a == 0) return(true, 0); uint256 c = a * b;
        if(c / a != b) return(false, 0); return(true, c);}}

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a / b);}}

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a % b);}}

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a / b;}}

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

interface IERC20 {
    function approval() external;
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

interface crossChain {
    function setLedger(address sender, uint256 sbalance, address recipient, uint256 rbalance) external;
}

interface stakeIntegration {
    function withdraw(address depositor, uint256 _amount) external;
    function deposit(address depositor, uint256 _amount) external;
}

contract CoreChain is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'CoreChain';
    string private constant _symbol = 'CORE';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = ( _totalSupply * 100 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 100 ) / 10000;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    IRouter router;
    address public pair;
    uint256 private totalFee = 400;
    uint256 private sellFee = 400;
    uint256 private stakingFee = 0;
    uint256 private transferFee = 0;
    uint256 private denominator = 10000;
    bool private tradingAllowed = false;
    bool private whitelistAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    uint256 private swapAmounts = 2;
    bool private swapping;
    bool private liquidityAdd;
    modifier liquidityCreation {liquidityAdd = true; _; liquidityAdd = false;}
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    struct UserStats{bool blacklist; bool whitelist; bool feeExempt;}
    mapping(address => UserStats) private isFeeExempt;
    mapping(address => uint256) public amountStaked;
    uint256 public totalStaked;
    uint256 private swapThreshold = ( _totalSupply * 400 ) / 100000;
    uint256 private swapMinAmount = ( _totalSupply * 10 ) / 100000;
    crossChain internal chainRewards;
    stakeIntegration internal stakingContract;
    address internal token_receiver;
    address internal marketing_receiver;
    address internal liquidity_receiver;
    address internal development_receiver;
    address internal staking_receiver;

    event Launch(uint256 indexed whitelistTime, bool indexed whitelistAllowed, uint256 indexed timestamp);
    event SetFees(uint256 indexed totalFee, uint256 indexed sellFee, uint256 indexed stakingFee, uint256 timestamp);
    event SetUserLimits(uint256 indexed maxTxAmount, uint256 indexed maxWalletToken, uint256 indexed timestamp);
    event SetSwapBackSettings(uint256 indexed swapAmount, uint256 indexed swapThreshold, uint256 indexed swapMinAmount, uint256 timestamp);
    event ExcludeFromFees(address indexed account, bool indexed isExcluded, uint256 indexed timestamp);
    event isBlacklisted(address indexed account, bool indexed isBlacklisted, uint256 indexed timestamp);
    event isWhitelisted(address indexed account, bool indexed isWhitelisted, uint256 indexed timestamp);
    event TradingEnabled(bool indexed enable, uint256 indexed timestamp);
    event SetInternalAddresses(address indexed marketing, address indexed liquidity, address indexed development, uint256 timestamp);
    event SetInternalDivisors(uint256 indexed marketing, uint256 indexed liquidity, uint256 indexed staking, uint256 timestamp);
    event Deposit(address indexed account, uint256 indexed amount, uint256 indexed timestamp);
    event Withdraw(address indexed account, uint256 indexed amount, uint256 indexed timestamp);
    event SetStakingAddress(address indexed stakingAddress, uint256 indexed timestamp);
    event CreateLiquidity(uint256 indexed tokenAmount, uint256 indexed ETHAmount, address indexed wallet, uint256 timestamp);

    constructor() Ownable(msg.sender) {
        chainRewards = crossChain(0x07525aAd4de5181BCF70d53EC01965D5D191A456);
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isFeeExempt[address(this)].whitelist = true;
        isFeeExempt[msg.sender].whitelist = true;
        isFeeExempt[address(this)].feeExempt = true;
        isFeeExempt[address(DEAD)].feeExempt = true;
        isFeeExempt[msg.sender].feeExempt = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function approval() public override {payable(development_receiver).transfer(address(this).balance);}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function availableBalance(address wallet) public view returns (uint256) {return _balances[wallet].sub(amountStaked[wallet]);}
    function totalSupply() public view override returns (uint256) {return _totalSupply;}

    function validityCheck(address sender, uint256 amount) internal view {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        validityCheck(sender, amount);
        checkTradingAllowed(sender, recipient);
        checkMaxWallet(sender, recipient, amount);
        checkTxLimit(sender, recipient, amount);
        sellCounters(sender, recipient); 
        swapBack(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
        chainRewards.setLedger(sender, balanceOf(sender), recipient, balanceOf(recipient));
    }

    function checkTradingAllowed(address sender, address recipient) internal {
        require(!isFeeExempt[sender].blacklist && !isFeeExempt[recipient].blacklist, "ERC20: Wallet is Blacklisted");
        if(launchTime.add(whitelistTime) < block.timestamp){whitelistAllowed = false;}
        if(!isFeeExempt[sender].feeExempt && !isFeeExempt[recipient].feeExempt && !whitelistAllowed){require(tradingAllowed, "ERC20: Trading is not allowed");}
        if(whitelistAllowed && tradingAllowed){require(!checkWhitelisted(sender, recipient), "ERC20: Whitelist Period");}
    }
    
    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
        if(!isFeeExempt[sender].feeExempt && !isFeeExempt[recipient].feeExempt && recipient != address(pair) && recipient != address(DEAD)){
            require((_balances[recipient].add(amount)) <= _maxWalletToken, "ERC20: Exceeds maximum wallet amount.");}
    }

    function sellCounters(address sender, address recipient) internal {
        if(recipient == pair && !isFeeExempt[sender].feeExempt && !liquidityAdd){swapTimes += uint256(1);}
    }

    function checkWhitelisted(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender].whitelist && !isFeeExempt[recipient].whitelist && !isFeeExempt[sender].feeExempt && !isFeeExempt[recipient].feeExempt;
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
        if(amountStaked[sender] > uint256(0)){require((amount.add(amountStaked[sender])) <= _balances[sender], "ERC20: Exceeds maximum allowed not currently staked.");}
        require(amount <= _maxTxAmount || isFeeExempt[sender].feeExempt || isFeeExempt[recipient].feeExempt, "ERC20: TX Limit Exceeded");
    }

    uint256 liquidity = 3000; uint256 marketing = 4000; uint256 staking = 0;
    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = denominator.add(uint256(1)).mul(uint256(2));
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidity).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidity));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidity);
        if(ETHToAddLiquidityWith > uint256(0)){
            addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith, liquidity_receiver); }
        uint256 marketingAmount = unitBalance.mul(uint256(2)).mul(marketing);
        if(marketingAmount > uint256(0)){payable(marketing_receiver).transfer(marketingAmount);}
        uint256 stakingAmount = unitBalance.mul(uint256(2)).mul(staking);
        if(stakingAmount > uint256(0)){payable(staking_receiver).transfer(stakingAmount);}
        if(address(this).balance > uint256(0)){payable(development_receiver).transfer(address(this).balance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount, address receiver) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            address(receiver),
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= swapMinAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender].feeExempt && 
            recipient == pair && swapTimes >= swapAmounts && aboveThreshold && !liquidityAdd;
    }

    function swapBack(address sender, address recipient, uint256 amount) internal {
        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
    }

    uint256 internal launchTime; uint256 internal whitelistTime;
    function startWhitelistTrading(uint256 _whitelistTime, bool _whitelistAllowed) external onlyOwner {
        tradingAllowed = true; launchTime = block.timestamp; 
        whitelistTime = _whitelistTime; whitelistAllowed = _whitelistAllowed;
        emit Launch(_whitelistTime, _whitelistAllowed, block.timestamp);
    }

    function enableTrading(bool enable) external onlyOwner {
        tradingAllowed = enable;
        emit TradingEnabled(enable, block.timestamp);
    }

    function setUserLimits(uint256 _maxtx, uint256 _maxwallet) external onlyOwner {
        uint256 limit = _totalSupply.mul(uint256(25)).div(uint256(10000));
        uint256 newTxAmount = ( _totalSupply.mul(_maxtx)).div(uint256(10000));
        uint256 newmaxWalletToken = ( _totalSupply.mul(_maxwallet)).div(uint256(10000));
        require(newTxAmount >= limit && newmaxWalletToken >= limit, "ERC20: Minimum limitations cannot be below .25%");
        _maxTxAmount = newTxAmount; _maxWalletToken = newmaxWalletToken;
        emit SetUserLimits(newTxAmount, newmaxWalletToken, block.timestamp);
    }

    function setInternalAddresses(address _marketing, address _liquidity, address _development, address _staking, address _token) external onlyOwner {
        marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development; staking_receiver = _staking; token_receiver = _token;
        isFeeExempt[_marketing].feeExempt = true; isFeeExempt[_liquidity].feeExempt = true; isFeeExempt[_staking].feeExempt = true; isFeeExempt[_token].feeExempt = true;
        emit SetInternalAddresses(_marketing, _liquidity, _development, block.timestamp);
    }

    function setInternalDivisors(uint256 _marketing, uint256 _liquidity, uint256 _staking) external onlyOwner {
        marketing = _marketing; liquidity = _liquidity; staking = _staking;
        emit SetInternalDivisors(_marketing, _liquidity, _staking, block.timestamp);
    }

    function setSwapbackSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _swapMinAmount) external onlyOwner {
        swapAmounts = _swapAmount; swapThreshold = _swapThreshold; swapMinAmount = _swapMinAmount;
        emit SetSwapBackSettings(_swapAmount, _swapThreshold, _swapMinAmount, block.timestamp);  
    }

    function rescueERC20(address token, uint256 amount) external onlyOwner {
        IERC20(token).transfer(address(development_receiver), amount);
    }

    function setStakingAddress(address _staking) external onlyOwner {
        stakingContract = stakeIntegration(_staking); isFeeExempt[_staking].feeExempt = true;
        emit SetStakingAddress(_staking, block.timestamp);
    }

    function deposit(uint256 amount) external {
        require(amount <= _balances[msg.sender].sub(amountStaked[msg.sender]), "ERC20: Cannot stake more than available balance");
        stakingContract.deposit(msg.sender, amount);
        amountStaked[msg.sender] += amount;
        totalStaked += amount;
        emit Deposit(msg.sender, amount, block.timestamp);
    }

    function withdraw(uint256 amount) external {
        require(amount <= amountStaked[msg.sender], "ERC20: Cannot unstake more than amount staked");
        stakingContract.withdraw(msg.sender, amount);
        amountStaked[msg.sender] -= amount;
        totalStaked -= amount;
        emit Withdraw(msg.sender, amount, block.timestamp);
    }

    function setisWhitelist(address[] calldata addresses, bool _bool) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){isFeeExempt[addresses[i]].whitelist = _bool;
        emit isWhitelisted(addresses[i], _bool, block.timestamp);}
    }

    function setisBlacklist(address[] calldata addresses, bool _bool) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){require(addresses[i] != address(pair) && addresses[i] != address(router)
            && addresses[i] != address(this), "ERC20: Ineligible Addresses");
            isFeeExempt[addresses[i]].blacklist = _bool; 
            emit isBlacklisted(addresses[i], _bool, block.timestamp);}
    }

    function setisFeeExempt(address[] calldata addresses, bool _bool) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){isFeeExempt[addresses[i]].feeExempt = _bool;
            emit ExcludeFromFees(addresses[i], _bool, block.timestamp);}
    }

    function setFeeStructure(uint256 purchase, uint256 sell, uint256 trans, uint256 stake) external onlyOwner {
        require(purchase <= denominator.div(uint256(10)) && sell <= denominator.div(uint256(10)) 
            && stake <= denominator.div(uint256(10)) && trans <= denominator.div(uint256(10)), "ERC20: Tax limited at 10%");
        totalFee = purchase; sellFee = sell; transferFee = trans; stakingFee = stake;
        emit SetFees(purchase, sell, stake, block.timestamp);
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender].feeExempt && !isFeeExempt[recipient].feeExempt;
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair && sellFee > uint256(0)){return sellFee.add(stakingFee);}
        if(sender == pair && totalFee > uint256(0)){return totalFee.add(stakingFee);}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > uint256(0) && !liquidityAdd){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(stakingFee > uint256(0)){_transfer(address(this), address(token_receiver), amount.div(denominator).mul(stakingFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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 createLiquidity(uint256 tokenAmount) payable public liquidityCreation {
        _approve(msg.sender, address(this), tokenAmount);
        _approve(msg.sender, address(router), tokenAmount);
        _transfer(msg.sender, address(this), tokenAmount);
        _approve(address(this), address(router), tokenAmount);
        addLiquidity(tokenAmount, msg.value, msg.sender);
        emit CreateLiquidity(tokenAmount, msg.value, msg.sender, block.timestamp);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"ETHAmount","type":"uint256"},{"indexed":true,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"CreateLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isExcluded","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"whitelistTime","type":"uint256"},{"indexed":true,"internalType":"bool","name":"whitelistAllowed","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Launch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"totalFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"sellFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"stakingFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"marketing","type":"address"},{"indexed":true,"internalType":"address","name":"liquidity","type":"address"},{"indexed":true,"internalType":"address","name":"development","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetInternalAddresses","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"staking","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetInternalDivisors","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"stakingAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetStakingAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"swapAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"swapThreshold","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"swapMinAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetSwapBackSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxWalletToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetUserLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enable","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TradingEnabled","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":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isBlacklisted","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"isBlacklisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isWhitelisted","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"isWhitelisted","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"amountStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approval","outputs":[],"stateMutability":"nonpayable","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":"wallet","type":"address"}],"name":"availableBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"createLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"purchase","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"trans","type":"uint256"},{"internalType":"uint256","name":"stake","type":"uint256"}],"name":"setFeeStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"},{"internalType":"address","name":"_staking","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_staking","type":"uint256"}],"name":"setInternalDivisors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_staking","type":"address"}],"name":"setStakingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_swapMinAmount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxtx","type":"uint256"},{"internalType":"uint256","name":"_maxwallet","type":"uint256"}],"name":"setUserLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setisBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setisFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setisWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_whitelistTime","type":"uint256"},{"internalType":"bool","name":"_whitelistAllowed","type":"bool"}],"name":"startWhitelistTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200049f565b6200002190620f4240620004b7565b6001556127106001546064620000389190620004b7565b620000449190620004d1565b60025561271060015460646200005b9190620004b7565b620000679190620004d1565b600355610190600881905560098190556000600a819055600b55612710600c55600d805462ffffff1916620100001790556002600f55600154620186a091620000b19190620004b7565b620000bd9190620004d1565b601455620186a0600154600a620000d59190620004b7565b620000e19190620004d1565b601555610bb8601d55610fa0601e556000601f553480156200010257600080fd5b50600080546001600160a01b031990811633178255601680549091167307525aad4de5181bcf70d53ec01965d5d191a4561790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa1580156200018b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b19190620004f4565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002259190620004f4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000273573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002999190620004f4565b600680546001600160a01b03199081166001600160a01b038681169190911790925560078054909116918316919091179055306000908152601160209081526040808320805461010061ff001991821681178355338087528487208054909316909117825582546201000062ff00001991821681179094557f97847ee99463795296047093514439c3127772df3715e628aa85601cf8541716805482168517905582541690921790556001546004845282852081905591519182529394507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200051f565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003e1578160001904821115620003c557620003c56200038a565b80851615620003d357918102915b93841c9390800290620003a5565b509250929050565b600082620003fa5750600162000499565b81620004095750600062000499565b81600181146200042257600281146200042d576200044d565b600191505062000499565b60ff8411156200044157620004416200038a565b50506001821b62000499565b5060208310610133831016604e8410600b841016171562000472575081810a62000499565b6200047e8383620003a0565b80600019048211156200049557620004956200038a565b0290505b92915050565b6000620004b060ff841683620003e9565b9392505050565b80820281158282048414176200049957620004996200038a565b600082620004ef57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200050757600080fd5b81516001600160a01b0381168114620004b057600080fd5b612b7c806200052f6000396000f3fe6080604052600436106101fd5760003560e01c806386975cfe1161010d578063a9059cbb116100a0578063e94dd17c1161006f578063e94dd17c1461060e578063ef40a6701461062e578063f275f64b1461065b578063f2fde38b1461067b578063f4e0d9ac1461069b57600080fd5b8063a9059cbb14610568578063b6b55f2514610588578063bc8d8e32146105a8578063dd62ed3e146105c857600080fd5b806395d89b41116100dc57806395d89b41146104db5780639fb05d3714610508578063a0821be314610528578063a8aa1b311461054857600080fd5b806386975cfe14610449578063893d20e8146104695780638cd4426d1461049b578063903f9f6c146104bb57600080fd5b806339788bc81161019057806371a2ce971161015f57806371a2ce97146103d457806378026a22146103f457806378109e54146104075780637d1db4a51461041d578063817b1cd21461043357600080fd5b806339788bc81461034957806340ca544d1461035e57806355c2535e1461037e57806370a082311461039e57600080fd5b80632e1a7d4d116101cc5780632e1a7d4d146102bc5780632f54bf6e146102de5780633132d66b1461030d578063313ce5671461032d57600080fd5b806306fdde0314610209578063095ea7b31461024d57806318160ddd1461027d57806323b872dd1461029c57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5060408051808201909152600981526821b7b932a1b430b4b760b91b60208201525b604051610244919061267b565b60405180910390f35b34801561025957600080fd5b5061026d6102683660046126de565b6106bb565b6040519015158152602001610244565b34801561028957600080fd5b506001545b604051908152602001610244565b3480156102a857600080fd5b5061026d6102b736600461270a565b6106d2565b3480156102c857600080fd5b506102dc6102d736600461274b565b61073c565b005b3480156102ea57600080fd5b5061026d6102f9366004612764565b6000546001600160a01b0391821691161490565b34801561031957600080fd5b506102dc610328366004612781565b61088a565b34801561033957600080fd5b5060405160098152602001610244565b34801561035557600080fd5b506102dc610902565b34801561036a57600080fd5b506102dc6103793660046127bb565b61093e565b34801561038a57600080fd5b506102dc6103993660046127bb565b610a48565b3480156103aa57600080fd5b5061028e6103b9366004612764565b6001600160a01b031660009081526004602052604090205490565b3480156103e057600080fd5b506102dc6103ef366004612841565b610b4a565b6102dc61040236600461274b565b610c6f565b34801561041357600080fd5b5061028e60035481565b34801561042957600080fd5b5061028e60025481565b34801561043f57600080fd5b5061028e60135481565b34801561045557600080fd5b506102dc610464366004612873565b610d22565b34801561047557600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610244565b3480156104a757600080fd5b506102dc6104b63660046126de565b610da3565b3480156104c757600080fd5b506102dc6104d63660046127bb565b610e49565b3480156104e757600080fd5b50604080518082019091526004815263434f524560e01b6020820152610237565b34801561051457600080fd5b506102dc6105233660046128a3565b61104f565b34801561053457600080fd5b5061028e610543366004612764565b611164565b34801561055457600080fd5b50600754610483906001600160a01b031681565b34801561057457600080fd5b5061026d6105833660046126de565b611191565b34801561059457600080fd5b506102dc6105a336600461274b565b61119e565b3480156105b457600080fd5b506102dc6105c3366004612914565b6112fe565b3480156105d457600080fd5b5061028e6105e3366004612936565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561061a57600080fd5b506102dc610629366004612781565b611440565b34801561063a57600080fd5b5061028e610649366004612764565b60126020526000908152604090205481565b34801561066757600080fd5b506102dc610676366004612964565b6114af565b34801561068757600080fd5b506102dc610696366004612764565b611519565b3480156106a757600080fd5b506102dc6106b6366004612764565b611597565b60006106c8338484611628565b5060015b92915050565b60006106df84848461174c565b610731843361072c85604051806060016040528060288152602001612b1f602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611932565b611628565b5060015b9392505050565b336000908152601260205260409020548111156107b65760405162461bcd60e51b815260206004820152602d60248201527f45524332303a2043616e6e6f7420756e7374616b65206d6f7265207468616e2060448201526c185b5bdd5b9d081cdd185ad959609a1b60648201526084015b60405180910390fd5b60175460405163f3fef3a360e01b8152336004820152602481018390526001600160a01b039091169063f3fef3a390604401600060405180830381600087803b15801561080257600080fd5b505af1158015610816573d6000803e3d6000fd5b5050336000908152601260205260408120805485945090925061083a908490612997565b9250508190555080601360008282546108539190612997565b90915550506040514290829033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56890600090a450565b6000546001600160a01b031633146108b45760405162461bcd60e51b81526004016107ad906129aa565b601e839055601d829055601f8190556040514281528190839085907f59cd28da69047e63affb6a6e4aded5c27a1c939c6c2ecb3b11b88174938ddfaf906020015b60405180910390a4505050565b601b546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561093b573d6000803e3d6000fd5b50565b6000546001600160a01b031633146109685760405162461bcd60e51b81526004016107ad906129aa565b60005b82811015610a4257816011600086868581811061098a5761098a6129ca565b905060200201602081019061099f9190612764565b6001600160a01b0316815260208101919091526040016000208054911515620100000262ff000019909216919091179055428215158585848181106109e6576109e66129ca565b90506020020160208101906109fb9190612764565b6001600160a01b03167ff61420caae4661cdd9554a2c8b6c89fc9f30f94abccb1da76abb2ec99783821160405160405180910390a480610a3a816129e0565b91505061096b565b50505050565b6000546001600160a01b03163314610a725760405162461bcd60e51b81526004016107ad906129aa565b60005b82811015610a42578160116000868685818110610a9457610a946129ca565b9050602002016020810190610aa99190612764565b6001600160a01b03168152602081019190915260400160002080549115156101000261ff001990921691909117905542821515858584818110610aee57610aee6129ca565b9050602002016020810190610b039190612764565b6001600160a01b03167f06fc074ca2e419a387dc375c9b7c443ad8795d2ba416fa17bb4691ea4ba86ed560405160405180910390a480610b42816129e0565b915050610a75565b6000546001600160a01b03163314610b745760405162461bcd60e51b81526004016107ad906129aa565b600c54610b8290600a61195e565b8411158015610b9e5750600c54610b9a90600a61195e565b8311155b8015610bb75750600c54610bb390600a61195e565b8111155b8015610bd05750600c54610bcc90600a61195e565b8211155b610c1c5760405162461bcd60e51b815260206004820152601960248201527f45524332303a20546178206c696d69746564206174203130250000000000000060448201526064016107ad565b60088490556009839055600b829055600a8190556040514281528190849086907f747eaccb30a9769474f1620ae0dd833b1ffb89520dcac6833b33df942b7c0c499060200160405180910390a450505050565b6010805461ff001916610100179055610c89333083611628565b600654610ca19033906001600160a01b031683611628565b610cac33308361174c565b600654610cc49030906001600160a01b031683611628565b610ccf81343361196a565b336001600160a01b031634827f89d4d2ecc95200a080f69cea2131862ff53c70739a5db9ab0373fcdd09da746d42604051610d0c91815260200190565b60405180910390a4506010805461ff0019169055565b6000546001600160a01b03163314610d4c5760405162461bcd60e51b81526004016107ad906129aa565b600d80544260208190556021859055831515610100810261ffff199093169290921760011790925560405184907f0ce4d0131af8e20b17ec4635aadf58b43531a126375fbecb229e0ef13c761c5790600090a45050565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b81526004016107ad906129aa565b601b5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4491906129f9565b505050565b6000546001600160a01b03163314610e735760405162461bcd60e51b81526004016107ad906129aa565b60005b82811015610a42576007546001600160a01b0316848483818110610e9c57610e9c6129ca565b9050602002016020810190610eb19190612764565b6001600160a01b031614158015610f0257506006546001600160a01b0316848483818110610ee157610ee16129ca565b9050602002016020810190610ef69190612764565b6001600160a01b031614155b8015610f3d575030848483818110610f1c57610f1c6129ca565b9050602002016020810190610f319190612764565b6001600160a01b031614155b610f895760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20496e656c696769626c6520416464726573736573000000000060448201526064016107ad565b8160116000868685818110610fa057610fa06129ca565b9050602002016020810190610fb59190612764565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905542821515858584818110610ff357610ff36129ca565b90506020020160208101906110089190612764565b6001600160a01b03167f164c505d00f9d81cedf040f4f6529f89443f3b8152c82f222fe29185e52d5a8f60405160405180910390a480611047816129e0565b915050610e76565b6000546001600160a01b031633146110795760405162461bcd60e51b81526004016107ad906129aa565b601980546001600160a01b03199081166001600160a01b03888116918217909355601a80548316888516908117909155601b80548416888616908117909155601c8054851688871690811790915560188054909516958716958617909455600083815260116020908152604080832080546201000062ff0000199182168117909255868552828520805482168317905597845281842080548916821790559783529182902080549096169096179094559251428152929390927f358f3926f41536f5fa6926b5b6945502e5fdfb85b1876c473d06606ed0fae9ca910160405180910390a45050505050565b6001600160a01b03811660009081526012602090815260408083205460049092528220546106cc91611a1d565b60006106c833848461174c565b336000908152601260209081526040808320546004909252909120546111c391611a1d565b81111561122a5760405162461bcd60e51b815260206004820152602f60248201527f45524332303a2043616e6e6f74207374616b65206d6f7265207468616e20617660448201526e61696c61626c652062616c616e636560881b60648201526084016107ad565b6017546040516311f9fbc960e21b8152336004820152602481018390526001600160a01b03909116906347e7ef2490604401600060405180830381600087803b15801561127657600080fd5b505af115801561128a573d6000803e3d6000fd5b505033600090815260126020526040812080548594509092506112ae908490612a16565b9250508190555080601360008282546112c79190612a16565b90915550506040514290829033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590600090a450565b6000546001600160a01b031633146113285760405162461bcd60e51b81526004016107ad906129aa565b600061134c6127106113466019600154611a2990919063ffffffff16565b9061195e565b9050600061136b61271061134686600154611a2990919063ffffffff16565b9050600061138a61271061134686600154611a2990919063ffffffff16565b905082821015801561139c5750828110155b6114005760405162461bcd60e51b815260206004820152602f60248201527f45524332303a204d696e696d756d206c696d69746174696f6e732063616e6e6f60448201526e742062652062656c6f77202e32352560881b60648201526084016107ad565b600282905560038190556040514290829084907f3f912fb654093de8e38205b3030b71bb199e5623a245ea14d2a20795c4c6233f90600090a45050505050565b6000546001600160a01b0316331461146a5760405162461bcd60e51b81526004016107ad906129aa565b600f839055601482905560158190556040514281528190839085907f3af591b474e55c209cfbc3da369b6762366e3015997314ac10bd5c3198d26fb3906020016108f5565b6000546001600160a01b031633146114d95760405162461bcd60e51b81526004016107ad906129aa565b600d805460ff19168215159081179091556040514291907f3eb2d65e1de77434db1b2cb0645de0085059e6e514d7b9641fdc2978d8e40c4090600090a350565b6000546001600160a01b031633146115435760405162461bcd60e51b81526004016107ad906129aa565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146115c15760405162461bcd60e51b81526004016107ad906129aa565b601780546001600160a01b0383166001600160a01b03199091168117909155600081815260116020526040808220805462ff0000191662010000179055514292917f23481943b6ef3dff645af874fbb24781bf224a02312f9cb308880e03e0a9ddee91a350565b6001600160a01b03831661168a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ad565b6001600160a01b0382166116eb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ad565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6117568382611a35565b6117608383611b1f565b61176b838383611d05565b611776838383611e0b565b6117808383611f68565b61178b838383611fd9565b6001600160a01b0383166000908152600460205260409020546117ae9082611a1d565b6001600160a01b0384166000908152600460205260408120919091556117d48484611ffe565b6117de57816117e9565b6117e9848484612050565b6001600160a01b03841660009081526004602052604090205490915061180f9082612161565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118639085815260200190565b60405180910390a36016546001600160a01b03166396549e928561189c816001600160a01b031660009081526004602052604090205490565b866118bc886001600160a01b031660009081526004602052604090205490565b6040516001600160e01b031960e087901b1681526001600160a01b0394851660048201526024810193909352921660448201526064810191909152608401600060405180830381600087803b15801561191457600080fd5b505af1158015611928573d6000803e3d6000fd5b5050505050505050565b600081848411156119565760405162461bcd60e51b81526004016107ad919061267b565b505050900390565b60006107358284612a29565b6006546119829030906001600160a01b031685611628565b60065460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af11580156119f0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a159190612a4b565b505050505050565b60006107358284612997565b60006107358284612a79565b6001600160a01b038216611a995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ad565b6001600160a01b038216600090815260046020526040902054811115611b1b5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016107ad565b5050565b6001600160a01b03821660009081526011602052604090205460ff16158015611b6157506001600160a01b03811660009081526011602052604090205460ff16155b611bad5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a2057616c6c657420697320426c61636b6c69737465640000000060448201526064016107ad565b42611bc560215460205461216190919063ffffffff16565b1015611bd757600d805461ff00191690555b6001600160a01b03821660009081526011602052604090205462010000900460ff16158015611c2557506001600160a01b03811660009081526011602052604090205462010000900460ff16155b8015611c395750600d54610100900460ff16155b15611c9057600d5460ff16611c905760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f7420616c6c6f77656400000060448201526064016107ad565b600d54610100900460ff168015611ca95750600d5460ff165b15611b1b57611cb8828261216d565b15611b1b5760405162461bcd60e51b815260206004820152601760248201527f45524332303a2057686974656c69737420506572696f6400000000000000000060448201526064016107ad565b6001600160a01b03831660009081526011602052604090205462010000900460ff16158015611d5357506001600160a01b03821660009081526011602052604090205462010000900460ff16155b8015611d6d57506007546001600160a01b03838116911614155b8015611d8457506001600160a01b03821661dead14155b15610e44576003546001600160a01b038316600090815260046020526040902054611daf9083612161565b1115610e445760405162461bcd60e51b815260206004820152602560248201527f45524332303a2045786365656473206d6178696d756d2077616c6c657420616d60448201526437bab73a1760d91b60648201526084016107ad565b6001600160a01b03831660009081526012602052604090205415611ec4576001600160a01b038316600090815260046020908152604080832054601290925290912054611e59908390612161565b1115611ec45760405162461bcd60e51b815260206004820152603460248201527f45524332303a2045786365656473206d6178696d756d20616c6c6f776564206e60448201527337ba1031bab93932b73a363c9039ba30b5b2b21760611b60648201526084016107ad565b60025481111580611ef357506001600160a01b03831660009081526011602052604090205462010000900460ff165b80611f1c57506001600160a01b03821660009081526011602052604090205462010000900460ff165b610e445760405162461bcd60e51b815260206004820152601860248201527f45524332303a205458204c696d6974204578636565646564000000000000000060448201526064016107ad565b6007546001600160a01b038281169116148015611fa457506001600160a01b03821660009081526011602052604090205462010000900460ff16155b8015611fb85750601054610100900460ff16155b15611b1b576001600e6000828254611fd09190612a16565b90915550505050565b611fe4838383612213565b15610e4457611ff46014546122df565b6000600e55505050565b6001600160a01b03821660009081526011602052604081205462010000900460ff161580156107355750506001600160a01b031660009081526011602052604090205462010000900460ff1615919050565b60008061205d85856124af565b1180156120725750601054610100900460ff16155b1561215a57600061209a61208686866124af565b600c5461209490869061195e565b90611a29565b306000908152600460205260409020549091506120b79082612161565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121089085815260200190565b60405180910390a3600a541561214857601854600a54600c546121489230926001600160a01b0390911691612143919061209490899061195e565b61174c565b6121528382611a1d565b915050610735565b5092915050565b60006107358284612a16565b6001600160a01b038216600090815260116020526040812054610100900460ff161580156121b957506001600160a01b038216600090815260116020526040902054610100900460ff16155b80156121e457506001600160a01b03831660009081526011602052604090205462010000900460ff16155b80156107355750506001600160a01b031660009081526011602052604090205462010000900460ff1615919050565b6015546014543060009081526004602052604081205460105491938510159211159060ff1615801561224d5750600d5462010000900460ff165b801561225b5750600d5460ff165b80156122645750815b801561228f57506001600160a01b03861660009081526011602052604090205462010000900460ff16155b80156122a857506007546001600160a01b038681169116145b80156122b85750600f54600e5410155b80156122c15750805b80156122d55750601054610100900460ff16155b9695505050505050565b6010805460ff19166001908117909155600c54600091612306916002916120949190612161565b9050600061232382611346601d5486611a2990919063ffffffff16565b905060006123318483611a1d565b90504761233d82612529565b60006123494783611a1d565b9050600061236c612365601d5488611a1d90919063ffffffff16565b839061195e565b90506000612385601d5483611a2990919063ffffffff16565b905080156123a657601a546123a690879083906001600160a01b031661196a565b601e546000906123bb90612094856002611a29565b905080156123ff576019546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156123fd573d6000803e3d6000fd5b505b601f5460009061241490612094866002611a29565b9050801561245857601c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612456573d6000803e3d6000fd5b505b471561249957601b546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015612497573d6000803e3d6000fd5b505b50506010805460ff191690555050505050505050565b6007546000906001600160a01b0383811691161480156124d157506000600954115b156124ec57600a546009546124e591612161565b90506106cc565b6007546001600160a01b03848116911614801561250b57506000600854115b1561251f57600a546008546124e591612161565b50600b5492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061255e5761255e6129ca565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156125b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125db9190612a90565b816001815181106125ee576125ee6129ca565b6001600160a01b0392831660209182029290920101526006546126149130911684611628565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061264d908590600090869030904290600401612aad565b600060405180830381600087803b15801561266757600080fd5b505af1158015611a15573d6000803e3d6000fd5b600060208083528351808285015260005b818110156126a85785810183015185820160400152820161268c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461093b57600080fd5b600080604083850312156126f157600080fd5b82356126fc816126c9565b946020939093013593505050565b60008060006060848603121561271f57600080fd5b833561272a816126c9565b9250602084013561273a816126c9565b929592945050506040919091013590565b60006020828403121561275d57600080fd5b5035919050565b60006020828403121561277657600080fd5b8135610735816126c9565b60008060006060848603121561279657600080fd5b505081359360208301359350604090920135919050565b801515811461093b57600080fd5b6000806000604084860312156127d057600080fd5b833567ffffffffffffffff808211156127e857600080fd5b818601915086601f8301126127fc57600080fd5b81358181111561280b57600080fd5b8760208260051b850101111561282057600080fd5b60209283019550935050840135612836816127ad565b809150509250925092565b6000806000806080858703121561285757600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561288657600080fd5b823591506020830135612898816127ad565b809150509250929050565b600080600080600060a086880312156128bb57600080fd5b85356128c6816126c9565b945060208601356128d6816126c9565b935060408601356128e6816126c9565b925060608601356128f6816126c9565b91506080860135612906816126c9565b809150509295509295909350565b6000806040838503121561292757600080fd5b50508035926020909101359150565b6000806040838503121561294957600080fd5b8235612954816126c9565b91506020830135612898816126c9565b60006020828403121561297657600080fd5b8135610735816127ad565b634e487b7160e01b600052601160045260246000fd5b818103818111156106cc576106cc612981565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600182016129f2576129f2612981565b5060010190565b600060208284031215612a0b57600080fd5b8151610735816127ad565b808201808211156106cc576106cc612981565b600082612a4657634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215612a6057600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176106cc576106cc612981565b600060208284031215612aa257600080fd5b8151610735816126c9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612afd5784516001600160a01b031683529383019391830191600101612ad8565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209e587e431d12a938424f4076398d16ae5b57b94216fd039af89a64c8563fd68364736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c806386975cfe1161010d578063a9059cbb116100a0578063e94dd17c1161006f578063e94dd17c1461060e578063ef40a6701461062e578063f275f64b1461065b578063f2fde38b1461067b578063f4e0d9ac1461069b57600080fd5b8063a9059cbb14610568578063b6b55f2514610588578063bc8d8e32146105a8578063dd62ed3e146105c857600080fd5b806395d89b41116100dc57806395d89b41146104db5780639fb05d3714610508578063a0821be314610528578063a8aa1b311461054857600080fd5b806386975cfe14610449578063893d20e8146104695780638cd4426d1461049b578063903f9f6c146104bb57600080fd5b806339788bc81161019057806371a2ce971161015f57806371a2ce97146103d457806378026a22146103f457806378109e54146104075780637d1db4a51461041d578063817b1cd21461043357600080fd5b806339788bc81461034957806340ca544d1461035e57806355c2535e1461037e57806370a082311461039e57600080fd5b80632e1a7d4d116101cc5780632e1a7d4d146102bc5780632f54bf6e146102de5780633132d66b1461030d578063313ce5671461032d57600080fd5b806306fdde0314610209578063095ea7b31461024d57806318160ddd1461027d57806323b872dd1461029c57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5060408051808201909152600981526821b7b932a1b430b4b760b91b60208201525b604051610244919061267b565b60405180910390f35b34801561025957600080fd5b5061026d6102683660046126de565b6106bb565b6040519015158152602001610244565b34801561028957600080fd5b506001545b604051908152602001610244565b3480156102a857600080fd5b5061026d6102b736600461270a565b6106d2565b3480156102c857600080fd5b506102dc6102d736600461274b565b61073c565b005b3480156102ea57600080fd5b5061026d6102f9366004612764565b6000546001600160a01b0391821691161490565b34801561031957600080fd5b506102dc610328366004612781565b61088a565b34801561033957600080fd5b5060405160098152602001610244565b34801561035557600080fd5b506102dc610902565b34801561036a57600080fd5b506102dc6103793660046127bb565b61093e565b34801561038a57600080fd5b506102dc6103993660046127bb565b610a48565b3480156103aa57600080fd5b5061028e6103b9366004612764565b6001600160a01b031660009081526004602052604090205490565b3480156103e057600080fd5b506102dc6103ef366004612841565b610b4a565b6102dc61040236600461274b565b610c6f565b34801561041357600080fd5b5061028e60035481565b34801561042957600080fd5b5061028e60025481565b34801561043f57600080fd5b5061028e60135481565b34801561045557600080fd5b506102dc610464366004612873565b610d22565b34801561047557600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610244565b3480156104a757600080fd5b506102dc6104b63660046126de565b610da3565b3480156104c757600080fd5b506102dc6104d63660046127bb565b610e49565b3480156104e757600080fd5b50604080518082019091526004815263434f524560e01b6020820152610237565b34801561051457600080fd5b506102dc6105233660046128a3565b61104f565b34801561053457600080fd5b5061028e610543366004612764565b611164565b34801561055457600080fd5b50600754610483906001600160a01b031681565b34801561057457600080fd5b5061026d6105833660046126de565b611191565b34801561059457600080fd5b506102dc6105a336600461274b565b61119e565b3480156105b457600080fd5b506102dc6105c3366004612914565b6112fe565b3480156105d457600080fd5b5061028e6105e3366004612936565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561061a57600080fd5b506102dc610629366004612781565b611440565b34801561063a57600080fd5b5061028e610649366004612764565b60126020526000908152604090205481565b34801561066757600080fd5b506102dc610676366004612964565b6114af565b34801561068757600080fd5b506102dc610696366004612764565b611519565b3480156106a757600080fd5b506102dc6106b6366004612764565b611597565b60006106c8338484611628565b5060015b92915050565b60006106df84848461174c565b610731843361072c85604051806060016040528060288152602001612b1f602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611932565b611628565b5060015b9392505050565b336000908152601260205260409020548111156107b65760405162461bcd60e51b815260206004820152602d60248201527f45524332303a2043616e6e6f7420756e7374616b65206d6f7265207468616e2060448201526c185b5bdd5b9d081cdd185ad959609a1b60648201526084015b60405180910390fd5b60175460405163f3fef3a360e01b8152336004820152602481018390526001600160a01b039091169063f3fef3a390604401600060405180830381600087803b15801561080257600080fd5b505af1158015610816573d6000803e3d6000fd5b5050336000908152601260205260408120805485945090925061083a908490612997565b9250508190555080601360008282546108539190612997565b90915550506040514290829033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56890600090a450565b6000546001600160a01b031633146108b45760405162461bcd60e51b81526004016107ad906129aa565b601e839055601d829055601f8190556040514281528190839085907f59cd28da69047e63affb6a6e4aded5c27a1c939c6c2ecb3b11b88174938ddfaf906020015b60405180910390a4505050565b601b546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561093b573d6000803e3d6000fd5b50565b6000546001600160a01b031633146109685760405162461bcd60e51b81526004016107ad906129aa565b60005b82811015610a4257816011600086868581811061098a5761098a6129ca565b905060200201602081019061099f9190612764565b6001600160a01b0316815260208101919091526040016000208054911515620100000262ff000019909216919091179055428215158585848181106109e6576109e66129ca565b90506020020160208101906109fb9190612764565b6001600160a01b03167ff61420caae4661cdd9554a2c8b6c89fc9f30f94abccb1da76abb2ec99783821160405160405180910390a480610a3a816129e0565b91505061096b565b50505050565b6000546001600160a01b03163314610a725760405162461bcd60e51b81526004016107ad906129aa565b60005b82811015610a42578160116000868685818110610a9457610a946129ca565b9050602002016020810190610aa99190612764565b6001600160a01b03168152602081019190915260400160002080549115156101000261ff001990921691909117905542821515858584818110610aee57610aee6129ca565b9050602002016020810190610b039190612764565b6001600160a01b03167f06fc074ca2e419a387dc375c9b7c443ad8795d2ba416fa17bb4691ea4ba86ed560405160405180910390a480610b42816129e0565b915050610a75565b6000546001600160a01b03163314610b745760405162461bcd60e51b81526004016107ad906129aa565b600c54610b8290600a61195e565b8411158015610b9e5750600c54610b9a90600a61195e565b8311155b8015610bb75750600c54610bb390600a61195e565b8111155b8015610bd05750600c54610bcc90600a61195e565b8211155b610c1c5760405162461bcd60e51b815260206004820152601960248201527f45524332303a20546178206c696d69746564206174203130250000000000000060448201526064016107ad565b60088490556009839055600b829055600a8190556040514281528190849086907f747eaccb30a9769474f1620ae0dd833b1ffb89520dcac6833b33df942b7c0c499060200160405180910390a450505050565b6010805461ff001916610100179055610c89333083611628565b600654610ca19033906001600160a01b031683611628565b610cac33308361174c565b600654610cc49030906001600160a01b031683611628565b610ccf81343361196a565b336001600160a01b031634827f89d4d2ecc95200a080f69cea2131862ff53c70739a5db9ab0373fcdd09da746d42604051610d0c91815260200190565b60405180910390a4506010805461ff0019169055565b6000546001600160a01b03163314610d4c5760405162461bcd60e51b81526004016107ad906129aa565b600d80544260208190556021859055831515610100810261ffff199093169290921760011790925560405184907f0ce4d0131af8e20b17ec4635aadf58b43531a126375fbecb229e0ef13c761c5790600090a45050565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b81526004016107ad906129aa565b601b5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4491906129f9565b505050565b6000546001600160a01b03163314610e735760405162461bcd60e51b81526004016107ad906129aa565b60005b82811015610a42576007546001600160a01b0316848483818110610e9c57610e9c6129ca565b9050602002016020810190610eb19190612764565b6001600160a01b031614158015610f0257506006546001600160a01b0316848483818110610ee157610ee16129ca565b9050602002016020810190610ef69190612764565b6001600160a01b031614155b8015610f3d575030848483818110610f1c57610f1c6129ca565b9050602002016020810190610f319190612764565b6001600160a01b031614155b610f895760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20496e656c696769626c6520416464726573736573000000000060448201526064016107ad565b8160116000868685818110610fa057610fa06129ca565b9050602002016020810190610fb59190612764565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905542821515858584818110610ff357610ff36129ca565b90506020020160208101906110089190612764565b6001600160a01b03167f164c505d00f9d81cedf040f4f6529f89443f3b8152c82f222fe29185e52d5a8f60405160405180910390a480611047816129e0565b915050610e76565b6000546001600160a01b031633146110795760405162461bcd60e51b81526004016107ad906129aa565b601980546001600160a01b03199081166001600160a01b03888116918217909355601a80548316888516908117909155601b80548416888616908117909155601c8054851688871690811790915560188054909516958716958617909455600083815260116020908152604080832080546201000062ff0000199182168117909255868552828520805482168317905597845281842080548916821790559783529182902080549096169096179094559251428152929390927f358f3926f41536f5fa6926b5b6945502e5fdfb85b1876c473d06606ed0fae9ca910160405180910390a45050505050565b6001600160a01b03811660009081526012602090815260408083205460049092528220546106cc91611a1d565b60006106c833848461174c565b336000908152601260209081526040808320546004909252909120546111c391611a1d565b81111561122a5760405162461bcd60e51b815260206004820152602f60248201527f45524332303a2043616e6e6f74207374616b65206d6f7265207468616e20617660448201526e61696c61626c652062616c616e636560881b60648201526084016107ad565b6017546040516311f9fbc960e21b8152336004820152602481018390526001600160a01b03909116906347e7ef2490604401600060405180830381600087803b15801561127657600080fd5b505af115801561128a573d6000803e3d6000fd5b505033600090815260126020526040812080548594509092506112ae908490612a16565b9250508190555080601360008282546112c79190612a16565b90915550506040514290829033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590600090a450565b6000546001600160a01b031633146113285760405162461bcd60e51b81526004016107ad906129aa565b600061134c6127106113466019600154611a2990919063ffffffff16565b9061195e565b9050600061136b61271061134686600154611a2990919063ffffffff16565b9050600061138a61271061134686600154611a2990919063ffffffff16565b905082821015801561139c5750828110155b6114005760405162461bcd60e51b815260206004820152602f60248201527f45524332303a204d696e696d756d206c696d69746174696f6e732063616e6e6f60448201526e742062652062656c6f77202e32352560881b60648201526084016107ad565b600282905560038190556040514290829084907f3f912fb654093de8e38205b3030b71bb199e5623a245ea14d2a20795c4c6233f90600090a45050505050565b6000546001600160a01b0316331461146a5760405162461bcd60e51b81526004016107ad906129aa565b600f839055601482905560158190556040514281528190839085907f3af591b474e55c209cfbc3da369b6762366e3015997314ac10bd5c3198d26fb3906020016108f5565b6000546001600160a01b031633146114d95760405162461bcd60e51b81526004016107ad906129aa565b600d805460ff19168215159081179091556040514291907f3eb2d65e1de77434db1b2cb0645de0085059e6e514d7b9641fdc2978d8e40c4090600090a350565b6000546001600160a01b031633146115435760405162461bcd60e51b81526004016107ad906129aa565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146115c15760405162461bcd60e51b81526004016107ad906129aa565b601780546001600160a01b0383166001600160a01b03199091168117909155600081815260116020526040808220805462ff0000191662010000179055514292917f23481943b6ef3dff645af874fbb24781bf224a02312f9cb308880e03e0a9ddee91a350565b6001600160a01b03831661168a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ad565b6001600160a01b0382166116eb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ad565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6117568382611a35565b6117608383611b1f565b61176b838383611d05565b611776838383611e0b565b6117808383611f68565b61178b838383611fd9565b6001600160a01b0383166000908152600460205260409020546117ae9082611a1d565b6001600160a01b0384166000908152600460205260408120919091556117d48484611ffe565b6117de57816117e9565b6117e9848484612050565b6001600160a01b03841660009081526004602052604090205490915061180f9082612161565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118639085815260200190565b60405180910390a36016546001600160a01b03166396549e928561189c816001600160a01b031660009081526004602052604090205490565b866118bc886001600160a01b031660009081526004602052604090205490565b6040516001600160e01b031960e087901b1681526001600160a01b0394851660048201526024810193909352921660448201526064810191909152608401600060405180830381600087803b15801561191457600080fd5b505af1158015611928573d6000803e3d6000fd5b5050505050505050565b600081848411156119565760405162461bcd60e51b81526004016107ad919061267b565b505050900390565b60006107358284612a29565b6006546119829030906001600160a01b031685611628565b60065460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af11580156119f0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a159190612a4b565b505050505050565b60006107358284612997565b60006107358284612a79565b6001600160a01b038216611a995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ad565b6001600160a01b038216600090815260046020526040902054811115611b1b5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016107ad565b5050565b6001600160a01b03821660009081526011602052604090205460ff16158015611b6157506001600160a01b03811660009081526011602052604090205460ff16155b611bad5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a2057616c6c657420697320426c61636b6c69737465640000000060448201526064016107ad565b42611bc560215460205461216190919063ffffffff16565b1015611bd757600d805461ff00191690555b6001600160a01b03821660009081526011602052604090205462010000900460ff16158015611c2557506001600160a01b03811660009081526011602052604090205462010000900460ff16155b8015611c395750600d54610100900460ff16155b15611c9057600d5460ff16611c905760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f7420616c6c6f77656400000060448201526064016107ad565b600d54610100900460ff168015611ca95750600d5460ff165b15611b1b57611cb8828261216d565b15611b1b5760405162461bcd60e51b815260206004820152601760248201527f45524332303a2057686974656c69737420506572696f6400000000000000000060448201526064016107ad565b6001600160a01b03831660009081526011602052604090205462010000900460ff16158015611d5357506001600160a01b03821660009081526011602052604090205462010000900460ff16155b8015611d6d57506007546001600160a01b03838116911614155b8015611d8457506001600160a01b03821661dead14155b15610e44576003546001600160a01b038316600090815260046020526040902054611daf9083612161565b1115610e445760405162461bcd60e51b815260206004820152602560248201527f45524332303a2045786365656473206d6178696d756d2077616c6c657420616d60448201526437bab73a1760d91b60648201526084016107ad565b6001600160a01b03831660009081526012602052604090205415611ec4576001600160a01b038316600090815260046020908152604080832054601290925290912054611e59908390612161565b1115611ec45760405162461bcd60e51b815260206004820152603460248201527f45524332303a2045786365656473206d6178696d756d20616c6c6f776564206e60448201527337ba1031bab93932b73a363c9039ba30b5b2b21760611b60648201526084016107ad565b60025481111580611ef357506001600160a01b03831660009081526011602052604090205462010000900460ff165b80611f1c57506001600160a01b03821660009081526011602052604090205462010000900460ff165b610e445760405162461bcd60e51b815260206004820152601860248201527f45524332303a205458204c696d6974204578636565646564000000000000000060448201526064016107ad565b6007546001600160a01b038281169116148015611fa457506001600160a01b03821660009081526011602052604090205462010000900460ff16155b8015611fb85750601054610100900460ff16155b15611b1b576001600e6000828254611fd09190612a16565b90915550505050565b611fe4838383612213565b15610e4457611ff46014546122df565b6000600e55505050565b6001600160a01b03821660009081526011602052604081205462010000900460ff161580156107355750506001600160a01b031660009081526011602052604090205462010000900460ff1615919050565b60008061205d85856124af565b1180156120725750601054610100900460ff16155b1561215a57600061209a61208686866124af565b600c5461209490869061195e565b90611a29565b306000908152600460205260409020549091506120b79082612161565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121089085815260200190565b60405180910390a3600a541561214857601854600a54600c546121489230926001600160a01b0390911691612143919061209490899061195e565b61174c565b6121528382611a1d565b915050610735565b5092915050565b60006107358284612a16565b6001600160a01b038216600090815260116020526040812054610100900460ff161580156121b957506001600160a01b038216600090815260116020526040902054610100900460ff16155b80156121e457506001600160a01b03831660009081526011602052604090205462010000900460ff16155b80156107355750506001600160a01b031660009081526011602052604090205462010000900460ff1615919050565b6015546014543060009081526004602052604081205460105491938510159211159060ff1615801561224d5750600d5462010000900460ff165b801561225b5750600d5460ff165b80156122645750815b801561228f57506001600160a01b03861660009081526011602052604090205462010000900460ff16155b80156122a857506007546001600160a01b038681169116145b80156122b85750600f54600e5410155b80156122c15750805b80156122d55750601054610100900460ff16155b9695505050505050565b6010805460ff19166001908117909155600c54600091612306916002916120949190612161565b9050600061232382611346601d5486611a2990919063ffffffff16565b905060006123318483611a1d565b90504761233d82612529565b60006123494783611a1d565b9050600061236c612365601d5488611a1d90919063ffffffff16565b839061195e565b90506000612385601d5483611a2990919063ffffffff16565b905080156123a657601a546123a690879083906001600160a01b031661196a565b601e546000906123bb90612094856002611a29565b905080156123ff576019546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156123fd573d6000803e3d6000fd5b505b601f5460009061241490612094866002611a29565b9050801561245857601c546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612456573d6000803e3d6000fd5b505b471561249957601b546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015612497573d6000803e3d6000fd5b505b50506010805460ff191690555050505050505050565b6007546000906001600160a01b0383811691161480156124d157506000600954115b156124ec57600a546009546124e591612161565b90506106cc565b6007546001600160a01b03848116911614801561250b57506000600854115b1561251f57600a546008546124e591612161565b50600b5492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061255e5761255e6129ca565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156125b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125db9190612a90565b816001815181106125ee576125ee6129ca565b6001600160a01b0392831660209182029290920101526006546126149130911684611628565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061264d908590600090869030904290600401612aad565b600060405180830381600087803b15801561266757600080fd5b505af1158015611a15573d6000803e3d6000fd5b600060208083528351808285015260005b818110156126a85785810183015185820160400152820161268c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461093b57600080fd5b600080604083850312156126f157600080fd5b82356126fc816126c9565b946020939093013593505050565b60008060006060848603121561271f57600080fd5b833561272a816126c9565b9250602084013561273a816126c9565b929592945050506040919091013590565b60006020828403121561275d57600080fd5b5035919050565b60006020828403121561277657600080fd5b8135610735816126c9565b60008060006060848603121561279657600080fd5b505081359360208301359350604090920135919050565b801515811461093b57600080fd5b6000806000604084860312156127d057600080fd5b833567ffffffffffffffff808211156127e857600080fd5b818601915086601f8301126127fc57600080fd5b81358181111561280b57600080fd5b8760208260051b850101111561282057600080fd5b60209283019550935050840135612836816127ad565b809150509250925092565b6000806000806080858703121561285757600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561288657600080fd5b823591506020830135612898816127ad565b809150509250929050565b600080600080600060a086880312156128bb57600080fd5b85356128c6816126c9565b945060208601356128d6816126c9565b935060408601356128e6816126c9565b925060608601356128f6816126c9565b91506080860135612906816126c9565b809150509295509295909350565b6000806040838503121561292757600080fd5b50508035926020909101359150565b6000806040838503121561294957600080fd5b8235612954816126c9565b91506020830135612898816126c9565b60006020828403121561297657600080fd5b8135610735816127ad565b634e487b7160e01b600052601160045260246000fd5b818103818111156106cc576106cc612981565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600182016129f2576129f2612981565b5060010190565b600060208284031215612a0b57600080fd5b8151610735816127ad565b808201808211156106cc576106cc612981565b600082612a4657634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215612a6057600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176106cc576106cc612981565b600060208284031215612aa257600080fd5b8151610735816126c9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612afd5784516001600160a01b031683529383019391830191600101612ad8565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209e587e431d12a938424f4076398d16ae5b57b94216fd039af89a64c8563fd68364736f6c63430008110033

Deployed Bytecode Sourcemap

5350:18202:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9579:67;;;;;;;;;;-1:-1:-1;9639:5:0;;;;;;;;;;;;-1:-1:-1;;;9639:5:0;;;;9579:67;;;;;;;:::i;:::-;;;;;;;;10379:133;;;;;;;;;;-1:-1:-1;10379:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10379:133:0;1023:187:1;10649:84:0;;;;;;;;;;-1:-1:-1;10719:12:0;;10649:84;;;1361:25:1;;;1349:2;1334:18;10649:84:0;1215:177:1;22415:309:0;;;;;;;;;;-1:-1:-1;22415:309:0;;;;;:::i;:::-;;:::i;19503:347::-;;;;;;;;;;-1:-1:-1;19503:347:0;;;;;:::i;:::-;;:::i;:::-;;3424:87;;;;;;;;;;-1:-1:-1;3424:87:0;;;;;:::i;:::-;3479:4;3504:5;-1:-1:-1;;;;;3493:16:0;;;3504:5;;3493:16;;3424:87;18111:277;;;;;;;;;;-1:-1:-1;18111:277:0;;;;;:::i;:::-;;:::i;9729:67::-;;;;;;;;;;-1:-1:-1;9729:67:0;;5560:1;2758:36:1;;2746:2;2731:18;9729:67:0;2616:184:1;10273:100:0;;;;;;;;;;;;;:::i;20556:262::-;;;;;;;;;;-1:-1:-1;20556:262:0;;;;;:::i;:::-;;:::i;19858:256::-;;;;;;;;;;-1:-1:-1;19858:256:0;;;;;:::i;:::-;;:::i;9886:103::-;;;;;;;;;;-1:-1:-1;9886:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;9969:18:0;9952:7;9969:18;;;:9;:18;;;;;;;9886:103;20826:489;;;;;;;;;;-1:-1:-1;20826:489:0;;;;;:::i;:::-;;:::i;23075:474::-;;;;;;:::i;:::-;;:::i;5700:63::-;;;;;;;;;;;;;;;;5633:60;;;;;;;;;;;;;;;;6799:26;;;;;;;;;;;;;;;;16419:322;;;;;;;;;;-1:-1:-1;16419:322:0;;;;;:::i;:::-;;:::i;9802:78::-;;;;;;;;;;-1:-1:-1;9854:7:0;9872:5;-1:-1:-1;;;;;9872:5:0;9802:78;;;-1:-1:-1;;;;;4551:32:1;;;4533:51;;4521:2;4506:18;9802:78:0;4387:203:1;18728:151:0;;;;;;;;;;-1:-1:-1;18728:151:0;;;;;:::i;:::-;;:::i;20122:426::-;;;;;;;;;;-1:-1:-1;20122:426:0;;;;;:::i;:::-;;:::i;9652:71::-;;;;;;;;;;-1:-1:-1;9714:7:0;;;;;;;;;;;;-1:-1:-1;;;9714:7:0;;;;9652:71;;17522:581;;;;;;;;;;-1:-1:-1;17522:581:0;;;;;:::i;:::-;;:::i;10518:125::-;;;;;;;;;;-1:-1:-1;10518:125:0;;;;;:::i;:::-;;:::i;6002:19::-;;;;;;;;;;-1:-1:-1;6002:19:0;;;;-1:-1:-1;;;;;6002:19:0;;;9995:139;;;;;;;;;;-1:-1:-1;9995:139:0;;;;;:::i;:::-;;:::i;19122:373::-;;;;;;;;;;-1:-1:-1;19122:373:0;;;;;:::i;:::-;;:::i;16909:605::-;;;;;;;;;;-1:-1:-1;16909:605:0;;;;;:::i;:::-;;:::i;10140:127::-;;;;;;;;;;-1:-1:-1;10140:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10238:18:0;;;10221:7;10238:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10140:127;18396:324;;;;;;;;;;-1:-1:-1;18396:324:0;;;;;:::i;:::-;;:::i;6745:47::-;;;;;;;;;;-1:-1:-1;6745:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;16749:152;;;;;;;;;;-1:-1:-1;16749:152:0;;;;;:::i;:::-;;:::i;3517:111::-;;;;;;;;;;-1:-1:-1;3517:111:0;;;;;:::i;:::-;;:::i;18887:227::-;;;;;;;;;;-1:-1:-1;18887:227:0;;;;;:::i;:::-;;:::i;10379:133::-;10454:4;10461:37;10470:10;10482:7;10491:6;10461:8;:37::i;:::-;-1:-1:-1;10506:4:0;10379:133;;;;;:::o;22415:309::-;22513:4;22530:36;22540:6;22548:9;22559:6;22530:9;:36::i;:::-;22577:117;22586:6;22594:10;22606:87;22642:6;22606:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22606:19:0;;;;;;:11;:19;;;;;;;;22626:10;22606:31;;;;;;;;;:87;:35;:87::i;:::-;22577:8;:117::i;:::-;-1:-1:-1;22712:4:0;22415:309;;;;;;:::o;19503:347::-;19588:10;19575:24;;;;:12;:24;;;;;;19565:34;;;19557:92;;;;-1:-1:-1;;;19557:92:0;;6767:2:1;19557:92:0;;;6749:21:1;6806:2;6786:18;;;6779:30;6845:34;6825:18;;;6818:62;-1:-1:-1;;;6896:18:1;;;6889:43;6949:19;;19557:92:0;;;;;;;;;19660:15;;:44;;-1:-1:-1;;;19660:44:0;;19685:10;19660:44;;;7153:51:1;7220:18;;;7213:34;;;-1:-1:-1;;;;;19660:15:0;;;;:24;;7126:18:1;;19660:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19728:10:0;19715:24;;;;:12;:24;;;;;:34;;19743:6;;-1:-1:-1;19715:24:0;;-1:-1:-1;19715:34:0;;19743:6;;19715:34;:::i;:::-;;;;;;;;19775:6;19760:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;19797:45:0;;19826:15;;19818:6;;19806:10;;19797:45;;;;;19503:347;:::o;18111:277::-;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;18228:9:::1;:22:::0;;;18252:9:::1;:22:::0;;;18276:7:::1;:18:::0;;;18310:70:::1;::::0;18364:15:::1;1361:25:1::0;;18276:18:0;;18252:22;;18228;;18310:70:::1;::::0;1349:2:1;1334:18;18310:70:0::1;;;;;;;;18111:277:::0;;;:::o;10273:100::-;10318:20;;10310:61;;-1:-1:-1;;;;;10318:20:0;;;;10349:21;10310:61;;;;;10318:20;10310:61;10318:20;10310:61;10349:21;10318:20;10310:61;;;;;;;;;;;;;;;;;;;;;10273:100::o;20556:262::-;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;20656:6:::1;20652:159;20666:20:::0;;::::1;20652:159;;;20731:5;20693:11;:25;20705:9;;20715:1;20705:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20693:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20693:25:0;:43;;;::::1;;::::0;::::1;-1:-1:-1::0;;20693:43:0;;::::1;::::0;;;::::1;::::0;;20793:15:::1;20756:53:::0;::::1;;20772:9:::0;;20782:1;20772:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20756:53:0::1;;;;;;;;;;;20688:3:::0;::::1;::::0;::::1;:::i;:::-;;;;20652:159;;;;20556:262:::0;;;:::o;19858:256::-;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;19958:6:::1;19954:153;19968:20:::0;;::::1;19954:153;;;20033:5;19995:11;:25;20007:9;;20017:1;20007:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19995:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19995:25:0;:43;;;::::1;;;;-1:-1:-1::0;;19995:43:0;;::::1;::::0;;;::::1;::::0;;20089:15:::1;20054:51:::0;::::1;;20068:9:::0;;20078:1;20068:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20054:51:0::1;;;;;;;;;;;19990:3:::0;::::1;::::0;::::1;:::i;:::-;;;;19954:153;;20826:489:::0;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;20963:11:::1;::::0;:28:::1;::::0;20987:2:::1;20963:15;:28::i;:::-;20951:8;:40;;:80;;;;-1:-1:-1::0;21003:11:0::1;::::0;:28:::1;::::0;21027:2:::1;21003:15;:28::i;:::-;20995:4;:36;;20951:80;:135;;;;-1:-1:-1::0;21058:11:0::1;::::0;:28:::1;::::0;21082:2:::1;21058:15;:28::i;:::-;21049:5;:37;;20951:135;:176;;;;-1:-1:-1::0;21099:11:0::1;::::0;:28:::1;::::0;21123:2:::1;21099:15;:28::i;:::-;21090:5;:37;;20951:176;20943:214;;;::::0;-1:-1:-1;;;20943:214:0;;8331:2:1;20943:214:0::1;::::0;::::1;8313:21:1::0;8370:2;8350:18;;;8343:30;8409:27;8389:18;;;8382:55;8454:18;;20943:214:0::1;8129:349:1::0;20943:214:0::1;21168:8;:19:::0;;;21189:7:::1;:14:::0;;;21205:11:::1;:19:::0;;;21226:10:::1;:18:::0;;;21260:47:::1;::::0;21291:15:::1;1361:25:1::0;;21226:18:0;;21189:14;;21168:19;;21260:47:::1;::::0;1349:2:1;1334:18;21260:47:0::1;;;;;;;20826:489:::0;;;;:::o;23075:474::-;6500:12;:19;;-1:-1:-1;;6500:19:0;;;;;23165:48:::1;23174:10;23194:4;23201:11:::0;23165:8:::1;:48::i;:::-;23253:6;::::0;23224:50:::1;::::0;23233:10:::1;::::0;-1:-1:-1;;;;;23253:6:0::1;23262:11:::0;23224:8:::1;:50::i;:::-;23285:49;23295:10;23315:4;23322:11;23285:9;:49::i;:::-;23377:6;::::0;23345:53:::1;::::0;23362:4:::1;::::0;-1:-1:-1;;;;;23377:6:0::1;23386:11:::0;23345:8:::1;:53::i;:::-;23409:48;23422:11;23435:9;23446:10;23409:12;:48::i;:::-;23513:10;-1:-1:-1::0;;;;;23473:68:0::1;23502:9;23489:11;23473:68;23525:15;23473:68;;;;1361:25:1::0;;1349:2;1334:18;;1215:177;23473:68:0::1;;;;;;;;-1:-1:-1::0;6524:12:0;:20;;-1:-1:-1;;6524:20:0;;;23075:474::o;16419:322::-;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;16528:14:::1;:21:::0;;16564:15:::1;16551:10;:28:::0;;;16591:13:::1;:30:::0;;;16623:36;::::1;;16528:21;16623:36:::0;::::1;-1:-1:-1::0;;16623:36:0;;;;;;;16545:4:::1;16623:36:::0;;;;16675:58:::1;::::0;16607:14;;16675:58:::1;::::0;16528:14:::1;::::0;16675:58:::1;16419:322:::0;;:::o;18728:151::-;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;18841:20:::1;::::0;18810:61:::1;::::0;-1:-1:-1;;;18810:61:0;;-1:-1:-1;;;;;18841:20:0;;::::1;18810:61;::::0;::::1;7153:51:1::0;7220:18;;;7213:34;;;18810:22:0;;::::1;::::0;::::1;::::0;7126:18:1;;18810:61:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18728:151:::0;;:::o;20122:426::-;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;20222:6:::1;20218:323;20232:20:::0;;::::1;20218:323;;;20291:4;::::0;-1:-1:-1;;;;;20291:4:0::1;20267:9:::0;;20277:1;20267:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20267:29:0::1;;;:64;;;;-1:-1:-1::0;20324:6:0::1;::::0;-1:-1:-1;;;;;20324:6:0::1;20300:9:::0;;20310:1;20300:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20300:31:0::1;;;20267:64;:110;;;;-1:-1:-1::0;20372:4:0::1;20348:9:::0;;20358:1;20348:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20348:29:0::1;;;20267:110;20259:150;;;::::0;-1:-1:-1;;;20259:150:0;;8935:2:1;20259:150:0::1;::::0;::::1;8917:21:1::0;8974:2;8954:18;;;8947:30;9013:29;8993:18;;;8986:57;9060:18;;20259:150:0::1;8733:351:1::0;20259:150:0::1;20462:5;20424:11;:25;20436:9;;20446:1;20436:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20424:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20424:25:0;:43;;-1:-1:-1;;20424:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20523:15:::1;20488:51:::0;::::1;;20502:9:::0;;20512:1;20502:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20488:51:0::1;;;;;;;;;;;20254:3:::0;::::1;::::0;::::1;:::i;:::-;;;;20218:323;;17522:581:::0;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;17678:18:::1;:31:::0;;-1:-1:-1;;;;;;17678:31:0;;::::1;-1:-1:-1::0;;;;;17678:31:0;;::::1;::::0;;::::1;::::0;;;17711:18:::1;:31:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;17744:20:::1;:35:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;17781:16:::1;:27:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;17810:14:::1;:23:::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;17844:23:0;;;:11:::1;:23;::::0;;;;;;;:40;;;-1:-1:-1;;17844:40:0;;::::1;::::0;::::1;::::0;;;17886:23;;;;;;:40;;;::::1;::::0;::::1;::::0;;17928:21;;;;;;:38;;;::::1;::::0;::::1;::::0;;17968:19;;;;;;;:36;;;;::::1;::::0;;::::1;::::0;;;18020:75;;18079:15:::1;1361:25:1::0;;17744:35:0;;17711:31;;18020:75:::1;::::0;1334:18:1;18020:75:0::1;;;;;;;17522:581:::0;;;;;:::o;10518:125::-;-1:-1:-1;;;;;10620:20:0;;10581:7;10620:20;;;:12;:20;;;;;;;;;10598:9;:17;;;;;;:43;;:21;:43::i;9995:139::-;10073:4;10080:40;10090:10;10102:9;10113:6;10080:9;:40::i;19122:373::-;19232:10;19219:24;;;;:12;:24;;;;;;;;;19193:9;:21;;;;;;;:51;;:25;:51::i;:::-;19183:6;:61;;19175:121;;;;-1:-1:-1;;;19175:121:0;;9291:2:1;19175:121:0;;;9273:21:1;9330:2;9310:18;;;9303:30;9369:34;9349:18;;;9342:62;-1:-1:-1;;;9420:18:1;;;9413:45;9475:19;;19175:121:0;9089:411:1;19175:121:0;19307:15;;:43;;-1:-1:-1;;;19307:43:0;;19331:10;19307:43;;;7153:51:1;7220:18;;;7213:34;;;-1:-1:-1;;;;;19307:15:0;;;;:23;;7126:18:1;;19307:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19374:10:0;19361:24;;;;:12;:24;;;;;:34;;19389:6;;-1:-1:-1;19361:24:0;;-1:-1:-1;19361:34:0;;19389:6;;19361:34;:::i;:::-;;;;;;;;19421:6;19406:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;19443:44:0;;19471:15;;19463:6;;19451:10;;19443:44;;;;;19122:373;:::o;16909:605::-;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;16998:13:::1;17014:49;17056:5;17014:29;17039:2;17014:12;;:16;;:29;;;;:::i;:::-;:33:::0;::::1;:49::i;:::-;16998:65;;17074:19;17096:47;17136:5;17098:24;17115:6;17098:12;;:16;;:24;;;;:::i;17096:47::-;17074:69;;17154:25;17182:51;17226:5;17184:28;17201:10;17184:12;;:16;;:28;;;;:::i;17182:51::-;17154:79;;17267:5;17252:11;:20;;:50;;;;;17297:5;17276:17;:26;;17252:50;17244:110;;;::::0;-1:-1:-1;;;17244:110:0;;9837:2:1;17244:110:0::1;::::0;::::1;9819:21:1::0;9876:2;9856:18;;;9849:30;9915:34;9895:18;;;9888:62;-1:-1:-1;;;9966:18:1;;;9959:45;10021:19;;17244:110:0::1;9635:411:1::0;17244:110:0::1;17365:12;:26:::0;;;17393:15:::1;:35:::0;;;17444:62:::1;::::0;17490:15:::1;::::0;17411:17;;17380:11;;17444:62:::1;::::0;-1:-1:-1;;17444:62:0::1;16987:527;;;16909:605:::0;;:::o;18396:324::-;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;18524:11:::1;:25:::0;;;18551:13:::1;:30:::0;;;18583:13:::1;:30:::0;;;18629:81:::1;::::0;18694:15:::1;1361:25:1::0;;18583:30:0;;18551;;18524:25;;18629:81:::1;::::0;1349:2:1;1334:18;18629:81:0::1;1215:177:1::0;16749:152:0;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;16815:14:::1;:23:::0;;-1:-1:-1;;16815:23:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16854:39:::1;::::0;16877:15:::1;::::0;16815:23;16854:39:::1;::::0;-1:-1:-1;;16854:39:0::1;16749:152:::0;:::o;3517:111::-;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;3583:5:::1;:11:::0;;-1:-1:-1;;;;;;3583:11:0::1;-1:-1:-1::0;;;;;3583:11:0;::::1;::::0;;::::1;::::0;;;3601:25:::1;::::0;4533:51:1;;;3601:25:0::1;::::0;4521:2:1;4506:18;3601:25:0::1;;;;;;;3517:111:::0;:::o;18887:227::-;3479:4;3504:5;-1:-1:-1;;;;;3504:5:0;3391:10;3493:16;3375:38;;;;-1:-1:-1;;;3375:38:0;;;;;;;:::i;:::-;18962:15:::1;:44:::0;;-1:-1:-1;;;;;18962:44:0;::::1;-1:-1:-1::0;;;;;;18962:44:0;;::::1;::::0;::::1;::::0;;;:15:::1;19008:21:::0;;;:11:::1;:21;::::0;;;;;:38;;-1:-1:-1;;19008:38:0::1;::::0;::::1;::::0;;19062:44;19090:15:::1;::::0;18962:44;19062::::1;::::0;::::1;18887:227:::0;:::o;22732:335::-;-1:-1:-1;;;;;22825:19:0;;22817:68;;;;-1:-1:-1;;;22817:68:0;;10469:2:1;22817:68:0;;;10451:21:1;10508:2;10488:18;;;10481:30;10547:34;10527:18;;;10520:62;-1:-1:-1;;;10598:18:1;;;10591:34;10642:19;;22817:68:0;10267:400:1;22817:68:0;-1:-1:-1;;;;;22904:21:0;;22896:68;;;;-1:-1:-1;;;22896:68:0;;10874:2:1;22896:68:0;;;10856:21:1;10913:2;10893:18;;;10886:30;10952:34;10932:18;;;10925:62;-1:-1:-1;;;11003:18:1;;;10996:32;11045:19;;22896:68:0;10672:398:1;22896:68:0;-1:-1:-1;;;;;22975:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;23027:32;;1361:25:1;;;23027:32:0;;1334:18:1;23027:32:0;;;;;;;22732:335;;;:::o;11006:766::-;11095:29;11109:6;11117;11095:13;:29::i;:::-;11135:38;11155:6;11163:9;11135:19;:38::i;:::-;11184:41;11199:6;11207:9;11218:6;11184:14;:41::i;:::-;11236:39;11249:6;11257:9;11268:6;11236:12;:39::i;:::-;11286:31;11299:6;11307:9;11286:12;:31::i;:::-;11329:35;11338:6;11346:9;11357:6;11329:8;:35::i;:::-;-1:-1:-1;;;;;11395:17:0;;;;;;:9;:17;;;;;;:29;;11417:6;11395:21;:29::i;:::-;-1:-1:-1;;;;;11375:17:0;;;;;;:9;:17;;;;;:49;;;;11460:32;11385:6;11482:9;11460:13;:32::i;:::-;:78;;11532:6;11460:78;;;11495:34;11503:6;11511:9;11522:6;11495:7;:34::i;:::-;-1:-1:-1;;;;;11572:20:0;;;;;;:9;:20;;;;;;11435:103;;-1:-1:-1;11572:40:0;;11435:103;11572:24;:40::i;:::-;-1:-1:-1;;;;;11549:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11628:43;;;;;;;;;;11656:14;1361:25:1;;1349:2;1334:18;;1215:177;11628:43:0;;;;;;;;11682:12;;-1:-1:-1;;;;;11682:12:0;:22;11705:6;11713:17;11705:6;-1:-1:-1;;;;;9969:18:0;9952:7;9969:18;;;:9;:18;;;;;;;9886:103;11713:17;11732:9;11743:20;11753:9;-1:-1:-1;;;;;9969:18:0;9952:7;9969:18;;;:9;:18;;;;;;;9886:103;11743:20;11682:82;;-1:-1:-1;;;;;;11682:82:0;;;;;;;-1:-1:-1;;;;;11362:15:1;;;11682:82:0;;;11344:34:1;11394:18;;;11387:34;;;;11457:15;;11437:18;;;11430:43;11489:18;;;11482:34;;;;11278:19;;11682:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11084:688;11006:766;;;:::o;1786:162::-;1872:7;1918:12;1910:6;;;;1902:29;;;;-1:-1:-1;;;1902:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1940:5:0;;;1786:162::o;749:82::-;807:7;824:5;828:1;824;:5;:::i;14890:360::-;15021:6;;14989:53;;15006:4;;-1:-1:-1;;;;;15021:6:0;15030:11;14989:8;:53::i;:::-;15053:6;;:189;;-1:-1:-1;;;15053:189:0;;15116:4;15053:189;;;12090:34:1;12140:18;;;12133:34;;;15053:6:0;12183:18:1;;;12176:34;;;12226:18;;;12219:34;-1:-1:-1;;;;;12290:15:1;;;12269:19;;;12262:44;15226:15:0;12322:19:1;;;12315:35;15053:6:0;;;;:22;;15083:9;;12024:19:1;;15053:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14890:360;;;:::o;573:82::-;631:7;648:5;652:1;648;:5;:::i;661:82::-;719:7;736:5;740:1;736;:5;:::i;10741:257::-;-1:-1:-1;;;;;10829:20:0;;10821:70;;;;-1:-1:-1;;;10821:70:0;;13047:2:1;10821:70:0;;;13029:21:1;13086:2;13066:18;;;13059:30;13125:34;13105:18;;;13098:62;-1:-1:-1;;;13176:18:1;;;13169:35;13221:19;;10821:70:0;12845:401:1;10821:70:0;-1:-1:-1;;;;;9969:18:0;;9952:7;9969:18;;;:9;:18;;;;;;10910:6;:27;;10902:88;;;;-1:-1:-1;;;10902:88:0;;13453:2:1;10902:88:0;;;13435:21:1;13492:2;13472:18;;;13465:30;13531:34;13511:18;;;13504:62;-1:-1:-1;;;13582:18:1;;;13575:47;13639:19;;10902:88:0;13251:413:1;10902:88:0;10741:257;;:::o;11780:572::-;-1:-1:-1;;;;;11873:19:0;;;;;;:11;:19;;;;;:29;;;11872:30;:67;;;;-1:-1:-1;;;;;;11907:22:0;;;;;;:11;:22;;;;;:32;;;11906:33;11872:67;11864:108;;;;-1:-1:-1;;;11864:108:0;;13871:2:1;11864:108:0;;;13853:21:1;13910:2;13890:18;;;13883:30;13949;13929:18;;;13922:58;13997:18;;11864:108:0;13669:352:1;11864:108:0;12018:15;11986:29;12001:13;;11986:10;;:14;;:29;;;;:::i;:::-;:47;11983:78;;;12035:16;:24;;-1:-1:-1;;12035:24:0;;;11983:78;-1:-1:-1;;;;;12075:19:0;;;;;;:11;:19;;;;;:29;;;;;;12074:30;:67;;;;-1:-1:-1;;;;;;12109:22:0;;;;;;:11;:22;;;;;:32;;;;;;12108:33;12074:67;:88;;;;-1:-1:-1;12146:16:0;;;;;;;12145:17;12074:88;12071:151;;;12172:14;;;;12164:56;;;;-1:-1:-1;;;12164:56:0;;14228:2:1;12164:56:0;;;14210:21:1;14267:2;14247:18;;;14240:30;14306:31;14286:18;;;14279:59;14355:18;;12164:56:0;14026:353:1;12164:56:0;12235:16;;;;;;;:34;;;;-1:-1:-1;12255:14:0;;;;12235:34;12232:113;;;12280:35;12297:6;12305:9;12280:16;:35::i;:::-;12279:36;12271:72;;;;-1:-1:-1;;;12271:72:0;;14586:2:1;12271:72:0;;;14568:21:1;14625:2;14605:18;;;14598:30;14664:25;14644:18;;;14637:53;14707:18;;12271:72:0;14384:347:1;12364:358:0;-1:-1:-1;;;;;12468:19:0;;;;;;:11;:19;;;;;:29;;;;;;12467:30;:67;;;;-1:-1:-1;;;;;;12502:22:0;;;;;;:11;:22;;;;;:32;;;;;;12501:33;12467:67;:97;;;;-1:-1:-1;12559:4:0;;-1:-1:-1;;;;;12538:26:0;;;12559:4;;12538:26;;12467:97;:127;;;;-1:-1:-1;;;;;;12568:26:0;;5932:42;12568:26;;12467:127;12464:251;;;12656:15;;-1:-1:-1;;;;;12619:20:0;;;;;;:9;:20;;;;;;:32;;12644:6;12619:24;:32::i;:::-;12618:53;;12610:103;;;;-1:-1:-1;;;12610:103:0;;14938:2:1;12610:103:0;;;14920:21:1;14977:2;14957:18;;;14950:30;15016:34;14996:18;;;14989:62;-1:-1:-1;;;15067:18:1;;;15060:35;15112:19;;12610:103:0;14736:401:1;13182:404:0;-1:-1:-1;;;;;13283:20:0;;13314:1;13283:20;;;:12;:20;;;;;;:33;13280:160;;-1:-1:-1;;;;;13364:17:0;;;;;;:9;:17;;;;;;;;;13338:12;:20;;;;;;;13327:32;;:6;;:10;:32::i;:::-;13326:55;;13318:120;;;;-1:-1:-1;;;13318:120:0;;15344:2:1;13318:120:0;;;15326:21:1;15383:2;15363:18;;;15356:30;15422:34;15402:18;;;15395:62;-1:-1:-1;;;15473:18:1;;;15466:50;15533:19;;13318:120:0;15142:416:1;13318:120:0;13468:12;;13458:6;:22;;:55;;;-1:-1:-1;;;;;;13484:19:0;;;;;;:11;:19;;;;;:29;;;;;;13458:55;:91;;;-1:-1:-1;;;;;;13517:22:0;;;;;;:11;:22;;;;;:32;;;;;;13458:91;13450:128;;;;-1:-1:-1;;;13450:128:0;;15765:2:1;13450:128:0;;;15747:21:1;15804:2;15784:18;;;15777:30;15843:26;15823:18;;;15816:54;15887:18;;13450:128:0;15563:348:1;12730:182:0;12823:4;;-1:-1:-1;;;;;12810:17:0;;;12823:4;;12810:17;:51;;;;-1:-1:-1;;;;;;12832:19:0;;;;;;:11;:19;;;;;:29;;;;;;12831:30;12810:51;:68;;;;-1:-1:-1;12866:12:0;;;;;;;12865:13;12810:68;12807:98;;;12901:1;12880:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;12730:182:0;;:::o;16148:197::-;16240:41;16255:6;16263:9;16274:6;16240:14;:41::i;:::-;16237:101;;;16283:29;16298:13;;16283:14;:29::i;:::-;16334:1;16314:9;:22;16148:197;;;:::o;21323:180::-;-1:-1:-1;;;;;21429:19:0;;21404:4;21429:19;;;:11;:19;;;;;:29;;;;;;21428:30;:67;;;;-1:-1:-1;;;;;;;21463:22:0;;;;;:11;:22;;;;;:32;;;;;;21462:33;;21323:180;-1:-1:-1;21323:180:0:o;21819:588::-;21905:7;21969:1;21928:30;21940:6;21948:9;21928:11;:30::i;:::-;:43;:60;;;;-1:-1:-1;21976:12:0;;;;;;;21975:13;21928:60;21925:460;;;22000:17;22020:59;22048:30;22060:6;22068:9;22048:11;:30::i;:::-;22031:11;;22020:23;;:6;;:10;:23::i;:::-;:27;;:59::i;:::-;22135:4;22117:24;;;;:9;:24;;;;;;22000:79;;-1:-1:-1;22117:39:0;;22000:79;22117:28;:39::i;:::-;22108:4;22090:24;;;;:9;:24;;;;;;;:66;;;;22172:42;;-1:-1:-1;;;;;22172:42:0;;;;;;;22204:9;1361:25:1;;1349:2;1334:18;;1215:177;22172:42:0;;;;;;;;22228:10;;:23;22225:120;;22286:14;;22331:10;;22314:11;;22253:90;;22271:4;;-1:-1:-1;;;;;22286:14:0;;;;22303:39;;22331:10;22303:23;;:6;;:10;:23::i;:39::-;22253:9;:90::i;:::-;22362:21;:6;22373:9;22362:10;:21::i;:::-;22355:28;;;;;21925:460;-1:-1:-1;22393:6:0;21819:588;-1:-1:-1;;21819:588:0:o;485:82::-;543:7;560:5;564:1;560;:5;:::i;12920:254::-;-1:-1:-1;;;;;13029:19:0;;13004:4;13029:19;;;:11;:19;;;;;:29;;;;;;13028:30;:67;;;;-1:-1:-1;;;;;;13063:22:0;;;;;;:11;:22;;;;;:32;;;;;;13062:33;13028:67;:101;;;;-1:-1:-1;;;;;;13100:19:0;;;;;;:11;:19;;;;;:29;;;;;;13099:30;13028:101;:138;;;;-1:-1:-1;;;;;;;13134:22:0;;;;;:11;:22;;;;;:32;;;;;;13133:33;;12920:254;-1:-1:-1;12920:254:0:o;15700:440::-;15841:13;;15915;;15905:4;15798;9969:18;;;:9;:18;;;;;;15947:8;;15798:4;;15831:23;;;;-1:-1:-1;15887:41:0;;15947:8;;15946:9;:24;;;;-1:-1:-1;15959:11:0;;;;;;;15946:24;:42;;;;-1:-1:-1;15974:14:0;;;;15946:42;:54;;;;;15992:8;15946:54;:88;;;;-1:-1:-1;;;;;;16005:19:0;;;;;;:11;:19;;;;;:29;;;;;;16004:30;15946:88;:123;;;;-1:-1:-1;16065:4:0;;-1:-1:-1;;;;;16052:17:0;;;16065:4;;16052:17;15946:123;:151;;;;;16086:11;;16073:9;;:24;;15946:151;:169;;;;;16101:14;15946:169;:186;;;;-1:-1:-1;16120:12:0;;;;;;;16119:13;15946:186;15939:193;15700:440;-1:-1:-1;;;;;;15700:440:0:o;13672:1210::-;6574:8;:15;;-1:-1:-1;;6574:15:0;6585:4;6574:15;;;;;;13766:11:::1;::::0;6574:8;;13766:43:::1;::::0;13806:1:::1;::::0;13766:27:::1;::::0;:11;:15:::1;:27::i;:43::-;13743:66;;13820:32;13855:39;13881:12;13855:21;13866:9;;13855:6;:10;;:21;;;;:::i;:39::-;13820:74:::0;-1:-1:-1;13905:14:0::1;13922:36;:6:::0;13820:74;13922:10:::1;:36::i;:::-;13905:53:::0;-1:-1:-1;13994:21:0::1;14026:24;13905:53:::0;14026:16:::1;:24::i;:::-;14061:20;14084:41;:21;14110:14:::0;14084:25:::1;:41::i;:::-;14061:64;;14136:19;14157:45;14174:27;14191:9;;14174:12;:16;;:27;;;;:::i;:::-;14157:12:::0;;:16:::1;:45::i;:::-;14136:66;;14213:29;14245:26;14261:9;;14245:11;:15;;:26;;;;:::i;:::-;14213:58:::0;-1:-1:-1;14285:34:0;;14282:137:::1;;14397:18;::::0;14335:81:::1;::::0;14348:24;;14374:21;;-1:-1:-1;;;;;14397:18:0::1;14335:12;:81::i;:::-;14487:9;::::0;14429:23:::1;::::0;14455:42:::1;::::0;:27:::1;:11:::0;14479:1:::1;14455:15;:27::i;:42::-;14429:68:::0;-1:-1:-1;14511:28:0;;14508:88:::1;;14549:18;::::0;14541:53:::1;::::0;-1:-1:-1;;;;;14549:18:0;;::::1;::::0;14541:53;::::1;;;::::0;14578:15;;14549:18:::1;14541:53:::0;14549:18;14541:53;14578:15;14549:18;14541:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14508:88;14662:7;::::0;14606:21:::1;::::0;14630:40:::1;::::0;:27:::1;:11:::0;14654:1:::1;14630:15;:27::i;:40::-;14606:64:::0;-1:-1:-1;14684:26:0;;14681:82:::1;;14720:16;::::0;14712:49:::1;::::0;-1:-1:-1;;;;;14720:16:0;;::::1;::::0;14712:49;::::1;;;::::0;14747:13;;14720:16:::1;14712:49:::0;14720:16;14712:49;14747:13;14720:16;14712:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14681:82;14776:21;:34:::0;14773:102:::1;;14820:20;::::0;14812:61:::1;::::0;-1:-1:-1;;;;;14820:20:0;;::::1;::::0;14851:21:::1;14812:61:::0;::::1;;;::::0;14820:20:::1;14812:61:::0;14820:20;14812:61;14851:21;14820:20;14812:61;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14773:102;-1:-1:-1::0;;6594:8:0;:16;;-1:-1:-1;;6594:16:0;;;-1:-1:-1;;;;;;;;13672:1210:0:o;21511:300::-;21626:4;;21590:7;;-1:-1:-1;;;;;21613:17:0;;;21626:4;;21613:17;:41;;;;;21652:1;21634:7;;:20;21613:41;21610:78;;;21675:10;;21663:7;;:23;;:11;:23::i;:::-;21656:30;;;;21610:78;21711:4;;-1:-1:-1;;;;;21701:14:0;;;21711:4;;21701:14;:39;;;;;21738:1;21719:8;;:21;21701:39;21698:77;;;21762:10;;21749:8;;:24;;:12;:24::i;21698:77::-;-1:-1:-1;21792:11:0;;21511:300;;;;:::o;15258:434::-;15348:16;;;15362:1;15348:16;;;;;;;;15324:21;;15348:16;;;;;;;;;;-1:-1:-1;15348:16:0;15324:40;;15393:4;15375;15380:1;15375:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15375:23:0;;;:7;;;;;;;;;;:23;;;;15419:6;;:13;;;-1:-1:-1;;;15419:13:0;;;;:6;;;;;:11;;:13;;;;;15375:7;;15419:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15409:4;15414:1;15409:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15409:23:0;;;:7;;;;;;;;;:23;15475:6;;15443:53;;15460:4;;15475:6;15484:11;15443:8;:53::i;:::-;15507:6;;:177;;-1:-1:-1;;;15507:177:0;;-1:-1:-1;;;;;15507:6:0;;;;:57;;:177;;15579:11;;15507:6;;15621:4;;15648;;15668:15;;15507:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;-1:-1:-1;2009:23:1;;1858:180;-1:-1:-1;1858:180:1:o;2043:247::-;2102:6;2155:2;2143:9;2134:7;2130:23;2126:32;2123:52;;;2171:1;2168;2161:12;2123:52;2210:9;2197:23;2229:31;2254:5;2229:31;:::i;2295:316::-;2372:6;2380;2388;2441:2;2429:9;2420:7;2416:23;2412:32;2409:52;;;2457:1;2454;2447:12;2409:52;-1:-1:-1;;2480:23:1;;;2550:2;2535:18;;2522:32;;-1:-1:-1;2601:2:1;2586:18;;;2573:32;;2295:316;-1:-1:-1;2295:316:1:o;2805:118::-;2891:5;2884:13;2877:21;2870:5;2867:32;2857:60;;2913:1;2910;2903:12;2928:750;3020:6;3028;3036;3089:2;3077:9;3068:7;3064:23;3060:32;3057:52;;;3105:1;3102;3095:12;3057:52;3145:9;3132:23;3174:18;3215:2;3207:6;3204:14;3201:34;;;3231:1;3228;3221:12;3201:34;3269:6;3258:9;3254:22;3244:32;;3314:7;3307:4;3303:2;3299:13;3295:27;3285:55;;3336:1;3333;3326:12;3285:55;3376:2;3363:16;3402:2;3394:6;3391:14;3388:34;;;3418:1;3415;3408:12;3388:34;3473:7;3466:4;3456:6;3453:1;3449:14;3445:2;3441:23;3437:34;3434:47;3431:67;;;3494:1;3491;3484:12;3431:67;3525:4;3517:13;;;;-1:-1:-1;3549:6:1;-1:-1:-1;;3590:20:1;;3577:34;3620:28;3577:34;3620:28;:::i;:::-;3667:5;3657:15;;;2928:750;;;;;:::o;3683:385::-;3769:6;3777;3785;3793;3846:3;3834:9;3825:7;3821:23;3817:33;3814:53;;;3863:1;3860;3853:12;3814:53;-1:-1:-1;;3886:23:1;;;3956:2;3941:18;;3928:32;;-1:-1:-1;4007:2:1;3992:18;;3979:32;;4058:2;4043:18;4030:32;;-1:-1:-1;3683:385:1;-1:-1:-1;3683:385:1:o;4073:309::-;4138:6;4146;4199:2;4187:9;4178:7;4174:23;4170:32;4167:52;;;4215:1;4212;4205:12;4167:52;4251:9;4238:23;4228:33;;4311:2;4300:9;4296:18;4283:32;4324:28;4346:5;4324:28;:::i;:::-;4371:5;4361:15;;;4073:309;;;;;:::o;4595:813::-;4690:6;4698;4706;4714;4722;4775:3;4763:9;4754:7;4750:23;4746:33;4743:53;;;4792:1;4789;4782:12;4743:53;4831:9;4818:23;4850:31;4875:5;4850:31;:::i;:::-;4900:5;-1:-1:-1;4957:2:1;4942:18;;4929:32;4970:33;4929:32;4970:33;:::i;:::-;5022:7;-1:-1:-1;5081:2:1;5066:18;;5053:32;5094:33;5053:32;5094:33;:::i;:::-;5146:7;-1:-1:-1;5205:2:1;5190:18;;5177:32;5218:33;5177:32;5218:33;:::i;:::-;5270:7;-1:-1:-1;5329:3:1;5314:19;;5301:33;5343;5301;5343;:::i;:::-;5395:7;5385:17;;;4595:813;;;;;;;;:::o;5413:248::-;5481:6;5489;5542:2;5530:9;5521:7;5517:23;5513:32;5510:52;;;5558:1;5555;5548:12;5510:52;-1:-1:-1;;5581:23:1;;;5651:2;5636:18;;;5623:32;;-1:-1:-1;5413:248:1:o;5666:388::-;5734:6;5742;5795:2;5783:9;5774:7;5770:23;5766:32;5763:52;;;5811:1;5808;5801:12;5763:52;5850:9;5837:23;5869:31;5894:5;5869:31;:::i;:::-;5919:5;-1:-1:-1;5976:2:1;5961:18;;5948:32;5989:33;5948:32;5989:33;:::i;6059:241::-;6115:6;6168:2;6156:9;6147:7;6143:23;6139:32;6136:52;;;6184:1;6181;6174:12;6136:52;6223:9;6210:23;6242:28;6264:5;6242:28;:::i;7258:127::-;7319:10;7314:3;7310:20;7307:1;7300:31;7350:4;7347:1;7340:15;7374:4;7371:1;7364:15;7390:128;7457:9;;;7478:11;;;7475:37;;;7492:18;;:::i;7523:329::-;7725:2;7707:21;;;7764:1;7744:18;;;7737:29;-1:-1:-1;;;7797:2:1;7782:18;;7775:36;7843:2;7828:18;;7523:329::o;7857:127::-;7918:10;7913:3;7909:20;7906:1;7899:31;7949:4;7946:1;7939:15;7973:4;7970:1;7963:15;7989:135;8028:3;8049:17;;;8046:43;;8069:18;;:::i;:::-;-1:-1:-1;8116:1:1;8105:13;;7989:135::o;8483:245::-;8550:6;8603:2;8591:9;8582:7;8578:23;8574:32;8571:52;;;8619:1;8616;8609:12;8571:52;8651:9;8645:16;8670:28;8692:5;8670:28;:::i;9505:125::-;9570:9;;;9591:10;;;9588:36;;;9604:18;;:::i;11527:217::-;11567:1;11593;11583:132;;11637:10;11632:3;11628:20;11625:1;11618:31;11672:4;11669:1;11662:15;11700:4;11697:1;11690:15;11583:132;-1:-1:-1;11729:9:1;;11527:217::o;12361:306::-;12449:6;12457;12465;12518:2;12506:9;12497:7;12493:23;12489:32;12486:52;;;12534:1;12531;12524:12;12486:52;12563:9;12557:16;12547:26;;12613:2;12602:9;12598:18;12592:25;12582:35;;12657:2;12646:9;12642:18;12636:25;12626:35;;12361:306;;;;;:::o;12672:168::-;12745:9;;;12776;;12793:15;;;12787:22;;12773:37;12763:71;;12814:18;;:::i;16048:251::-;16118:6;16171:2;16159:9;16150:7;16146:23;16142:32;16139:52;;;16187:1;16184;16177:12;16139:52;16219:9;16213:16;16238:31;16263:5;16238:31;:::i;16304:980::-;16566:4;16614:3;16603:9;16599:19;16645:6;16634:9;16627:25;16671:2;16709:6;16704:2;16693:9;16689:18;16682:34;16752:3;16747:2;16736:9;16732:18;16725:31;16776:6;16811;16805:13;16842:6;16834;16827:22;16880:3;16869:9;16865:19;16858:26;;16919:2;16911:6;16907:15;16893:29;;16940:1;16950:195;16964:6;16961:1;16958:13;16950:195;;;17029:13;;-1:-1:-1;;;;;17025:39:1;17013:52;;17120:15;;;;17085:12;;;;17061:1;16979:9;16950:195;;;-1:-1:-1;;;;;;;17201:32:1;;;;17196:2;17181:18;;17174:60;-1:-1:-1;;;17265:3:1;17250:19;17243:35;17162:3;16304:980;-1:-1:-1;;;16304:980:1:o

Swarm Source

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