ETH Price: $2,393.33 (-1.47%)

Token

Vegeta Inu (VEGI)
 

Overview

Max Total Supply

1,000,000,000 VEGI

Holders

207

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
177,757 VEGI

Value
$0.00
0x21e1e2f0cf72a232ce15cf9505de8052507cf669
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:
VegetaInu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

interface IERC20 {
    function transfer(address _to, uint256 _amount) external returns (bool);
}

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

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

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

contract VegetaInu{
    string  private _name = 'Vegeta Inu';
    string  private _symbol = 'VEGI';
    uint256 private _totalSupply = 1000000000;
    uint8   private _decimals = 18;
    address private _uniswapRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; //0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; //Routerv2 Ethereum
    
    address public uniswapPair;
    address public devWallet;
    address public burnWallet = 0x000000000000000000000000000000000000dEaD;
    uint256 public maxWalletLimit;
    uint256 public maxTxLimit;
    uint8   public buyBurnFee;
    uint8   public buyDevFee;
    uint8   public buyLiquidityFee;
    uint8   public sellLiquidityFee;
    uint256 public addLiquidityAmount;
    
    address private _owner;
    bool    private _inSwap;
    IUniswapV2Router02 private _uniswapV2Router;
    
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;
    mapping (address => bool) private _excludedMaxWallet;
    mapping (address => bool) private _excludedMaxTransaction;
    mapping (address => bool) private _excludedFees;
    mapping (address => bool) private _blacklisted;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    receive () external payable {}
    
    modifier onlyOwner() {
        require(_owner == msg.sender, 'Only the owner can call this function!');
        _;
    }
    
    constructor () {
        emit OwnershipTransferred(_owner, msg.sender);
        _owner = msg.sender;
        _totalSupply = _totalSupply * 10**_decimals;
        _balances[_owner] = _totalSupply;
        
        _uniswapV2Router = IUniswapV2Router02(_uniswapRouter);
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        
        devWallet = _owner;

        maxWalletLimit = 30000000 * 10**_decimals;
        maxTxLimit = 30000000 * 10**_decimals;
        addLiquidityAmount = 20000000 * 10**_decimals;
        
        buyBurnFee = 1;
        buyDevFee = 2;
        buyLiquidityFee = 1;
        sellLiquidityFee = 7;
        
        setExcludedAll(address(this));
        setExcludedAll(_owner);
        setExcludedAll(uniswapPair);
        setExcludedAll(_uniswapRouter);
    }
    
    function setExcludedAll(address user) public virtual onlyOwner {
        setExcludedMaxTransaction(user, true);
        setExcludedMaxWallet(user, true);
        setExcludedFees(user, true);
    }
    
    function setInSwap(bool status) public virtual onlyOwner {
        _inSwap = status;
    }
    
    function setAddresses(address _burnWallet, address _devWallet) public virtual onlyOwner {
        burnWallet = _burnWallet;
        devWallet = _devWallet;
    }
    
    function setLimits(uint256 _maxWalletLimit, uint256 _maxTxLimit, uint256 _addLiquidityAmount) public virtual onlyOwner {
        maxWalletLimit = _maxWalletLimit * 10**_decimals;
        maxTxLimit = _maxTxLimit * 10**_decimals;
        addLiquidityAmount = _addLiquidityAmount * 10**_decimals;
    }
    
    function setFees(uint8 _buyBurnFee, uint8 _buyDevFee, uint8 _buyLiquidityFee, uint8 _sellLiquidityFee) public virtual onlyOwner {
        buyBurnFee = _buyBurnFee;
        buyDevFee = _buyDevFee;
        buyLiquidityFee = _buyLiquidityFee;
        sellLiquidityFee = _sellLiquidityFee;
    }
    
    function setExcludedMaxTransaction(address user, bool status) public virtual onlyOwner {
        _excludedMaxTransaction[user] = status;
    }
    
    function setExcludedMaxWallet(address user, bool status) public virtual onlyOwner {
        _excludedMaxWallet[user] = status;
    }
    
    function setExcludedFees(address user, bool status) public virtual onlyOwner {
        _excludedFees[user] = status;
    }
    
    function setBlacklistWallet(address user, bool status) public virtual onlyOwner {
        _blacklisted[user] = status;
    }
    
    
    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }
    
    function decimals() public view returns (uint8) {
        return _decimals;
    }
    
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }
    
    function getOwner() public view returns (address) {
        return _owner;
    }
    
    function getInSwapStatus() public view returns (bool) {
        return _inSwap;
    }
    
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(!_blacklisted[sender] && !_blacklisted[recipient], 'Sender or recipient is blacklisted!');
        
        if(!_excludedMaxTransaction[sender]) {
            require(amount <= maxTxLimit, 'Exceeds max transaction limit!');
        }
        
        if(!_excludedMaxWallet[recipient]) {
            require(balanceOf(recipient) + amount <= maxWalletLimit, 'Exceeds max wallet limit!');
        }
        
        uint256 senderBalance = balanceOf(sender);
        require(senderBalance >= amount, 'Amount exceeds sender\'s balance!');
        _balances[sender] = senderBalance - amount;
        
        
        if(sender == uniswapPair && !_excludedFees[recipient]) {
            uint256 burnAmount = amount * buyBurnFee / 100;
            _balances[burnWallet] += burnAmount;
            emit Transfer(sender, burnWallet, burnAmount);
            
            uint256 devAmount = amount * buyDevFee / 100;
            _balances[devWallet] += devAmount;
            emit Transfer(sender, devWallet, devAmount);
            
            uint256 liquidityAmount = amount * buyLiquidityFee / 100;
            _balances[address(this)] += liquidityAmount;
            emit Transfer(sender, address(this), liquidityAmount);
            
            amount -= burnAmount + devAmount + liquidityAmount;
        }
        
        else if (recipient == uniswapPair && !_excludedFees[sender]) {
            uint256 liquidityAmount = amount * sellLiquidityFee / 100;
            _balances[address(this)] += liquidityAmount;
            emit Transfer(recipient, address(this), liquidityAmount);
            amount -= liquidityAmount;
            
            swapAddLiquidity();
        }
        
        _balances[recipient] += amount;
        
        emit Transfer(sender, recipient, amount);
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 amount) internal virtual {
        _approve(address(this), address(_uniswapRouter), tokenAmount);
        _uniswapV2Router.addLiquidityETH{value: amount}(address(this), tokenAmount, 0, 0, address(this), block.timestamp);
    }
    
    function swapTokensForEth(uint256 amount) internal virtual {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this), _uniswapRouter, amount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount, 0, path, address(this), block.timestamp);
    }
    
    function swapAddLiquidity() internal virtual {
        uint256 tokenBalance = balanceOf(address(this));
        if(!_inSwap && tokenBalance >= addLiquidityAmount) {
            _inSwap = true;
            
            uint256 sellAmount = tokenBalance;
            
            uint256 sellHalf = sellAmount / 2;

            uint256 initialEth = address(this).balance;
            swapTokensForEth(sellHalf);
            
            uint256 receivedEth = address(this).balance - initialEth;
            addLiquidity(sellAmount - sellHalf, receivedEth);
            
            _inSwap = false;
        }
    }
    
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), 'Wallet address can not be the zero address!');
        require(spender != address(0), 'Spender can not be the zero address!');
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function transfer(address recipient, uint256 amount) public virtual returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    
    function transferFrom(address sender, address recipient, uint256 amount) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, 'Amount exceeds allowance!');
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, currentAllowance - amount);
        return true;
    }
    
    function approve(address spender, uint256 amount) public virtual returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    
    function allowance(address owner, address spender) public view virtual returns (uint256) {
        return _allowances[owner][spender];
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, 'Decreased allowance below zero!');
        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), 'Owner can not be the zero address!');
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    
    function withdraw(uint256 amount) public payable onlyOwner returns (bool) {
        require(amount <= address(this).balance, 'Withdrawal amount exceeds balance!');
        payable(msg.sender).transfer(amount);
        return true;
    }
    
    function withdrawToken(address tokenContract, uint256 amount) public virtual onlyOwner {
        IERC20 _tokenContract = IERC20(tokenContract);
        _tokenContract.transfer(msg.sender, 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":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":"addLiquidityAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"burnWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"getInSwapStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_burnWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBlacklistWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"setExcludedAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludedFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludedMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludedMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyBurnFee","type":"uint8"},{"internalType":"uint8","name":"_buyDevFee","type":"uint8"},{"internalType":"uint8","name":"_buyLiquidityFee","type":"uint8"},{"internalType":"uint8","name":"_sellLiquidityFee","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setInSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletLimit","type":"uint256"},{"internalType":"uint256","name":"_maxTxLimit","type":"uint256"},{"internalType":"uint256","name":"_addLiquidityAmount","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600a81526020017f56656765746120496e7500000000000000000000000000000000000000000000815250600090805190602001906200005192919062000af9565b506040518060400160405280600481526020017f5645474900000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f92919062000af9565b50633b9aca006002556012600360006101000a81548160ff021916908360ff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200016957600080fd5b503373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a333600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a62000245919062000ce5565b60025462000254919062000e22565b600281905550600254600e6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038e57600080fd5b505afa158015620003a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c9919062000bc0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044e57600080fd5b505afa15801562000463573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000489919062000bc0565b6040518363ffffffff1660e01b8152600401620004a892919062000c2a565b602060405180830381600087803b158015620004c357600080fd5b505af1158015620004d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fe919062000bc0565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620005bf919062000ce5565b6301c9c380620005d0919062000e22565b600781905550600360009054906101000a900460ff16600a620005f4919062000ce5565b6301c9c38062000605919062000e22565b600881905550600360009054906101000a900460ff16600a62000629919062000ce5565b6301312d006200063a919062000e22565b600a819055506001600960006101000a81548160ff021916908360ff1602179055506002600960016101000a81548160ff021916908360ff1602179055506001600960026101000a81548160ff021916908360ff1602179055506007600960036101000a81548160ff021916908360ff160217905550620006c1306200076060201b60201c565b620006f4600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200076060201b60201c565b62000727600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200076060201b60201c565b6200075a600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200076060201b60201c565b62000fdd565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007f3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007ea9062000c57565b60405180910390fd5b620008068160016200082f60201b60201c565b620008198160016200091d60201b60201c565b6200082c81600162000a0b60201b60201c565b50565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620008c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008b99062000c57565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620009b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009a79062000c57565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a959062000c57565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b82805462000b079062000ece565b90600052602060002090601f01602090048101928262000b2b576000855562000b77565b82601f1062000b4657805160ff191683800117855562000b77565b8280016001018555821562000b77579182015b8281111562000b7657825182559160200191906001019062000b59565b5b50905062000b86919062000b8a565b5090565b5b8082111562000ba557600081600090555060010162000b8b565b5090565b60008151905062000bba8162000fc3565b92915050565b60006020828403121562000bd95762000bd862000f62565b5b600062000be98482850162000ba9565b91505092915050565b62000bfd8162000e83565b82525050565b600062000c1260268362000c79565b915062000c1f8262000f74565b604082019050919050565b600060408201905062000c41600083018562000bf2565b62000c50602083018462000bf2565b9392505050565b6000602082019050818103600083015262000c728162000c03565b9050919050565b600082825260208201905092915050565b6000808291508390505b600185111562000cdc5780860481111562000cb45762000cb362000f04565b5b600185161562000cc45780820291505b808102905062000cd48562000f67565b945062000c94565b94509492505050565b600062000cf28262000eb7565b915062000cff8362000ec1565b925062000d2e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d36565b905092915050565b60008262000d48576001905062000e1b565b8162000d58576000905062000e1b565b816001811462000d71576002811462000d7c5762000db2565b600191505062000e1b565b60ff84111562000d915762000d9062000f04565b5b8360020a91508482111562000dab5762000daa62000f04565b5b5062000e1b565b5060208310610133831016604e8410600b841016171562000dec5782820a90508381111562000de65762000de562000f04565b5b62000e1b565b62000dfb848484600162000c8a565b9250905081840481111562000e155762000e1462000f04565b5b81810290505b9392505050565b600062000e2f8262000eb7565b915062000e3c8362000eb7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e785762000e7762000f04565b5b828202905092915050565b600062000e908262000e97565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000ee757607f821691505b6020821081141562000efe5762000efd62000f33565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b7f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60008201527f6374696f6e210000000000000000000000000000000000000000000000000000602082015250565b62000fce8162000e83565b811462000fda57600080fd5b50565b613bda8062000fed6000396000f3fe6080604052600436106102135760003560e01c8063893d20e811610118578063b06b69b6116100a0578063dd62ed3e1161006f578063dd62ed3e1461079d578063e71dc3f5146107da578063f11a24d314610805578063f2fde38b14610830578063f6374342146108595761021a565b8063b06b69b6146106f7578063b41c9eda14610720578063b7b31c9c14610749578063c816841b146107725761021a565b80639c3b4fdc116100e75780639c3b4fdc146106005780639e281a981461062b5780639faa7cfd14610654578063a457c2d71461067d578063a9059cbb146106ba5761021a565b8063893d20e8146105565780638ea5220f1461058157806390107afe146105ac57806395d89b41146105d55761021a565b8063395093511161019b5780636db41ce91161016a5780636db41ce91461048357806370a08231146104ac578063715018a6146104e95780637af050ca146105005780638036d5901461052b5761021a565b806339509351146103c757806354869f121461040457806363ce099f1461042d57806366a88d96146104585761021a565b8063189ae5f2116101e2578063189ae5f2146102dd5780631b58f3fb1461030657806323b872dd1461032f5780632e1a7d4d1461036c578063313ce5671461039c5761021a565b8063062287491461021f57806306fdde031461024a578063095ea7b31461027557806318160ddd146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b50610234610884565b604051610241919061311a565b60405180910390f35b34801561025657600080fd5b5061025f6108aa565b60405161026c91906131da565b60405180910390f35b34801561028157600080fd5b5061029c60048036038101906102979190612cbc565b61093c565b6040516102a991906131bf565b60405180910390f35b3480156102be57600080fd5b506102c7610953565b6040516102d4919061335c565b60405180910390f35b3480156102e957600080fd5b5061030460048036038101906102ff9190612d83565b61095d565b005b34801561031257600080fd5b5061032d60048036038101906103289190612c7c565b610a79565b005b34801561033b57600080fd5b5061035660048036038101906103519190612c29565b610b64565b60405161036391906131bf565b60405180910390f35b61038660048036038101906103819190612d56565b610c56565b60405161039391906131bf565b60405180910390f35b3480156103a857600080fd5b506103b1610d7b565b6040516103be91906133d1565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190612cbc565b610d92565b6040516103fb91906131bf565b60405180910390f35b34801561041057600080fd5b5061042b60048036038101906104269190612b8f565b610e30565b005b34801561043957600080fd5b50610442610ee4565b60405161044f919061335c565b60405180910390f35b34801561046457600080fd5b5061046d610eea565b60405161047a919061335c565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a59190612c7c565b610ef0565b005b3480156104b857600080fd5b506104d360048036038101906104ce9190612b8f565b610fdb565b6040516104e0919061335c565b60405180910390f35b3480156104f557600080fd5b506104fe611024565b005b34801561050c57600080fd5b50610515611175565b60405161052291906131bf565b60405180910390f35b34801561053757600080fd5b5061054061118c565b60405161054d919061335c565b60405180910390f35b34801561056257600080fd5b5061056b611192565b604051610578919061311a565b60405180910390f35b34801561058d57600080fd5b506105966111bc565b6040516105a3919061311a565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce9190612be9565b6111e2565b005b3480156105e157600080fd5b506105ea6112f8565b6040516105f791906131da565b60405180910390f35b34801561060c57600080fd5b5061061561138a565b60405161062291906133d1565b60405180910390f35b34801561063757600080fd5b50610652600480360381019061064d9190612cbc565b61139d565b005b34801561066057600080fd5b5061067b60048036038101906106769190612e29565b6114c5565b005b34801561068957600080fd5b506106a4600480360381019061069f9190612cbc565b6115c7565b6040516106b191906131bf565b60405180910390f35b3480156106c657600080fd5b506106e160048036038101906106dc9190612cbc565b6116ad565b6040516106ee91906131bf565b60405180910390f35b34801561070357600080fd5b5061071e60048036038101906107199190612c7c565b6116c4565b005b34801561072c57600080fd5b5061074760048036038101906107429190612c7c565b6117af565b005b34801561075557600080fd5b50610770600480360381019061076b9190612cfc565b61189a565b005b34801561077e57600080fd5b50610787611947565b604051610794919061311a565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf9190612be9565b61196d565b6040516107d1919061335c565b60405180910390f35b3480156107e657600080fd5b506107ef6119f4565b6040516107fc91906133d1565b60405180910390f35b34801561081157600080fd5b5061081a611a07565b60405161082791906133d1565b60405180910390f35b34801561083c57600080fd5b5061085760048036038101906108529190612b8f565b611a1a565b005b34801561086557600080fd5b5061086e611bda565b60405161087b91906133d1565b60405180910390f35b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600080546108b990613761565b80601f01602080910402602001604051908101604052809291908181526020018280546108e590613761565b80156109325780601f1061090757610100808354040283529160200191610932565b820191906000526020600020905b81548152906001019060200180831161091557829003601f168201915b5050505050905090565b6000610949338484611bed565b6001905092915050565b6000600254905090565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e4906131fc565b60405180910390fd5b600360009054906101000a900460ff16600a610a09919061351b565b83610a149190613639565b600781905550600360009054906101000a900460ff16600a610a36919061351b565b82610a419190613639565b600881905550600360009054906101000a900460ff16600a610a63919061351b565b81610a6e9190613639565b600a81905550505050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b00906131fc565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c20906132bc565b60405180910390fd5b610c34858585611db8565b610c4a85338584610c459190613693565b611bed565b60019150509392505050565b60003373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdf906131fc565b60405180910390fd5b47821115610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d229061321c565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610d71573d6000803e3d6000fd5b5060019050919050565b6000600360009054906101000a900460ff16905090565b6000610e26338484600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e219190613441565b611bed565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb7906131fc565b60405180910390fd5b610ecb8160016116c4565b610ed6816001610a79565b610ee1816001610ef0565b50565b600a5481565b60075481565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f77906131fc565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab906131fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60149054906101000a900460ff16905090565b60085481565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611272576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611269906131fc565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60606001805461130790613761565b80601f016020809104026020016040519081016040528092919081815260200182805461133390613761565b80156113805780601f1061135557610100808354040283529160200191611380565b820191906000526020600020905b81548152906001019060200180831161136357829003601f168201915b5050505050905090565b600960019054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461142d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611424906131fc565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161146d929190613135565b602060405180830381600087803b15801561148757600080fd5b505af115801561149b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bf9190612d29565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c906131fc565b60405180910390fd5b83600960006101000a81548160ff021916908360ff16021790555082600960016101000a81548160ff021916908360ff16021790555081600960026101000a81548160ff021916908360ff16021790555080600960036101000a81548160ff021916908360ff16021790555050505050565b600080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561168c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116839061327c565b60405180910390fd5b6116a23385858461169d9190613693565b611bed565b600191505092915050565b60006116ba338484611db8565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174b906131fc565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461183f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611836906131fc565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461192a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611921906131fc565b60405180910390fd5b80600b60146101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900460ff1681565b600960029054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa1906131fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b119061325c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960039054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c549061329c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc49061333c565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611dab919061335c565b60405180910390a3505050565b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e5c5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e92906132dc565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f3257600854811115611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f28906132fc565b60405180910390fd5b5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fdc5760075481611f9084610fdb565b611f9a9190613441565b1115611fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd29061323c565b60405180910390fd5b5b6000611fe784610fdb565b90508181101561202c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120239061331c565b60405180910390fd5b81816120389190613693565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121225750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124965760006064600960009054906101000a900460ff1660ff16846121499190613639565b6121539190613497565b905080600e6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121c69190613441565b92505081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161224c919061335c565b60405180910390a360006064600960019054906101000a900460ff1660ff16856122769190613639565b6122809190613497565b905080600e6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122f39190613441565b92505081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612379919061335c565b60405180910390a360006064600960029054906101000a900460ff1660ff16866123a39190613639565b6123ad9190613497565b905080600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123fe9190613441565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612462919061335c565b60405180910390a38082846124779190613441565b6124819190613441565b8561248c9190613693565b9450505050612644565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561253d5750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126435760006064600960039054906101000a900460ff1660ff16846125649190613639565b61256e9190613497565b905080600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125bf9190613441565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612623919061335c565b60405180910390a380836126379190613693565b9250612641612705565b505b5b81600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126939190613441565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126f7919061335c565b60405180910390a350505050565b600061271030610fdb565b9050600b60149054906101000a900460ff161580156127315750600a548110155b156127ba576001600b60146101000a81548160ff021916908315150217905550600081905060006002826127659190613497565b90506000479050612775826127bd565b600081476127839190613693565b905061279a83856127949190613693565b82612a0f565b6000600b60146101000a81548160ff021916908315150217905550505050505b50565b6000600267ffffffffffffffff8111156127da576127d961384f565b5b6040519080825280602002602001820160405280156128085781602001602082028036833780820191505090505b50905030816000815181106128205761281f613820565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156128c257600080fd5b505afa1580156128d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fa9190612bbc565b8160018151811061290e5761290d613820565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297530600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bed565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016129d9959493929190613377565b600060405180830381600087803b1580156129f357600080fd5b505af1158015612a07573d6000803e3d6000fd5b505050505050565b612a3c30600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bed565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b8152600401612aa39695949392919061315e565b6060604051808303818588803b158015612abc57600080fd5b505af1158015612ad0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612af59190612dd6565b5050505050565b600081359050612b0b81613b48565b92915050565b600081519050612b2081613b48565b92915050565b600081359050612b3581613b5f565b92915050565b600081519050612b4a81613b5f565b92915050565b600081359050612b5f81613b76565b92915050565b600081519050612b7481613b76565b92915050565b600081359050612b8981613b8d565b92915050565b600060208284031215612ba557612ba461387e565b5b6000612bb384828501612afc565b91505092915050565b600060208284031215612bd257612bd161387e565b5b6000612be084828501612b11565b91505092915050565b60008060408385031215612c0057612bff61387e565b5b6000612c0e85828601612afc565b9250506020612c1f85828601612afc565b9150509250929050565b600080600060608486031215612c4257612c4161387e565b5b6000612c5086828701612afc565b9350506020612c6186828701612afc565b9250506040612c7286828701612b50565b9150509250925092565b60008060408385031215612c9357612c9261387e565b5b6000612ca185828601612afc565b9250506020612cb285828601612b26565b9150509250929050565b60008060408385031215612cd357612cd261387e565b5b6000612ce185828601612afc565b9250506020612cf285828601612b50565b9150509250929050565b600060208284031215612d1257612d1161387e565b5b6000612d2084828501612b26565b91505092915050565b600060208284031215612d3f57612d3e61387e565b5b6000612d4d84828501612b3b565b91505092915050565b600060208284031215612d6c57612d6b61387e565b5b6000612d7a84828501612b50565b91505092915050565b600080600060608486031215612d9c57612d9b61387e565b5b6000612daa86828701612b50565b9350506020612dbb86828701612b50565b9250506040612dcc86828701612b50565b9150509250925092565b600080600060608486031215612def57612dee61387e565b5b6000612dfd86828701612b65565b9350506020612e0e86828701612b65565b9250506040612e1f86828701612b65565b9150509250925092565b60008060008060808587031215612e4357612e4261387e565b5b6000612e5187828801612b7a565b9450506020612e6287828801612b7a565b9350506040612e7387828801612b7a565b9250506060612e8487828801612b7a565b91505092959194509250565b6000612e9c8383612ea8565b60208301905092915050565b612eb1816136c7565b82525050565b612ec0816136c7565b82525050565b6000612ed1826133fc565b612edb818561341f565b9350612ee6836133ec565b8060005b83811015612f17578151612efe8882612e90565b9750612f0983613412565b925050600181019050612eea565b5085935050505092915050565b612f2d816136d9565b82525050565b612f3c8161371c565b82525050565b6000612f4d82613407565b612f578185613430565b9350612f6781856020860161372e565b612f7081613883565b840191505092915050565b6000612f88602683613430565b9150612f93826138a1565b604082019050919050565b6000612fab602283613430565b9150612fb6826138f0565b604082019050919050565b6000612fce601983613430565b9150612fd98261393f565b602082019050919050565b6000612ff1602283613430565b9150612ffc82613968565b604082019050919050565b6000613014601f83613430565b915061301f826139b7565b602082019050919050565b6000613037602b83613430565b9150613042826139e0565b604082019050919050565b600061305a601983613430565b915061306582613a2f565b602082019050919050565b600061307d602383613430565b915061308882613a58565b604082019050919050565b60006130a0601e83613430565b91506130ab82613aa7565b602082019050919050565b60006130c3602083613430565b91506130ce82613ad0565b602082019050919050565b60006130e6602483613430565b91506130f182613af9565b604082019050919050565b61310581613705565b82525050565b6131148161370f565b82525050565b600060208201905061312f6000830184612eb7565b92915050565b600060408201905061314a6000830185612eb7565b61315760208301846130fc565b9392505050565b600060c0820190506131736000830189612eb7565b61318060208301886130fc565b61318d6040830187612f33565b61319a6060830186612f33565b6131a76080830185612eb7565b6131b460a08301846130fc565b979650505050505050565b60006020820190506131d46000830184612f24565b92915050565b600060208201905081810360008301526131f48184612f42565b905092915050565b6000602082019050818103600083015261321581612f7b565b9050919050565b6000602082019050818103600083015261323581612f9e565b9050919050565b6000602082019050818103600083015261325581612fc1565b9050919050565b6000602082019050818103600083015261327581612fe4565b9050919050565b6000602082019050818103600083015261329581613007565b9050919050565b600060208201905081810360008301526132b58161302a565b9050919050565b600060208201905081810360008301526132d58161304d565b9050919050565b600060208201905081810360008301526132f581613070565b9050919050565b6000602082019050818103600083015261331581613093565b9050919050565b60006020820190508181036000830152613335816130b6565b9050919050565b60006020820190508181036000830152613355816130d9565b9050919050565b600060208201905061337160008301846130fc565b92915050565b600060a08201905061338c60008301886130fc565b6133996020830187612f33565b81810360408301526133ab8186612ec6565b90506133ba6060830185612eb7565b6133c760808301846130fc565b9695505050505050565b60006020820190506133e6600083018461310b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061344c82613705565b915061345783613705565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561348c5761348b613793565b5b828201905092915050565b60006134a282613705565b91506134ad83613705565b9250826134bd576134bc6137c2565b5b828204905092915050565b6000808291508390505b6001851115613512578086048111156134ee576134ed613793565b5b60018516156134fd5780820291505b808102905061350b85613894565b94506134d2565b94509492505050565b600061352682613705565b91506135318361370f565b925061355e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613566565b905092915050565b6000826135765760019050613632565b816135845760009050613632565b816001811461359a57600281146135a4576135d3565b6001915050613632565b60ff8411156135b6576135b5613793565b5b8360020a9150848211156135cd576135cc613793565b5b50613632565b5060208310610133831016604e8410600b84101617156136085782820a90508381111561360357613602613793565b5b613632565b61361584848460016134c8565b9250905081840481111561362c5761362b613793565b5b81810290505b9392505050565b600061364482613705565b915061364f83613705565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561368857613687613793565b5b828202905092915050565b600061369e82613705565b91506136a983613705565b9250828210156136bc576136bb613793565b5b828203905092915050565b60006136d2826136e5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061372782613705565b9050919050565b60005b8381101561374c578082015181840152602081019050613731565b8381111561375b576000848401525b50505050565b6000600282049050600182168061377957607f821691505b6020821081141561378d5761378c6137f1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60008201527f6374696f6e210000000000000000000000000000000000000000000000000000602082015250565b7f5769746864726177616c20616d6f756e7420657863656564732062616c616e6360008201527f6521000000000000000000000000000000000000000000000000000000000000602082015250565b7f45786365656473206d61782077616c6c6574206c696d69742100000000000000600082015250565b7f4f776e65722063616e206e6f7420626520746865207a65726f2061646472657360008201527f7321000000000000000000000000000000000000000000000000000000000000602082015250565b7f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f2100600082015250565b7f57616c6c657420616464726573732063616e206e6f7420626520746865207a6560008201527f726f206164647265737321000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206578636565647320616c6c6f77616e63652100000000000000600082015250565b7f53656e646572206f7220726563697069656e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f45786365656473206d6178207472616e73616374696f6e206c696d6974210000600082015250565b7f416d6f756e7420657863656564732073656e64657227732062616c616e636521600082015250565b7f5370656e6465722063616e206e6f7420626520746865207a65726f206164647260008201527f6573732100000000000000000000000000000000000000000000000000000000602082015250565b613b51816136c7565b8114613b5c57600080fd5b50565b613b68816136d9565b8114613b7357600080fd5b50565b613b7f81613705565b8114613b8a57600080fd5b50565b613b968161370f565b8114613ba157600080fd5b5056fea2646970667358221220e840dd2a7cdbf59ad774825eca4be2c852e7a9f131a14fc3c4e7ae95effe261a64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102135760003560e01c8063893d20e811610118578063b06b69b6116100a0578063dd62ed3e1161006f578063dd62ed3e1461079d578063e71dc3f5146107da578063f11a24d314610805578063f2fde38b14610830578063f6374342146108595761021a565b8063b06b69b6146106f7578063b41c9eda14610720578063b7b31c9c14610749578063c816841b146107725761021a565b80639c3b4fdc116100e75780639c3b4fdc146106005780639e281a981461062b5780639faa7cfd14610654578063a457c2d71461067d578063a9059cbb146106ba5761021a565b8063893d20e8146105565780638ea5220f1461058157806390107afe146105ac57806395d89b41146105d55761021a565b8063395093511161019b5780636db41ce91161016a5780636db41ce91461048357806370a08231146104ac578063715018a6146104e95780637af050ca146105005780638036d5901461052b5761021a565b806339509351146103c757806354869f121461040457806363ce099f1461042d57806366a88d96146104585761021a565b8063189ae5f2116101e2578063189ae5f2146102dd5780631b58f3fb1461030657806323b872dd1461032f5780632e1a7d4d1461036c578063313ce5671461039c5761021a565b8063062287491461021f57806306fdde031461024a578063095ea7b31461027557806318160ddd146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b50610234610884565b604051610241919061311a565b60405180910390f35b34801561025657600080fd5b5061025f6108aa565b60405161026c91906131da565b60405180910390f35b34801561028157600080fd5b5061029c60048036038101906102979190612cbc565b61093c565b6040516102a991906131bf565b60405180910390f35b3480156102be57600080fd5b506102c7610953565b6040516102d4919061335c565b60405180910390f35b3480156102e957600080fd5b5061030460048036038101906102ff9190612d83565b61095d565b005b34801561031257600080fd5b5061032d60048036038101906103289190612c7c565b610a79565b005b34801561033b57600080fd5b5061035660048036038101906103519190612c29565b610b64565b60405161036391906131bf565b60405180910390f35b61038660048036038101906103819190612d56565b610c56565b60405161039391906131bf565b60405180910390f35b3480156103a857600080fd5b506103b1610d7b565b6040516103be91906133d1565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190612cbc565b610d92565b6040516103fb91906131bf565b60405180910390f35b34801561041057600080fd5b5061042b60048036038101906104269190612b8f565b610e30565b005b34801561043957600080fd5b50610442610ee4565b60405161044f919061335c565b60405180910390f35b34801561046457600080fd5b5061046d610eea565b60405161047a919061335c565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a59190612c7c565b610ef0565b005b3480156104b857600080fd5b506104d360048036038101906104ce9190612b8f565b610fdb565b6040516104e0919061335c565b60405180910390f35b3480156104f557600080fd5b506104fe611024565b005b34801561050c57600080fd5b50610515611175565b60405161052291906131bf565b60405180910390f35b34801561053757600080fd5b5061054061118c565b60405161054d919061335c565b60405180910390f35b34801561056257600080fd5b5061056b611192565b604051610578919061311a565b60405180910390f35b34801561058d57600080fd5b506105966111bc565b6040516105a3919061311a565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce9190612be9565b6111e2565b005b3480156105e157600080fd5b506105ea6112f8565b6040516105f791906131da565b60405180910390f35b34801561060c57600080fd5b5061061561138a565b60405161062291906133d1565b60405180910390f35b34801561063757600080fd5b50610652600480360381019061064d9190612cbc565b61139d565b005b34801561066057600080fd5b5061067b60048036038101906106769190612e29565b6114c5565b005b34801561068957600080fd5b506106a4600480360381019061069f9190612cbc565b6115c7565b6040516106b191906131bf565b60405180910390f35b3480156106c657600080fd5b506106e160048036038101906106dc9190612cbc565b6116ad565b6040516106ee91906131bf565b60405180910390f35b34801561070357600080fd5b5061071e60048036038101906107199190612c7c565b6116c4565b005b34801561072c57600080fd5b5061074760048036038101906107429190612c7c565b6117af565b005b34801561075557600080fd5b50610770600480360381019061076b9190612cfc565b61189a565b005b34801561077e57600080fd5b50610787611947565b604051610794919061311a565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf9190612be9565b61196d565b6040516107d1919061335c565b60405180910390f35b3480156107e657600080fd5b506107ef6119f4565b6040516107fc91906133d1565b60405180910390f35b34801561081157600080fd5b5061081a611a07565b60405161082791906133d1565b60405180910390f35b34801561083c57600080fd5b5061085760048036038101906108529190612b8f565b611a1a565b005b34801561086557600080fd5b5061086e611bda565b60405161087b91906133d1565b60405180910390f35b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600080546108b990613761565b80601f01602080910402602001604051908101604052809291908181526020018280546108e590613761565b80156109325780601f1061090757610100808354040283529160200191610932565b820191906000526020600020905b81548152906001019060200180831161091557829003601f168201915b5050505050905090565b6000610949338484611bed565b6001905092915050565b6000600254905090565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e4906131fc565b60405180910390fd5b600360009054906101000a900460ff16600a610a09919061351b565b83610a149190613639565b600781905550600360009054906101000a900460ff16600a610a36919061351b565b82610a419190613639565b600881905550600360009054906101000a900460ff16600a610a63919061351b565b81610a6e9190613639565b600a81905550505050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b00906131fc565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c20906132bc565b60405180910390fd5b610c34858585611db8565b610c4a85338584610c459190613693565b611bed565b60019150509392505050565b60003373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdf906131fc565b60405180910390fd5b47821115610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d229061321c565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610d71573d6000803e3d6000fd5b5060019050919050565b6000600360009054906101000a900460ff16905090565b6000610e26338484600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e219190613441565b611bed565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb7906131fc565b60405180910390fd5b610ecb8160016116c4565b610ed6816001610a79565b610ee1816001610ef0565b50565b600a5481565b60075481565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f77906131fc565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab906131fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60149054906101000a900460ff16905090565b60085481565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611272576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611269906131fc565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60606001805461130790613761565b80601f016020809104026020016040519081016040528092919081815260200182805461133390613761565b80156113805780601f1061135557610100808354040283529160200191611380565b820191906000526020600020905b81548152906001019060200180831161136357829003601f168201915b5050505050905090565b600960019054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461142d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611424906131fc565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161146d929190613135565b602060405180830381600087803b15801561148757600080fd5b505af115801561149b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bf9190612d29565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c906131fc565b60405180910390fd5b83600960006101000a81548160ff021916908360ff16021790555082600960016101000a81548160ff021916908360ff16021790555081600960026101000a81548160ff021916908360ff16021790555080600960036101000a81548160ff021916908360ff16021790555050505050565b600080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561168c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116839061327c565b60405180910390fd5b6116a23385858461169d9190613693565b611bed565b600191505092915050565b60006116ba338484611db8565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174b906131fc565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461183f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611836906131fc565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461192a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611921906131fc565b60405180910390fd5b80600b60146101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900460ff1681565b600960029054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa1906131fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b119061325c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960039054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c549061329c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc49061333c565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611dab919061335c565b60405180910390a3505050565b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e5c5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e92906132dc565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f3257600854811115611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f28906132fc565b60405180910390fd5b5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fdc5760075481611f9084610fdb565b611f9a9190613441565b1115611fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd29061323c565b60405180910390fd5b5b6000611fe784610fdb565b90508181101561202c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120239061331c565b60405180910390fd5b81816120389190613693565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121225750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124965760006064600960009054906101000a900460ff1660ff16846121499190613639565b6121539190613497565b905080600e6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121c69190613441565b92505081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161224c919061335c565b60405180910390a360006064600960019054906101000a900460ff1660ff16856122769190613639565b6122809190613497565b905080600e6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122f39190613441565b92505081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612379919061335c565b60405180910390a360006064600960029054906101000a900460ff1660ff16866123a39190613639565b6123ad9190613497565b905080600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123fe9190613441565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612462919061335c565b60405180910390a38082846124779190613441565b6124819190613441565b8561248c9190613693565b9450505050612644565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561253d5750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126435760006064600960039054906101000a900460ff1660ff16846125649190613639565b61256e9190613497565b905080600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125bf9190613441565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612623919061335c565b60405180910390a380836126379190613693565b9250612641612705565b505b5b81600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126939190613441565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126f7919061335c565b60405180910390a350505050565b600061271030610fdb565b9050600b60149054906101000a900460ff161580156127315750600a548110155b156127ba576001600b60146101000a81548160ff021916908315150217905550600081905060006002826127659190613497565b90506000479050612775826127bd565b600081476127839190613693565b905061279a83856127949190613693565b82612a0f565b6000600b60146101000a81548160ff021916908315150217905550505050505b50565b6000600267ffffffffffffffff8111156127da576127d961384f565b5b6040519080825280602002602001820160405280156128085781602001602082028036833780820191505090505b50905030816000815181106128205761281f613820565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156128c257600080fd5b505afa1580156128d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fa9190612bbc565b8160018151811061290e5761290d613820565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297530600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bed565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016129d9959493929190613377565b600060405180830381600087803b1580156129f357600080fd5b505af1158015612a07573d6000803e3d6000fd5b505050505050565b612a3c30600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bed565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b8152600401612aa39695949392919061315e565b6060604051808303818588803b158015612abc57600080fd5b505af1158015612ad0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612af59190612dd6565b5050505050565b600081359050612b0b81613b48565b92915050565b600081519050612b2081613b48565b92915050565b600081359050612b3581613b5f565b92915050565b600081519050612b4a81613b5f565b92915050565b600081359050612b5f81613b76565b92915050565b600081519050612b7481613b76565b92915050565b600081359050612b8981613b8d565b92915050565b600060208284031215612ba557612ba461387e565b5b6000612bb384828501612afc565b91505092915050565b600060208284031215612bd257612bd161387e565b5b6000612be084828501612b11565b91505092915050565b60008060408385031215612c0057612bff61387e565b5b6000612c0e85828601612afc565b9250506020612c1f85828601612afc565b9150509250929050565b600080600060608486031215612c4257612c4161387e565b5b6000612c5086828701612afc565b9350506020612c6186828701612afc565b9250506040612c7286828701612b50565b9150509250925092565b60008060408385031215612c9357612c9261387e565b5b6000612ca185828601612afc565b9250506020612cb285828601612b26565b9150509250929050565b60008060408385031215612cd357612cd261387e565b5b6000612ce185828601612afc565b9250506020612cf285828601612b50565b9150509250929050565b600060208284031215612d1257612d1161387e565b5b6000612d2084828501612b26565b91505092915050565b600060208284031215612d3f57612d3e61387e565b5b6000612d4d84828501612b3b565b91505092915050565b600060208284031215612d6c57612d6b61387e565b5b6000612d7a84828501612b50565b91505092915050565b600080600060608486031215612d9c57612d9b61387e565b5b6000612daa86828701612b50565b9350506020612dbb86828701612b50565b9250506040612dcc86828701612b50565b9150509250925092565b600080600060608486031215612def57612dee61387e565b5b6000612dfd86828701612b65565b9350506020612e0e86828701612b65565b9250506040612e1f86828701612b65565b9150509250925092565b60008060008060808587031215612e4357612e4261387e565b5b6000612e5187828801612b7a565b9450506020612e6287828801612b7a565b9350506040612e7387828801612b7a565b9250506060612e8487828801612b7a565b91505092959194509250565b6000612e9c8383612ea8565b60208301905092915050565b612eb1816136c7565b82525050565b612ec0816136c7565b82525050565b6000612ed1826133fc565b612edb818561341f565b9350612ee6836133ec565b8060005b83811015612f17578151612efe8882612e90565b9750612f0983613412565b925050600181019050612eea565b5085935050505092915050565b612f2d816136d9565b82525050565b612f3c8161371c565b82525050565b6000612f4d82613407565b612f578185613430565b9350612f6781856020860161372e565b612f7081613883565b840191505092915050565b6000612f88602683613430565b9150612f93826138a1565b604082019050919050565b6000612fab602283613430565b9150612fb6826138f0565b604082019050919050565b6000612fce601983613430565b9150612fd98261393f565b602082019050919050565b6000612ff1602283613430565b9150612ffc82613968565b604082019050919050565b6000613014601f83613430565b915061301f826139b7565b602082019050919050565b6000613037602b83613430565b9150613042826139e0565b604082019050919050565b600061305a601983613430565b915061306582613a2f565b602082019050919050565b600061307d602383613430565b915061308882613a58565b604082019050919050565b60006130a0601e83613430565b91506130ab82613aa7565b602082019050919050565b60006130c3602083613430565b91506130ce82613ad0565b602082019050919050565b60006130e6602483613430565b91506130f182613af9565b604082019050919050565b61310581613705565b82525050565b6131148161370f565b82525050565b600060208201905061312f6000830184612eb7565b92915050565b600060408201905061314a6000830185612eb7565b61315760208301846130fc565b9392505050565b600060c0820190506131736000830189612eb7565b61318060208301886130fc565b61318d6040830187612f33565b61319a6060830186612f33565b6131a76080830185612eb7565b6131b460a08301846130fc565b979650505050505050565b60006020820190506131d46000830184612f24565b92915050565b600060208201905081810360008301526131f48184612f42565b905092915050565b6000602082019050818103600083015261321581612f7b565b9050919050565b6000602082019050818103600083015261323581612f9e565b9050919050565b6000602082019050818103600083015261325581612fc1565b9050919050565b6000602082019050818103600083015261327581612fe4565b9050919050565b6000602082019050818103600083015261329581613007565b9050919050565b600060208201905081810360008301526132b58161302a565b9050919050565b600060208201905081810360008301526132d58161304d565b9050919050565b600060208201905081810360008301526132f581613070565b9050919050565b6000602082019050818103600083015261331581613093565b9050919050565b60006020820190508181036000830152613335816130b6565b9050919050565b60006020820190508181036000830152613355816130d9565b9050919050565b600060208201905061337160008301846130fc565b92915050565b600060a08201905061338c60008301886130fc565b6133996020830187612f33565b81810360408301526133ab8186612ec6565b90506133ba6060830185612eb7565b6133c760808301846130fc565b9695505050505050565b60006020820190506133e6600083018461310b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061344c82613705565b915061345783613705565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561348c5761348b613793565b5b828201905092915050565b60006134a282613705565b91506134ad83613705565b9250826134bd576134bc6137c2565b5b828204905092915050565b6000808291508390505b6001851115613512578086048111156134ee576134ed613793565b5b60018516156134fd5780820291505b808102905061350b85613894565b94506134d2565b94509492505050565b600061352682613705565b91506135318361370f565b925061355e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613566565b905092915050565b6000826135765760019050613632565b816135845760009050613632565b816001811461359a57600281146135a4576135d3565b6001915050613632565b60ff8411156135b6576135b5613793565b5b8360020a9150848211156135cd576135cc613793565b5b50613632565b5060208310610133831016604e8410600b84101617156136085782820a90508381111561360357613602613793565b5b613632565b61361584848460016134c8565b9250905081840481111561362c5761362b613793565b5b81810290505b9392505050565b600061364482613705565b915061364f83613705565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561368857613687613793565b5b828202905092915050565b600061369e82613705565b91506136a983613705565b9250828210156136bc576136bb613793565b5b828203905092915050565b60006136d2826136e5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061372782613705565b9050919050565b60005b8381101561374c578082015181840152602081019050613731565b8381111561375b576000848401525b50505050565b6000600282049050600182168061377957607f821691505b6020821081141561378d5761378c6137f1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4f6e6c7920746865206f776e65722063616e2063616c6c20746869732066756e60008201527f6374696f6e210000000000000000000000000000000000000000000000000000602082015250565b7f5769746864726177616c20616d6f756e7420657863656564732062616c616e6360008201527f6521000000000000000000000000000000000000000000000000000000000000602082015250565b7f45786365656473206d61782077616c6c6574206c696d69742100000000000000600082015250565b7f4f776e65722063616e206e6f7420626520746865207a65726f2061646472657360008201527f7321000000000000000000000000000000000000000000000000000000000000602082015250565b7f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f2100600082015250565b7f57616c6c657420616464726573732063616e206e6f7420626520746865207a6560008201527f726f206164647265737321000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206578636565647320616c6c6f77616e63652100000000000000600082015250565b7f53656e646572206f7220726563697069656e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f45786365656473206d6178207472616e73616374696f6e206c696d6974210000600082015250565b7f416d6f756e7420657863656564732073656e64657227732062616c616e636521600082015250565b7f5370656e6465722063616e206e6f7420626520746865207a65726f206164647260008201527f6573732100000000000000000000000000000000000000000000000000000000602082015250565b613b51816136c7565b8114613b5c57600080fd5b50565b613b68816136d9565b8114613b7357600080fd5b50565b613b7f81613705565b8114613b8a57600080fd5b50565b613b968161370f565b8114613ba157600080fd5b5056fea2646970667358221220e840dd2a7cdbf59ad774825eca4be2c852e7a9f131a14fc3c4e7ae95effe261a64736f6c63430008070033

Deployed Bytecode Sourcemap

870:10958:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1280:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5110:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10036:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5395:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3904:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4684:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9634:390;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11368:240;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5300:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10356:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3412:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1563:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1357:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4830:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5691:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11208:148;;;;;;;;;;;;;:::i;:::-;;5592:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1393:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5498:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1249:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3728:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5201:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1457:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11620:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4220:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10579:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9458:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4528:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4966:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3624:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1216:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10206:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1425:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1488:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10956:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1525:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1280:70;;;;;;;;;;;;;:::o;5110:83::-;5147:13;5180:5;5173:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5110:83;:::o;10036:158::-;10110:4;10127:37;10136:10;10148:7;10157:6;10127:8;:37::i;:::-;10182:4;10175:11;;10036:158;;;;:::o;5395:91::-;5439:7;5466:12;;5459:19;;5395:91;:::o;3904:304::-;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4073:9:::1;;;;;;;;;;;4069:2;:13;;;;:::i;:::-;4051:15;:31;;;;:::i;:::-;4034:14;:48;;;;4124:9;;;;;;;;;;;4120:2;:13;;;;:::i;:::-;4106:11;:27;;;;:::i;:::-;4093:10;:40;;;;4191:9;;;;;;;;;;;4187:2;:13;;;;:::i;:::-;4165:19;:35;;;;:::i;:::-;4144:18;:56;;;;3904:304:::0;;;:::o;4684:134::-;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4804:6:::1;4777:18;:24;4796:4;4777:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;4684:134:::0;;:::o;9634:390::-;9731:4;9748:24;9775:11;:19;9787:6;9775:19;;;;;;;;;;;;;;;:31;9795:10;9775:31;;;;;;;;;;;;;;;;9748:58;;9845:6;9825:16;:26;;9817:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9892:36;9902:6;9910:9;9921:6;9892:9;:36::i;:::-;9939:55;9948:6;9956:10;9987:6;9968:16;:25;;;;:::i;:::-;9939:8;:55::i;:::-;10012:4;10005:11;;;9634:390;;;;;:::o;11368:240::-;11436:4;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11471:21:::1;11461:6;:31;;11453:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11550:10;11542:28;;:36;11571:6;11542:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11596:4;11589:11;;11368:240:::0;;;:::o;5300:83::-;5341:5;5366:9;;;;;;;;;;;5359:16;;5300:83;:::o;10356:211::-;10444:4;10461:76;10470:10;10482:7;10526:10;10491:11;:23;10503:10;10491:23;;;;;;;;;;;;;;;:32;10515:7;10491:32;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;10461:8;:76::i;:::-;10555:4;10548:11;;10356:211;;;;:::o;3412:200::-;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3486:37:::1;3512:4;3518;3486:25;:37::i;:::-;3534:32;3555:4;3561;3534:20;:32::i;:::-;3577:27;3593:4;3599;3577:15;:27::i;:::-;3412:200:::0;:::o;1563:33::-;;;;:::o;1357:29::-;;;;:::o;4830:124::-;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4940:6:::1;4918:13;:19;4932:4;4918:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4830:124:::0;;:::o;5691:110::-;5748:7;5775:9;:18;5785:7;5775:18;;;;;;;;;;;;;;;;5768:25;;5691:110;;;:::o;11208:148::-;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11315:1:::1;11278:40;;11299:6;;;;;;;;;;;11278:40;;;;;;;;;;;;11346:1;11329:6;;:19;;;;;;;;;;;;;;;;;;11208:148::o:0;5592:87::-;5640:4;5664:7;;;;;;;;;;;5657:14;;5592:87;:::o;1393:25::-;;;;:::o;5498:82::-;5539:7;5566:6;;;;;;;;;;;5559:13;;5498:82;:::o;1249:24::-;;;;;;;;;;;;;:::o;3728:164::-;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3840:11:::1;3827:10;;:24;;;;;;;;;;;;;;;;;;3874:10;3862:9;;:22;;;;;;;;;;;;;;;;;;3728:164:::0;;:::o;5201:87::-;5240:13;5273:7;5266:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5201:87;:::o;1457:24::-;;;;;;;;;;;;;:::o;11620:205::-;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11718:21:::1;11749:13;11718:45;;11774:14;:23;;;11798:10;11810:6;11774:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11707:118;11620:205:::0;;:::o;4220:296::-;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4372:11:::1;4359:10;;:24;;;;;;;;;;;;;;;;;;4406:10;4394:9;;:22;;;;;;;;;;;;;;;;;;4445:16;4427:15;;:34;;;;;;;;;;;;;;;;;;4491:17;4472:16;;:36;;;;;;;;;;;;;;;;;;4220:296:::0;;;;:::o;10579:365::-;10672:4;10689:24;10716:11;:23;10728:10;10716:23;;;;;;;;;;;;;;;:32;10740:7;10716:32;;;;;;;;;;;;;;;;10689:59;;10787:15;10767:16;:35;;10759:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10849:65;10858:10;10870:7;10898:15;10879:16;:34;;;;:::i;:::-;10849:8;:65::i;:::-;10932:4;10925:11;;;10579:365;;;;:::o;9458:164::-;9535:4;9552:40;9562:10;9574:9;9585:6;9552:9;:40::i;:::-;9610:4;9603:11;;9458:164;;;;:::o;4528:144::-;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4658:6:::1;4626:23;:29;4650:4;4626:29;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;4528:144:::0;;:::o;4966:126::-;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5078:6:::1;5057:12;:18;5070:4;5057:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;4966:126:::0;;:::o;3624:92::-;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3702:6:::1;3692:7;;:16;;;;;;;;;;;;;;;;;;3624:92:::0;:::o;1216:26::-;;;;;;;;;;;;;:::o;10206:142::-;10286:7;10313:11;:18;10325:5;10313:18;;;;;;;;;;;;;;;:27;10332:7;10313:27;;;;;;;;;;;;;;;;10306:34;;10206:142;;;;:::o;1425:25::-;;;;;;;;;;;;;:::o;1488:30::-;;;;;;;;;;;;;:::o;10956:240::-;2435:10;2425:20;;:6;;;;;;;;;;;:20;;;2417:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11065:1:::1;11045:22;;:8;:22;;;;11037:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;11151:8;11122:38;;11143:6;;;;;;;;;;;11122:38;;;;;;;;;;;;11180:8;11171:6;;:17;;;;;;;;;;;;;;;;;;10956:240:::0;:::o;1525:31::-;;;;;;;;;;;;;:::o;9093:353::-;9212:1;9195:19;;:5;:19;;;;9187:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;9300:1;9281:21;;:7;:21;;;;9273:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9384:6;9354:11;:18;9366:5;9354:18;;;;;;;;;;;;;;;:27;9373:7;9354:27;;;;;;;;;;;;;;;:36;;;;9422:7;9406:32;;9415:5;9406:32;;;9431:6;9406:32;;;;;;:::i;:::-;;;;;;;;9093:353;;;:::o;5813:1942::-;5920:12;:20;5933:6;5920:20;;;;;;;;;;;;;;;;;;;;;;;;;5919:21;:49;;;;;5945:12;:23;5958:9;5945:23;;;;;;;;;;;;;;;;;;;;;;;;;5944:24;5919:49;5911:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;6033:23;:31;6057:6;6033:31;;;;;;;;;;;;;;;;;;;;;;;;;6029:127;;6099:10;;6089:6;:20;;6081:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;6029:127;6180:18;:29;6199:9;6180:29;;;;;;;;;;;;;;;;;;;;;;;;;6176:147;;6267:14;;6257:6;6234:20;6244:9;6234;:20::i;:::-;:29;;;;:::i;:::-;:47;;6226:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6176:147;6343:21;6367:17;6377:6;6367:9;:17::i;:::-;6343:41;;6420:6;6403:13;:23;;6395:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6511:6;6495:13;:22;;;;:::i;:::-;6475:9;:17;6485:6;6475:17;;;;;;;;;;;;;;;:42;;;;6561:11;;;;;;;;;;;6551:21;;:6;:21;;;:50;;;;;6577:13;:24;6591:9;6577:24;;;;;;;;;;;;;;;;;;;;;;;;;6576:25;6551:50;6548:1088;;;6618:18;6661:3;6648:10;;;;;;;;;;;6639:19;;:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;6618:46;;6704:10;6679:9;:21;6689:10;;;;;;;;;;;6679:21;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;6751:10;;;;;;;;;;;6734:40;;6743:6;6734:40;;;6763:10;6734:40;;;;;;:::i;:::-;;;;;;;;6803:17;6844:3;6832:9;;;;;;;;;;;6823:18;;:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;6803:44;;6886:9;6862;:20;6872:9;;;;;;;;;;;6862:20;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;6932:9;;;;;;;;;;;6915:38;;6924:6;6915:38;;;6943:9;6915:38;;;;;;:::i;:::-;;;;;;;;6982:23;7035:3;7017:15;;;;;;;;;;;7008:24;;:6;:24;;;;:::i;:::-;:30;;;;:::i;:::-;6982:56;;7081:15;7053:9;:24;7071:4;7053:24;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;;;;;;;;7141:4;7116:48;;7125:6;7116:48;;;7148:15;7116:48;;;;;;:::i;:::-;;;;;;;;7228:15;7216:9;7203:10;:22;;;;:::i;:::-;:40;;;;:::i;:::-;7193:50;;;;;:::i;:::-;;;6603:652;;;6548:1088;;;7297:11;;;;;;;;;;;7284:24;;:9;:24;;;:50;;;;;7313:13;:21;7327:6;7313:21;;;;;;;;;;;;;;;;;;;;;;;;;7312:22;7284:50;7280:356;;;7351:23;7405:3;7386:16;;;;;;;;;;;7377:25;;:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;7351:57;;7451:15;7423:9;:24;7441:4;7423:24;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;;;;;;;;7514:4;7486:51;;7495:9;7486:51;;;7521:15;7486:51;;;;;;:::i;:::-;;;;;;;;7562:15;7552:25;;;;;:::i;:::-;;;7606:18;:16;:18::i;:::-;7336:300;7280:356;6548:1088;7680:6;7656:9;:20;7666:9;7656:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7729:9;7712:35;;7721:6;7712:35;;;7740:6;7712:35;;;;;;:::i;:::-;;;;;;;;5900:1855;5813:1942;;;:::o;8452:629::-;8508:20;8531:24;8549:4;8531:9;:24::i;:::-;8508:47;;8570:7;;;;;;;;;;;8569:8;:46;;;;;8597:18;;8581:12;:34;;8569:46;8566:508;;;8642:4;8632:7;;:14;;;;;;;;;;;;;;;;;;8675:18;8696:12;8675:33;;8737:16;8769:1;8756:10;:14;;;;:::i;:::-;8737:33;;8787:18;8808:21;8787:42;;8844:26;8861:8;8844:16;:26::i;:::-;8899:19;8945:10;8921:21;:34;;;;:::i;:::-;8899:56;;8970:48;8996:8;8983:10;:21;;;;:::i;:::-;9006:11;8970:12;:48::i;:::-;9057:5;9047:7;;:15;;;;;;;;;;;;;;;;;;8617:457;;;;8566:508;8497:584;8452:629::o;8059:381::-;8129:21;8167:1;8153:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8129:40;;8198:4;8180;8185:1;8180:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;8224:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8214:4;8219:1;8214:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;8258:47;8275:4;8282:14;;;;;;;;;;;8298:6;8258:8;:47::i;:::-;8316:16;;;;;;;;;;;:67;;;8384:6;8392:1;8395:4;8409;8416:15;8316:116;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8118:322;8059:381;:::o;7767:280::-;7854:61;7871:4;7886:14;;;;;;;;;;;7903:11;7854:8;:61::i;:::-;7926:16;;;;;;;;;;;:32;;;7966:6;7982:4;7989:11;8002:1;8005;8016:4;8023:15;7926:113;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7767:280;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:135::-;921:5;959:6;946:20;937:29;;975:31;1000:5;975:31;:::i;:::-;877:135;;;;:::o;1018:329::-;1077:6;1126:2;1114:9;1105:7;1101:23;1097:32;1094:119;;;1132:79;;:::i;:::-;1094:119;1252:1;1277:53;1322:7;1313:6;1302:9;1298:22;1277:53;:::i;:::-;1267:63;;1223:117;1018:329;;;;:::o;1353:351::-;1423:6;1472:2;1460:9;1451:7;1447:23;1443:32;1440:119;;;1478:79;;:::i;:::-;1440:119;1598:1;1623:64;1679:7;1670:6;1659:9;1655:22;1623:64;:::i;:::-;1613:74;;1569:128;1353:351;;;;:::o;1710:474::-;1778:6;1786;1835:2;1823:9;1814:7;1810:23;1806:32;1803:119;;;1841:79;;:::i;:::-;1803:119;1961:1;1986:53;2031:7;2022:6;2011:9;2007:22;1986:53;:::i;:::-;1976:63;;1932:117;2088:2;2114:53;2159:7;2150:6;2139:9;2135:22;2114:53;:::i;:::-;2104:63;;2059:118;1710:474;;;;;:::o;2190:619::-;2267:6;2275;2283;2332:2;2320:9;2311:7;2307:23;2303:32;2300:119;;;2338:79;;:::i;:::-;2300:119;2458:1;2483:53;2528:7;2519:6;2508:9;2504:22;2483:53;:::i;:::-;2473:63;;2429:117;2585:2;2611:53;2656:7;2647:6;2636:9;2632:22;2611:53;:::i;:::-;2601:63;;2556:118;2713:2;2739:53;2784:7;2775:6;2764:9;2760:22;2739:53;:::i;:::-;2729:63;;2684:118;2190:619;;;;;:::o;2815:468::-;2880:6;2888;2937:2;2925:9;2916:7;2912:23;2908:32;2905:119;;;2943:79;;:::i;:::-;2905:119;3063:1;3088:53;3133:7;3124:6;3113:9;3109:22;3088:53;:::i;:::-;3078:63;;3034:117;3190:2;3216:50;3258:7;3249:6;3238:9;3234:22;3216:50;:::i;:::-;3206:60;;3161:115;2815:468;;;;;:::o;3289:474::-;3357:6;3365;3414:2;3402:9;3393:7;3389:23;3385:32;3382:119;;;3420:79;;:::i;:::-;3382:119;3540:1;3565:53;3610:7;3601:6;3590:9;3586:22;3565:53;:::i;:::-;3555:63;;3511:117;3667:2;3693:53;3738:7;3729:6;3718:9;3714:22;3693:53;:::i;:::-;3683:63;;3638:118;3289:474;;;;;:::o;3769:323::-;3825:6;3874:2;3862:9;3853:7;3849:23;3845:32;3842:119;;;3880:79;;:::i;:::-;3842:119;4000:1;4025:50;4067:7;4058:6;4047:9;4043:22;4025:50;:::i;:::-;4015:60;;3971:114;3769:323;;;;:::o;4098:345::-;4165:6;4214:2;4202:9;4193:7;4189:23;4185:32;4182:119;;;4220:79;;:::i;:::-;4182:119;4340:1;4365:61;4418:7;4409:6;4398:9;4394:22;4365:61;:::i;:::-;4355:71;;4311:125;4098:345;;;;:::o;4449:329::-;4508:6;4557:2;4545:9;4536:7;4532:23;4528:32;4525:119;;;4563:79;;:::i;:::-;4525:119;4683:1;4708:53;4753:7;4744:6;4733:9;4729:22;4708:53;:::i;:::-;4698:63;;4654:117;4449:329;;;;:::o;4784:619::-;4861:6;4869;4877;4926:2;4914:9;4905:7;4901:23;4897:32;4894:119;;;4932:79;;:::i;:::-;4894:119;5052:1;5077:53;5122:7;5113:6;5102:9;5098:22;5077:53;:::i;:::-;5067:63;;5023:117;5179:2;5205:53;5250:7;5241:6;5230:9;5226:22;5205:53;:::i;:::-;5195:63;;5150:118;5307:2;5333:53;5378:7;5369:6;5358:9;5354:22;5333:53;:::i;:::-;5323:63;;5278:118;4784:619;;;;;:::o;5409:663::-;5497:6;5505;5513;5562:2;5550:9;5541:7;5537:23;5533:32;5530:119;;;5568:79;;:::i;:::-;5530:119;5688:1;5713:64;5769:7;5760:6;5749:9;5745:22;5713:64;:::i;:::-;5703:74;;5659:128;5826:2;5852:64;5908:7;5899:6;5888:9;5884:22;5852:64;:::i;:::-;5842:74;;5797:129;5965:2;5991:64;6047:7;6038:6;6027:9;6023:22;5991:64;:::i;:::-;5981:74;;5936:129;5409:663;;;;;:::o;6078:749::-;6156:6;6164;6172;6180;6229:3;6217:9;6208:7;6204:23;6200:33;6197:120;;;6236:79;;:::i;:::-;6197:120;6356:1;6381:51;6424:7;6415:6;6404:9;6400:22;6381:51;:::i;:::-;6371:61;;6327:115;6481:2;6507:51;6550:7;6541:6;6530:9;6526:22;6507:51;:::i;:::-;6497:61;;6452:116;6607:2;6633:51;6676:7;6667:6;6656:9;6652:22;6633:51;:::i;:::-;6623:61;;6578:116;6733:2;6759:51;6802:7;6793:6;6782:9;6778:22;6759:51;:::i;:::-;6749:61;;6704:116;6078:749;;;;;;;:::o;6833:179::-;6902:10;6923:46;6965:3;6957:6;6923:46;:::i;:::-;7001:4;6996:3;6992:14;6978:28;;6833:179;;;;:::o;7018:108::-;7095:24;7113:5;7095:24;:::i;:::-;7090:3;7083:37;7018:108;;:::o;7132:118::-;7219:24;7237:5;7219:24;:::i;:::-;7214:3;7207:37;7132:118;;:::o;7286:732::-;7405:3;7434:54;7482:5;7434:54;:::i;:::-;7504:86;7583:6;7578:3;7504:86;:::i;:::-;7497:93;;7614:56;7664:5;7614:56;:::i;:::-;7693:7;7724:1;7709:284;7734:6;7731:1;7728:13;7709:284;;;7810:6;7804:13;7837:63;7896:3;7881:13;7837:63;:::i;:::-;7830:70;;7923:60;7976:6;7923:60;:::i;:::-;7913:70;;7769:224;7756:1;7753;7749:9;7744:14;;7709:284;;;7713:14;8009:3;8002:10;;7410:608;;;7286:732;;;;:::o;8024:109::-;8105:21;8120:5;8105:21;:::i;:::-;8100:3;8093:34;8024:109;;:::o;8139:147::-;8234:45;8273:5;8234:45;:::i;:::-;8229:3;8222:58;8139:147;;:::o;8292:364::-;8380:3;8408:39;8441:5;8408:39;:::i;:::-;8463:71;8527:6;8522:3;8463:71;:::i;:::-;8456:78;;8543:52;8588:6;8583:3;8576:4;8569:5;8565:16;8543:52;:::i;:::-;8620:29;8642:6;8620:29;:::i;:::-;8615:3;8611:39;8604:46;;8384:272;8292:364;;;;:::o;8662:366::-;8804:3;8825:67;8889:2;8884:3;8825:67;:::i;:::-;8818:74;;8901:93;8990:3;8901:93;:::i;:::-;9019:2;9014:3;9010:12;9003:19;;8662:366;;;:::o;9034:::-;9176:3;9197:67;9261:2;9256:3;9197:67;:::i;:::-;9190:74;;9273:93;9362:3;9273:93;:::i;:::-;9391:2;9386:3;9382:12;9375:19;;9034:366;;;:::o;9406:::-;9548:3;9569:67;9633:2;9628:3;9569:67;:::i;:::-;9562:74;;9645:93;9734:3;9645:93;:::i;:::-;9763:2;9758:3;9754:12;9747:19;;9406:366;;;:::o;9778:::-;9920:3;9941:67;10005:2;10000:3;9941:67;:::i;:::-;9934:74;;10017:93;10106:3;10017:93;:::i;:::-;10135:2;10130:3;10126:12;10119:19;;9778:366;;;:::o;10150:::-;10292:3;10313:67;10377:2;10372:3;10313:67;:::i;:::-;10306:74;;10389:93;10478:3;10389:93;:::i;:::-;10507:2;10502:3;10498:12;10491:19;;10150:366;;;:::o;10522:::-;10664:3;10685:67;10749:2;10744:3;10685:67;:::i;:::-;10678:74;;10761:93;10850:3;10761:93;:::i;:::-;10879:2;10874:3;10870:12;10863:19;;10522:366;;;:::o;10894:::-;11036:3;11057:67;11121:2;11116:3;11057:67;:::i;:::-;11050:74;;11133:93;11222:3;11133:93;:::i;:::-;11251:2;11246:3;11242:12;11235:19;;10894:366;;;:::o;11266:::-;11408:3;11429:67;11493:2;11488:3;11429:67;:::i;:::-;11422:74;;11505:93;11594:3;11505:93;:::i;:::-;11623:2;11618:3;11614:12;11607:19;;11266:366;;;:::o;11638:::-;11780:3;11801:67;11865:2;11860:3;11801:67;:::i;:::-;11794:74;;11877:93;11966:3;11877:93;:::i;:::-;11995:2;11990:3;11986:12;11979:19;;11638:366;;;:::o;12010:::-;12152:3;12173:67;12237:2;12232:3;12173:67;:::i;:::-;12166:74;;12249:93;12338:3;12249:93;:::i;:::-;12367:2;12362:3;12358:12;12351:19;;12010:366;;;:::o;12382:::-;12524:3;12545:67;12609:2;12604:3;12545:67;:::i;:::-;12538:74;;12621:93;12710:3;12621:93;:::i;:::-;12739:2;12734:3;12730:12;12723:19;;12382:366;;;:::o;12754:118::-;12841:24;12859:5;12841:24;:::i;:::-;12836:3;12829:37;12754:118;;:::o;12878:112::-;12961:22;12977:5;12961:22;:::i;:::-;12956:3;12949:35;12878:112;;:::o;12996:222::-;13089:4;13127:2;13116:9;13112:18;13104:26;;13140:71;13208:1;13197:9;13193:17;13184:6;13140:71;:::i;:::-;12996:222;;;;:::o;13224:332::-;13345:4;13383:2;13372:9;13368:18;13360:26;;13396:71;13464:1;13453:9;13449:17;13440:6;13396:71;:::i;:::-;13477:72;13545:2;13534:9;13530:18;13521:6;13477:72;:::i;:::-;13224:332;;;;;:::o;13562:807::-;13811:4;13849:3;13838:9;13834:19;13826:27;;13863:71;13931:1;13920:9;13916:17;13907:6;13863:71;:::i;:::-;13944:72;14012:2;14001:9;13997:18;13988:6;13944:72;:::i;:::-;14026:80;14102:2;14091:9;14087:18;14078:6;14026:80;:::i;:::-;14116;14192:2;14181:9;14177:18;14168:6;14116:80;:::i;:::-;14206:73;14274:3;14263:9;14259:19;14250:6;14206:73;:::i;:::-;14289;14357:3;14346:9;14342:19;14333:6;14289:73;:::i;:::-;13562:807;;;;;;;;;:::o;14375:210::-;14462:4;14500:2;14489:9;14485:18;14477:26;;14513:65;14575:1;14564:9;14560:17;14551:6;14513:65;:::i;:::-;14375:210;;;;:::o;14591:313::-;14704:4;14742:2;14731:9;14727:18;14719:26;;14791:9;14785:4;14781:20;14777:1;14766:9;14762:17;14755:47;14819:78;14892:4;14883:6;14819:78;:::i;:::-;14811:86;;14591:313;;;;:::o;14910:419::-;15076:4;15114:2;15103:9;15099:18;15091:26;;15163:9;15157:4;15153:20;15149:1;15138:9;15134:17;15127:47;15191:131;15317:4;15191:131;:::i;:::-;15183:139;;14910:419;;;:::o;15335:::-;15501:4;15539:2;15528:9;15524:18;15516:26;;15588:9;15582:4;15578:20;15574:1;15563:9;15559:17;15552:47;15616:131;15742:4;15616:131;:::i;:::-;15608:139;;15335:419;;;:::o;15760:::-;15926:4;15964:2;15953:9;15949:18;15941:26;;16013:9;16007:4;16003:20;15999:1;15988:9;15984:17;15977:47;16041:131;16167:4;16041:131;:::i;:::-;16033:139;;15760:419;;;:::o;16185:::-;16351:4;16389:2;16378:9;16374:18;16366:26;;16438:9;16432:4;16428:20;16424:1;16413:9;16409:17;16402:47;16466:131;16592:4;16466:131;:::i;:::-;16458:139;;16185:419;;;:::o;16610:::-;16776:4;16814:2;16803:9;16799:18;16791:26;;16863:9;16857:4;16853:20;16849:1;16838:9;16834:17;16827:47;16891:131;17017:4;16891:131;:::i;:::-;16883:139;;16610:419;;;:::o;17035:::-;17201:4;17239:2;17228:9;17224:18;17216:26;;17288:9;17282:4;17278:20;17274:1;17263:9;17259:17;17252:47;17316:131;17442:4;17316:131;:::i;:::-;17308:139;;17035:419;;;:::o;17460:::-;17626:4;17664:2;17653:9;17649:18;17641:26;;17713:9;17707:4;17703:20;17699:1;17688:9;17684:17;17677:47;17741:131;17867:4;17741:131;:::i;:::-;17733:139;;17460:419;;;:::o;17885:::-;18051:4;18089:2;18078:9;18074:18;18066:26;;18138:9;18132:4;18128:20;18124:1;18113:9;18109:17;18102:47;18166:131;18292:4;18166:131;:::i;:::-;18158:139;;17885:419;;;:::o;18310:::-;18476:4;18514:2;18503:9;18499:18;18491:26;;18563:9;18557:4;18553:20;18549:1;18538:9;18534:17;18527:47;18591:131;18717:4;18591:131;:::i;:::-;18583:139;;18310:419;;;:::o;18735:::-;18901:4;18939:2;18928:9;18924:18;18916:26;;18988:9;18982:4;18978:20;18974:1;18963:9;18959:17;18952:47;19016:131;19142:4;19016:131;:::i;:::-;19008:139;;18735:419;;;:::o;19160:::-;19326:4;19364:2;19353:9;19349:18;19341:26;;19413:9;19407:4;19403:20;19399:1;19388:9;19384:17;19377:47;19441:131;19567:4;19441:131;:::i;:::-;19433:139;;19160:419;;;:::o;19585:222::-;19678:4;19716:2;19705:9;19701:18;19693:26;;19729:71;19797:1;19786:9;19782:17;19773:6;19729:71;:::i;:::-;19585:222;;;;:::o;19813:831::-;20076:4;20114:3;20103:9;20099:19;20091:27;;20128:71;20196:1;20185:9;20181:17;20172:6;20128:71;:::i;:::-;20209:80;20285:2;20274:9;20270:18;20261:6;20209:80;:::i;:::-;20336:9;20330:4;20326:20;20321:2;20310:9;20306:18;20299:48;20364:108;20467:4;20458:6;20364:108;:::i;:::-;20356:116;;20482:72;20550:2;20539:9;20535:18;20526:6;20482:72;:::i;:::-;20564:73;20632:3;20621:9;20617:19;20608:6;20564:73;:::i;:::-;19813:831;;;;;;;;:::o;20650:214::-;20739:4;20777:2;20766:9;20762:18;20754:26;;20790:67;20854:1;20843:9;20839:17;20830:6;20790:67;:::i;:::-;20650:214;;;;:::o;20951:132::-;21018:4;21041:3;21033:11;;21071:4;21066:3;21062:14;21054:22;;20951:132;;;:::o;21089:114::-;21156:6;21190:5;21184:12;21174:22;;21089:114;;;:::o;21209:99::-;21261:6;21295:5;21289:12;21279:22;;21209:99;;;:::o;21314:113::-;21384:4;21416;21411:3;21407:14;21399:22;;21314:113;;;:::o;21433:184::-;21532:11;21566:6;21561:3;21554:19;21606:4;21601:3;21597:14;21582:29;;21433:184;;;;:::o;21623:169::-;21707:11;21741:6;21736:3;21729:19;21781:4;21776:3;21772:14;21757:29;;21623:169;;;;:::o;21798:305::-;21838:3;21857:20;21875:1;21857:20;:::i;:::-;21852:25;;21891:20;21909:1;21891:20;:::i;:::-;21886:25;;22045:1;21977:66;21973:74;21970:1;21967:81;21964:107;;;22051:18;;:::i;:::-;21964:107;22095:1;22092;22088:9;22081:16;;21798:305;;;;:::o;22109:185::-;22149:1;22166:20;22184:1;22166:20;:::i;:::-;22161:25;;22200:20;22218:1;22200:20;:::i;:::-;22195:25;;22239:1;22229:35;;22244:18;;:::i;:::-;22229:35;22286:1;22283;22279:9;22274:14;;22109:185;;;;:::o;22300:848::-;22361:5;22368:4;22392:6;22383:15;;22416:5;22407:14;;22430:712;22451:1;22441:8;22438:15;22430:712;;;22546:4;22541:3;22537:14;22531:4;22528:24;22525:50;;;22555:18;;:::i;:::-;22525:50;22605:1;22595:8;22591:16;22588:451;;;23020:4;23013:5;23009:16;23000:25;;22588:451;23070:4;23064;23060:15;23052:23;;23100:32;23123:8;23100:32;:::i;:::-;23088:44;;22430:712;;;22300:848;;;;;;;:::o;23154:281::-;23212:5;23236:23;23254:4;23236:23;:::i;:::-;23228:31;;23280:25;23296:8;23280:25;:::i;:::-;23268:37;;23324:104;23361:66;23351:8;23345:4;23324:104;:::i;:::-;23315:113;;23154:281;;;;:::o;23441:1073::-;23495:5;23686:8;23676:40;;23707:1;23698:10;;23709:5;;23676:40;23735:4;23725:36;;23752:1;23743:10;;23754:5;;23725:36;23821:4;23869:1;23864:27;;;;23905:1;23900:191;;;;23814:277;;23864:27;23882:1;23873:10;;23884:5;;;23900:191;23945:3;23935:8;23932:17;23929:43;;;23952:18;;:::i;:::-;23929:43;24001:8;23998:1;23994:16;23985:25;;24036:3;24029:5;24026:14;24023:40;;;24043:18;;:::i;:::-;24023:40;24076:5;;;23814:277;;24200:2;24190:8;24187:16;24181:3;24175:4;24172:13;24168:36;24150:2;24140:8;24137:16;24132:2;24126:4;24123:12;24119:35;24103:111;24100:246;;;24256:8;24250:4;24246:19;24237:28;;24291:3;24284:5;24281:14;24278:40;;;24298:18;;:::i;:::-;24278:40;24331:5;;24100:246;24371:42;24409:3;24399:8;24393:4;24390:1;24371:42;:::i;:::-;24356:57;;;;24445:4;24440:3;24436:14;24429:5;24426:25;24423:51;;;24454:18;;:::i;:::-;24423:51;24503:4;24496:5;24492:16;24483:25;;23441:1073;;;;;;:::o;24520:348::-;24560:7;24583:20;24601:1;24583:20;:::i;:::-;24578:25;;24617:20;24635:1;24617:20;:::i;:::-;24612:25;;24805:1;24737:66;24733:74;24730:1;24727:81;24722:1;24715:9;24708:17;24704:105;24701:131;;;24812:18;;:::i;:::-;24701:131;24860:1;24857;24853:9;24842:20;;24520:348;;;;:::o;24874:191::-;24914:4;24934:20;24952:1;24934:20;:::i;:::-;24929:25;;24968:20;24986:1;24968:20;:::i;:::-;24963:25;;25007:1;25004;25001:8;24998:34;;;25012:18;;:::i;:::-;24998:34;25057:1;25054;25050:9;25042:17;;24874:191;;;;:::o;25071:96::-;25108:7;25137:24;25155:5;25137:24;:::i;:::-;25126:35;;25071:96;;;:::o;25173:90::-;25207:7;25250:5;25243:13;25236:21;25225:32;;25173:90;;;:::o;25269:126::-;25306:7;25346:42;25339:5;25335:54;25324:65;;25269:126;;;:::o;25401:77::-;25438:7;25467:5;25456:16;;25401:77;;;:::o;25484:86::-;25519:7;25559:4;25552:5;25548:16;25537:27;;25484:86;;;:::o;25576:121::-;25634:9;25667:24;25685:5;25667:24;:::i;:::-;25654:37;;25576:121;;;:::o;25703:307::-;25771:1;25781:113;25795:6;25792:1;25789:13;25781:113;;;25880:1;25875:3;25871:11;25865:18;25861:1;25856:3;25852:11;25845:39;25817:2;25814:1;25810:10;25805:15;;25781:113;;;25912:6;25909:1;25906:13;25903:101;;;25992:1;25983:6;25978:3;25974:16;25967:27;25903:101;25752:258;25703:307;;;:::o;26016:320::-;26060:6;26097:1;26091:4;26087:12;26077:22;;26144:1;26138:4;26134:12;26165:18;26155:81;;26221:4;26213:6;26209:17;26199:27;;26155:81;26283:2;26275:6;26272:14;26252:18;26249:38;26246:84;;;26302:18;;:::i;:::-;26246:84;26067:269;26016:320;;;:::o;26342:180::-;26390:77;26387:1;26380:88;26487:4;26484:1;26477:15;26511:4;26508:1;26501:15;26528:180;26576:77;26573:1;26566:88;26673:4;26670:1;26663:15;26697:4;26694:1;26687:15;26714:180;26762:77;26759:1;26752:88;26859:4;26856:1;26849:15;26883:4;26880:1;26873:15;26900:180;26948:77;26945:1;26938:88;27045:4;27042:1;27035:15;27069:4;27066:1;27059:15;27086:180;27134:77;27131:1;27124:88;27231:4;27228:1;27221:15;27255:4;27252:1;27245:15;27395:117;27504:1;27501;27494:12;27518:102;27559:6;27610:2;27606:7;27601:2;27594:5;27590:14;27586:28;27576:38;;27518:102;;;:::o;27626:::-;27668:8;27715:5;27712:1;27708:13;27687:34;;27626:102;;;:::o;27734:225::-;27874:34;27870:1;27862:6;27858:14;27851:58;27943:8;27938:2;27930:6;27926:15;27919:33;27734:225;:::o;27965:221::-;28105:34;28101:1;28093:6;28089:14;28082:58;28174:4;28169:2;28161:6;28157:15;28150:29;27965:221;:::o;28192:175::-;28332:27;28328:1;28320:6;28316:14;28309:51;28192:175;:::o;28373:221::-;28513:34;28509:1;28501:6;28497:14;28490:58;28582:4;28577:2;28569:6;28565:15;28558:29;28373:221;:::o;28600:181::-;28740:33;28736:1;28728:6;28724:14;28717:57;28600:181;:::o;28787:230::-;28927:34;28923:1;28915:6;28911:14;28904:58;28996:13;28991:2;28983:6;28979:15;28972:38;28787:230;:::o;29023:175::-;29163:27;29159:1;29151:6;29147:14;29140:51;29023:175;:::o;29204:222::-;29344:34;29340:1;29332:6;29328:14;29321:58;29413:5;29408:2;29400:6;29396:15;29389:30;29204:222;:::o;29432:180::-;29572:32;29568:1;29560:6;29556:14;29549:56;29432:180;:::o;29618:182::-;29758:34;29754:1;29746:6;29742:14;29735:58;29618:182;:::o;29806:223::-;29946:34;29942:1;29934:6;29930:14;29923:58;30015:6;30010:2;30002:6;29998:15;29991:31;29806:223;:::o;30035:122::-;30108:24;30126:5;30108:24;:::i;:::-;30101:5;30098:35;30088:63;;30147:1;30144;30137:12;30088:63;30035:122;:::o;30163:116::-;30233:21;30248:5;30233:21;:::i;:::-;30226:5;30223:32;30213:60;;30269:1;30266;30259:12;30213:60;30163:116;:::o;30285:122::-;30358:24;30376:5;30358:24;:::i;:::-;30351:5;30348:35;30338:63;;30397:1;30394;30387:12;30338:63;30285:122;:::o;30413:118::-;30484:22;30500:5;30484:22;:::i;:::-;30477:5;30474:33;30464:61;;30521:1;30518;30511:12;30464:61;30413:118;:::o

Swarm Source

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