ETH Price: $3,264.08 (+0.65%)
Gas: 1 Gwei

Token

OMEGA (OMEGA)
 

Overview

Max Total Supply

500,000,000,000,000 OMEGA

Holders

75

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 14 Decimals)

Balance
15,142,857,142 OMEGA

Value
$0.00
0x1806efccef0502bc176e8d0dffbc4580c155ec3e
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:
OMEGA

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-13
*/

// SPDX-License-Identifier: Unlicensed

    pragma solidity ^0.8.15;

    interface IERC20 {
        
        function totalSupply() external view returns (uint256);
        function balanceOf(address account) external view returns (uint256);
        function transfer(address recipient, uint256 amount) external returns (bool);
        function allowance(address owner, address spender) external view returns (uint256);
        function approve(address spender, uint256 amount) external returns (bool);
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
        
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }

    library SafeMath {
        
        function add(uint256 a, uint256 b) internal pure returns (uint256) {
            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 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;
            }
        }
        
    }

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

    abstract contract Ownable is Context {
        address internal _owner;
        address private _previousOwner;

        event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
        constructor () {
            _owner = _msgSender();
            emit OwnershipTransferred(address(0), _owner);
        }
        
        function owner() public view virtual returns (address) {
            return _owner;
        }
        
        modifier onlyOwner() {
            require(owner() == _msgSender(), "Ownable: caller is not the owner");
            _;
        }
        
        function renounceOwnership() public virtual onlyOwner {
            emit OwnershipTransferred(_owner, address(0));
            _owner = address(0);
        }

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

    interface IERC20Metadata is IERC20 {
        function name() external view returns (string memory);
        function symbol() external view returns (string memory);
        function decimals() external view returns (uint8);
    }

    contract ERC20 is Context,Ownable, IERC20, IERC20Metadata {
        using SafeMath for uint256;

        mapping(address => uint256) private _balances;

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

        uint256 private _totalSupply;

        string private _name;
        string private _symbol;

        constructor(string memory name_, string memory symbol_) {
            _name = name_;
            _symbol = symbol_;
        }

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

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

        function decimals() public view virtual override returns (uint8) {
            return 14;
        }

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

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

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

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

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

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

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

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

        function _transfer(
            address sender,
            address recipient,
            uint256 amount
        ) internal virtual {
            require(sender != address(0), "ERC20: transfer from the zero address");
            require(recipient != address(0), "ERC20: transfer to the zero address");

            _beforeTokenTransfer(sender, recipient, amount);

            _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }

        function _mint(address account, uint256 amount) internal virtual {
            require(account != address(0), "ERC20: mint to the zero address");

            _beforeTokenTransfer(address(0), account, amount);

            _totalSupply = _totalSupply.add(amount);
            _balances[account] = _balances[account].add(amount);
            emit Transfer(address(0), account, amount);
        }

        function _approve(
            address owner,
            address spender,
            uint256 amount
        ) internal virtual {
            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 _beforeTokenTransfer(
            address from,
            address to,
            uint256 amount
        ) internal virtual {}
    }


    interface IUniswapV2Factory {
        function createPair(address tokenA, address tokenB) external returns (address pair);
    }

    interface IUniswapV2Pair {
        function factory() external view returns (address);
    }

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

    interface IUniswapV2Router02 is IUniswapV2Router01 {     
       function swapExactTokensForETHSupportingFeeOnTransferTokens(
            uint amountIn,
            uint amountOutMin,
            address[] calldata path,
            address to,
            uint deadline
        ) external;
    }

    contract OMEGA is ERC20 {
        
        using SafeMath for uint256;

        mapping (address => bool) private _isExcludedFromFee;
        mapping(address => bool) private _isExcludedFromMaxWallet;

        address public devWallet;
        address constant _burnAddress = 0x000000000000000000000000000000000000dEaD;

        uint256 public buyLiquidityFee = 4;  
        uint256 public buyMarketingFee = 4;  

        uint256 public sellLiquidityFee = 10; 
        uint256 public sellMarketingFee = 15; 

        IUniswapV2Router02 public uniswapV2Router;
        address public uniswapV2Pair;
        bool inSwapAndLiquify;
        bool public swapAndLiquifyEnabled = true;
        bool public tradingEnabled = false;
        uint256 public numTokensSellToAddToLiquidity;
        uint256 public maxWalletBalance;
        event SwapAndLiquifyEnabledUpdated(bool enabled);
        event SwapAndLiquify(
            uint256 tokensSwapped,
            uint256 ethReceived,
            uint256 tokensIntoLiqudity
        );
        
        modifier lockTheSwap {
            inSwapAndLiquify = true;
            _;
            inSwapAndLiquify = false;
        }
        
        constructor () ERC20("OMEGA", "OMEGA"){

            numTokensSellToAddToLiquidity = 5000000000000 * 10 ** decimals();
            devWallet = 0xC723F9E63c6ce0910EE3d99A8b2767bCF4154B72;
            
            IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());

            uniswapV2Router = _uniswapV2Router;
            
            _isExcludedFromFee[_msgSender()] = true;
            _isExcludedFromFee[address(this)] = true;
            _isExcludedFromFee[devWallet] = true;

            _isExcludedFromMaxWallet[owner()] = true;
            _isExcludedFromMaxWallet[address(this)] = true;
            _isExcludedFromMaxWallet[_burnAddress] = true;
            _isExcludedFromMaxWallet[devWallet] = true;

            _mint(owner(), 500000000000000 * 10 ** decimals());
            maxWalletBalance = 45000000000000  * 10 ** decimals();
        }

        function enableTrading() external onlyOwner {
             tradingEnabled = true;
        }

        function includeAndExcludeFromFee(
        address account,
        bool value
        ) public onlyOwner {
            _isExcludedFromFee[account] = value;
        }

        function isExcludedFromFee(address account) public view returns (bool) {
            return _isExcludedFromFee[account];
        }

        function includeAndExcludedFromMaxWallet(address account, bool value) public onlyOwner {
            _isExcludedFromMaxWallet[account] = value;
        }

        function isExcludedFromMaxWallet(address account) public view returns(bool){
            return _isExcludedFromMaxWallet[account];
        }

        function setSellFeePercent(
            uint256 lFee,
            uint256 mFee
        ) external onlyOwner {
            sellLiquidityFee = lFee;
            sellMarketingFee = mFee;
        }

        function setBuyFeePercent(
            uint256 lFee,
            uint256 mFee
        ) external onlyOwner {
            buyLiquidityFee = lFee;
            buyMarketingFee = mFee;
        }

        function setDevWallet(address _addr) external onlyOwner {
            devWallet = _addr;
        }  

        function setMaxWalletBalance(uint256 maxBalancePercent) external onlyOwner {
             maxWalletBalance = maxBalancePercent * 10** decimals();
        }

        function setNumTokensSellToAddToLiquidity(uint256 amount) external onlyOwner {
            numTokensSellToAddToLiquidity = amount * 10 ** decimals();
        }

        function setSwapAndLiquifyEnabled(bool _enabled) external onlyOwner {
            swapAndLiquifyEnabled = _enabled;
            emit SwapAndLiquifyEnabledUpdated(_enabled);
        }
        
        receive() external payable {}

        function _transfer(
            address from,
            address to,
            uint256 amount
        ) internal override {
            require(from != address(0), "ERC20: transfer from the zero address");
            require(to != address(0), "ERC20: transfer to the zero address");
            require(amount > 0, "ERC20: transfer amount must be greater than zero");

            if (from != owner() && !tradingEnabled) {
            require(tradingEnabled, "ERC20: trading is not enabled yet");
            }

            if (
            from != owner() &&
            to != address(this) &&
            to != _burnAddress &&
            to != uniswapV2Pair
        ) {
            uint256 currentBalance = balanceOf(to);
            require(
                _isExcludedFromMaxWallet[to] ||
                    (currentBalance + amount <= maxWalletBalance),
                "ERC20: Reached Max wallet holding"
            );
        }

            uint256 contractTokenBalance = balanceOf(address(this)); 
            bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
            if (
                overMinTokenBalance &&
                !inSwapAndLiquify &&
                from != uniswapV2Pair &&
                swapAndLiquifyEnabled
            ) {
                contractTokenBalance = numTokensSellToAddToLiquidity;
                swapBack(contractTokenBalance);
            }

            bool takeFee = true;
            if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
                super._transfer(from, to, amount);
                takeFee = false;
            } else {

                if (from == uniswapV2Pair) {
                uint256 liquidityTokens = amount.mul(buyLiquidityFee).div(100);
                uint256 marketingTokens = amount.mul(buyMarketingFee).div(100);
                amount= amount.sub(liquidityTokens.add(marketingTokens));
                super._transfer(from, address(this), liquidityTokens.add(marketingTokens));
                super._transfer(from, to, amount);

            } else if (to == uniswapV2Pair) {
                uint256 liquidityTokens = amount.mul(sellLiquidityFee).div(100);
                uint256 marketingTokens = amount.mul(sellMarketingFee).div(100);
                amount= amount.sub(liquidityTokens.add(marketingTokens));
                super._transfer(from, address(this), liquidityTokens.add(marketingTokens));
                super._transfer(from, to, amount);
            } else {
                super._transfer(from, to, amount);
            }
        }
        }

        function swapBack(uint256 contractBalance) private lockTheSwap {

                uint256 tokensForLiquidity = contractBalance.mul(sellLiquidityFee).div(100);
                uint256 marketingTokens = contractBalance.mul(sellMarketingFee).div(100);

                uint256 totalTokensToSwap = tokensForLiquidity + marketingTokens;
                
                if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

                bool success;
                
                uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
                
                swapTokensForEth(contractBalance - liquidityTokens); 
                
                uint256 ethBalance = address(this).balance;
                uint256 ethForLiquidity = ethBalance;

                uint256 ethForMarketing = ethBalance * marketingTokens / (totalTokensToSwap - (tokensForLiquidity/2));

                ethForLiquidity -= ethForMarketing;
                                
                if(liquidityTokens > 0 && ethForLiquidity > 0){
                    addLiquidity(liquidityTokens, ethForLiquidity);

                }

                (success,) = address(devWallet).call{value: ethForMarketing}("");
        }       

        function swapTokensForEth(uint256 tokenAmount) private {
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0, // accept any amount of ETH
                path,
                address(this),
                block.timestamp
            );
        }

        function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.addLiquidityETH{value: ethAmount}(
                address(this),
                tokenAmount,
                0, // slippage is unavoidable
                0, // slippage is unavoidable
                owner(),
                block.timestamp
            );
        }

        function airdrop(address[] memory wallets, uint256[] memory amounts) external onlyOwner {
            require(wallets.length == amounts.length, "ERC20: Arrays must be the same length");
            require(wallets.length <= 200, "ERC20: 200 wallets per txn is allowed due to gas limits"); 
                for (uint i=0; i<wallets.length; i++) {
                    address wallet = wallets[i];
                    uint256 amount = amounts[i] * 10 ** decimals();
                    transfer(wallet, amount);
                }
        }
    }

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":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludedFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"lFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBalancePercent","type":"uint256"}],"name":"setMaxWalletBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526004600a818155600b91909155600c55600f600d819055805461ffff60a81b1916600160a81b1790553480156200003a57600080fd5b50604051806040016040528060058152602001644f4d45474160d81b815250604051806040016040528060058152602001644f4d45474160d81b815250620000876200043760201b60201c565b600080546001600160a01b0319166001600160a01b039290921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36005620000dc8382620005eb565b506006620000eb8282620005eb565b50620000f8915050600e90565b6200010590600a620007ca565b620001179065048c27395000620007db565b601055600980546001600160a01b03191673c723f9e63c6ce0910ee3d99a8b2767bcf4154b721790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa15801562000194573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ba9190620007f5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022e9190620007f5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200027c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a29190620007f5565b600f80546001600160a01b03199081166001600160a01b0393841617909155600e8054909116918316919091179055600160076000620002df3390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260079093528183208054851660019081179091556009549091168352908220805490931681179092556008906200034f6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260089093528183208054851660019081179091557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548616821790556009549091168352912080549092161790556200040d620003e66000546001600160a01b031690565b620003f4600e600a620007ca565b62000407906601c6bf52634000620007db565b6200043b565b6200041b600e600a620007ca565b6200042d906528ed6103d000620007db565b601155506200083d565b3390565b6001600160a01b038216620004965760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b600454620004a5908262000530565b6004556001600160a01b038216600090815260026020526040902054620004cd908262000530565b6001600160a01b0383166000818152600260205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200051f9085815260200190565b60405180910390a35050565b505050565b60006200053e828462000827565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200057257607f821691505b6020821081036200059357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200052b57600081815260208120601f850160051c81016020861015620005c25750805b601f850160051c820191505b81811015620005e357828155600101620005ce565b505050505050565b81516001600160401b0381111562000607576200060762000547565b6200061f816200061884546200055d565b8462000599565b602080601f8311600181146200065757600084156200063e5750858301515b600019600386901b1c1916600185901b178555620005e3565b600085815260208120601f198616915b82811015620006885788860151825594840194600190910190840162000667565b5085821015620006a75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200070e578160001904821115620006f257620006f2620006b7565b808516156200070057918102915b93841c9390800290620006d2565b509250929050565b600082620007275750600162000541565b81620007365750600062000541565b81600181146200074f57600281146200075a576200077a565b600191505062000541565b60ff8411156200076e576200076e620006b7565b50506001821b62000541565b5060208310610133831016604e8410600b84101617156200079f575081810a62000541565b620007ab8383620006cd565b8060001904821115620007c257620007c2620006b7565b029392505050565b60006200053e60ff84168362000716565b8082028115828204841417620005415762000541620006b7565b6000602082840312156200080857600080fd5b81516001600160a01b03811681146200082057600080fd5b9392505050565b80820180821115620005415762000541620006b7565b611fd6806200084d6000396000f3fe60806040526004361061021e5760003560e01c80637bce5a0411610123578063be291dc6116100ab578063f0f165af1161006f578063f0f165af1461067f578063f11a24d31461069f578063f2fde38b146106b5578063f6374342146106d5578063f9dfdaeb146106eb57600080fd5b8063be291dc6146105c3578063c49b9a80146105e3578063d12a768814610603578063da7e2c7f14610619578063dd62ed3e1461063957600080fd5b806392136913116100f2578063921369131461054257806395d89b4114610558578063a457c2d71461056d578063a9059cbb1461058d578063bbde77c1146105ad57600080fd5b80637bce5a04146104d95780638a8c523c146104ef5780638da5cb5b146105045780638ea5220f1461052257600080fd5b806348eb61b6116101a65780635342acb4116101755780635342acb4146103fc57806367243482146104355780636dd3d39f1461045557806370a082311461048e578063715018a6146104c457600080fd5b806348eb61b61461037a57806349bd5a5e1461039a5780634a74bb02146103ba5780634ada218b146103db57600080fd5b80631f53ac02116101ed5780631f53ac02146102dc57806323b872dd146102fe578063313ce5671461031e578063395093511461033a5780633a9e00de1461035a57600080fd5b806306fdde031461022a578063095ea7b3146102555780631694505e1461028557806318160ddd146102bd57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f61070b565b60405161024c9190611882565b60405180910390f35b34801561026157600080fd5b506102756102703660046118e8565b61079d565b604051901515815260200161024c565b34801561029157600080fd5b50600e546102a5906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b3480156102c957600080fd5b506004545b60405190815260200161024c565b3480156102e857600080fd5b506102fc6102f7366004611914565b6107b4565b005b34801561030a57600080fd5b50610275610319366004611931565b610809565b34801561032a57600080fd5b50604051600e815260200161024c565b34801561034657600080fd5b506102756103553660046118e8565b610872565b34801561036657600080fd5b506102fc610375366004611972565b6108a8565b34801561038657600080fd5b506102fc6103953660046119a0565b6108ee565b3480156103a657600080fd5b50600f546102a5906001600160a01b031681565b3480156103c657600080fd5b50600f5461027590600160a81b900460ff1681565b3480156103e757600080fd5b50600f5461027590600160b01b900460ff1681565b34801561040857600080fd5b50610275610417366004611914565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561044157600080fd5b506102fc610450366004611aab565b610943565b34801561046157600080fd5b50610275610470366004611914565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561049a57600080fd5b506102ce6104a9366004611914565b6001600160a01b031660009081526002602052604090205490565b3480156104d057600080fd5b506102fc610ace565b3480156104e557600080fd5b506102ce600b5481565b3480156104fb57600080fd5b506102fc610b42565b34801561051057600080fd5b506000546001600160a01b03166102a5565b34801561052e57600080fd5b506009546102a5906001600160a01b031681565b34801561054e57600080fd5b506102ce600d5481565b34801561056457600080fd5b5061023f610b81565b34801561057957600080fd5b506102756105883660046118e8565b610b90565b34801561059957600080fd5b506102756105a83660046118e8565b610bdf565b3480156105b957600080fd5b506102ce60115481565b3480156105cf57600080fd5b506102fc6105de366004611b6d565b610bec565b3480156105ef57600080fd5b506102fc6105fe366004611b8f565b610c21565b34801561060f57600080fd5b506102ce60105481565b34801561062557600080fd5b506102fc6106343660046119a0565b610ca3565b34801561064557600080fd5b506102ce610654366004611baa565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561068b57600080fd5b506102fc61069a366004611972565b610cf8565b3480156106ab57600080fd5b506102ce600a5481565b3480156106c157600080fd5b506102fc6106d0366004611914565b610d3e565b3480156106e157600080fd5b506102ce600c5481565b3480156106f757600080fd5b506102fc610706366004611b6d565b610e28565b60606005805461071a90611be3565b80601f016020809104026020016040519081016040528092919081815260200182805461074690611be3565b80156107935780601f1061076857610100808354040283529160200191610793565b820191906000526020600020905b81548152906001019060200180831161077657829003601f168201915b5050505050905090565b60006107aa338484610e5d565b5060015b92915050565b6000546001600160a01b031633146107e75760405162461bcd60e51b81526004016107de90611c1d565b60405180910390fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610816848484610f82565b610868843361086385604051806060016040528060288152602001611f54602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061137b565b610e5d565b5060019392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916107aa91859061086390866113a7565b6000546001600160a01b031633146108d25760405162461bcd60e51b81526004016107de90611c1d565b6108de600e600a611d4c565b6108e89082611d5b565b60115550565b6000546001600160a01b031633146109185760405162461bcd60e51b81526004016107de90611c1d565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461096d5760405162461bcd60e51b81526004016107de90611c1d565b80518251146109cc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a20417272617973206d757374206265207468652073616d65206c6044820152640cadccee8d60db1b60648201526084016107de565b60c882511115610a445760405162461bcd60e51b815260206004820152603760248201527f45524332303a203230302077616c6c657473207065722074786e20697320616c60448201527f6c6f7765642064756520746f20676173206c696d69747300000000000000000060648201526084016107de565b60005b8251811015610ac9576000838281518110610a6457610a64611d72565b602002602001015190506000610a78600e90565b610a8390600a611d4c565b848481518110610a9557610a95611d72565b6020026020010151610aa79190611d5b565b9050610ab38282610bdf565b5050508080610ac190611d88565b915050610a47565b505050565b6000546001600160a01b03163314610af85760405162461bcd60e51b81526004016107de90611c1d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b81526004016107de90611c1d565b600f805460ff60b01b1916600160b01b179055565b60606006805461071a90611be3565b60006107aa338461086385604051806060016040528060258152602001611f7c602591393360009081526003602090815260408083206001600160a01b038d168452909152902054919061137b565b60006107aa338484610f82565b6000546001600160a01b03163314610c165760405162461bcd60e51b81526004016107de90611c1d565b600c91909155600d55565b6000546001600160a01b03163314610c4b5760405162461bcd60e51b81526004016107de90611c1d565b600f8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610c9890831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610ccd5760405162461bcd60e51b81526004016107de90611c1d565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d225760405162461bcd60e51b81526004016107de90611c1d565b610d2e600e600a611d4c565b610d389082611d5b565b60105550565b6000546001600160a01b03163314610d685760405162461bcd60e51b81526004016107de90611c1d565b6001600160a01b038116610dcd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107de565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e525760405162461bcd60e51b81526004016107de90611c1d565b600a91909155600b55565b6001600160a01b038316610ebf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107de565b6001600160a01b038216610f205760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107de565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610fa85760405162461bcd60e51b81526004016107de90611da1565b6001600160a01b038216610fce5760405162461bcd60e51b81526004016107de90611de6565b600081116110375760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016107de565b6000546001600160a01b0384811691161480159061105f5750600f54600160b01b900460ff16155b156110c757600f54600160b01b900460ff166110c75760405162461bcd60e51b815260206004820152602160248201527f45524332303a2074726164696e67206973206e6f7420656e61626c65642079656044820152601d60fa1b60648201526084016107de565b6000546001600160a01b038481169116148015906110ee57506001600160a01b0382163014155b801561110557506001600160a01b03821661dead14155b801561111f5750600f546001600160a01b03838116911614155b156111ba576001600160a01b03821660009081526002602090815260408083205460089092529091205460ff1680611162575060115461115f8383611e29565b11155b6111b85760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e6044820152606760f81b60648201526084016107de565b505b30600090815260026020526040902054601054811080159081906111e85750600f54600160a01b900460ff16155b80156112025750600f546001600160a01b03868116911614155b80156112175750600f54600160a81b900460ff165b1561122a57601054915061122a826113ba565b6001600160a01b03851660009081526007602052604090205460019060ff168061126c57506001600160a01b03851660009081526007602052604090205460ff165b156112845761127c86868661152b565b506000611373565b600f546001600160a01b03908116908716036113185760006112bc60646112b6600a548861163790919063ffffffff16565b90611643565b905060006112da60646112b6600b548961163790919063ffffffff16565b90506112f06112e983836113a7565b879061164f565b9550611306883061130185856113a7565b61152b565b61131188888861152b565b5050611373565b600f546001600160a01b039081169086160361136857600061134a60646112b6600c548861163790919063ffffffff16565b905060006112da60646112b6600d548961163790919063ffffffff16565b61137386868661152b565b505050505050565b6000818484111561139f5760405162461bcd60e51b81526004016107de9190611882565b505050900390565b60006113b38284611e29565b9392505050565b600f805460ff60a01b1916600160a01b179055600c546000906113e5906064906112b6908590611637565b9050600061140360646112b6600d548661163790919063ffffffff16565b905060006114118284611e29565b905083158061141e575080155b1561142b5750505061151b565b60008060028361143b8789611d5b565b6114459190611e3c565b61144f9190611e3c565b905061146361145e8288611e5e565b61165b565b47806000611472600289611e3c565b61147c9087611e5e565b6114868885611d5b565b6114909190611e3c565b905061149c8183611e5e565b91506000841180156114ae5750600082115b156114bd576114bd84836117ad565b6009546040516001600160a01b03909116908290600081818185875af1925050503d806000811461150a576040519150601f19603f3d011682016040523d82523d6000602084013e61150f565b606091505b50505050505050505050505b50600f805460ff60a01b19169055565b6001600160a01b0383166115515760405162461bcd60e51b81526004016107de90611da1565b6001600160a01b0382166115775760405162461bcd60e51b81526004016107de90611de6565b6115b481604051806060016040528060268152602001611f2e602691396001600160a01b038616600090815260026020526040902054919061137b565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546115e390826113a7565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f759085815260200190565b60006113b38284611d5b565b60006113b38284611e3c565b60006113b38284611e5e565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061169057611690611d72565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d9190611e71565b8160018151811061172057611720611d72565b6001600160a01b039283166020918202929092010152600e546117469130911684610e5d565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061177f908590600090869030904290600401611e8e565b600060405180830381600087803b15801561179957600080fd5b505af1158015611373573d6000803e3d6000fd5b600e546117c59030906001600160a01b031684610e5d565b600e546001600160a01b031663f305d7198230856000806117ee6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611856573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061187b9190611eff565b5050505050565b600060208083528351808285015260005b818110156118af57858101830151858201604001528201611893565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146118e557600080fd5b50565b600080604083850312156118fb57600080fd5b8235611906816118d0565b946020939093013593505050565b60006020828403121561192657600080fd5b81356113b3816118d0565b60008060006060848603121561194657600080fd5b8335611951816118d0565b92506020840135611961816118d0565b929592945050506040919091013590565b60006020828403121561198457600080fd5b5035919050565b8035801515811461199b57600080fd5b919050565b600080604083850312156119b357600080fd5b82356119be816118d0565b91506119cc6020840161198b565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a1457611a146119d5565b604052919050565b600067ffffffffffffffff821115611a3657611a366119d5565b5060051b60200190565b600082601f830112611a5157600080fd5b81356020611a66611a6183611a1c565b6119eb565b82815260059290921b84018101918181019086841115611a8557600080fd5b8286015b84811015611aa05780358352918301918301611a89565b509695505050505050565b60008060408385031215611abe57600080fd5b823567ffffffffffffffff80821115611ad657600080fd5b818501915085601f830112611aea57600080fd5b81356020611afa611a6183611a1c565b82815260059290921b84018101918181019089841115611b1957600080fd5b948201945b83861015611b40578535611b31816118d0565b82529482019490820190611b1e565b96505086013592505080821115611b5657600080fd5b50611b6385828601611a40565b9150509250929050565b60008060408385031215611b8057600080fd5b50508035926020909101359150565b600060208284031215611ba157600080fd5b6113b38261198b565b60008060408385031215611bbd57600080fd5b8235611bc8816118d0565b91506020830135611bd8816118d0565b809150509250929050565b600181811c90821680611bf757607f821691505b602082108103611c1757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ca3578160001904821115611c8957611c89611c52565b80851615611c9657918102915b93841c9390800290611c6d565b509250929050565b600082611cba575060016107ae565b81611cc7575060006107ae565b8160018114611cdd5760028114611ce757611d03565b60019150506107ae565b60ff841115611cf857611cf8611c52565b50506001821b6107ae565b5060208310610133831016604e8410600b8410161715611d26575081810a6107ae565b611d308383611c68565b8060001904821115611d4457611d44611c52565b029392505050565b60006113b360ff841683611cab565b80820281158282048414176107ae576107ae611c52565b634e487b7160e01b600052603260045260246000fd5b600060018201611d9a57611d9a611c52565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808201808211156107ae576107ae611c52565b600082611e5957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156107ae576107ae611c52565b600060208284031215611e8357600080fd5b81516113b3816118d0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ede5784516001600160a01b031683529383019391830191600101611eb9565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611f1457600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201df40c110aeceb10f8d101a471c1debd4d6c8e5a2e13493f02976b9a8aaa622864736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c80637bce5a0411610123578063be291dc6116100ab578063f0f165af1161006f578063f0f165af1461067f578063f11a24d31461069f578063f2fde38b146106b5578063f6374342146106d5578063f9dfdaeb146106eb57600080fd5b8063be291dc6146105c3578063c49b9a80146105e3578063d12a768814610603578063da7e2c7f14610619578063dd62ed3e1461063957600080fd5b806392136913116100f2578063921369131461054257806395d89b4114610558578063a457c2d71461056d578063a9059cbb1461058d578063bbde77c1146105ad57600080fd5b80637bce5a04146104d95780638a8c523c146104ef5780638da5cb5b146105045780638ea5220f1461052257600080fd5b806348eb61b6116101a65780635342acb4116101755780635342acb4146103fc57806367243482146104355780636dd3d39f1461045557806370a082311461048e578063715018a6146104c457600080fd5b806348eb61b61461037a57806349bd5a5e1461039a5780634a74bb02146103ba5780634ada218b146103db57600080fd5b80631f53ac02116101ed5780631f53ac02146102dc57806323b872dd146102fe578063313ce5671461031e578063395093511461033a5780633a9e00de1461035a57600080fd5b806306fdde031461022a578063095ea7b3146102555780631694505e1461028557806318160ddd146102bd57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f61070b565b60405161024c9190611882565b60405180910390f35b34801561026157600080fd5b506102756102703660046118e8565b61079d565b604051901515815260200161024c565b34801561029157600080fd5b50600e546102a5906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b3480156102c957600080fd5b506004545b60405190815260200161024c565b3480156102e857600080fd5b506102fc6102f7366004611914565b6107b4565b005b34801561030a57600080fd5b50610275610319366004611931565b610809565b34801561032a57600080fd5b50604051600e815260200161024c565b34801561034657600080fd5b506102756103553660046118e8565b610872565b34801561036657600080fd5b506102fc610375366004611972565b6108a8565b34801561038657600080fd5b506102fc6103953660046119a0565b6108ee565b3480156103a657600080fd5b50600f546102a5906001600160a01b031681565b3480156103c657600080fd5b50600f5461027590600160a81b900460ff1681565b3480156103e757600080fd5b50600f5461027590600160b01b900460ff1681565b34801561040857600080fd5b50610275610417366004611914565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561044157600080fd5b506102fc610450366004611aab565b610943565b34801561046157600080fd5b50610275610470366004611914565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561049a57600080fd5b506102ce6104a9366004611914565b6001600160a01b031660009081526002602052604090205490565b3480156104d057600080fd5b506102fc610ace565b3480156104e557600080fd5b506102ce600b5481565b3480156104fb57600080fd5b506102fc610b42565b34801561051057600080fd5b506000546001600160a01b03166102a5565b34801561052e57600080fd5b506009546102a5906001600160a01b031681565b34801561054e57600080fd5b506102ce600d5481565b34801561056457600080fd5b5061023f610b81565b34801561057957600080fd5b506102756105883660046118e8565b610b90565b34801561059957600080fd5b506102756105a83660046118e8565b610bdf565b3480156105b957600080fd5b506102ce60115481565b3480156105cf57600080fd5b506102fc6105de366004611b6d565b610bec565b3480156105ef57600080fd5b506102fc6105fe366004611b8f565b610c21565b34801561060f57600080fd5b506102ce60105481565b34801561062557600080fd5b506102fc6106343660046119a0565b610ca3565b34801561064557600080fd5b506102ce610654366004611baa565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561068b57600080fd5b506102fc61069a366004611972565b610cf8565b3480156106ab57600080fd5b506102ce600a5481565b3480156106c157600080fd5b506102fc6106d0366004611914565b610d3e565b3480156106e157600080fd5b506102ce600c5481565b3480156106f757600080fd5b506102fc610706366004611b6d565b610e28565b60606005805461071a90611be3565b80601f016020809104026020016040519081016040528092919081815260200182805461074690611be3565b80156107935780601f1061076857610100808354040283529160200191610793565b820191906000526020600020905b81548152906001019060200180831161077657829003601f168201915b5050505050905090565b60006107aa338484610e5d565b5060015b92915050565b6000546001600160a01b031633146107e75760405162461bcd60e51b81526004016107de90611c1d565b60405180910390fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610816848484610f82565b610868843361086385604051806060016040528060288152602001611f54602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061137b565b610e5d565b5060019392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916107aa91859061086390866113a7565b6000546001600160a01b031633146108d25760405162461bcd60e51b81526004016107de90611c1d565b6108de600e600a611d4c565b6108e89082611d5b565b60115550565b6000546001600160a01b031633146109185760405162461bcd60e51b81526004016107de90611c1d565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461096d5760405162461bcd60e51b81526004016107de90611c1d565b80518251146109cc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a20417272617973206d757374206265207468652073616d65206c6044820152640cadccee8d60db1b60648201526084016107de565b60c882511115610a445760405162461bcd60e51b815260206004820152603760248201527f45524332303a203230302077616c6c657473207065722074786e20697320616c60448201527f6c6f7765642064756520746f20676173206c696d69747300000000000000000060648201526084016107de565b60005b8251811015610ac9576000838281518110610a6457610a64611d72565b602002602001015190506000610a78600e90565b610a8390600a611d4c565b848481518110610a9557610a95611d72565b6020026020010151610aa79190611d5b565b9050610ab38282610bdf565b5050508080610ac190611d88565b915050610a47565b505050565b6000546001600160a01b03163314610af85760405162461bcd60e51b81526004016107de90611c1d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b81526004016107de90611c1d565b600f805460ff60b01b1916600160b01b179055565b60606006805461071a90611be3565b60006107aa338461086385604051806060016040528060258152602001611f7c602591393360009081526003602090815260408083206001600160a01b038d168452909152902054919061137b565b60006107aa338484610f82565b6000546001600160a01b03163314610c165760405162461bcd60e51b81526004016107de90611c1d565b600c91909155600d55565b6000546001600160a01b03163314610c4b5760405162461bcd60e51b81526004016107de90611c1d565b600f8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610c9890831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610ccd5760405162461bcd60e51b81526004016107de90611c1d565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d225760405162461bcd60e51b81526004016107de90611c1d565b610d2e600e600a611d4c565b610d389082611d5b565b60105550565b6000546001600160a01b03163314610d685760405162461bcd60e51b81526004016107de90611c1d565b6001600160a01b038116610dcd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107de565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e525760405162461bcd60e51b81526004016107de90611c1d565b600a91909155600b55565b6001600160a01b038316610ebf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107de565b6001600160a01b038216610f205760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107de565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610fa85760405162461bcd60e51b81526004016107de90611da1565b6001600160a01b038216610fce5760405162461bcd60e51b81526004016107de90611de6565b600081116110375760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016107de565b6000546001600160a01b0384811691161480159061105f5750600f54600160b01b900460ff16155b156110c757600f54600160b01b900460ff166110c75760405162461bcd60e51b815260206004820152602160248201527f45524332303a2074726164696e67206973206e6f7420656e61626c65642079656044820152601d60fa1b60648201526084016107de565b6000546001600160a01b038481169116148015906110ee57506001600160a01b0382163014155b801561110557506001600160a01b03821661dead14155b801561111f5750600f546001600160a01b03838116911614155b156111ba576001600160a01b03821660009081526002602090815260408083205460089092529091205460ff1680611162575060115461115f8383611e29565b11155b6111b85760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e6044820152606760f81b60648201526084016107de565b505b30600090815260026020526040902054601054811080159081906111e85750600f54600160a01b900460ff16155b80156112025750600f546001600160a01b03868116911614155b80156112175750600f54600160a81b900460ff165b1561122a57601054915061122a826113ba565b6001600160a01b03851660009081526007602052604090205460019060ff168061126c57506001600160a01b03851660009081526007602052604090205460ff165b156112845761127c86868661152b565b506000611373565b600f546001600160a01b03908116908716036113185760006112bc60646112b6600a548861163790919063ffffffff16565b90611643565b905060006112da60646112b6600b548961163790919063ffffffff16565b90506112f06112e983836113a7565b879061164f565b9550611306883061130185856113a7565b61152b565b61131188888861152b565b5050611373565b600f546001600160a01b039081169086160361136857600061134a60646112b6600c548861163790919063ffffffff16565b905060006112da60646112b6600d548961163790919063ffffffff16565b61137386868661152b565b505050505050565b6000818484111561139f5760405162461bcd60e51b81526004016107de9190611882565b505050900390565b60006113b38284611e29565b9392505050565b600f805460ff60a01b1916600160a01b179055600c546000906113e5906064906112b6908590611637565b9050600061140360646112b6600d548661163790919063ffffffff16565b905060006114118284611e29565b905083158061141e575080155b1561142b5750505061151b565b60008060028361143b8789611d5b565b6114459190611e3c565b61144f9190611e3c565b905061146361145e8288611e5e565b61165b565b47806000611472600289611e3c565b61147c9087611e5e565b6114868885611d5b565b6114909190611e3c565b905061149c8183611e5e565b91506000841180156114ae5750600082115b156114bd576114bd84836117ad565b6009546040516001600160a01b03909116908290600081818185875af1925050503d806000811461150a576040519150601f19603f3d011682016040523d82523d6000602084013e61150f565b606091505b50505050505050505050505b50600f805460ff60a01b19169055565b6001600160a01b0383166115515760405162461bcd60e51b81526004016107de90611da1565b6001600160a01b0382166115775760405162461bcd60e51b81526004016107de90611de6565b6115b481604051806060016040528060268152602001611f2e602691396001600160a01b038616600090815260026020526040902054919061137b565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546115e390826113a7565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f759085815260200190565b60006113b38284611d5b565b60006113b38284611e3c565b60006113b38284611e5e565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061169057611690611d72565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d9190611e71565b8160018151811061172057611720611d72565b6001600160a01b039283166020918202929092010152600e546117469130911684610e5d565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061177f908590600090869030904290600401611e8e565b600060405180830381600087803b15801561179957600080fd5b505af1158015611373573d6000803e3d6000fd5b600e546117c59030906001600160a01b031684610e5d565b600e546001600160a01b031663f305d7198230856000806117ee6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611856573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061187b9190611eff565b5050505050565b600060208083528351808285015260005b818110156118af57858101830151858201604001528201611893565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146118e557600080fd5b50565b600080604083850312156118fb57600080fd5b8235611906816118d0565b946020939093013593505050565b60006020828403121561192657600080fd5b81356113b3816118d0565b60008060006060848603121561194657600080fd5b8335611951816118d0565b92506020840135611961816118d0565b929592945050506040919091013590565b60006020828403121561198457600080fd5b5035919050565b8035801515811461199b57600080fd5b919050565b600080604083850312156119b357600080fd5b82356119be816118d0565b91506119cc6020840161198b565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a1457611a146119d5565b604052919050565b600067ffffffffffffffff821115611a3657611a366119d5565b5060051b60200190565b600082601f830112611a5157600080fd5b81356020611a66611a6183611a1c565b6119eb565b82815260059290921b84018101918181019086841115611a8557600080fd5b8286015b84811015611aa05780358352918301918301611a89565b509695505050505050565b60008060408385031215611abe57600080fd5b823567ffffffffffffffff80821115611ad657600080fd5b818501915085601f830112611aea57600080fd5b81356020611afa611a6183611a1c565b82815260059290921b84018101918181019089841115611b1957600080fd5b948201945b83861015611b40578535611b31816118d0565b82529482019490820190611b1e565b96505086013592505080821115611b5657600080fd5b50611b6385828601611a40565b9150509250929050565b60008060408385031215611b8057600080fd5b50508035926020909101359150565b600060208284031215611ba157600080fd5b6113b38261198b565b60008060408385031215611bbd57600080fd5b8235611bc8816118d0565b91506020830135611bd8816118d0565b809150509250929050565b600181811c90821680611bf757607f821691505b602082108103611c1757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ca3578160001904821115611c8957611c89611c52565b80851615611c9657918102915b93841c9390800290611c6d565b509250929050565b600082611cba575060016107ae565b81611cc7575060006107ae565b8160018114611cdd5760028114611ce757611d03565b60019150506107ae565b60ff841115611cf857611cf8611c52565b50506001821b6107ae565b5060208310610133831016604e8410600b8410161715611d26575081810a6107ae565b611d308383611c68565b8060001904821115611d4457611d44611c52565b029392505050565b60006113b360ff841683611cab565b80820281158282048414176107ae576107ae611c52565b634e487b7160e01b600052603260045260246000fd5b600060018201611d9a57611d9a611c52565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808201808211156107ae576107ae611c52565b600082611e5957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156107ae576107ae611c52565b600060208284031215611e8357600080fd5b81516113b3816118d0565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ede5784516001600160a01b031683529383019391830191600101611eb9565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611f1457600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201df40c110aeceb10f8d101a471c1debd4d6c8e5a2e13493f02976b9a8aaa622864736f6c63430008130033

Deployed Bytecode Sourcemap

8549:9704:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3768:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4770:181;;;;;;;;;;-1:-1:-1;4770:181:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4770:181:0;1023:187:1;9082:41:0;;;;;;;;;;-1:-1:-1;9082:41:0;;;;-1:-1:-1;;;;;9082:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;9082:41:0;1215:229:1;4125:116:0;;;;;;;;;;-1:-1:-1;4217:12:0;;4125:116;;;1595:25:1;;;1583:2;1568:18;4125:116:0;1449:177:1;12019:100:0;;;;;;;;;;-1:-1:-1;12019:100:0;;;;;:::i;:::-;;:::i;:::-;;4963:387;;;;;;;;;;-1:-1:-1;4963:387:0;;;;;:::i;:::-;;:::i;4012:101::-;;;;;;;;;;-1:-1:-1;4012:101:0;;4099:2;2486:36:1;;2474:2;2459:18;4012:101:0;2344:184:1;5362:230:0;;;;;;;;;;-1:-1:-1;5362:230:0;;;;;:::i;:::-;;:::i;12133:157::-;;;;;;;;;;-1:-1:-1;12133:157:0;;;;;:::i;:::-;;:::i;11279:155::-;;;;;;;;;;-1:-1:-1;11279:155:0;;;;;:::i;:::-;;:::i;9134:28::-;;;;;;;;;;-1:-1:-1;9134:28:0;;;;-1:-1:-1;;;;;9134:28:0;;;9205:40;;;;;;;;;;-1:-1:-1;9205:40:0;;;;-1:-1:-1;;;9205:40:0;;;;;;9256:34;;;;;;;;;;-1:-1:-1;9256:34:0;;;;-1:-1:-1;;;9256:34:0;;;;;;11135:132;;;;;;;;;;-1:-1:-1;11135:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;11228:27:0;11200:4;11228:27;;;:18;:27;;;;;;;;;11135:132;17702:544;;;;;;;;;;-1:-1:-1;17702:544:0;;;;;:::i;:::-;;:::i;11446:142::-;;;;;;;;;;-1:-1:-1;11446:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;11543:33:0;11516:4;11543:33;;;:24;:33;;;;;;;;;11446:142;4253:135;;;;;;;;;;-1:-1:-1;4253:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;4358:18:0;4327:7;4358:18;;;:9;:18;;;;;;;4253:135;2590:160;;;;;;;;;;;;;:::i;8935:34::-;;;;;;;;;;;;;;;;10847:93;;;;;;;;;;;;;:::i;2323:95::-;;;;;;;;;;-1:-1:-1;2369:7:0;2400:6;-1:-1:-1;;;;;2400:6:0;2323:95;;8766:24;;;;;;;;;;-1:-1:-1;8766:24:0;;;;-1:-1:-1;;;;;8766:24:0;;;9032:36;;;;;;;;;;;;;;;;3888:112;;;;;;;;;;;;;:::i;5604:281::-;;;;;;;;;;-1:-1:-1;5604:281:0;;;;;:::i;:::-;;:::i;4400:187::-;;;;;;;;;;-1:-1:-1;4400:187:0;;;;;:::i;:::-;;:::i;9356:31::-;;;;;;;;;;;;;;;;11600:199;;;;;;;;;;-1:-1:-1;11600:199:0;;;;;:::i;:::-;;:::i;12475:185::-;;;;;;;;;;-1:-1:-1;12475:185:0;;;;;:::i;:::-;;:::i;9301:44::-;;;;;;;;;;;;;;;;10952:171;;;;;;;;;;-1:-1:-1;10952:171:0;;;;;:::i;:::-;;:::i;4599:159::-;;;;;;;;;;-1:-1:-1;4599:159:0;;;;;:::i;:::-;-1:-1:-1;;;;;4719:18:0;;;4688:7;4719:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4599:159;12302:161;;;;;;;;;;-1:-1:-1;12302:161:0;;;;;:::i;:::-;;:::i;8888:34::-;;;;;;;;;;;;;;;;2762:260;;;;;;;;;;-1:-1:-1;2762:260:0;;;;;:::i;:::-;;:::i;8984:36::-;;;;;;;;;;;;;;;;11811:196;;;;;;;;;;-1:-1:-1;11811:196:0;;;;;:::i;:::-;;:::i;3768:108::-;3822:13;3859:5;3852:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3768:108;:::o;4770:181::-;4853:4;4874:39;1924:10;4897:7;4906:6;4874:8;:39::i;:::-;-1:-1:-1;4935:4:0;4770:181;;;;;:::o;12019:100::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;;;;;;;;;12090:9:::1;:17:::0;;-1:-1:-1;;;;;;12090:17:0::1;-1:-1:-1::0;;;;;12090:17:0;;;::::1;::::0;;;::::1;::::0;;12019:100::o;4963:387::-;5119:4;5140:36;5150:6;5158:9;5169:6;5140:9;:36::i;:::-;5191:121;5200:6;1924:10;5222:89;5260:6;5222:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5222:19:0;;;;;;:11;:19;;;;;;;;1924:10;5222:33;;;;;;;;;;:37;:89::i;:::-;5191:8;:121::i;:::-;-1:-1:-1;5334:4:0;4963:387;;;;;:::o;5362:230::-;1924:10;5450:4;5503:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5503:34:0;;;;;;;;;;5450:4;;5471:83;;5494:7;;5503:50;;5542:10;5503:38;:50::i;12133:157::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;12263:15:::1;4099:2:::0;12263::::1;:15;:::i;:::-;12243:35;::::0;:17;:35:::1;:::i;:::-;12224:16;:54:::0;-1:-1:-1;12133:157:0:o;11279:155::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11381:33:0;;;::::1;;::::0;;;:24:::1;:33;::::0;;;;:41;;-1:-1:-1;;11381:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11279:155::o;17702:544::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;17831:7:::1;:14;17813:7;:14;:32;17805:82;;;::::0;-1:-1:-1;;;17805:82:0;;9365:2:1;17805:82:0::1;::::0;::::1;9347:21:1::0;9404:2;9384:18;;;9377:30;9443:34;9423:18;;;9416:62;-1:-1:-1;;;9494:18:1;;;9487:35;9539:19;;17805:82:0::1;9163:401:1::0;17805:82:0::1;17928:3;17910:7;:14;:21;;17902:89;;;::::0;-1:-1:-1;;;17902:89:0;;9771:2:1;17902:89:0::1;::::0;::::1;9753:21:1::0;9810:2;9790:18;;;9783:30;9849:34;9829:18;;;9822:62;9920:25;9900:18;;;9893:53;9963:19;;17902:89:0::1;9569:419:1::0;17902:89:0::1;18016:6;18011:224;18028:7;:14;18026:1;:16;18011:224;;;18072:14;18089:7;18097:1;18089:10;;;;;;;;:::i;:::-;;;;;;;18072:27;;18122:14;18158:10;4099:2:::0;;4012:101;18158:10:::1;18152:16;::::0;:2:::1;:16;:::i;:::-;18139:7;18147:1;18139:10;;;;;;;;:::i;:::-;;;;;;;:29;;;;:::i;:::-;18122:46;;18191:24;18200:6;18208;18191:8;:24::i;:::-;;18049:186;;18044:3;;;;;:::i;:::-;;;;18011:224;;;;17702:544:::0;;:::o;2590:160::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;2701:1:::1;2685:6:::0;;2664:40:::1;::::0;-1:-1:-1;;;;;2685:6:0;;::::1;::::0;2664:40:::1;::::0;2701:1;;2664:40:::1;2736:1;2719:19:::0;;-1:-1:-1;;;;;;2719:19:0::1;::::0;;2590:160::o;10847:93::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;10907:14:::1;:21:::0;;-1:-1:-1;;;;10907:21:0::1;-1:-1:-1::0;;;10907:21:0::1;::::0;;10847:93::o;3888:112::-;3944:13;3981:7;3974:14;;;;;:::i;5604:281::-;5697:4;5718:129;1924:10;5741:7;5750:96;5789:15;5750:96;;;;;;;;;;;;;;;;;1924:10;5750:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5750:34:0;;;;;;;;;;;;:38;:96::i;4400:187::-;4486:4;4507:42;1924:10;4531:9;4542:6;4507:9;:42::i;11600:199::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;11726:16:::1;:23:::0;;;;11764:16:::1;:23:::0;11600:199::o;12475:185::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;12558:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;12558:32:0::1;-1:-1:-1::0;;;;12558:32:0;;::::1;;::::0;;12610:38:::1;::::0;::::1;::::0;::::1;::::0;12582:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;12610:38:0::1;;;;;;;;12475:185:::0;:::o;10952:171::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11076:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;11076:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10952:171::o;12302:161::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;12435:16:::1;4099:2:::0;12435::::1;:16;:::i;:::-;12426:25;::::0;:6;:25:::1;:::i;:::-;12394:29;:57:::0;-1:-1:-1;12302:161:0:o;2762:260::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2855:22:0;::::1;2847:73;;;::::0;-1:-1:-1;;;2847:73:0;;10467:2:1;2847:73:0::1;::::0;::::1;10449:21:1::0;10506:2;10486:18;;;10479:30;10545:34;10525:18;;;10518:62;-1:-1:-1;;;10596:18:1;;;10589:36;10642:19;;2847:73:0::1;10265:402:1::0;2847:73:0::1;2961:6;::::0;;2940:38:::1;::::0;-1:-1:-1;;;;;2940:38:0;;::::1;::::0;2961:6;::::1;::::0;2940:38:::1;::::0;::::1;2993:6;:17:::0;;-1:-1:-1;;;;;;2993:17:0::1;-1:-1:-1::0;;;;;2993:17:0;;;::::1;::::0;;;::::1;::::0;;2762:260::o;11811:196::-;2369:7;2400:6;-1:-1:-1;;;;;2400:6:0;1924:10;2482:23;2474:68;;;;-1:-1:-1;;;2474:68:0;;;;;;;:::i;:::-;11936:15:::1;:22:::0;;;;11973:15:::1;:22:::0;11811:196::o;6940:416::-;-1:-1:-1;;;;;7096:19:0;;7088:68;;;;-1:-1:-1;;;7088:68:0;;10874:2:1;7088:68:0;;;10856:21:1;10913:2;10893:18;;;10886:30;10952:34;10932:18;;;10925:62;-1:-1:-1;;;11003:18:1;;;10996:34;11047:19;;7088:68:0;10672:400:1;7088:68:0;-1:-1:-1;;;;;7179:21:0;;7171:68;;;;-1:-1:-1;;;7171:68:0;;11279:2:1;7171:68:0;;;11261:21:1;11318:2;11298:18;;;11291:30;11357:34;11337:18;;;11330:62;-1:-1:-1;;;11408:18:1;;;11401:32;11450:19;;7171:68:0;11077:398:1;7171:68:0;-1:-1:-1;;;;;7256:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7312:32;;1595:25:1;;;7312:32:0;;1568:18:1;7312:32:0;;;;;;;;6940:416;;;:::o;12721:2652::-;-1:-1:-1;;;;;12873:18:0;;12865:68;;;;-1:-1:-1;;;12865:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12956:16:0;;12948:64;;;;-1:-1:-1;;;12948:64:0;;;;;;;:::i;:::-;13044:1;13035:6;:10;13027:71;;;;-1:-1:-1;;;13027:71:0;;12492:2:1;13027:71:0;;;12474:21:1;12531:2;12511:18;;;12504:30;12570:34;12550:18;;;12543:62;-1:-1:-1;;;12621:18:1;;;12614:46;12677:19;;13027:71:0;12290:412:1;13027:71:0;2369:7;2400:6;-1:-1:-1;;;;;13119:15:0;;;2400:6;;13119:15;;;;:34;;-1:-1:-1;13139:14:0;;-1:-1:-1;;;13139:14:0;;;;13138:15;13119:34;13115:131;;;13178:14;;-1:-1:-1;;;13178:14:0;;;;13170:60;;;;-1:-1:-1;;;13170:60:0;;12909:2:1;13170:60:0;;;12891:21:1;12948:2;12928:18;;;12921:30;12987:34;12967:18;;;12960:62;-1:-1:-1;;;13038:18:1;;;13031:31;13079:19;;13170:60:0;12707:397:1;13170:60:0;2369:7;2400:6;-1:-1:-1;;;;;13280:15:0;;;2400:6;;13280:15;;;;:51;;-1:-1:-1;;;;;;13312:19:0;;13326:4;13312:19;;13280:51;:86;;;;-1:-1:-1;;;;;;13348:18:0;;8833:42;13348:18;;13280:86;:122;;;;-1:-1:-1;13389:13:0;;-1:-1:-1;;;;;13383:19:0;;;13389:13;;13383:19;;13280:122;13262:425;;;-1:-1:-1;;;;;4358:18:0;;13429:22;4358:18;;;:9;:18;;;;;;;;;13508:24;:28;;;;;;;;;;:98;;-1:-1:-1;13589:16:0;;13562:23;13579:6;13562:14;:23;:::i;:::-;:43;;13508:98;13482:193;;;;-1:-1:-1;;;13482:193:0;;13441:2:1;13482:193:0;;;13423:21:1;13480:2;13460:18;;;13453:30;13519:34;13499:18;;;13492:62;-1:-1:-1;;;13570:18:1;;;13563:31;13611:19;;13482:193:0;13239:397:1;13482:193:0;13414:273;13262:425;13752:4;13703:28;4358:18;;;:9;:18;;;;;;13825:29;;13801:53;;;;;;;13891:57;;-1:-1:-1;13932:16:0;;-1:-1:-1;;;13932:16:0;;;;13931:17;13891:57;:99;;;;-1:-1:-1;13977:13:0;;-1:-1:-1;;;;;13969:21:0;;;13977:13;;13969:21;;13891:99;:141;;;;-1:-1:-1;14011:21:0;;-1:-1:-1;;;14011:21:0;;;;13891:141;13869:315;;;14090:29;;14067:52;;14138:30;14147:20;14138:8;:30::i;:::-;-1:-1:-1;;;;;14238:24:0;;14200:12;14238:24;;;:18;:24;;;;;;14215:4;;14238:24;;;:50;;-1:-1:-1;;;;;;14266:22:0;;;;;;:18;:22;;;;;;;;14238:50;14234:1128;;;14309:33;14325:4;14331:2;14335:6;14309:15;:33::i;:::-;-1:-1:-1;14371:5:0;14234:1128;;;14431:13;;-1:-1:-1;;;;;14431:13:0;;;14423:21;;;;14419:932;;14465:23;14491:36;14523:3;14491:27;14502:15;;14491:6;:10;;:27;;;;:::i;:::-;:31;;:36::i;:::-;14465:62;;14546:23;14572:36;14604:3;14572:27;14583:15;;14572:6;:10;;:27;;;;:::i;:36::-;14546:62;-1:-1:-1;14635:48:0;14646:36;:15;14546:62;14646:19;:36::i;:::-;14635:6;;:10;:48::i;:::-;14627:56;-1:-1:-1;14702:74:0;14718:4;14732;14739:36;:15;14759;14739:19;:36::i;:::-;14702:15;:74::i;:::-;14795:33;14811:4;14817:2;14821:6;14795:15;:33::i;:::-;14446:400;;14419:932;;;14862:13;;-1:-1:-1;;;;;14862:13:0;;;14856:19;;;;14852:499;;14896:23;14922:37;14955:3;14922:28;14933:16;;14922:6;:10;;:28;;;;:::i;:37::-;14896:63;;14978:23;15004:37;15037:3;15004:28;15015:16;;15004:6;:10;;:28;;;;:::i;14852:499::-;15302:33;15318:4;15324:2;15328:6;15302:15;:33::i;:::-;12850:2523;;;12721:2652;;;:::o;1317:226::-;1403:7;1472:12;1464:6;;;;1456:29;;;;-1:-1:-1;;;1456:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1511:5:0;;;1317:226::o;853:106::-;911:7;942:5;946:1;942;:5;:::i;:::-;935:12;853:106;-1:-1:-1;;;853:106:0:o;15385:1273::-;9656:16;:23;;-1:-1:-1;;;;9656:23:0;-1:-1:-1;;;9656:23:0;;;15518:16:::1;::::0;9656:23;;15498:46:::1;::::0;15540:3:::1;::::0;15498:37:::1;::::0;:15;;:19:::1;:37::i;:46::-;15469:75;;15563:23;15589:46;15631:3;15589:37;15609:16;;15589:15;:19;;:37;;;;:::i;:46::-;15563:72:::0;-1:-1:-1;15656:25:0::1;15684:36;15563:72:::0;15684:18;:36:::1;:::i;:::-;15656:64:::0;-1:-1:-1;15760:20:0;;;:46:::1;;-1:-1:-1::0;15784:22:0;;15760:46:::1;15757:60;;;15809:7;;;;;15757:60;15837:12;::::0;15971:1:::1;15951:17:::0;15912:36:::1;15930:18:::0;15912:15;:36:::1;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;15886:86:::0;-1:-1:-1;16009:51:0::1;16026:33;15886:86:::0;16026:15;:33:::1;:::i;:::-;16009:16;:51::i;:::-;16119:21;::::0;16098:18:::1;16295:20;16314:1;16295:18:::0;:20:::1;:::i;:::-;16274:42;::::0;:17;:42:::1;:::i;:::-;16242:28;16255:15:::0;16242:10;:28:::1;:::i;:::-;:75;;;;:::i;:::-;16216:101:::0;-1:-1:-1;16338:34:0::1;16216:101:::0;16338:34;::::1;:::i;:::-;;;16446:1;16428:15;:19;:42;;;;;16469:1;16451:15;:19;16428:42;16425:137;;;16494:46;16507:15;16524;16494:12;:46::i;:::-;16603:9;::::0;16595:51:::1;::::0;-1:-1:-1;;;;;16603:9:0;;::::1;::::0;16626:15;;16595:51:::1;::::0;;;16626:15;16603:9;16595:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;9694:1:0::1;-1:-1:-1::0;9710:16:0;:24;;-1:-1:-1;;;;9710:24:0;;;15385:1273::o;5897:617::-;-1:-1:-1;;;;;6057:20:0;;6049:70;;;;-1:-1:-1;;;6049:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6142:23:0;;6134:71;;;;-1:-1:-1;;;6134:71:0;;;;;;;:::i;:::-;6306;6328:6;6306:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6306:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;6286:17:0;;;;;;;:9;:17;;;;;;:91;;;;6415:20;;;;;;;:32;;6440:6;6415:24;:32::i;:::-;-1:-1:-1;;;;;6392:20:0;;;;;;;:9;:20;;;;;;;:55;;;;6467:35;;;;;;;;;;6495:6;1595:25:1;;1583:2;1568:18;;1449:177;1085:106:0;1143:7;1174:5;1178:1;1174;:5;:::i;1201:106::-;1259:7;1290:5;1294:1;1290;:5;:::i;969:106::-;1027:7;1058:5;1062:1;1058;:5;:::i;16677:547::-;16771:16;;;16785:1;16771:16;;;;;;;;16747:21;;16771:16;;;;;;;;;;-1:-1:-1;16771:16:0;16747:40;;16820:4;16802;16807:1;16802:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16802:23:0;;;:7;;;;;;;;;;:23;;;;16850:15;;:22;;;-1:-1:-1;;;16850:22:0;;;;:15;;;;;:20;;:22;;;;;16802:7;;16850:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16840:4;16845:1;16840:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16840:32:0;;;:7;;;;;;;;;:32;16919:15;;16887:62;;16904:4;;16919:15;16937:11;16887:8;:62::i;:::-;16964:15;;:248;;-1:-1:-1;;;16964:248:0;;-1:-1:-1;;;;;16964:15:0;;;;:66;;:248;;17049:11;;16964:15;;17127:4;;17158;;17182:15;;16964:248;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17236:454;17353:15;;17321:62;;17338:4;;-1:-1:-1;;;;;17353:15:0;17371:11;17321:8;:62::i;:::-;17398:15;;-1:-1:-1;;;;;17398:15:0;:31;17437:9;17474:4;17498:11;17398:15;;17622:7;2369;2400:6;-1:-1:-1;;;;;2400:6:0;;2323:95;17622:7;17398:280;;;;;;-1:-1:-1;;;;;;17398:280:0;;;-1:-1:-1;;;;;15806:15:1;;;17398:280:0;;;15788:34:1;15838:18;;;15831:34;;;;15881:18;;;15874:34;;;;15924:18;;;15917:34;15988:15;;;15967:19;;;15960:44;17648:15:0;16020:19:1;;;16013:35;15722:19;;17398:280:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17236:454;;:::o;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;622:70;567:131;:::o;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;1631:247::-;1690:6;1743:2;1731:9;1722:7;1718:23;1714:32;1711:52;;;1759:1;1756;1749:12;1711:52;1798:9;1785:23;1817:31;1842:5;1817:31;:::i;1883:456::-;1960:6;1968;1976;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;:::-;2153:5;-1:-1:-1;2210:2:1;2195:18;;2182:32;2223:33;2182:32;2223:33;:::i;:::-;1883:456;;2275:7;;-1:-1:-1;;;2329:2:1;2314:18;;;;2301:32;;1883:456::o;2533:180::-;2592:6;2645:2;2633:9;2624:7;2620:23;2616:32;2613:52;;;2661:1;2658;2651:12;2613:52;-1:-1:-1;2684:23:1;;2533:180;-1:-1:-1;2533:180:1:o;2718:160::-;2783:20;;2839:13;;2832:21;2822:32;;2812:60;;2868:1;2865;2858:12;2812:60;2718:160;;;:::o;2883:315::-;2948:6;2956;3009:2;2997:9;2988:7;2984:23;2980:32;2977:52;;;3025:1;3022;3015:12;2977:52;3064:9;3051:23;3083:31;3108:5;3083:31;:::i;:::-;3133:5;-1:-1:-1;3157:35:1;3188:2;3173:18;;3157:35;:::i;:::-;3147:45;;2883:315;;;;;:::o;3411:127::-;3472:10;3467:3;3463:20;3460:1;3453:31;3503:4;3500:1;3493:15;3527:4;3524:1;3517:15;3543:275;3614:2;3608:9;3679:2;3660:13;;-1:-1:-1;;3656:27:1;3644:40;;3714:18;3699:34;;3735:22;;;3696:62;3693:88;;;3761:18;;:::i;:::-;3797:2;3790:22;3543:275;;-1:-1:-1;3543:275:1:o;3823:183::-;3883:4;3916:18;3908:6;3905:30;3902:56;;;3938:18;;:::i;:::-;-1:-1:-1;3983:1:1;3979:14;3995:4;3975:25;;3823:183::o;4011:662::-;4065:5;4118:3;4111:4;4103:6;4099:17;4095:27;4085:55;;4136:1;4133;4126:12;4085:55;4172:6;4159:20;4198:4;4222:60;4238:43;4278:2;4238:43;:::i;:::-;4222:60;:::i;:::-;4316:15;;;4402:1;4398:10;;;;4386:23;;4382:32;;;4347:12;;;;4426:15;;;4423:35;;;4454:1;4451;4444:12;4423:35;4490:2;4482:6;4478:15;4502:142;4518:6;4513:3;4510:15;4502:142;;;4584:17;;4572:30;;4622:12;;;;4535;;4502:142;;;-1:-1:-1;4662:5:1;4011:662;-1:-1:-1;;;;;;4011:662:1:o;4678:1215::-;4796:6;4804;4857:2;4845:9;4836:7;4832:23;4828:32;4825:52;;;4873:1;4870;4863:12;4825:52;4913:9;4900:23;4942:18;4983:2;4975:6;4972:14;4969:34;;;4999:1;4996;4989:12;4969:34;5037:6;5026:9;5022:22;5012:32;;5082:7;5075:4;5071:2;5067:13;5063:27;5053:55;;5104:1;5101;5094:12;5053:55;5140:2;5127:16;5162:4;5186:60;5202:43;5242:2;5202:43;:::i;5186:60::-;5280:15;;;5362:1;5358:10;;;;5350:19;;5346:28;;;5311:12;;;;5386:19;;;5383:39;;;5418:1;5415;5408:12;5383:39;5442:11;;;;5462:217;5478:6;5473:3;5470:15;5462:217;;;5558:3;5545:17;5575:31;5600:5;5575:31;:::i;:::-;5619:18;;5495:12;;;;5657;;;;5462:217;;;5698:5;-1:-1:-1;;5741:18:1;;5728:32;;-1:-1:-1;;5772:16:1;;;5769:36;;;5801:1;5798;5791:12;5769:36;;5824:63;5879:7;5868:8;5857:9;5853:24;5824:63;:::i;:::-;5814:73;;;4678:1215;;;;;:::o;5898:248::-;5966:6;5974;6027:2;6015:9;6006:7;6002:23;5998:32;5995:52;;;6043:1;6040;6033:12;5995:52;-1:-1:-1;;6066:23:1;;;6136:2;6121:18;;;6108:32;;-1:-1:-1;5898:248:1:o;6151:180::-;6207:6;6260:2;6248:9;6239:7;6235:23;6231:32;6228:52;;;6276:1;6273;6266:12;6228:52;6299:26;6315:9;6299:26;:::i;6336:388::-;6404:6;6412;6465:2;6453:9;6444:7;6440:23;6436:32;6433:52;;;6481:1;6478;6471:12;6433:52;6520:9;6507:23;6539:31;6564:5;6539:31;:::i;:::-;6589:5;-1:-1:-1;6646:2:1;6631:18;;6618:32;6659:33;6618:32;6659:33;:::i;:::-;6711:7;6701:17;;;6336:388;;;;;:::o;6729:380::-;6808:1;6804:12;;;;6851;;;6872:61;;6926:4;6918:6;6914:17;6904:27;;6872:61;6979:2;6971:6;6968:14;6948:18;6945:38;6942:161;;7025:10;7020:3;7016:20;7013:1;7006:31;7060:4;7057:1;7050:15;7088:4;7085:1;7078:15;6942:161;;6729:380;;;:::o;7114:356::-;7316:2;7298:21;;;7335:18;;;7328:30;7394:34;7389:2;7374:18;;7367:62;7461:2;7446:18;;7114:356::o;7475:127::-;7536:10;7531:3;7527:20;7524:1;7517:31;7567:4;7564:1;7557:15;7591:4;7588:1;7581:15;7607:422;7696:1;7739:5;7696:1;7753:270;7774:7;7764:8;7761:21;7753:270;;;7833:4;7829:1;7825:6;7821:17;7815:4;7812:27;7809:53;;;7842:18;;:::i;:::-;7892:7;7882:8;7878:22;7875:55;;;7912:16;;;;7875:55;7991:22;;;;7951:15;;;;7753:270;;;7757:3;7607:422;;;;;:::o;8034:806::-;8083:5;8113:8;8103:80;;-1:-1:-1;8154:1:1;8168:5;;8103:80;8202:4;8192:76;;-1:-1:-1;8239:1:1;8253:5;;8192:76;8284:4;8302:1;8297:59;;;;8370:1;8365:130;;;;8277:218;;8297:59;8327:1;8318:10;;8341:5;;;8365:130;8402:3;8392:8;8389:17;8386:43;;;8409:18;;:::i;:::-;-1:-1:-1;;8465:1:1;8451:16;;8480:5;;8277:218;;8579:2;8569:8;8566:16;8560:3;8554:4;8551:13;8547:36;8541:2;8531:8;8528:16;8523:2;8517:4;8514:12;8510:35;8507:77;8504:159;;;-1:-1:-1;8616:19:1;;;8648:5;;8504:159;8695:34;8720:8;8714:4;8695:34;:::i;:::-;8765:6;8761:1;8757:6;8753:19;8744:7;8741:32;8738:58;;;8776:18;;:::i;:::-;8814:20;;8034:806;-1:-1:-1;;;8034:806:1:o;8845:140::-;8903:5;8932:47;8973:4;8963:8;8959:19;8953:4;8932:47;:::i;8990:168::-;9063:9;;;9094;;9111:15;;;9105:22;;9091:37;9081:71;;9132:18;;:::i;9993:127::-;10054:10;10049:3;10045:20;10042:1;10035:31;10085:4;10082:1;10075:15;10109:4;10106:1;10099:15;10125:135;10164:3;10185:17;;;10182:43;;10205:18;;:::i;:::-;-1:-1:-1;10252:1:1;10241:13;;10125:135::o;11480:401::-;11682:2;11664:21;;;11721:2;11701:18;;;11694:30;11760:34;11755:2;11740:18;;11733:62;-1:-1:-1;;;11826:2:1;11811:18;;11804:35;11871:3;11856:19;;11480:401::o;11886:399::-;12088:2;12070:21;;;12127:2;12107:18;;;12100:30;12166:34;12161:2;12146:18;;12139:62;-1:-1:-1;;;12232:2:1;12217:18;;12210:33;12275:3;12260:19;;11886:399::o;13109:125::-;13174:9;;;13195:10;;;13192:36;;;13208:18;;:::i;13641:217::-;13681:1;13707;13697:132;;13751:10;13746:3;13742:20;13739:1;13732:31;13786:4;13783:1;13776:15;13814:4;13811:1;13804:15;13697:132;-1:-1:-1;13843:9:1;;13641:217::o;13863:128::-;13930:9;;;13951:11;;;13948:37;;;13965:18;;:::i;14206:251::-;14276:6;14329:2;14317:9;14308:7;14304:23;14300:32;14297:52;;;14345:1;14342;14335:12;14297:52;14377:9;14371:16;14396:31;14421:5;14396:31;:::i;14462:980::-;14724:4;14772:3;14761:9;14757:19;14803:6;14792:9;14785:25;14829:2;14867:6;14862:2;14851:9;14847:18;14840:34;14910:3;14905:2;14894:9;14890:18;14883:31;14934:6;14969;14963:13;15000:6;14992;14985:22;15038:3;15027:9;15023:19;15016:26;;15077:2;15069:6;15065:15;15051:29;;15098:1;15108:195;15122:6;15119:1;15116:13;15108:195;;;15187:13;;-1:-1:-1;;;;;15183:39:1;15171:52;;15278:15;;;;15243:12;;;;15219:1;15137:9;15108:195;;;-1:-1:-1;;;;;;;15359:32:1;;;;15354:2;15339:18;;15332:60;-1:-1:-1;;;15423:3:1;15408:19;15401:35;15320:3;14462:980;-1:-1:-1;;;14462:980:1:o;16059:306::-;16147:6;16155;16163;16216:2;16204:9;16195:7;16191:23;16187:32;16184:52;;;16232:1;16229;16222:12;16184:52;16261:9;16255:16;16245:26;;16311:2;16300:9;16296:18;16290:25;16280:35;;16355:2;16344:9;16340:18;16334:25;16324:35;;16059:306;;;;;:::o

Swarm Source

ipfs://1df40c110aeceb10f8d101a471c1debd4d6c8e5a2e13493f02976b9a8aaa6228
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.