ETH Price: $2,632.32 (+1.19%)

Token

Pepeki (PEPEKI)
 

Overview

Max Total Supply

420,690,000,000,000 PEPEKI

Holders

96

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.867609803 PEPEKI

Value
$0.00
0xcc1901164fcf522d0d9a77acefb7d74665bd9975
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:
Pepeki

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-23
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;

interface IERC20 {
    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);
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    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 addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface Initializer {
    function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external;
    function getConfig() external returns (address, address);
    function setLpPair(address pair, bool enabled) external;
}

contract Pepeki is IERC20 {
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromProtection;
    bool private allowedPresaleExclusion = true;
   
    uint256 constant private startingSupply = 420_690_000_000_000;
    string constant private _name = "Pepeki";
    string constant private _symbol = "PEPEKI";
    uint8 constant private _decimals = 9;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    bool public taxesAreLocked;
    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;

    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    Initializer initializer;

    constructor () payable {
        // Set the owner.
        _owner = msg.sender;
        originalDeployer = msg.sender;
        
        _liquidityHolders[_owner] = true;
        _tOwned[_owner] = _tTotal;
        emit Transfer(address(0), _owner, _tTotal);
    }

    receive() external payable {}

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and renouncements.
    // This allows for removal of ownership privileges from the owner once renounced or transferred.

    address private _owner;

    modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; }
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function transferOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        if (balanceOf(_owner) > 0) {
            finalizeTransfer(_owner, newOwner, balanceOf(_owner), true);
        }
        
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
        
    }

    function renounceOwnership() external onlyOwner {
        require(tradingEnabled, "Cannot renounce until trading has been enabled.");
        address oldOwner = _owner;
        _owner = address(0);
        emit OwnershipTransferred(oldOwner, address(0));
    }

    address public originalDeployer;
    address public operator;

    // Function to set an operator to allow someone other the deployer to create things such as launchpads.
    // Only callable by original deployer.
    function setOperator(address newOperator) public {
        require(msg.sender == originalDeployer, "Can only be called by original deployer.");
        address oldOperator = operator;
        if (oldOperator != address(0)) {
            _liquidityHolders[oldOperator] = false;
        }
        operator = newOperator;
        _liquidityHolders[newOperator] = true;
    }

    function renounceOriginalDeployer() external {
        require(msg.sender == originalDeployer, "Can only be called by original deployer.");
        setOperator(address(0));
        originalDeployer = address(0);
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================

    function totalSupply() external pure override returns (uint256) { if (_tTotal == 0) { revert(); } return _tTotal; }
    function decimals() external pure override returns (uint8) { if (_tTotal == 0) { revert(); } return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return _owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

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

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

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

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

    function approveContractContingency() external onlyOwner returns (bool) {
        _approve(address(this), address(dexRouter), type(uint256).max);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function setInitializer(address _initializer) external onlyOwner {
        require(!tradingEnabled);
        require(_initializer != address(this), "Can't be self.");
        initializer = Initializer(_initializer);
        try initializer.getConfig() returns (address router, address constructorLP) {
            dexRouter = IRouter02(router); lpPair = constructorLP; 
            _approve(_owner, address(dexRouter), type(uint256).max);
            _approve(address(this), address(dexRouter), type(uint256).max);
        } catch { revert(); }
    }

    function isExcludedFromProtection(address account) external view returns (bool) {
        return _isExcludedFromProtection[account];
    }

    function setExcludedFromProtection(address account, bool enabled) external onlyOwner {
        _isExcludedFromProtection[account] = enabled;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0))));
    }

    function excludePresaleAddresses(address router, address presale) external onlyOwner {
        require(allowedPresaleExclusion);
        require(router != address(this) 
                && presale != address(this) 
                && lpPair != router 
                && lpPair != presale, "Just don't.");
        if (router == presale) {
            _liquidityHolders[presale] = true;
        } else {
            _liquidityHolders[router] = true;
            _liquidityHolders[presale] = true;
        }
    }

    function _hasLimits(address from, address to) internal view returns (bool) {
        return from != _owner
            && to != _owner
            && tx.origin != _owner
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this)
            && from != address(initializer)
            && to != address(initializer);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool buy = false;
        bool sell = false;
        bool other = false;
        if (lpPairs[from]) {
            buy = true;
        } else if (lpPairs[to]) {
            sell = true;
        } else {
            other = true;
        }
        if (_hasLimits(from, to)) {
            if(!tradingEnabled) {
                if (!other) {
                    revert("Trading not yet enabled!");
                } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) {
                    revert("Tokens cannot be moved until trading is live.");
                }
            }
        }

        return finalizeTransfer(from, to, amount, other);
    }

    function _checkLiquidityAdd(address from, address to) internal {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            if (address(initializer) == address(0)){
                initializer = Initializer(address(this));
            } else {
                _liquidityHolders[from] = true;
                _hasLiqBeenAdded = true;
            }
        }
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(_hasLiqBeenAdded, "Liquidity must be added.");
        if (address(initializer) == address(0)){
            initializer = Initializer(address(this));
        }
        initializer.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals);
        tradingEnabled = true;
        allowedPresaleExclusion = false;
    }

    function sweepBalance() external onlyOwner {
        payable(_owner).transfer(address(this).balance);
    }
    
    function sweepExternalTokens(address token) external onlyOwner {
        IERC20 TOKEN = IERC20(token);
        TOKEN.transfer(_owner, TOKEN.balanceOf(address(this)));
    }

    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint16 i = 0; i < accounts.length; i++) {
            require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens.");
            finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, true);
        }
    }

    function finalizeTransfer(address from, address to, uint256 amount, bool other) internal returns (bool) {
        _tOwned[from] -= amount;
        _tOwned[to] += amount;
        emit Transfer(from, to, amount);
        if (!_hasLiqBeenAdded) {
            _checkLiquidityAdd(from, to);
            if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) {
                revert("Pre-liquidity transfer protection.");
            }
        }

        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approveContractContingency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"originalDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOriginalDeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"}],"name":"setInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sweepBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060409081526000600281905560068054600160ff1991821681179092556007805461ffff60a01b1916905560098054336001600160a01b031991821681178355600a8054909216811782558552600460205294909320805490911690911790556200006c9162000213565b6200007f9066017e9d8602b4006200022b565b600980546001600160a01b0390811660009081526020819052604081209390935581541691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620000d490600a62000213565b620000e79066017e9d8602b4006200022b565b60405190815260200160405180910390a362000245565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000155578160001904821115620001395762000139620000fe565b808516156200014757918102915b93841c939080029062000119565b509250929050565b6000826200016e575060016200020d565b816200017d575060006200020d565b8160018114620001965760028114620001a157620001c1565b60019150506200020d565b60ff841115620001b557620001b5620000fe565b50506001821b6200020d565b5060208310610133831016604e8410600b8410161715620001e6575081810a6200020d565b620001f2838362000114565b8060001904821115620002095762000209620000fe565b0290505b92915050565b60006200022460ff8416836200015d565b9392505050565b80820281158282048414176200020d576200020d620000fe565b61222a80620002556000396000f3fe6080604052600436106101e75760003560e01c806350a8e016116101025780638a8c523c11610095578063b3ab15fb11610064578063b3ab15fb146105c6578063c3513f6d146105e6578063dd62ed3e146105fb578063feadde9c1461064157600080fd5b80638a8c523c1461054257806395d89b4114610557578063a9059cbb14610586578063ab558e4d146105a657600080fd5b8063715018a6116100d1578063715018a6146104da57806381cf58a9146104ef578063893d20e81461050f5780638a63bd9b1461052d57600080fd5b806350a8e01614610443578063570ca735146104645780635c24b0741461048457806370a08231146104a457600080fd5b806323b872dd1161017a57806339a059021161014957806339a05902146103cd578063452ed4f1146103e25780634ada218b146104025780634fb2e45d1461042357600080fd5b806323b872dd146103515780632610eaca146103715780632b112e4914610391578063313ce567146103a657600080fd5b8063095ea7b3116101b6578063095ea7b3146102b35780630dcbcf1c146102d357806313b4a7f41461030c57806318160ddd1461032e57600080fd5b806303fd2a45146101f357806306fdde03146102265780630758d9241461025e57806307dd79e01461028457600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020961dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023257600080fd5b50604080518082019091526006815265506570656b6960d01b60208201525b60405161021d9190611d18565b34801561026a57600080fd5b50600654610209906201000090046001600160a01b031681565b34801561029057600080fd5b506006546102a390610100900460ff1681565b604051901515815260200161021d565b3480156102bf57600080fd5b506102a36102ce366004611d7b565b610661565b3480156102df57600080fd5b506102a36102ee366004611da7565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561031857600080fd5b5061032c610327366004611dc4565b610678565b005b34801561033a57600080fd5b506103436107e7565b60405190815260200161021d565b34801561035d57600080fd5b506102a361036c366004611dfd565b610834565b34801561037d57600080fd5b5061032c61038c366004611f14565b6108ac565b34801561039d57600080fd5b50610343610a64565b3480156103b257600080fd5b506103bb610ae5565b60405160ff909116815260200161021d565b3480156103d957600080fd5b5061032c610b16565b3480156103ee57600080fd5b50600754610209906001600160a01b031681565b34801561040e57600080fd5b506007546102a390600160a01b900460ff1681565b34801561042f57600080fd5b5061032c61043e366004611da7565b610b9d565b34801561044f57600080fd5b506007546102a390600160a81b900460ff1681565b34801561047057600080fd5b50600b54610209906001600160a01b031681565b34801561049057600080fd5b5061032c61049f366004611da7565b610d83565b3480156104b057600080fd5b506103436104bf366004611da7565b6001600160a01b031660009081526020819052604090205490565b3480156104e657600080fd5b5061032c610f41565b3480156104fb57600080fd5b50600a54610209906001600160a01b031681565b34801561051b57600080fd5b506009546001600160a01b0316610209565b34801561053957600080fd5b506102a361105c565b34801561054e57600080fd5b5061032c6110d3565b34801561056357600080fd5b50604080518082019091526006815265504550454b4960d01b6020820152610251565b34801561059257600080fd5b506102a36105a1366004611d7b565b61129a565b3480156105b257600080fd5b5061032c6105c1366004611da7565b6112b1565b3480156105d257600080fd5b5061032c6105e1366004611da7565b611401565b3480156105f257600080fd5b5061032c6114da565b34801561060757600080fd5b50610343610616366004611dc4565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561064d57600080fd5b5061032c61065c366004611fe4565b611561565b600061066e3384846115da565b5060015b92915050565b6009546001600160a01b031633146106cb5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b60065460ff166106da57600080fd5b6001600160a01b03821630148015906106fc57506001600160a01b0381163014155b801561071657506007546001600160a01b03838116911614155b801561073057506007546001600160a01b03828116911614155b61076a5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b60448201526064016106c2565b806001600160a01b0316826001600160a01b0316036107aa576001600160a01b0381166000908152600460205260409020805460ff191660011790555050565b6001600160a01b038281166000908152600460205260408082208054600160ff1991821681179092559385168352912080549092161790555b5050565b60006107f56009600a61210c565b6108069066017e9d8602b40061211b565b60000361081257600080fd5b61081e6009600a61210c565b61082f9066017e9d8602b40061211b565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610899576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610893908490612132565b90915550505b6108a48484846116d3565b949350505050565b6009546001600160a01b031633146108fa5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b805182511461094b5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e000000000000000000000060448201526064016106c2565b60005b82518161ffff161015610a5f576109676009600a61210c565b828261ffff168151811061097d5761097d612145565b602002602001015161098f919061211b565b3360009081526020819052604090205410156109ed5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e000000000000000000000000000060448201526064016106c2565b610a4c33848361ffff1681518110610a0757610a07612145565b60200260200101516009600a610a1d919061210c565b858561ffff1681518110610a3357610a33612145565b6020026020010151610a45919061211b565b6001611982565b5080610a578161215b565b91505061094e565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610abe919061217c565b610aca6009600a61210c565b610adb9066017e9d8602b40061211b565b61082f9190612132565b6000610af36009600a61210c565b610b049066017e9d8602b40061211b565b600003610b1057600080fd5b50600990565b600a546001600160a01b03163314610b815760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b60648201526084016106c2565b610b8b6000611401565b600a80546001600160a01b0319169055565b6009546001600160a01b03163314610beb5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b6001600160a01b038116610c675760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016106c2565b61deac196001600160a01b03821601610ce85760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016106c2565b6009546001600160a01b031660009081526020819052604090205415610d31576009546001600160a01b0316600081815260208190526040902054610d2f91908390610a45565b505b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6009546001600160a01b03163314610dd15760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b600754600160a01b900460ff1615610de857600080fd5b306001600160a01b03821603610e405760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e00000000000000000000000000000000000060448201526064016106c2565b600880546001600160a01b0319166001600160a01b038316908117909155604080516330fe427560e21b8152815163c3f909d49260048084019391929182900301816000875af1925050508015610eb4575060408051601f3d908101601f19168201909252610eb19181019061218f565b60015b610ebd57600080fd5b6006805475ffffffffffffffffffffffffffffffffffffffff00001916620100006001600160a01b0385811682029290921792839055600780546001600160a01b031916858416179055600954610f1e9390831692919004166000196115da565b600654610a5f9030906201000090046001600160a01b03166000196115da565b50565b6009546001600160a01b03163314610f8f5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b600754600160a01b900460ff1661100e5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e000000000000000000000000000000000060648201526084016106c2565b600980546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6009546000906001600160a01b031633146110ad5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b6006546110cd9030906201000090046001600160a01b03166000196115da565b50600190565b6009546001600160a01b031633146111215760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b600754600160a01b900460ff161561117b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016106c2565b600754600160a81b900460ff166111d45760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016106c2565b6008546001600160a01b03166111f757600880546001600160a01b031916301790555b600854600754604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152911690636c115c3490608401600060405180830381600087803b15801561126357600080fd5b505af1158015611277573d6000803e3d6000fd5b50506007805460ff60a01b1916600160a01b17905550506006805460ff19169055565b60006112a73384846116d3565b5060019392505050565b6009546001600160a01b031633146112ff5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b6009546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137a91906121be565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156113dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5f91906121d7565b600a546001600160a01b0316331461146c5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b60648201526084016106c2565b600b546001600160a01b0316801561149f576001600160a01b0381166000908152600460205260409020805460ff191690555b50600b80546001600160a01b039092166001600160a01b0319909216821790556000908152600460205260409020805460ff19166001179055565b6009546001600160a01b031633146115285760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b6009546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610f3e573d6000803e3d6000fd5b6009546001600160a01b031633146115af5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166116265760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106c2565b6001600160a01b0382166116725760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106c2565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166117395760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106c2565b6001600160a01b03831661179b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106c2565b600082116117fd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106c2565b6001600160a01b0384166000908152600160205260408120548190819060ff161561182b5760019250611859565b6001600160a01b03861660009081526001602052604090205460ff16156118555760019150611859565b5060015b6118638787611b1e565b1561196b57600754600160a01b900460ff1661196b57806118c65760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016106c2565b6001600160a01b03871660009081526005602052604090205460ff1615801561190857506001600160a01b03861660009081526005602052604090205460ff16155b1561196b5760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b60648201526084016106c2565b61197787878784611982565b979650505050505050565b6001600160a01b0384166000908152602081905260408120805484919083906119ac908490612132565b90915550506001600160a01b038416600090815260208190526040812080548592906119d990849061217c565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a2591815260200190565b60405180910390a3600754600160a81b900460ff16611b1357611a488585611c29565b600754600160a81b900460ff16158015611a675750611a678585611b1e565b8015611a8c57506001600160a01b03851660009081526005602052604090205460ff16155b8015611ab157506001600160a01b03841660009081526005602052604090205460ff16155b8015611abb575081155b15611b135760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016106c2565b506001949350505050565b6009546000906001600160a01b03848116911614801590611b4d57506009546001600160a01b03838116911614155b8015611b6457506009546001600160a01b03163214155b8015611b8957506001600160a01b03821660009081526004602052604090205460ff16155b8015611bae57506001600160a01b03831660009081526004602052604090205460ff16155b8015611bc557506001600160a01b03821661dead14155b8015611bd957506001600160a01b03821615155b8015611bee57506001600160a01b0383163014155b8015611c0857506008546001600160a01b03848116911614155b8015611c2257506008546001600160a01b03838116911614155b9392505050565b600754600160a81b900460ff1615611c8f5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016106c2565b611c998282611b1e565b158015611cb357506007546001600160a01b038281169116145b156107e3576008546001600160a01b0316611cde57600880546001600160a01b031916301790555050565b6001600160a01b0382166000908152600460205260409020805460ff191660011790556007805460ff60a81b1916600160a81b1790555050565b600060208083528351808285015260005b81811015611d4557858101830151858201604001528201611d29565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f3e57600080fd5b60008060408385031215611d8e57600080fd5b8235611d9981611d66565b946020939093013593505050565b600060208284031215611db957600080fd5b8135611c2281611d66565b60008060408385031215611dd757600080fd5b8235611de281611d66565b91506020830135611df281611d66565b809150509250929050565b600080600060608486031215611e1257600080fd5b8335611e1d81611d66565b92506020840135611e2d81611d66565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611e7d57611e7d611e3e565b604052919050565b600067ffffffffffffffff821115611e9f57611e9f611e3e565b5060051b60200190565b600082601f830112611eba57600080fd5b81356020611ecf611eca83611e85565b611e54565b82815260059290921b84018101918181019086841115611eee57600080fd5b8286015b84811015611f095780358352918301918301611ef2565b509695505050505050565b60008060408385031215611f2757600080fd5b823567ffffffffffffffff80821115611f3f57600080fd5b818501915085601f830112611f5357600080fd5b81356020611f63611eca83611e85565b82815260059290921b84018101918181019089841115611f8257600080fd5b948201945b83861015611fa9578535611f9a81611d66565b82529482019490820190611f87565b96505086013592505080821115611fbf57600080fd5b50611fcc85828601611ea9565b9150509250929050565b8015158114610f3e57600080fd5b60008060408385031215611ff757600080fd5b823561200281611d66565b91506020830135611df281611fd6565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561206357816000190482111561204957612049612012565b8085161561205657918102915b93841c939080029061202d565b509250929050565b60008261207a57506001610672565b8161208757506000610672565b816001811461209d57600281146120a7576120c3565b6001915050610672565b60ff8411156120b8576120b8612012565b50506001821b610672565b5060208310610133831016604e8410600b84101617156120e6575081810a610672565b6120f08383612028565b806000190482111561210457612104612012565b029392505050565b6000611c2260ff84168361206b565b808202811582820484141761067257610672612012565b8181038181111561067257610672612012565b634e487b7160e01b600052603260045260246000fd5b600061ffff80831681810361217257612172612012565b6001019392505050565b8082018082111561067257610672612012565b600080604083850312156121a257600080fd5b82516121ad81611d66565b6020840151909250611df281611d66565b6000602082840312156121d057600080fd5b5051919050565b6000602082840312156121e957600080fd5b8151611c2281611fd656fea264697066735822122062823fa15e6222dc9272b5160c1033f6b0eb0e472b6ae80a2a7b9fbfcf41639564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c806350a8e016116101025780638a8c523c11610095578063b3ab15fb11610064578063b3ab15fb146105c6578063c3513f6d146105e6578063dd62ed3e146105fb578063feadde9c1461064157600080fd5b80638a8c523c1461054257806395d89b4114610557578063a9059cbb14610586578063ab558e4d146105a657600080fd5b8063715018a6116100d1578063715018a6146104da57806381cf58a9146104ef578063893d20e81461050f5780638a63bd9b1461052d57600080fd5b806350a8e01614610443578063570ca735146104645780635c24b0741461048457806370a08231146104a457600080fd5b806323b872dd1161017a57806339a059021161014957806339a05902146103cd578063452ed4f1146103e25780634ada218b146104025780634fb2e45d1461042357600080fd5b806323b872dd146103515780632610eaca146103715780632b112e4914610391578063313ce567146103a657600080fd5b8063095ea7b3116101b6578063095ea7b3146102b35780630dcbcf1c146102d357806313b4a7f41461030c57806318160ddd1461032e57600080fd5b806303fd2a45146101f357806306fdde03146102265780630758d9241461025e57806307dd79e01461028457600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020961dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023257600080fd5b50604080518082019091526006815265506570656b6960d01b60208201525b60405161021d9190611d18565b34801561026a57600080fd5b50600654610209906201000090046001600160a01b031681565b34801561029057600080fd5b506006546102a390610100900460ff1681565b604051901515815260200161021d565b3480156102bf57600080fd5b506102a36102ce366004611d7b565b610661565b3480156102df57600080fd5b506102a36102ee366004611da7565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561031857600080fd5b5061032c610327366004611dc4565b610678565b005b34801561033a57600080fd5b506103436107e7565b60405190815260200161021d565b34801561035d57600080fd5b506102a361036c366004611dfd565b610834565b34801561037d57600080fd5b5061032c61038c366004611f14565b6108ac565b34801561039d57600080fd5b50610343610a64565b3480156103b257600080fd5b506103bb610ae5565b60405160ff909116815260200161021d565b3480156103d957600080fd5b5061032c610b16565b3480156103ee57600080fd5b50600754610209906001600160a01b031681565b34801561040e57600080fd5b506007546102a390600160a01b900460ff1681565b34801561042f57600080fd5b5061032c61043e366004611da7565b610b9d565b34801561044f57600080fd5b506007546102a390600160a81b900460ff1681565b34801561047057600080fd5b50600b54610209906001600160a01b031681565b34801561049057600080fd5b5061032c61049f366004611da7565b610d83565b3480156104b057600080fd5b506103436104bf366004611da7565b6001600160a01b031660009081526020819052604090205490565b3480156104e657600080fd5b5061032c610f41565b3480156104fb57600080fd5b50600a54610209906001600160a01b031681565b34801561051b57600080fd5b506009546001600160a01b0316610209565b34801561053957600080fd5b506102a361105c565b34801561054e57600080fd5b5061032c6110d3565b34801561056357600080fd5b50604080518082019091526006815265504550454b4960d01b6020820152610251565b34801561059257600080fd5b506102a36105a1366004611d7b565b61129a565b3480156105b257600080fd5b5061032c6105c1366004611da7565b6112b1565b3480156105d257600080fd5b5061032c6105e1366004611da7565b611401565b3480156105f257600080fd5b5061032c6114da565b34801561060757600080fd5b50610343610616366004611dc4565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561064d57600080fd5b5061032c61065c366004611fe4565b611561565b600061066e3384846115da565b5060015b92915050565b6009546001600160a01b031633146106cb5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b60065460ff166106da57600080fd5b6001600160a01b03821630148015906106fc57506001600160a01b0381163014155b801561071657506007546001600160a01b03838116911614155b801561073057506007546001600160a01b03828116911614155b61076a5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b60448201526064016106c2565b806001600160a01b0316826001600160a01b0316036107aa576001600160a01b0381166000908152600460205260409020805460ff191660011790555050565b6001600160a01b038281166000908152600460205260408082208054600160ff1991821681179092559385168352912080549092161790555b5050565b60006107f56009600a61210c565b6108069066017e9d8602b40061211b565b60000361081257600080fd5b61081e6009600a61210c565b61082f9066017e9d8602b40061211b565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610899576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610893908490612132565b90915550505b6108a48484846116d3565b949350505050565b6009546001600160a01b031633146108fa5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b805182511461094b5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e000000000000000000000060448201526064016106c2565b60005b82518161ffff161015610a5f576109676009600a61210c565b828261ffff168151811061097d5761097d612145565b602002602001015161098f919061211b565b3360009081526020819052604090205410156109ed5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e000000000000000000000000000060448201526064016106c2565b610a4c33848361ffff1681518110610a0757610a07612145565b60200260200101516009600a610a1d919061210c565b858561ffff1681518110610a3357610a33612145565b6020026020010151610a45919061211b565b6001611982565b5080610a578161215b565b91505061094e565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610abe919061217c565b610aca6009600a61210c565b610adb9066017e9d8602b40061211b565b61082f9190612132565b6000610af36009600a61210c565b610b049066017e9d8602b40061211b565b600003610b1057600080fd5b50600990565b600a546001600160a01b03163314610b815760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b60648201526084016106c2565b610b8b6000611401565b600a80546001600160a01b0319169055565b6009546001600160a01b03163314610beb5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b6001600160a01b038116610c675760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016106c2565b61deac196001600160a01b03821601610ce85760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e00000060648201526084016106c2565b6009546001600160a01b031660009081526020819052604090205415610d31576009546001600160a01b0316600081815260208190526040902054610d2f91908390610a45565b505b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6009546001600160a01b03163314610dd15760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b600754600160a01b900460ff1615610de857600080fd5b306001600160a01b03821603610e405760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e00000000000000000000000000000000000060448201526064016106c2565b600880546001600160a01b0319166001600160a01b038316908117909155604080516330fe427560e21b8152815163c3f909d49260048084019391929182900301816000875af1925050508015610eb4575060408051601f3d908101601f19168201909252610eb19181019061218f565b60015b610ebd57600080fd5b6006805475ffffffffffffffffffffffffffffffffffffffff00001916620100006001600160a01b0385811682029290921792839055600780546001600160a01b031916858416179055600954610f1e9390831692919004166000196115da565b600654610a5f9030906201000090046001600160a01b03166000196115da565b50565b6009546001600160a01b03163314610f8f5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b600754600160a01b900460ff1661100e5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e000000000000000000000000000000000060648201526084016106c2565b600980546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6009546000906001600160a01b031633146110ad5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b6006546110cd9030906201000090046001600160a01b03166000196115da565b50600190565b6009546001600160a01b031633146111215760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b600754600160a01b900460ff161561117b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016106c2565b600754600160a81b900460ff166111d45760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016106c2565b6008546001600160a01b03166111f757600880546001600160a01b031916301790555b600854600754604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152911690636c115c3490608401600060405180830381600087803b15801561126357600080fd5b505af1158015611277573d6000803e3d6000fd5b50506007805460ff60a01b1916600160a01b17905550506006805460ff19169055565b60006112a73384846116d3565b5060019392505050565b6009546001600160a01b031633146112ff5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b6009546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137a91906121be565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156113dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5f91906121d7565b600a546001600160a01b0316331461146c5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b60648201526084016106c2565b600b546001600160a01b0316801561149f576001600160a01b0381166000908152600460205260409020805460ff191690555b50600b80546001600160a01b039092166001600160a01b0319909216821790556000908152600460205260409020805460ff19166001179055565b6009546001600160a01b031633146115285760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b6009546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610f3e573d6000803e3d6000fd5b6009546001600160a01b031633146115af5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064016106c2565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166116265760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106c2565b6001600160a01b0382166116725760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016106c2565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166117395760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106c2565b6001600160a01b03831661179b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106c2565b600082116117fd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106c2565b6001600160a01b0384166000908152600160205260408120548190819060ff161561182b5760019250611859565b6001600160a01b03861660009081526001602052604090205460ff16156118555760019150611859565b5060015b6118638787611b1e565b1561196b57600754600160a01b900460ff1661196b57806118c65760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016106c2565b6001600160a01b03871660009081526005602052604090205460ff1615801561190857506001600160a01b03861660009081526005602052604090205460ff16155b1561196b5760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b60648201526084016106c2565b61197787878784611982565b979650505050505050565b6001600160a01b0384166000908152602081905260408120805484919083906119ac908490612132565b90915550506001600160a01b038416600090815260208190526040812080548592906119d990849061217c565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a2591815260200190565b60405180910390a3600754600160a81b900460ff16611b1357611a488585611c29565b600754600160a81b900460ff16158015611a675750611a678585611b1e565b8015611a8c57506001600160a01b03851660009081526005602052604090205460ff16155b8015611ab157506001600160a01b03841660009081526005602052604090205460ff16155b8015611abb575081155b15611b135760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016106c2565b506001949350505050565b6009546000906001600160a01b03848116911614801590611b4d57506009546001600160a01b03838116911614155b8015611b6457506009546001600160a01b03163214155b8015611b8957506001600160a01b03821660009081526004602052604090205460ff16155b8015611bae57506001600160a01b03831660009081526004602052604090205460ff16155b8015611bc557506001600160a01b03821661dead14155b8015611bd957506001600160a01b03821615155b8015611bee57506001600160a01b0383163014155b8015611c0857506008546001600160a01b03848116911614155b8015611c2257506008546001600160a01b03838116911614155b9392505050565b600754600160a81b900460ff1615611c8f5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016106c2565b611c998282611b1e565b158015611cb357506007546001600160a01b038281169116145b156107e3576008546001600160a01b0316611cde57600880546001600160a01b031916301790555050565b6001600160a01b0382166000908152600460205260409020805460ff191660011790556007805460ff60a81b1916600160a81b1790555050565b600060208083528351808285015260005b81811015611d4557858101830151858201604001528201611d29565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f3e57600080fd5b60008060408385031215611d8e57600080fd5b8235611d9981611d66565b946020939093013593505050565b600060208284031215611db957600080fd5b8135611c2281611d66565b60008060408385031215611dd757600080fd5b8235611de281611d66565b91506020830135611df281611d66565b809150509250929050565b600080600060608486031215611e1257600080fd5b8335611e1d81611d66565b92506020840135611e2d81611d66565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611e7d57611e7d611e3e565b604052919050565b600067ffffffffffffffff821115611e9f57611e9f611e3e565b5060051b60200190565b600082601f830112611eba57600080fd5b81356020611ecf611eca83611e85565b611e54565b82815260059290921b84018101918181019086841115611eee57600080fd5b8286015b84811015611f095780358352918301918301611ef2565b509695505050505050565b60008060408385031215611f2757600080fd5b823567ffffffffffffffff80821115611f3f57600080fd5b818501915085601f830112611f5357600080fd5b81356020611f63611eca83611e85565b82815260059290921b84018101918181019089841115611f8257600080fd5b948201945b83861015611fa9578535611f9a81611d66565b82529482019490820190611f87565b96505086013592505080821115611fbf57600080fd5b50611fcc85828601611ea9565b9150509250929050565b8015158114610f3e57600080fd5b60008060408385031215611ff757600080fd5b823561200281611d66565b91506020830135611df281611fd6565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561206357816000190482111561204957612049612012565b8085161561205657918102915b93841c939080029061202d565b509250929050565b60008261207a57506001610672565b8161208757506000610672565b816001811461209d57600281146120a7576120c3565b6001915050610672565b60ff8411156120b8576120b8612012565b50506001821b610672565b5060208310610133831016604e8410600b84101617156120e6575081810a610672565b6120f08383612028565b806000190482111561210457612104612012565b029392505050565b6000611c2260ff84168361206b565b808202811582820484141761067257610672612012565b8181038181111561067257610672612012565b634e487b7160e01b600052603260045260246000fd5b600061ffff80831681810361217257612172612012565b6001019392505050565b8082018082111561067257610672612012565b600080604083850312156121a257600080fd5b82516121ad81611d66565b6020840151909250611df281611d66565b6000602082840312156121d057600080fd5b5051919050565b6000602082840312156121e957600080fd5b8151611c2281611fd656fea264697066735822122062823fa15e6222dc9272b5160c1033f6b0eb0e472b6ae80a2a7b9fbfcf41639564736f6c63430008130033

Deployed Bytecode Sourcemap

3813:11259:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4611:73;;;;;;;;;;;;4642:42;4611:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;4611:73:0;;;;;;;;8213:80;;;;;;;;;;-1:-1:-1;8285:5:0;;;;;;;;;;;;-1:-1:-1;;;8285:5:0;;;;8213:80;;;;;;;:::i;4550:26::-;;;;;;;;;;-1:-1:-1;4550:26:0;;;;;;;-1:-1:-1;;;;;4550:26:0;;;4517;;;;;;;;;;-1:-1:-1;4517:26:0;;;;;;;;;;;;;;1211:14:1;;1204:22;1186:41;;1174:2;1159:18;4517:26:0;1046:187:1;8821:161:0;;;;;;;;;;-1:-1:-1;8821:161:0;;;;;:::i;:::-;;:::i;10372:140::-;;;;;;;;;;-1:-1:-1;10372:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;10470:34:0;10446:4;10470:34;;;:25;:34;;;;;;;;;10372:140;10825:523;;;;;;;;;;-1:-1:-1;10825:523:0;;;;;:::i;:::-;;:::i;:::-;;7884:115;;;;;;;;;;;;;:::i;:::-;;;2508:25:1;;;2496:2;2481:18;7884:115:0;2362:177:1;9491:306:0;;;;;;;;;;-1:-1:-1;9491:306:0;;;;;:::i;:::-;;:::i;14076:433::-;;;;;;;;;;-1:-1:-1;14076:433:0;;;;;:::i;:::-;;:::i;10676:141::-;;;;;;;;;;;;;:::i;8005:112::-;;;;;;;;;;;;;:::i;:::-;;;5664:4:1;5652:17;;;5634:36;;5622:2;5607:18;8005:112:0;5492:184:1;7308:221:0;;;;;;;;;;;;;:::i;4583:21::-;;;;;;;;;;-1:-1:-1;4583:21:0;;;;-1:-1:-1;;;;;4583:21:0;;;4693:34;;;;;;;;;;-1:-1:-1;4693:34:0;;;;-1:-1:-1;;;4693:34:0;;;;;;5878:539;;;;;;;;;;-1:-1:-1;5878:539:0;;;;;:::i;:::-;;:::i;4734:36::-;;;;;;;;;;-1:-1:-1;4734:36:0;;;;-1:-1:-1;;;4734:36:0;;;;;;6736:23;;;;;;;;;;-1:-1:-1;6736:23:0;;;;-1:-1:-1;;;;;6736:23:0;;;9805:559;;;;;;;;;;-1:-1:-1;9805:559:0;;;;;:::i;:::-;;:::i;8523:117::-;;;;;;;;;;-1:-1:-1;8523:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;8616:16:0;8589:7;8616:16;;;;;;;;;;;;8523:117;6425:265;;;;;;;;;;;;;:::i;6698:31::-;;;;;;;;;;-1:-1:-1;6698:31:0;;;;-1:-1:-1;;;;;6698:31:0;;;8299:79;;;;;;;;;;-1:-1:-1;8369:6:0;;-1:-1:-1;;;;;8369:6:0;8299:79;;9308:175;;;;;;;;;;;;;:::i;13299:465::-;;;;;;;;;;;;;:::i;8123:84::-;;;;;;;;;;-1:-1:-1;8197:7:0;;;;;;;;;;;;-1:-1:-1;;;8197:7:0;;;;8123:84;;8648:165;;;;;;;;;;-1:-1:-1;8648:165:0;;;;;:::i;:::-;;:::i;13893:175::-;;;;;;;;;;-1:-1:-1;13893:175:0;;;;;:::i;:::-;;:::i;6921:379::-;;;;;;;;;;-1:-1:-1;6921:379:0;;;;;:::i;:::-;;:::i;13772:109::-;;;;;;;;;;;;;:::i;8384:133::-;;;;;;;;;;-1:-1:-1;8384:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8486:19:0;;;8468:7;8486:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8384:133;10520:148;;;;;;;;;;-1:-1:-1;10520:148:0;;;;;:::i;:::-;;:::i;8821:161::-;8898:4;8915:37;8924:10;8936:7;8945:6;8915:8;:37::i;:::-;-1:-1:-1;8970:4:0;8821:161;;;;;:::o;10825:523::-;5732:6;;-1:-1:-1;;;;;5732:6:0;5742:10;5732:20;5724:50;;;;-1:-1:-1;;;5724:50:0;;6393:2:1;5724:50:0;;;6375:21:1;6432:2;6412:18;;;6405:30;-1:-1:-1;;;6451:18:1;;;6444:47;6508:18;;5724:50:0;;;;;;;;;10929:23:::1;::::0;::::1;;10921:32;;;::::0;::::1;;-1:-1:-1::0;;;;;10972:23:0;::::1;10990:4;10972:23;::::0;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;11017:24:0;::::1;11036:4;11017:24;;10972:69;:107;;;;-1:-1:-1::0;11063:6:0::1;::::0;-1:-1:-1;;;;;11063:16:0;;::::1;:6:::0;::::1;:16;;10972:107;:146;;;;-1:-1:-1::0;11101:6:0::1;::::0;-1:-1:-1;;;;;11101:17:0;;::::1;:6:::0;::::1;:17;;10972:146;10964:170;;;::::0;-1:-1:-1;;;10964:170:0;;6739:2:1;10964:170:0::1;::::0;::::1;6721:21:1::0;6778:2;6758:18;;;6751:30;-1:-1:-1;;;6797:18:1;;;6790:41;6848:18;;10964:170:0::1;6537:335:1::0;10964:170:0::1;11159:7;-1:-1:-1::0;;;;;11149:17:0::1;:6;-1:-1:-1::0;;;;;11149:17:0::1;::::0;11145:196:::1;;-1:-1:-1::0;;;;;11183:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;11183:33:0::1;11212:4;11183:33;::::0;;10825:523;;:::o;11145:196::-:1;-1:-1:-1::0;;;;;11249:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;:32;;11277:4:::1;-1:-1:-1::0;;11249:32:0;;::::1;::::0;::::1;::::0;;;11296:26;;::::1;::::0;;;;:33;;;;::::1;;::::0;;11145:196:::1;10825:523:::0;;:::o;7884:115::-;7939:7;4495:13;4435:1;4495:2;:13;:::i;:::-;4478:30;;4278:19;4478:30;:::i;:::-;7965:1;7954:12;7950:31;;7970:8;;;7950:31;4495:13;4435:1;4495:2;:13;:::i;:::-;4478:30;;4278:19;4478:30;:::i;:::-;7982:14;;7884:115;:::o;9491:306::-;-1:-1:-1;;;;;9612:19:0;;9591:4;9612:19;;;:11;:19;;;;;;;;9632:10;9612:31;;;;;;;;-1:-1:-1;;9612:52:0;9608:126;;-1:-1:-1;;;;;9681:19:0;;;;;;:11;:19;;;;;;;;9701:10;9681:31;;;;;;;:41;;9716:6;;9681:19;:41;;9716:6;;9681:41;:::i;:::-;;;;-1:-1:-1;;9608:126:0;9753:36;9763:6;9771:9;9782:6;9753:9;:36::i;:::-;9746:43;9491:306;-1:-1:-1;;;;9491:306:0:o;14076:433::-;5732:6;;-1:-1:-1;;;;;5732:6:0;5742:10;5732:20;5724:50;;;;-1:-1:-1;;;5724:50:0;;6393:2:1;5724:50:0;;;6375:21:1;6432:2;6412:18;;;6405:30;-1:-1:-1;;;6451:18:1;;;6444:47;6508:18;;5724:50:0;6191:341:1;5724:50:0;14211:7:::1;:14;14192:8;:15;:33;14184:67;;;::::0;-1:-1:-1;;;14184:67:0;;8900:2:1;14184:67:0::1;::::0;::::1;8882:21:1::0;8939:2;8919:18;;;8912:30;8978:23;8958:18;;;8951:51;9019:18;;14184:67:0::1;8698:345:1::0;14184:67:0::1;14267:8;14262:240;14285:8;:15;14281:1;:19;;;14262:240;;;14366:13;4435:1;14366:2;:13;:::i;:::-;14355:7;14363:1;14355:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;14340:10;8589:7:::0;8616:16;;;;;;;;;;;14330:49:::1;;14322:80;;;::::0;-1:-1:-1;;;14322:80:0;;9382:2:1;14322:80:0::1;::::0;::::1;9364:21:1::0;9421:2;9401:18;;;9394:30;9460:20;9440:18;;;9433:48;9498:18;;14322:80:0::1;9180:342:1::0;14322:80:0::1;14417:73;14434:10;14446:8;14455:1;14446:11;;;;;;;;;;:::i;:::-;;;;;;;4435:1;14470:2;:13;;;;:::i;:::-;14459:7;14467:1;14459:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;14485:4;14417:16;:73::i;:::-;-1:-1:-1::0;14302:3:0;::::1;::::0;::::1;:::i;:::-;;;;14262:240;;;;14076:433:::0;;:::o;10676:141::-;10729:7;8616:16;;;;;;4642:42;8616:16;;;;10768:39;;8616:16;10768:39;:::i;:::-;4495:13;4435:1;4495:2;:13;:::i;:::-;4478:30;;4278:19;4478:30;:::i;:::-;10757:51;;;;:::i;8005:112::-;8057:5;4495:13;4435:1;4495:2;:13;:::i;:::-;4478:30;;4278:19;4478:30;:::i;:::-;8081:1;8070:12;8066:31;;8086:8;;;8066:31;-1:-1:-1;4435:1:0;;8005:112::o;7308:221::-;7386:16;;-1:-1:-1;;;;;7386:16:0;7372:10;:30;7364:83;;;;-1:-1:-1;;;7364:83:0;;10061:2:1;7364:83:0;;;10043:21:1;10100:2;10080:18;;;10073:30;10139:34;10119:18;;;10112:62;-1:-1:-1;;;10190:18:1;;;10183:38;10238:19;;7364:83:0;9859:404:1;7364:83:0;7458:23;7478:1;7458:11;:23::i;:::-;7492:16;:29;;-1:-1:-1;;;;;;7492:29:0;;;7308:221::o;5878:539::-;5732:6;;-1:-1:-1;;;;;5732:6:0;5742:10;5732:20;5724:50;;;;-1:-1:-1;;;5724:50:0;;6393:2:1;5724:50:0;;;6375:21:1;6432:2;6412:18;;;6405:30;-1:-1:-1;;;6451:18:1;;;6444:47;6508:18;;5724:50:0;6191:341:1;5724:50:0;-1:-1:-1;;;;;5957:22:0;::::1;5949:96;;;::::0;-1:-1:-1;;;5949:96:0;;10470:2:1;5949:96:0::1;::::0;::::1;10452:21:1::0;10509:2;10489:18;;;10482:30;10548:34;10528:18;;;10521:62;10619:31;10599:18;;;10592:59;10668:19;;5949:96:0::1;10268:425:1::0;5949:96:0::1;-1:-1:-1::0;;;;;;;6064:16:0;::::1;::::0;6056:90:::1;;;::::0;-1:-1:-1;;;6056:90:0;;10470:2:1;6056:90:0::1;::::0;::::1;10452:21:1::0;10509:2;10489:18;;;10482:30;10548:34;10528:18;;;10521:62;10619:31;10599:18;;;10592:59;10668:19;;6056:90:0::1;10268:425:1::0;6056:90:0::1;6171:6;::::0;-1:-1:-1;;;;;6171:6:0::1;6181:1;8616:16:::0;;;;;;;;;;;6161:21;6157:113:::1;;6216:6;::::0;-1:-1:-1;;;;;6216:6:0::1;8589:7:::0;8616:16;;;;;;;;;;;6199:59:::1;::::0;6216:6;6224:8;;6234:17:::1;8523:117:::0;6199:59:::1;;6157:113;6309:6;::::0;;-1:-1:-1;;;;;6326:17:0;;::::1;-1:-1:-1::0;;;;;;6326:17:0;::::1;::::0;::::1;::::0;;;6359:40:::1;::::0;6309:6;::::1;::::0;6326:17;6309:6;;6359:40:::1;::::0;6290:16:::1;::::0;6359:40:::1;5938:479;5878:539:::0;:::o;9805:559::-;5732:6;;-1:-1:-1;;;;;5732:6:0;5742:10;5732:20;5724:50;;;;-1:-1:-1;;;5724:50:0;;6393:2:1;5724:50:0;;;6375:21:1;6432:2;6412:18;;;6405:30;-1:-1:-1;;;6451:18:1;;;6444:47;6508:18;;5724:50:0;6191:341:1;5724:50:0;9890:14:::1;::::0;-1:-1:-1;;;9890:14:0;::::1;;;9889:15;9881:24;;;::::0;::::1;;9948:4;-1:-1:-1::0;;;;;9924:29:0;::::1;::::0;9916:56:::1;;;::::0;-1:-1:-1;;;9916:56:0;;10900:2:1;9916:56:0::1;::::0;::::1;10882:21:1::0;10939:2;10919:18;;;10912:30;10978:16;10958:18;;;10951:44;11012:18;;9916:56:0::1;10698:338:1::0;9916:56:0::1;9983:11;:39:::0;;-1:-1:-1;;;;;;9983:39:0::1;-1:-1:-1::0;;;;;9983:39:0;::::1;::::0;;::::1;::::0;;;10037:23:::1;::::0;;-1:-1:-1;;;10037:23:0;;;;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;;;;;;;;;-1:-1:-1;9983:39:0;10037:23:::1;;;;;;;;;;-1:-1:-1::0;10037:23:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;10037:23:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;10033:324;;10346:8;::::0;::::1;10033:324;10124:9;:29:::0;;-1:-1:-1;;10124:29:0::1;::::0;-1:-1:-1;;;;;10124:29:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;10155:6:::1;:22:::0;;-1:-1:-1;;;;;;10155:22:0::1;::::0;;::::1;;::::0;;10202:6:::1;::::0;10193:55:::1;::::0;10202:6;;::::1;::::0;10218:9;;::::1;;-1:-1:-1::0;;10193:8:0::1;:55::i;:::-;10295:9;::::0;10263:62:::1;::::0;10280:4:::1;::::0;10295:9;;::::1;-1:-1:-1::0;;;;;10295:9:0::1;-1:-1:-1::0;;10263:8:0::1;:62::i;10033:324::-;9805:559:::0;:::o;6425:265::-;5732:6;;-1:-1:-1;;;;;5732:6:0;5742:10;5732:20;5724:50;;;;-1:-1:-1;;;5724:50:0;;6393:2:1;5724:50:0;;;6375:21:1;6432:2;6412:18;;;6405:30;-1:-1:-1;;;6451:18:1;;;6444:47;6508:18;;5724:50:0;6191:341:1;5724:50:0;6492:14:::1;::::0;-1:-1:-1;;;6492:14:0;::::1;;;6484:74;;;::::0;-1:-1:-1;;;6484:74:0;;11633:2:1;6484:74:0::1;::::0;::::1;11615:21:1::0;11672:2;11652:18;;;11645:30;11711:34;11691:18;;;11684:62;11782:17;11762:18;;;11755:45;11817:19;;6484:74:0::1;11431:411:1::0;6484:74:0::1;6588:6;::::0;;-1:-1:-1;;;;;;6605:19:0;::::1;::::0;;;6640:42:::1;::::0;-1:-1:-1;;;;;6588:6:0;;::::1;::::0;6569:16:::1;::::0;6588:6;;6640:42:::1;::::0;6569:16;;6640:42:::1;6473:217;6425:265::o:0;9308:175::-;5732:6;;9374:4;;-1:-1:-1;;;;;5732:6:0;5742:10;5732:20;5724:50;;;;-1:-1:-1;;;5724:50:0;;6393:2:1;5724:50:0;;;6375:21:1;6432:2;6412:18;;;6405:30;-1:-1:-1;;;6451:18:1;;;6444:47;6508:18;;5724:50:0;6191:341:1;5724:50:0;9423:9:::1;::::0;9391:62:::1;::::0;9408:4:::1;::::0;9423:9;;::::1;-1:-1:-1::0;;;;;9423:9:0::1;-1:-1:-1::0;;9391:8:0::1;:62::i;:::-;-1:-1:-1::0;9471:4:0::1;9308:175:::0;:::o;13299:465::-;5732:6;;-1:-1:-1;;;;;5732:6:0;5742:10;5732:20;5724:50;;;;-1:-1:-1;;;5724:50:0;;6393:2:1;5724:50:0;;;6375:21:1;6432:2;6412:18;;;6405:30;-1:-1:-1;;;6451:18:1;;;6444:47;6508:18;;5724:50:0;6191:341:1;5724:50:0;13361:14:::1;::::0;-1:-1:-1;;;13361:14:0;::::1;;;13360:15;13352:52;;;::::0;-1:-1:-1;;;13352:52:0;;12049:2:1;13352:52:0::1;::::0;::::1;12031:21:1::0;12088:2;12068:18;;;12061:30;12127:26;12107:18;;;12100:54;12171:18;;13352:52:0::1;11847:348:1::0;13352:52:0::1;13423:16;::::0;-1:-1:-1;;;13423:16:0;::::1;;;13415:53;;;::::0;-1:-1:-1;;;13415:53:0;;12402:2:1;13415:53:0::1;::::0;::::1;12384:21:1::0;12441:2;12421:18;;;12414:30;12480:26;12460:18;;;12453:54;12524:18;;13415:53:0::1;12200:348:1::0;13415:53:0::1;13491:11;::::0;-1:-1:-1;;;;;13491:11:0::1;13479:106;;13533:11;:40:::0;;-1:-1:-1;;;;;;13533:40:0::1;13567:4;13533:40;::::0;;13479:106:::1;13595:11;::::0;13617:6:::1;::::0;13595:87:::1;::::0;-1:-1:-1;;;13595:87:0;;-1:-1:-1;;;;;13617:6:0;;::::1;13595:87;::::0;::::1;12776:74:1::0;12898:10;13632:12:0::1;12886:23:1::0;12866:18;;;12859:51;12958:18;13654:15:0::1;12946:31:1::0;12926:18;;;12919:59;4435:1:0::1;12994:18:1::0;;;12987:45;13595:11:0;::::1;::::0;:21:::1;::::0;12748:19:1;;13595:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13693:14:0::1;:21:::0;;-1:-1:-1;;;;13693:21:0::1;-1:-1:-1::0;;;13693:21:0::1;::::0;;-1:-1:-1;;13725:23:0::1;:31:::0;;-1:-1:-1;;13725:31:0::1;::::0;;13299:465::o;8648:165::-;8726:4;8743:40;8753:10;8765:9;8776:6;8743:9;:40::i;:::-;-1:-1:-1;8801:4:0;;8648:165;-1:-1:-1;;;8648:165:0:o;13893:175::-;5732:6;;-1:-1:-1;;;;;5732:6:0;5742:10;5732:20;5724:50;;;;-1:-1:-1;;;5724:50:0;;6393:2:1;5724:50:0;;;6375:21:1;6432:2;6412:18;;;6405:30;-1:-1:-1;;;6451:18:1;;;6444:47;6508:18;;5724:50:0;6191:341:1;5724:50:0;14021:6:::1;::::0;14029:30:::1;::::0;-1:-1:-1;;;14029:30:0;;14053:4:::1;14029:30;::::0;::::1;160:74:1::0;13989:5:0;;-1:-1:-1;;;;;14006:14:0;;::::1;::::0;::::1;::::0;14021:6;;;::::1;::::0;14006:14;;14029:15:::1;::::0;133:18:1;;14029:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14006:54;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;13424:55:1;;;14006:54:0::1;::::0;::::1;13406:74:1::0;13496:18;;;13489:34;13379:18;;14006:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6921:379::-:0;7003:16;;-1:-1:-1;;;;;7003:16:0;6989:10;:30;6981:83;;;;-1:-1:-1;;;6981:83:0;;10061:2:1;6981:83:0;;;10043:21:1;10100:2;10080:18;;;10073:30;10139:34;10119:18;;;10112:62;-1:-1:-1;;;10190:18:1;;;10183:38;10238:19;;6981:83:0;9859:404:1;6981:83:0;7097:8;;-1:-1:-1;;;;;7097:8:0;7120:25;;7116:96;;-1:-1:-1;;;;;7162:30:0;;7195:5;7162:30;;;:17;:30;;;;;:38;;-1:-1:-1;;7162:38:0;;;7116:96;-1:-1:-1;7222:8:0;:22;;-1:-1:-1;;;;;7222:22:0;;;-1:-1:-1;;;;;;7222:22:0;;;;;;;:8;7255:30;;;:17;:30;;;;;:37;;-1:-1:-1;;7255:37:0;7222:22;7255:37;;;6921:379::o;13772:109::-;5732:6;;-1:-1:-1;;;;;5732:6:0;5742:10;5732:20;5724:50;;;;-1:-1:-1;;;5724:50:0;;6393:2:1;5724:50:0;;;6375:21:1;6432:2;6412:18;;;6405:30;-1:-1:-1;;;6451:18:1;;;6444:47;6508:18;;5724:50:0;6191:341:1;5724:50:0;13834:6:::1;::::0;13826:47:::1;::::0;-1:-1:-1;;;;;13834:6:0;;::::1;::::0;13851:21:::1;13826:47:::0;::::1;;;::::0;13834:6:::1;13826:47:::0;13834:6;13826:47;13851:21;13834:6;13826:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;10520:148:::0;5732:6;;-1:-1:-1;;;;;5732:6:0;5742:10;5732:20;5724:50;;;;-1:-1:-1;;;5724:50:0;;6393:2:1;5724:50:0;;;6375:21:1;6432:2;6412:18;;;6405:30;-1:-1:-1;;;6451:18:1;;;6444:47;6508:18;;5724:50:0;6191:341:1;5724:50:0;-1:-1:-1;;;;;10616:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;10616:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10520:148::o;8990:310::-;-1:-1:-1;;;;;9085:20:0;;9077:52;;;;-1:-1:-1;;;9077:52:0;;13986:2:1;9077:52:0;;;13968:21:1;14025:2;14005:18;;;13998:30;-1:-1:-1;;;14044:18:1;;;14037:49;14103:18;;9077:52:0;13784:343:1;9077:52:0;-1:-1:-1;;;;;9148:21:0;;9140:53;;;;-1:-1:-1;;;9140:53:0;;13986:2:1;9140:53:0;;;13968:21:1;14025:2;14005:18;;;13998:30;-1:-1:-1;;;14044:18:1;;;14037:49;14103:18;;9140:53:0;13784:343:1;9140:53:0;-1:-1:-1;;;;;9206:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;9259:33;;2508:25:1;;;9259:33:0;;2481:18:1;9259:33:0;;;;;;;8990:310;;;:::o;11810:1020::-;11889:4;-1:-1:-1;;;;;11914:18:0;;11906:68;;;;-1:-1:-1;;;11906:68:0;;14334:2:1;11906:68:0;;;14316:21:1;14373:2;14353:18;;;14346:30;14412:34;14392:18;;;14385:62;-1:-1:-1;;;14463:18:1;;;14456:35;14508:19;;11906:68:0;14132:401:1;11906:68:0;-1:-1:-1;;;;;11993:16:0;;11985:64;;;;-1:-1:-1;;;11985:64:0;;14740:2:1;11985:64:0;;;14722:21:1;14779:2;14759:18;;;14752:30;14818:34;14798:18;;;14791:62;-1:-1:-1;;;14869:18:1;;;14862:33;14912:19;;11985:64:0;14538:399:1;11985:64:0;12077:1;12068:6;:10;12060:64;;;;-1:-1:-1;;;12060:64:0;;15144:2:1;12060:64:0;;;15126:21:1;15183:2;15163:18;;;15156:30;15222:34;15202:18;;;15195:62;-1:-1:-1;;;15273:18:1;;;15266:39;15322:19;;12060:64:0;14942:405:1;12060:64:0;-1:-1:-1;;;;;12223:13:0;;12135:8;12223:13;;;:7;:13;;;;;;12135:8;;;;12223:13;;12219:162;;;12259:4;12253:10;;12219:162;;;-1:-1:-1;;;;;12285:11:0;;;;;;:7;:11;;;;;;;;12281:100;;;12320:4;12313:11;;12281:100;;;-1:-1:-1;12365:4:0;12281:100;12395:20;12406:4;12412:2;12395:10;:20::i;:::-;12391:371;;;12436:14;;-1:-1:-1;;;12436:14:0;;;;12432:319;;12476:5;12471:265;;12506:34;;-1:-1:-1;;;12506:34:0;;15554:2:1;12506:34:0;;;15536:21:1;15593:2;15573:18;;;15566:30;15632:26;15612:18;;;15605:54;15676:18;;12506:34:0;15352:348:1;12471:265:0;-1:-1:-1;;;;;12571:31:0;;;;;;:25;:31;;;;;;;;12570:32;:66;;;;-1:-1:-1;;;;;;12607:29:0;;;;;;:25;:29;;;;;;;;12606:30;12570:66;12566:170;;;12661:55;;-1:-1:-1;;;12661:55:0;;15907:2:1;12661:55:0;;;15889:21:1;15946:2;15926:18;;;15919:30;15985:34;15965:18;;;15958:62;-1:-1:-1;;;16036:18:1;;;16029:43;16089:19;;12661:55:0;15705:409:1;12566:170:0;12781:41;12798:4;12804:2;12808:6;12816:5;12781:16;:41::i;:::-;12774:48;11810:1020;-1:-1:-1;;;;;;;11810:1020:0:o;14517:552::-;-1:-1:-1;;;;;14632:13:0;;14615:4;14632:13;;;;;;;;;;:23;;14649:6;;14632:13;14615:4;;14632:23;;14649:6;;14632:23;:::i;:::-;;;;-1:-1:-1;;;;;;;14666:11:0;;:7;:11;;;;;;;;;;:21;;14681:6;;14666:7;:21;;14681:6;;14666:21;:::i;:::-;;;;;;;;14718:2;-1:-1:-1;;;;;14703:26:0;14712:4;-1:-1:-1;;;;;14703:26:0;;14722:6;14703:26;;;;2508:25:1;;2496:2;2481:18;;2362:177;14703:26:0;;;;;;;;14745:16;;-1:-1:-1;;;14745:16:0;;;;14740:298;;14778:28;14797:4;14803:2;14778:18;:28::i;:::-;14826:16;;-1:-1:-1;;;14826:16:0;;;;14825:17;:41;;;;;14846:20;14857:4;14863:2;14846:10;:20::i;:::-;14825:77;;;;-1:-1:-1;;;;;;14871:31:0;;;;;;:25;:31;;;;;;;;14870:32;14825:77;:111;;;;-1:-1:-1;;;;;;14907:29:0;;;;;;:25;:29;;;;;;;;14906:30;14825:111;:121;;;;;14941:5;14940:6;14825:121;14821:206;;;14967:44;;-1:-1:-1;;;14967:44:0;;16321:2:1;14967:44:0;;;16303:21:1;16360:2;16340:18;;;16333:30;16399:34;16379:18;;;16372:62;-1:-1:-1;;;16450:18:1;;;16443:32;16492:19;;14967:44:0;16119:398:1;14821:206:0;-1:-1:-1;15057:4:0;14517:552;;;;;;:::o;11356:446::-;11457:6;;11425:4;;-1:-1:-1;;;;;11449:14:0;;;11457:6;;11449:14;;;;:43;;-1:-1:-1;11486:6:0;;-1:-1:-1;;;;;11480:12:0;;;11486:6;;11480:12;;11449:43;:79;;;;-1:-1:-1;11522:6:0;;-1:-1:-1;;;;;11522:6:0;11509:9;:19;;11449:79;:118;;;;-1:-1:-1;;;;;;11546:21:0;;;;;;:17;:21;;;;;;;;11545:22;11449:118;:159;;;;-1:-1:-1;;;;;;11585:23:0;;;;;;:17;:23;;;;;;;;11584:24;11449:159;:186;;;;-1:-1:-1;;;;;;11625:10:0;;4642:42;11625:10;;11449:186;:219;;;;-1:-1:-1;;;;;;11652:16:0;;;;11449:219;:257;;;;-1:-1:-1;;;;;;11685:21:0;;11701:4;11685:21;;11449:257;:302;;;;-1:-1:-1;11739:11:0;;-1:-1:-1;;;;;11723:28:0;;;11739:11;;11723:28;;11449:302;:345;;;;-1:-1:-1;11782:11:0;;-1:-1:-1;;;;;11768:26:0;;;11782:11;;11768:26;;11449:345;11442:352;11356:446;-1:-1:-1;;;11356:446:0:o;12838:453::-;12921:16;;-1:-1:-1;;;12921:16:0;;;;12920:17;12912:65;;;;-1:-1:-1;;;12912:65:0;;16724:2:1;12912:65:0;;;16706:21:1;16763:2;16743:18;;;16736:30;16802:34;16782:18;;;16775:62;-1:-1:-1;;;16853:18:1;;;16846:33;16896:19;;12912:65:0;16522:399:1;12912:65:0;12993:20;13004:4;13010:2;12993:10;:20::i;:::-;12992:21;:37;;;;-1:-1:-1;13023:6:0;;-1:-1:-1;;;;;13017:12:0;;;13023:6;;13017:12;12992:37;12988:296;;;13058:11;;-1:-1:-1;;;;;13058:11:0;13046:227;;13104:11;:40;;-1:-1:-1;;;;;;13104:40:0;13138:4;13104:40;;;10825:523;;:::o;13046:227::-;-1:-1:-1;;;;;13185:23:0;;;;;;:17;:23;;;;;:30;;-1:-1:-1;;13185:30:0;13211:4;13185:30;;;13234:16;:23;;-1:-1:-1;;;;13234:23:0;-1:-1:-1;;;13234:23:0;;;12838:453;;:::o;245:548:1:-;357:4;386:2;415;404:9;397:21;447:6;441:13;490:6;485:2;474:9;470:18;463:34;515:1;525:140;539:6;536:1;533:13;525:140;;;634:14;;;630:23;;624:30;600:17;;;619:2;596:26;589:66;554:10;;525:140;;;529:3;714:1;709:2;700:6;689:9;685:22;681:31;674:42;784:2;777;773:7;768:2;760:6;756:15;752:29;741:9;737:45;733:54;725:62;;;;245:548;;;;:::o;1238:154::-;-1:-1:-1;;;;;1317:5:1;1313:54;1306:5;1303:65;1293:93;;1382:1;1379;1372:12;1397:315;1465:6;1473;1526:2;1514:9;1505:7;1501:23;1497:32;1494:52;;;1542:1;1539;1532:12;1494:52;1581:9;1568:23;1600:31;1625:5;1600:31;:::i;:::-;1650:5;1702:2;1687:18;;;;1674:32;;-1:-1:-1;;;1397:315:1:o;1717:247::-;1776:6;1829:2;1817:9;1808:7;1804:23;1800:32;1797:52;;;1845:1;1842;1835:12;1797:52;1884:9;1871:23;1903:31;1928:5;1903:31;:::i;1969:388::-;2037:6;2045;2098:2;2086:9;2077:7;2073:23;2069:32;2066:52;;;2114:1;2111;2104:12;2066:52;2153:9;2140:23;2172:31;2197:5;2172:31;:::i;:::-;2222:5;-1:-1:-1;2279:2:1;2264:18;;2251:32;2292:33;2251:32;2292:33;:::i;:::-;2344:7;2334:17;;;1969:388;;;;;:::o;2544:456::-;2621:6;2629;2637;2690:2;2678:9;2669:7;2665:23;2661:32;2658:52;;;2706:1;2703;2696:12;2658:52;2745:9;2732:23;2764:31;2789:5;2764:31;:::i;:::-;2814:5;-1:-1:-1;2871:2:1;2856:18;;2843:32;2884:33;2843:32;2884:33;:::i;:::-;2544:456;;2936:7;;-1:-1:-1;;;2990:2:1;2975:18;;;;2962:32;;2544:456::o;3005:127::-;3066:10;3061:3;3057:20;3054:1;3047:31;3097:4;3094:1;3087:15;3121:4;3118:1;3111:15;3137:275;3208:2;3202:9;3273:2;3254:13;;-1:-1:-1;;3250:27:1;3238:40;;3308:18;3293:34;;3329:22;;;3290:62;3287:88;;;3355:18;;:::i;:::-;3391:2;3384:22;3137:275;;-1:-1:-1;3137:275:1:o;3417:183::-;3477:4;3510:18;3502:6;3499:30;3496:56;;;3532:18;;:::i;:::-;-1:-1:-1;3577:1:1;3573:14;3589:4;3569:25;;3417:183::o;3605:662::-;3659:5;3712:3;3705:4;3697:6;3693:17;3689:27;3679:55;;3730:1;3727;3720:12;3679:55;3766:6;3753:20;3792:4;3816:60;3832:43;3872:2;3832:43;:::i;:::-;3816:60;:::i;:::-;3910:15;;;3996:1;3992:10;;;;3980:23;;3976:32;;;3941:12;;;;4020:15;;;4017:35;;;4048:1;4045;4038:12;4017:35;4084:2;4076:6;4072:15;4096:142;4112:6;4107:3;4104:15;4096:142;;;4178:17;;4166:30;;4216:12;;;;4129;;4096:142;;;-1:-1:-1;4256:5:1;3605:662;-1:-1:-1;;;;;;3605:662:1:o;4272:1215::-;4390:6;4398;4451:2;4439:9;4430:7;4426:23;4422:32;4419:52;;;4467:1;4464;4457:12;4419:52;4507:9;4494:23;4536:18;4577:2;4569:6;4566:14;4563:34;;;4593:1;4590;4583:12;4563:34;4631:6;4620:9;4616:22;4606:32;;4676:7;4669:4;4665:2;4661:13;4657:27;4647:55;;4698:1;4695;4688:12;4647:55;4734:2;4721:16;4756:4;4780:60;4796:43;4836:2;4796:43;:::i;4780:60::-;4874:15;;;4956:1;4952:10;;;;4944:19;;4940:28;;;4905:12;;;;4980:19;;;4977:39;;;5012:1;5009;5002:12;4977:39;5036:11;;;;5056:217;5072:6;5067:3;5064:15;5056:217;;;5152:3;5139:17;5169:31;5194:5;5169:31;:::i;:::-;5213:18;;5089:12;;;;5251;;;;5056:217;;;5292:5;-1:-1:-1;;5335:18:1;;5322:32;;-1:-1:-1;;5366:16:1;;;5363:36;;;5395:1;5392;5385:12;5363:36;;5418:63;5473:7;5462:8;5451:9;5447:24;5418:63;:::i;:::-;5408:73;;;4272:1215;;;;;:::o;5681:118::-;5767:5;5760:13;5753:21;5746:5;5743:32;5733:60;;5789:1;5786;5779:12;5804:382;5869:6;5877;5930:2;5918:9;5909:7;5905:23;5901:32;5898:52;;;5946:1;5943;5936:12;5898:52;5985:9;5972:23;6004:31;6029:5;6004:31;:::i;:::-;6054:5;-1:-1:-1;6111:2:1;6096:18;;6083:32;6124:30;6083:32;6124:30;:::i;6877:127::-;6938:10;6933:3;6929:20;6926:1;6919:31;6969:4;6966:1;6959:15;6993:4;6990:1;6983:15;7009:422;7098:1;7141:5;7098:1;7155:270;7176:7;7166:8;7163:21;7155:270;;;7235:4;7231:1;7227:6;7223:17;7217:4;7214:27;7211:53;;;7244:18;;:::i;:::-;7294:7;7284:8;7280:22;7277:55;;;7314:16;;;;7277:55;7393:22;;;;7353:15;;;;7155:270;;;7159:3;7009:422;;;;;:::o;7436:806::-;7485:5;7515:8;7505:80;;-1:-1:-1;7556:1:1;7570:5;;7505:80;7604:4;7594:76;;-1:-1:-1;7641:1:1;7655:5;;7594:76;7686:4;7704:1;7699:59;;;;7772:1;7767:130;;;;7679:218;;7699:59;7729:1;7720:10;;7743:5;;;7767:130;7804:3;7794:8;7791:17;7788:43;;;7811:18;;:::i;:::-;-1:-1:-1;;7867:1:1;7853:16;;7882:5;;7679:218;;7981:2;7971:8;7968:16;7962:3;7956:4;7953:13;7949:36;7943:2;7933:8;7930:16;7925:2;7919:4;7916:12;7912:35;7909:77;7906:159;;;-1:-1:-1;8018:19:1;;;8050:5;;7906:159;8097:34;8122:8;8116:4;8097:34;:::i;:::-;8167:6;8163:1;8159:6;8155:19;8146:7;8143:32;8140:58;;;8178:18;;:::i;:::-;8216:20;;7436:806;-1:-1:-1;;;7436:806:1:o;8247:140::-;8305:5;8334:47;8375:4;8365:8;8361:19;8355:4;8334:47;:::i;8392:168::-;8465:9;;;8496;;8513:15;;;8507:22;;8493:37;8483:71;;8534:18;;:::i;8565:128::-;8632:9;;;8653:11;;;8650:37;;;8667:18;;:::i;9048:127::-;9109:10;9104:3;9100:20;9097:1;9090:31;9140:4;9137:1;9130:15;9164:4;9161:1;9154:15;9527:197;9565:3;9593:6;9634:2;9627:5;9623:14;9661:2;9652:7;9649:15;9646:41;;9667:18;;:::i;:::-;9716:1;9703:15;;9527:197;-1:-1:-1;;;9527:197:1:o;9729:125::-;9794:9;;;9815:10;;;9812:36;;;9828:18;;:::i;11041:385::-;11120:6;11128;11181:2;11169:9;11160:7;11156:23;11152:32;11149:52;;;11197:1;11194;11187:12;11149:52;11229:9;11223:16;11248:31;11273:5;11248:31;:::i;:::-;11348:2;11333:18;;11327:25;11298:5;;-1:-1:-1;11361:33:1;11327:25;11361:33;:::i;13043:184::-;13113:6;13166:2;13154:9;13145:7;13141:23;13137:32;13134:52;;;13182:1;13179;13172:12;13134:52;-1:-1:-1;13205:16:1;;13043:184;-1:-1:-1;13043:184:1:o;13534:245::-;13601:6;13654:2;13642:9;13633:7;13629:23;13625:32;13622:52;;;13670:1;13667;13660:12;13622:52;13702:9;13696:16;13721:28;13743:5;13721:28;:::i

Swarm Source

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