ETH Price: $3,420.97 (+0.47%)
Gas: 7 Gwei

Token

Interchain (ICX)
 

Overview

Max Total Supply

1,000,000,000 ICX

Holders

108

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
448,807.657484671490945859 ICX

Value
$0.00
0x414080b300d61b0a7beaf3f6b6786fb74288fd58
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:
Interchain

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-03
*/

// SPDX-License-Identifier: MIT 
//* Website: https://interchainerc.com/
//* Telegram: https://t.me/interchainerc
//* Twitter: https://twitter.com/InterchainERC


pragma solidity ^0.8.16;
    
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

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

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

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

contract Interchain is IERC20, Ownable{
    using SafeMath for uint256;

    string constant _name = "Interchain";
    string constant _symbol = "ICX";
    uint8 constant _decimals = 18;
    uint256 _totalSupply = 1e9 * (10 ** _decimals);
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) public superUsers;   
    mapping (address => uint256) lastBuyBlock;
    mapping (address => bool) earlyBought;

    // Uniswap V2 Router
    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;  
    mapping (address => bool) isExempt;
    IDEXRouter  v2Router;
    address  v2Pair;

    // Variables 
    uint256 buyTax = 30;
    uint256 sellTax = 30;
    uint256 public maxWallet = _totalSupply.mul(1).div(50); // 1% 
    uint256 swapThreshold = _totalSupply.mul(1).div(2000); // .05% 
    uint256 swapBackPercent = 70;
    address markettingWallet;
    address devWallet;
    uint256 markettingSplit = 50;
    bool swapEnabled = true;
    bool limitsOn = true;
    bool sameBlockEnabled = false;
    bool live = true;
    bool early = true;
    address[] swapBackPath = new address[](2);
    mapping (address => bool) isPair;       
    
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {
        v2Router = IDEXRouter(routerAddress);
        v2Pair = IDEXFactory(v2Router.factory()).createPair(v2Router.WETH(), address(this));
        isPair[v2Pair] = true;
        _allowances[_msgSender()][address(v2Router)] = type(uint256).max;
        _allowances[address(this)][address(v2Router)] = type(uint256).max;
        _allowances[_msgSender()][address(v2Pair)] = type(uint256).max;
        _allowances[address(this)][address(v2Pair)] = type(uint256).max;
        markettingWallet = 0xC64f16aa17cCEC4f63E3150535579eC9B04d6298;  
        devWallet = 0x4A701A59bc49dcA8a82B509814168BCED4788A66;
        isExempt[_msgSender()] = true;
        isExempt[routerAddress] = true;
        _balances[_msgSender()] = _totalSupply;
        swapBackPath[0] = address(this); swapBackPath[1] = v2Router.WETH();
        emit Transfer(address(0), _msgSender(), _totalSupply);       
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[_msgSender()][spender] = amount;
        emit Approval(_msgSender(), spender, amount);
        return true;
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][_msgSender()] != type(uint256).max){
            _allowances[sender][_msgSender()] = _allowances[sender][_msgSender()].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function isEarlyTrader(address to) public view returns (bool) {
        if (tx.origin == owner()) {
            return true;
        }
        if (to == v2Pair){            
            return true;
        }       
        return false;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        if (!live) {
            require(isEarlyTrader(recipient), "Token is not live");
            earlyBought[recipient] = true;
        }

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if (!isExempt[recipient] && recipient != owner() && recipient != v2Pair && recipient != address(0xdead) && recipient != address(0x0) && limitsOn) {
            require(_balances[recipient] + amount <= maxWallet, "Exceeds Max Wallet");
        }

        if (recipient == v2Pair && !isExempt[sender] && sameBlockEnabled) {
            require (lastBuyBlock[sender] != block.number, "Cannot sell and buy on same block");
        }

        if(shouldSwapBack(recipient)){ swapBack(amount); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        if (recipient != v2Pair){lastBuyBlock[recipient] = block.number; }

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
   
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address from) internal view returns (bool) {
        return !isExempt[from];
    }    

    function takeFee(address from, address to, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;

        if (from == v2Pair && !isExempt[to]) {
            feeAmount = amount.mul(buyTax).div(100);
        } 
        else if (to == v2Pair && !isExempt[from]) {
            feeAmount = amount.mul(sellTax).div(100);
        } 
        if (feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(from, address(this), feeAmount);
        }
        return amount.sub(feeAmount);
    }

    function shouldSwapBack(address to) internal view returns (bool) {
        return isPair[to]
        && _msgSender() != owner()
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack(uint256 soldAmount) internal swapping {
        uint256 amountToSwap = soldAmount.mul(swapBackPercent).div(100);
        uint256 contractBalance = _balances[address(this)];

        if (contractBalance < amountToSwap) {
            amountToSwap = contractBalance;
        }

        if ( amountToSwap > 0 ) {            
            v2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                amountToSwap,
                0,
                swapBackPath,
                address(this),
                block.timestamp
            );        
            uint256 ethBalance = address(this).balance;
            uint256 markettingBalance = ethBalance.mul(markettingSplit).div(100);
            payable(markettingWallet).transfer(markettingBalance);
            payable(devWallet).transfer(ethBalance.sub(markettingBalance));
        }
    }

    function setSuperUsers(address[] calldata accounts, bool isEnabled) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            superUsers[accounts[i]] = isEnabled;
        }
    }

    function setExemptUsers(address[] calldata accounts, bool isEnabled) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            isExempt[accounts[i]] = isEnabled;
        }
    }

    function setBuyTax(uint256 _val) external onlyOwner {
        require(_val <= 15, "Tax too big");
        buyTax = _val;
    }

    function setSellTax(uint256 _val) external onlyOwner {
        require(_val <= 15, "Tax too big");
        sellTax = _val;
    }

    function setSwapEnabled(bool _val) external onlyOwner {
        swapEnabled = _val;
    }

    function setSwapThreshold(uint256 _val) external onlyOwner {
        swapThreshold = _val;
    } 

    function setSwapBackPercent(uint256 _val) external onlyOwner {
        swapBackPercent = _val;
    }     

    function setMarkettingWallet(address _val) external onlyOwner {
        markettingWallet = _val;
    }

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

    function setSameBlockEnabled(bool _val) external onlyOwner {
        sameBlockEnabled = _val;
    }

    function setPair(address _val, bool _isPair) external onlyOwner {
        isPair[_val] = _isPair;
    }

    function setLimits(bool _val) external onlyOwner {
        limitsOn = _val;
    }

    function goLive(bool _val) external onlyOwner {
        live = _val;
    }

    function enableEarly(bool _val) external onlyOwner {
        early = _val;
    }

    function setMaxWallet(uint256 _val) external onlyOwner {
        maxWallet = _val;
    }

    function withdrawStuckETH() external onlyOwner {
        uint256 balance = address(this).balance;
        payable(owner()).transfer(balance);
    }

    function withdrawStuckERC(address tokenAddress, uint256 tokens) public onlyOwner returns (bool) {
        if(tokens == 0){ tokens = IERC20(tokenAddress).balanceOf(address(this));}
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

}

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":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_val","type":"bool"}],"name":"enableEarly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_val","type":"bool"}],"name":"goLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"isEarlyTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_val","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"isEnabled","type":"bool"}],"name":"setExemptUsers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_val","type":"bool"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_val","type":"address"}],"name":"setMarkettingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_val","type":"address"},{"internalType":"bool","name":"_isPair","type":"bool"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_val","type":"bool"}],"name":"setSameBlockEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"isEnabled","type":"bool"}],"name":"setSuperUsers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setSwapBackPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_val","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"superUsers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"withdrawStuckERC","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000ffc565b633b9aca006200002591906200104d565b600255737a250d5630b4cf539739df2c5dacb4c659f2488d600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e600c55601e600d55620000be6032620000aa600160025462000c6f60201b62001d1e1790919060201c565b62000cf260201b62001d981790919060201c565b600e55620000f96107d0620000e5600160025462000c6f60201b62001d1e1790919060201c565b62000cf260201b62001d981790919060201c565b600f55604660105560326013556001601460006101000a81548160ff0219169083151502179055506001601460016101000a81548160ff0219169083151502179055506000601460026101000a81548160ff0219169083151502179055506001601460036101000a81548160ff0219169083151502179055506001601460046101000a81548160ff021916908315150217905550600267ffffffffffffffff811115620001ab57620001aa620010ae565b5b604051908082528060200260200182016040528015620001da5781602001602082028036833780820191505090505b5060159080519060200190620001f292919062000db4565b503480156200020057600080fd5b506200021162000d4460201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c2919062001147565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200044b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000471919062001147565b306040518363ffffffff1660e01b8152600401620004919291906200118a565b6020604051808303816000875af1158015620004b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d7919062001147565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160166000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60046000620005c662000d4460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460006200075b62000d4460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073c64f16aa17ccec4f63e3150535579ec9b04d6298601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734a701a59bc49dca8a82b509814168bced4788a66601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960006200097b62000d4460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002546003600062000a5d62000d4460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555030601560008154811062000ab45762000ab3620011b7565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b6a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b90919062001147565b601560018154811062000ba85762000ba7620011b7565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000c0062000d4460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000c619190620011f7565b60405180910390a3620013d1565b600080830362000c83576000905062000cec565b6000828462000c9391906200104d565b905082848262000ca4919062001243565b1462000ce7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cde9062001302565b60405180910390fd5b809150505b92915050565b600062000d3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000d4c60201b60201c565b905092915050565b600033905090565b6000808311829062000d96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d8d9190620013ad565b60405180910390fd5b506000838562000da7919062001243565b9050809150509392505050565b82805482825590600052602060002090810192821562000e30579160200282015b8281111562000e2f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000dd5565b5b50905062000e3f919062000e43565b5090565b5b8082111562000e5e57600081600090555060010162000e44565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ef05780860481111562000ec85762000ec762000e62565b5b600185161562000ed85780820291505b808102905062000ee88562000e91565b945062000ea8565b94509492505050565b60008262000f0b576001905062000fde565b8162000f1b576000905062000fde565b816001811462000f34576002811462000f3f5762000f75565b600191505062000fde565b60ff84111562000f545762000f5362000e62565b5b8360020a91508482111562000f6e5762000f6d62000e62565b5b5062000fde565b5060208310610133831016604e8410600b841016171562000faf5782820a90508381111562000fa95762000fa862000e62565b5b62000fde565b62000fbe848484600162000e9e565b9250905081840481111562000fd85762000fd762000e62565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620010098262000fe5565b9150620010168362000fef565b9250620010457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ef9565b905092915050565b60006200105a8262000fe5565b9150620010678362000fe5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620010a357620010a262000e62565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200110f82620010e2565b9050919050565b620011218162001102565b81146200112d57600080fd5b50565b600081519050620011418162001116565b92915050565b60006020828403121562001160576200115f620010dd565b5b6000620011708482850162001130565b91505092915050565b620011848162001102565b82525050565b6000604082019050620011a1600083018562001179565b620011b0602083018462001179565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b620011f18162000fe5565b82525050565b60006020820190506200120e6000830184620011e6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012508262000fe5565b91506200125d8362000fe5565b92508262001270576200126f62001214565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620012ea6021836200127b565b9150620012f7826200128c565b604082019050919050565b600060208201905081810360008301526200131d81620012db565b9050919050565b600081519050919050565b60005b838110156200134f57808201518184015260208101905062001332565b60008484015250505050565b6000601f19601f8301169050919050565b6000620013798262001324565b6200138581856200127b565b9350620013978185602086016200132f565b620013a2816200135b565b840191505092915050565b60006020820190508181036000830152620013c981846200136c565b905092915050565b613b9680620013e16000396000f3fe6080604052600436106101e75760003560e01c80639434654b11610102578063dd62ed3e11610095578063f5648a4f11610064578063f5648a4f146106f3578063f8b45b051461070a578063fbf586d414610735578063fd3c262014610772576101ee565b8063dd62ed3e1461063b578063e01af92c14610678578063f2fde38b146106a1578063f3096f49146106ca576101ee565b8063a9059cbb116100d1578063a9059cbb14610583578063acfaec0d146105c0578063b3bdd0aa146105e9578063dc1052e214610612576101ee565b80639434654b146104dd57806395d89b41146105065780639adce734146105315780639d0014b11461055a576101ee565b8063654dcefa1161017a578063715018a611610149578063715018a61461044957806386a22eff146104605780638cd09d50146104895780638da5cb5b146104b2576101ee565b8063654dcefa1461036957806365649740146103a65780636e73759f146103e357806370a082311461040c576101ee565b806323b872dd116101b657806323b872dd146102af578063313ce567146102ec57806344309fca146103175780635d0044ca14610340576101ee565b806306fdde03146101f3578063095ea7b31461021e57806318160ddd1461025b5780631f53ac0214610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861079b565b6040516102159190612f4a565b60405180910390f35b34801561022a57600080fd5b506102456004803603810190610240919061300a565b6107d8565b6040516102529190613065565b60405180910390f35b34801561026757600080fd5b506102706108d8565b60405161027d919061308f565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a891906130aa565b6108e2565b005b3480156102bb57600080fd5b506102d660048036038101906102d191906130d7565b6109a2565b6040516102e39190613065565b60405180910390f35b3480156102f857600080fd5b50610301610bb7565b60405161030e9190613146565b60405180910390f35b34801561032357600080fd5b5061033e6004803603810190610339919061318d565b610bc0565b005b34801561034c57600080fd5b50610367600480360381019061036291906131ba565b610c59565b005b34801561037557600080fd5b50610390600480360381019061038b91906130aa565b610cdf565b60405161039d9190613065565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c8919061300a565b610cff565b6040516103da9190613065565b60405180910390f35b3480156103ef57600080fd5b5061040a6004803603810190610405919061324c565b610e88565b005b34801561041857600080fd5b50610433600480360381019061042e91906130aa565b610fa9565b604051610440919061308f565b60405180910390f35b34801561045557600080fd5b5061045e610ff2565b005b34801561046c57600080fd5b50610487600480360381019061048291906132ac565b61112c565b005b34801561049557600080fd5b506104b060048036038101906104ab91906131ba565b611203565b005b3480156104be57600080fd5b506104c76112cd565b6040516104d491906132fb565b60405180910390f35b3480156104e957600080fd5b5061050460048036038101906104ff919061318d565b6112f6565b005b34801561051257600080fd5b5061051b61138f565b6040516105289190612f4a565b60405180910390f35b34801561053d57600080fd5b506105586004803603810190610553919061318d565b6113cc565b005b34801561056657600080fd5b50610581600480360381019061057c91906131ba565b611465565b005b34801561058f57600080fd5b506105aa60048036038101906105a5919061300a565b6114eb565b6040516105b79190613065565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e291906130aa565b611507565b005b3480156105f557600080fd5b50610610600480360381019061060b919061324c565b6115c7565b005b34801561061e57600080fd5b50610639600480360381019061063491906131ba565b6116e8565b005b34801561064757600080fd5b50610662600480360381019061065d9190613316565b6117b2565b60405161066f919061308f565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a919061318d565b611839565b005b3480156106ad57600080fd5b506106c860048036038101906106c391906130aa565b6118d2565b005b3480156106d657600080fd5b506106f160048036038101906106ec91906131ba565b611a7a565b005b3480156106ff57600080fd5b50610708611b00565b005b34801561071657600080fd5b5061071f611bd2565b60405161072c919061308f565b60405180910390f35b34801561074157600080fd5b5061075c600480360381019061075791906130aa565b611bd8565b6040516107699190613065565b60405180910390f35b34801561077e57600080fd5b506107996004803603810190610794919061318d565b611c85565b005b60606040518060400160405280600a81526020017f496e746572636861696e00000000000000000000000000000000000000000000815250905090565b600081600460006107e7611de2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16610881611de2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108c6919061308f565b60405180910390a36001905092915050565b6000600254905090565b6108ea611de2565b73ffffffffffffffffffffffffffffffffffffffff166109086112cd565b73ffffffffffffffffffffffffffffffffffffffff161461095e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610955906133a2565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a0e611de2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ba357610b1b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ad1611de2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dea9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b64611de2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bae848484611e4e565b90509392505050565b60006012905090565b610bc8611de2565b73ffffffffffffffffffffffffffffffffffffffff16610be66112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c33906133a2565b60405180910390fd5b80601460046101000a81548160ff02191690831515021790555050565b610c61611de2565b73ffffffffffffffffffffffffffffffffffffffff16610c7f6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc906133a2565b60405180910390fd5b80600e8190555050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000610d09611de2565b73ffffffffffffffffffffffffffffffffffffffff16610d276112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d74906133a2565b60405180910390fd5b60008203610e02578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610dbe91906132fb565b602060405180830381865afa158015610ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dff91906133d7565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610e3d929190613404565b6020604051808303816000875af1158015610e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e809190613442565b905092915050565b610e90611de2565b73ffffffffffffffffffffffffffffffffffffffff16610eae6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efb906133a2565b60405180910390fd5b60005b83839050811015610fa3578160056000868685818110610f2a57610f2961346f565b5b9050602002016020810190610f3f91906130aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f9b906134cd565b915050610f07565b50505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ffa611de2565b73ffffffffffffffffffffffffffffffffffffffff166110186112cd565b73ffffffffffffffffffffffffffffffffffffffff161461106e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611065906133a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611134611de2565b73ffffffffffffffffffffffffffffffffffffffff166111526112cd565b73ffffffffffffffffffffffffffffffffffffffff16146111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f906133a2565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61120b611de2565b73ffffffffffffffffffffffffffffffffffffffff166112296112cd565b73ffffffffffffffffffffffffffffffffffffffff161461127f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611276906133a2565b60405180910390fd5b600f8111156112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90613561565b60405180910390fd5b80600d8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112fe611de2565b73ffffffffffffffffffffffffffffffffffffffff1661131c6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611369906133a2565b60405180910390fd5b80601460036101000a81548160ff02191690831515021790555050565b60606040518060400160405280600381526020017f4943580000000000000000000000000000000000000000000000000000000000815250905090565b6113d4611de2565b73ffffffffffffffffffffffffffffffffffffffff166113f26112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143f906133a2565b60405180910390fd5b80601460016101000a81548160ff02191690831515021790555050565b61146d611de2565b73ffffffffffffffffffffffffffffffffffffffff1661148b6112cd565b73ffffffffffffffffffffffffffffffffffffffff16146114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d8906133a2565b60405180910390fd5b80600f8190555050565b60006114ff6114f8611de2565b8484611e4e565b905092915050565b61150f611de2565b73ffffffffffffffffffffffffffffffffffffffff1661152d6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157a906133a2565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115cf611de2565b73ffffffffffffffffffffffffffffffffffffffff166115ed6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a906133a2565b60405180910390fd5b60005b838390508110156116e25781600960008686858181106116695761166861346f565b5b905060200201602081019061167e91906130aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806116da906134cd565b915050611646565b50505050565b6116f0611de2565b73ffffffffffffffffffffffffffffffffffffffff1661170e6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b906133a2565b60405180910390fd5b600f8111156117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179f90613561565b60405180910390fd5b80600c8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611841611de2565b73ffffffffffffffffffffffffffffffffffffffff1661185f6112cd565b73ffffffffffffffffffffffffffffffffffffffff16146118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac906133a2565b60405180910390fd5b80601460006101000a81548160ff02191690831515021790555050565b6118da611de2565b73ffffffffffffffffffffffffffffffffffffffff166118f86112cd565b73ffffffffffffffffffffffffffffffffffffffff161461194e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611945906133a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b4906135f3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a82611de2565b73ffffffffffffffffffffffffffffffffffffffff16611aa06112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aed906133a2565b60405180910390fd5b8060108190555050565b611b08611de2565b73ffffffffffffffffffffffffffffffffffffffff16611b266112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b73906133a2565b60405180910390fd5b6000479050611b896112cd565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bce573d6000803e3d6000fd5b5050565b600e5481565b6000611be26112cd565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603611c1d5760019050611c80565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7b5760019050611c80565b600090505b919050565b611c8d611de2565b73ffffffffffffffffffffffffffffffffffffffff16611cab6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf8906133a2565b60405180910390fd5b80601460026101000a81548160ff02191690831515021790555050565b6000808303611d305760009050611d92565b60008284611d3e9190613613565b9050828482611d4d919061369c565b14611d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d849061373f565b60405180910390fd5b809150505b92915050565b6000611dda83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612521565b905092915050565b600033905090565b6000838311158290611e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e299190612f4a565b60405180910390fd5b5060008385611e41919061375f565b9050809150509392505050565b6000601460039054906101000a900460ff16611f0557611e6d83611bd8565b611eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea3906137df565b60405180910390fd5b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601760009054906101000a900460ff1615611f2c57611f25848484612584565b905061251a565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fb95750611f896112cd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120135750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561204d575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120865750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561209e5750601460019054906101000a900460ff165b1561213357600e5482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f191906137ff565b1115612132576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121299061387f565b60405180910390fd5b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121da5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121f25750601460029054906101000a900460ff165b156122795743600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403612278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226f90613911565b60405180910390fd5b5b61228283612757565b156122915761229082612871565b5b61231a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dea9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061236885612ae0565b612372578261237e565b61237d858585612b37565b5b90506123d281600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146124af5743600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161250c919061308f565b60405180910390a360019150505b9392505050565b60008083118290612568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255f9190612f4a565b60405180910390fd5b5060008385612577919061369c565b9050809150509392505050565b600061260f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dea9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612744919061308f565b60405180910390a3600190509392505050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127ec57506127b56112cd565b73ffffffffffffffffffffffffffffffffffffffff166127d3611de2565b73ffffffffffffffffffffffffffffffffffffffff1614155b80156128055750601760009054906101000a900460ff16155b801561281d5750601460009054906101000a900460ff165b801561286a5750600f54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b6001601760006101000a81548160ff02191690831515021790555060006128b660646128a860105485611d1e90919063ffffffff16565b611d9890919063ffffffff16565b90506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612908578091505b6000821115612ac057600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947836000601530426040518663ffffffff1660e01b8152600401612976959493929190613a9a565b600060405180830381600087803b15801561299057600080fd5b505af11580156129a4573d6000803e3d6000fd5b50505050600047905060006129d760646129c960135485611d1e90919063ffffffff16565b611d9890919063ffffffff16565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a41573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612a918385612e7090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612abc573d6000803e3d6000fd5b5050505b50506000601760006101000a81548160ff02191690831515021790555050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008060009050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015612be55750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c1957612c126064612c04600c5486611d1e90919063ffffffff16565b611d9890919063ffffffff16565b9050612cf1565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612cc05750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cf057612ced6064612cdf600d5486611d1e90919063ffffffff16565b611d9890919063ffffffff16565b90505b5b6000811115612df557612d4c81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dec919061308f565b60405180910390a35b612e088184612e7090919063ffffffff16565b9150509392505050565b6000808284612e2191906137ff565b905083811015612e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5d90613b40565b60405180910390fd5b8091505092915050565b6000612eb283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dea565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ef4578082015181840152602081019050612ed9565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f1c82612eba565b612f268185612ec5565b9350612f36818560208601612ed6565b612f3f81612f00565b840191505092915050565b60006020820190508181036000830152612f648184612f11565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fa182612f76565b9050919050565b612fb181612f96565b8114612fbc57600080fd5b50565b600081359050612fce81612fa8565b92915050565b6000819050919050565b612fe781612fd4565b8114612ff257600080fd5b50565b60008135905061300481612fde565b92915050565b6000806040838503121561302157613020612f6c565b5b600061302f85828601612fbf565b925050602061304085828601612ff5565b9150509250929050565b60008115159050919050565b61305f8161304a565b82525050565b600060208201905061307a6000830184613056565b92915050565b61308981612fd4565b82525050565b60006020820190506130a46000830184613080565b92915050565b6000602082840312156130c0576130bf612f6c565b5b60006130ce84828501612fbf565b91505092915050565b6000806000606084860312156130f0576130ef612f6c565b5b60006130fe86828701612fbf565b935050602061310f86828701612fbf565b925050604061312086828701612ff5565b9150509250925092565b600060ff82169050919050565b6131408161312a565b82525050565b600060208201905061315b6000830184613137565b92915050565b61316a8161304a565b811461317557600080fd5b50565b60008135905061318781613161565b92915050565b6000602082840312156131a3576131a2612f6c565b5b60006131b184828501613178565b91505092915050565b6000602082840312156131d0576131cf612f6c565b5b60006131de84828501612ff5565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261320c5761320b6131e7565b5b8235905067ffffffffffffffff811115613229576132286131ec565b5b602083019150836020820283011115613245576132446131f1565b5b9250929050565b60008060006040848603121561326557613264612f6c565b5b600084013567ffffffffffffffff81111561328357613282612f71565b5b61328f868287016131f6565b935093505060206132a286828701613178565b9150509250925092565b600080604083850312156132c3576132c2612f6c565b5b60006132d185828601612fbf565b92505060206132e285828601613178565b9150509250929050565b6132f581612f96565b82525050565b600060208201905061331060008301846132ec565b92915050565b6000806040838503121561332d5761332c612f6c565b5b600061333b85828601612fbf565b925050602061334c85828601612fbf565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061338c602083612ec5565b915061339782613356565b602082019050919050565b600060208201905081810360008301526133bb8161337f565b9050919050565b6000815190506133d181612fde565b92915050565b6000602082840312156133ed576133ec612f6c565b5b60006133fb848285016133c2565b91505092915050565b600060408201905061341960008301856132ec565b6134266020830184613080565b9392505050565b60008151905061343c81613161565b92915050565b60006020828403121561345857613457612f6c565b5b60006134668482850161342d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134d882612fd4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361350a5761350961349e565b5b600182019050919050565b7f54617820746f6f20626967000000000000000000000000000000000000000000600082015250565b600061354b600b83612ec5565b915061355682613515565b602082019050919050565b6000602082019050818103600083015261357a8161353e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135dd602683612ec5565b91506135e882613581565b604082019050919050565b6000602082019050818103600083015261360c816135d0565b9050919050565b600061361e82612fd4565b915061362983612fd4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136625761366161349e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136a782612fd4565b91506136b283612fd4565b9250826136c2576136c161366d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613729602183612ec5565b9150613734826136cd565b604082019050919050565b600060208201905081810360008301526137588161371c565b9050919050565b600061376a82612fd4565b915061377583612fd4565b925082820390508181111561378d5761378c61349e565b5b92915050565b7f546f6b656e206973206e6f74206c697665000000000000000000000000000000600082015250565b60006137c9601183612ec5565b91506137d482613793565b602082019050919050565b600060208201905081810360008301526137f8816137bc565b9050919050565b600061380a82612fd4565b915061381583612fd4565b925082820190508082111561382d5761382c61349e565b5b92915050565b7f45786365656473204d61782057616c6c65740000000000000000000000000000600082015250565b6000613869601283612ec5565b915061387482613833565b602082019050919050565b600060208201905081810360008301526138988161385c565b9050919050565b7f43616e6e6f742073656c6c20616e6420627579206f6e2073616d6520626c6f6360008201527f6b00000000000000000000000000000000000000000000000000000000000000602082015250565b60006138fb602183612ec5565b91506139068261389f565b604082019050919050565b6000602082019050818103600083015261392a816138ee565b9050919050565b6000819050919050565b6000819050919050565b600061396061395b61395684613931565b61393b565b612fd4565b9050919050565b61397081613945565b82525050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b6139b081612f96565b82525050565b60006139c283836139a7565b60208301905092915050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a0e613a09836139ce565b6139db565b9050919050565b6000613a2182546139fb565b9050919050565b6000600182019050919050565b6000613a4082613976565b613a4a8185613981565b9350613a5583613992565b8060005b83811015613a8d57613a6a82613a15565b613a7488826139b6565b9750613a7f83613a28565b925050600181019050613a59565b5085935050505092915050565b600060a082019050613aaf6000830188613080565b613abc6020830187613967565b8181036040830152613ace8186613a35565b9050613add60608301856132ec565b613aea6080830184613080565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b2a601b83612ec5565b9150613b3582613af4565b602082019050919050565b60006020820190508181036000830152613b5981613b1d565b905091905056fea26469706673582212204ecd1a0245190e6e583653e6ba2f761b1e6ac9b07f1371c75ba42549a756d10564736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80639434654b11610102578063dd62ed3e11610095578063f5648a4f11610064578063f5648a4f146106f3578063f8b45b051461070a578063fbf586d414610735578063fd3c262014610772576101ee565b8063dd62ed3e1461063b578063e01af92c14610678578063f2fde38b146106a1578063f3096f49146106ca576101ee565b8063a9059cbb116100d1578063a9059cbb14610583578063acfaec0d146105c0578063b3bdd0aa146105e9578063dc1052e214610612576101ee565b80639434654b146104dd57806395d89b41146105065780639adce734146105315780639d0014b11461055a576101ee565b8063654dcefa1161017a578063715018a611610149578063715018a61461044957806386a22eff146104605780638cd09d50146104895780638da5cb5b146104b2576101ee565b8063654dcefa1461036957806365649740146103a65780636e73759f146103e357806370a082311461040c576101ee565b806323b872dd116101b657806323b872dd146102af578063313ce567146102ec57806344309fca146103175780635d0044ca14610340576101ee565b806306fdde03146101f3578063095ea7b31461021e57806318160ddd1461025b5780631f53ac0214610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861079b565b6040516102159190612f4a565b60405180910390f35b34801561022a57600080fd5b506102456004803603810190610240919061300a565b6107d8565b6040516102529190613065565b60405180910390f35b34801561026757600080fd5b506102706108d8565b60405161027d919061308f565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a891906130aa565b6108e2565b005b3480156102bb57600080fd5b506102d660048036038101906102d191906130d7565b6109a2565b6040516102e39190613065565b60405180910390f35b3480156102f857600080fd5b50610301610bb7565b60405161030e9190613146565b60405180910390f35b34801561032357600080fd5b5061033e6004803603810190610339919061318d565b610bc0565b005b34801561034c57600080fd5b50610367600480360381019061036291906131ba565b610c59565b005b34801561037557600080fd5b50610390600480360381019061038b91906130aa565b610cdf565b60405161039d9190613065565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c8919061300a565b610cff565b6040516103da9190613065565b60405180910390f35b3480156103ef57600080fd5b5061040a6004803603810190610405919061324c565b610e88565b005b34801561041857600080fd5b50610433600480360381019061042e91906130aa565b610fa9565b604051610440919061308f565b60405180910390f35b34801561045557600080fd5b5061045e610ff2565b005b34801561046c57600080fd5b50610487600480360381019061048291906132ac565b61112c565b005b34801561049557600080fd5b506104b060048036038101906104ab91906131ba565b611203565b005b3480156104be57600080fd5b506104c76112cd565b6040516104d491906132fb565b60405180910390f35b3480156104e957600080fd5b5061050460048036038101906104ff919061318d565b6112f6565b005b34801561051257600080fd5b5061051b61138f565b6040516105289190612f4a565b60405180910390f35b34801561053d57600080fd5b506105586004803603810190610553919061318d565b6113cc565b005b34801561056657600080fd5b50610581600480360381019061057c91906131ba565b611465565b005b34801561058f57600080fd5b506105aa60048036038101906105a5919061300a565b6114eb565b6040516105b79190613065565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e291906130aa565b611507565b005b3480156105f557600080fd5b50610610600480360381019061060b919061324c565b6115c7565b005b34801561061e57600080fd5b50610639600480360381019061063491906131ba565b6116e8565b005b34801561064757600080fd5b50610662600480360381019061065d9190613316565b6117b2565b60405161066f919061308f565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a919061318d565b611839565b005b3480156106ad57600080fd5b506106c860048036038101906106c391906130aa565b6118d2565b005b3480156106d657600080fd5b506106f160048036038101906106ec91906131ba565b611a7a565b005b3480156106ff57600080fd5b50610708611b00565b005b34801561071657600080fd5b5061071f611bd2565b60405161072c919061308f565b60405180910390f35b34801561074157600080fd5b5061075c600480360381019061075791906130aa565b611bd8565b6040516107699190613065565b60405180910390f35b34801561077e57600080fd5b506107996004803603810190610794919061318d565b611c85565b005b60606040518060400160405280600a81526020017f496e746572636861696e00000000000000000000000000000000000000000000815250905090565b600081600460006107e7611de2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16610881611de2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108c6919061308f565b60405180910390a36001905092915050565b6000600254905090565b6108ea611de2565b73ffffffffffffffffffffffffffffffffffffffff166109086112cd565b73ffffffffffffffffffffffffffffffffffffffff161461095e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610955906133a2565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a0e611de2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ba357610b1b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ad1611de2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dea9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b64611de2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bae848484611e4e565b90509392505050565b60006012905090565b610bc8611de2565b73ffffffffffffffffffffffffffffffffffffffff16610be66112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c33906133a2565b60405180910390fd5b80601460046101000a81548160ff02191690831515021790555050565b610c61611de2565b73ffffffffffffffffffffffffffffffffffffffff16610c7f6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc906133a2565b60405180910390fd5b80600e8190555050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000610d09611de2565b73ffffffffffffffffffffffffffffffffffffffff16610d276112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d74906133a2565b60405180910390fd5b60008203610e02578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610dbe91906132fb565b602060405180830381865afa158015610ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dff91906133d7565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610e3d929190613404565b6020604051808303816000875af1158015610e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e809190613442565b905092915050565b610e90611de2565b73ffffffffffffffffffffffffffffffffffffffff16610eae6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efb906133a2565b60405180910390fd5b60005b83839050811015610fa3578160056000868685818110610f2a57610f2961346f565b5b9050602002016020810190610f3f91906130aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f9b906134cd565b915050610f07565b50505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ffa611de2565b73ffffffffffffffffffffffffffffffffffffffff166110186112cd565b73ffffffffffffffffffffffffffffffffffffffff161461106e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611065906133a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611134611de2565b73ffffffffffffffffffffffffffffffffffffffff166111526112cd565b73ffffffffffffffffffffffffffffffffffffffff16146111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f906133a2565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61120b611de2565b73ffffffffffffffffffffffffffffffffffffffff166112296112cd565b73ffffffffffffffffffffffffffffffffffffffff161461127f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611276906133a2565b60405180910390fd5b600f8111156112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90613561565b60405180910390fd5b80600d8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112fe611de2565b73ffffffffffffffffffffffffffffffffffffffff1661131c6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611369906133a2565b60405180910390fd5b80601460036101000a81548160ff02191690831515021790555050565b60606040518060400160405280600381526020017f4943580000000000000000000000000000000000000000000000000000000000815250905090565b6113d4611de2565b73ffffffffffffffffffffffffffffffffffffffff166113f26112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143f906133a2565b60405180910390fd5b80601460016101000a81548160ff02191690831515021790555050565b61146d611de2565b73ffffffffffffffffffffffffffffffffffffffff1661148b6112cd565b73ffffffffffffffffffffffffffffffffffffffff16146114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d8906133a2565b60405180910390fd5b80600f8190555050565b60006114ff6114f8611de2565b8484611e4e565b905092915050565b61150f611de2565b73ffffffffffffffffffffffffffffffffffffffff1661152d6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157a906133a2565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115cf611de2565b73ffffffffffffffffffffffffffffffffffffffff166115ed6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a906133a2565b60405180910390fd5b60005b838390508110156116e25781600960008686858181106116695761166861346f565b5b905060200201602081019061167e91906130aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806116da906134cd565b915050611646565b50505050565b6116f0611de2565b73ffffffffffffffffffffffffffffffffffffffff1661170e6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b906133a2565b60405180910390fd5b600f8111156117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179f90613561565b60405180910390fd5b80600c8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611841611de2565b73ffffffffffffffffffffffffffffffffffffffff1661185f6112cd565b73ffffffffffffffffffffffffffffffffffffffff16146118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac906133a2565b60405180910390fd5b80601460006101000a81548160ff02191690831515021790555050565b6118da611de2565b73ffffffffffffffffffffffffffffffffffffffff166118f86112cd565b73ffffffffffffffffffffffffffffffffffffffff161461194e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611945906133a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b4906135f3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a82611de2565b73ffffffffffffffffffffffffffffffffffffffff16611aa06112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aed906133a2565b60405180910390fd5b8060108190555050565b611b08611de2565b73ffffffffffffffffffffffffffffffffffffffff16611b266112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b73906133a2565b60405180910390fd5b6000479050611b896112cd565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bce573d6000803e3d6000fd5b5050565b600e5481565b6000611be26112cd565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603611c1d5760019050611c80565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7b5760019050611c80565b600090505b919050565b611c8d611de2565b73ffffffffffffffffffffffffffffffffffffffff16611cab6112cd565b73ffffffffffffffffffffffffffffffffffffffff1614611d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf8906133a2565b60405180910390fd5b80601460026101000a81548160ff02191690831515021790555050565b6000808303611d305760009050611d92565b60008284611d3e9190613613565b9050828482611d4d919061369c565b14611d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d849061373f565b60405180910390fd5b809150505b92915050565b6000611dda83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612521565b905092915050565b600033905090565b6000838311158290611e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e299190612f4a565b60405180910390fd5b5060008385611e41919061375f565b9050809150509392505050565b6000601460039054906101000a900460ff16611f0557611e6d83611bd8565b611eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea3906137df565b60405180910390fd5b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601760009054906101000a900460ff1615611f2c57611f25848484612584565b905061251a565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fb95750611f896112cd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120135750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561204d575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120865750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561209e5750601460019054906101000a900460ff165b1561213357600e5482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f191906137ff565b1115612132576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121299061387f565b60405180910390fd5b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121da5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121f25750601460029054906101000a900460ff165b156122795743600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403612278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226f90613911565b60405180910390fd5b5b61228283612757565b156122915761229082612871565b5b61231a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dea9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061236885612ae0565b612372578261237e565b61237d858585612b37565b5b90506123d281600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146124af5743600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161250c919061308f565b60405180910390a360019150505b9392505050565b60008083118290612568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255f9190612f4a565b60405180910390fd5b5060008385612577919061369c565b9050809150509392505050565b600061260f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dea9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612744919061308f565b60405180910390a3600190509392505050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127ec57506127b56112cd565b73ffffffffffffffffffffffffffffffffffffffff166127d3611de2565b73ffffffffffffffffffffffffffffffffffffffff1614155b80156128055750601760009054906101000a900460ff16155b801561281d5750601460009054906101000a900460ff165b801561286a5750600f54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b6001601760006101000a81548160ff02191690831515021790555060006128b660646128a860105485611d1e90919063ffffffff16565b611d9890919063ffffffff16565b90506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612908578091505b6000821115612ac057600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947836000601530426040518663ffffffff1660e01b8152600401612976959493929190613a9a565b600060405180830381600087803b15801561299057600080fd5b505af11580156129a4573d6000803e3d6000fd5b50505050600047905060006129d760646129c960135485611d1e90919063ffffffff16565b611d9890919063ffffffff16565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a41573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612a918385612e7090919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612abc573d6000803e3d6000fd5b5050505b50506000601760006101000a81548160ff02191690831515021790555050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008060009050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015612be55750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c1957612c126064612c04600c5486611d1e90919063ffffffff16565b611d9890919063ffffffff16565b9050612cf1565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612cc05750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cf057612ced6064612cdf600d5486611d1e90919063ffffffff16565b611d9890919063ffffffff16565b90505b5b6000811115612df557612d4c81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dec919061308f565b60405180910390a35b612e088184612e7090919063ffffffff16565b9150509392505050565b6000808284612e2191906137ff565b905083811015612e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5d90613b40565b60405180910390fd5b8091505092915050565b6000612eb283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dea565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ef4578082015181840152602081019050612ed9565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f1c82612eba565b612f268185612ec5565b9350612f36818560208601612ed6565b612f3f81612f00565b840191505092915050565b60006020820190508181036000830152612f648184612f11565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fa182612f76565b9050919050565b612fb181612f96565b8114612fbc57600080fd5b50565b600081359050612fce81612fa8565b92915050565b6000819050919050565b612fe781612fd4565b8114612ff257600080fd5b50565b60008135905061300481612fde565b92915050565b6000806040838503121561302157613020612f6c565b5b600061302f85828601612fbf565b925050602061304085828601612ff5565b9150509250929050565b60008115159050919050565b61305f8161304a565b82525050565b600060208201905061307a6000830184613056565b92915050565b61308981612fd4565b82525050565b60006020820190506130a46000830184613080565b92915050565b6000602082840312156130c0576130bf612f6c565b5b60006130ce84828501612fbf565b91505092915050565b6000806000606084860312156130f0576130ef612f6c565b5b60006130fe86828701612fbf565b935050602061310f86828701612fbf565b925050604061312086828701612ff5565b9150509250925092565b600060ff82169050919050565b6131408161312a565b82525050565b600060208201905061315b6000830184613137565b92915050565b61316a8161304a565b811461317557600080fd5b50565b60008135905061318781613161565b92915050565b6000602082840312156131a3576131a2612f6c565b5b60006131b184828501613178565b91505092915050565b6000602082840312156131d0576131cf612f6c565b5b60006131de84828501612ff5565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261320c5761320b6131e7565b5b8235905067ffffffffffffffff811115613229576132286131ec565b5b602083019150836020820283011115613245576132446131f1565b5b9250929050565b60008060006040848603121561326557613264612f6c565b5b600084013567ffffffffffffffff81111561328357613282612f71565b5b61328f868287016131f6565b935093505060206132a286828701613178565b9150509250925092565b600080604083850312156132c3576132c2612f6c565b5b60006132d185828601612fbf565b92505060206132e285828601613178565b9150509250929050565b6132f581612f96565b82525050565b600060208201905061331060008301846132ec565b92915050565b6000806040838503121561332d5761332c612f6c565b5b600061333b85828601612fbf565b925050602061334c85828601612fbf565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061338c602083612ec5565b915061339782613356565b602082019050919050565b600060208201905081810360008301526133bb8161337f565b9050919050565b6000815190506133d181612fde565b92915050565b6000602082840312156133ed576133ec612f6c565b5b60006133fb848285016133c2565b91505092915050565b600060408201905061341960008301856132ec565b6134266020830184613080565b9392505050565b60008151905061343c81613161565b92915050565b60006020828403121561345857613457612f6c565b5b60006134668482850161342d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134d882612fd4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361350a5761350961349e565b5b600182019050919050565b7f54617820746f6f20626967000000000000000000000000000000000000000000600082015250565b600061354b600b83612ec5565b915061355682613515565b602082019050919050565b6000602082019050818103600083015261357a8161353e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135dd602683612ec5565b91506135e882613581565b604082019050919050565b6000602082019050818103600083015261360c816135d0565b9050919050565b600061361e82612fd4565b915061362983612fd4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136625761366161349e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136a782612fd4565b91506136b283612fd4565b9250826136c2576136c161366d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613729602183612ec5565b9150613734826136cd565b604082019050919050565b600060208201905081810360008301526137588161371c565b9050919050565b600061376a82612fd4565b915061377583612fd4565b925082820390508181111561378d5761378c61349e565b5b92915050565b7f546f6b656e206973206e6f74206c697665000000000000000000000000000000600082015250565b60006137c9601183612ec5565b91506137d482613793565b602082019050919050565b600060208201905081810360008301526137f8816137bc565b9050919050565b600061380a82612fd4565b915061381583612fd4565b925082820190508082111561382d5761382c61349e565b5b92915050565b7f45786365656473204d61782057616c6c65740000000000000000000000000000600082015250565b6000613869601283612ec5565b915061387482613833565b602082019050919050565b600060208201905081810360008301526138988161385c565b9050919050565b7f43616e6e6f742073656c6c20616e6420627579206f6e2073616d6520626c6f6360008201527f6b00000000000000000000000000000000000000000000000000000000000000602082015250565b60006138fb602183612ec5565b91506139068261389f565b604082019050919050565b6000602082019050818103600083015261392a816138ee565b9050919050565b6000819050919050565b6000819050919050565b600061396061395b61395684613931565b61393b565b612fd4565b9050919050565b61397081613945565b82525050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b6139b081612f96565b82525050565b60006139c283836139a7565b60208301905092915050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a0e613a09836139ce565b6139db565b9050919050565b6000613a2182546139fb565b9050919050565b6000600182019050919050565b6000613a4082613976565b613a4a8185613981565b9350613a5583613992565b8060005b83811015613a8d57613a6a82613a15565b613a7488826139b6565b9750613a7f83613a28565b925050600181019050613a59565b5085935050505092915050565b600060a082019050613aaf6000830188613080565b613abc6020830187613967565b8181036040830152613ace8186613a35565b9050613add60608301856132ec565b613aea6080830184613080565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b2a601b83612ec5565b9150613b3582613af4565b602082019050919050565b60006020820190508181036000830152613b5981613b1d565b905091905056fea26469706673582212204ecd1a0245190e6e583653e6ba2f761b1e6ac9b07f1371c75ba42549a756d10564736f6c63430008100033

Deployed Bytecode Sourcemap

4123:9690:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6724:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7062:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6454:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12713:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7456:374;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6548:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13208:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13298:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4492:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13554:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11563:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6810:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3128:148;;;;;;;;;;;;;:::i;:::-;;12920:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12141:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2897:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13124:76;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6634:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13033:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12379:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7290:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12601:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11784:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12004:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6921:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12280:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3284:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12486:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13396:150;;;;;;;;;;;;;:::i;:::-;;4912:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7838:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12811:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6724:80;6772:13;6796:5;;;;;;;;;;;;;;;;;6789:12;;6724:80;:::o;7062:220::-;7137:4;7191:6;7154:11;:25;7166:12;:10;:12::i;:::-;7154:25;;;;;;;;;;;;;;;:34;7180:7;7154:34;;;;;;;;;;;;;;;:43;;;;7236:7;7213:39;;7222:12;:10;:12::i;:::-;7213:39;;;7245:6;7213:39;;;;;;:::i;:::-;;;;;;;;7270:4;7263:11;;7062:220;;;;:::o;6454:88::-;6509:7;6527:12;;6520:19;;6454:88;:::o;12713:90::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12791:4:::1;12779:9;;:16;;;;;;;;;;;;;;;;;;12713:90:::0;:::o;7456:374::-;7556:4;7613:17;7576:11;:19;7588:6;7576:19;;;;;;;;;;;;;;;:33;7596:12;:10;:12::i;:::-;7576:33;;;;;;;;;;;;;;;;:54;7573:192;;7682:71;7720:6;7682:71;;;;;;;;;;;;;;;;;:11;:19;7694:6;7682:19;;;;;;;;;;;;;;;:33;7702:12;:10;:12::i;:::-;7682:33;;;;;;;;;;;;;;;;:37;;:71;;;;;:::i;:::-;7646:11;:19;7658:6;7646:19;;;;;;;;;;;;;;;:33;7666:12;:10;:12::i;:::-;7646:33;;;;;;;;;;;;;;;:107;;;;7573:192;7782:40;7796:6;7804:9;7815:6;7782:13;:40::i;:::-;7775:47;;7456:374;;;;;:::o;6548:80::-;6600:5;4311:2;6609:16;;6548:80;:::o;13208:82::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13278:4:::1;13270:5;;:12;;;;;;;;;;;;;;;;;;13208:82:::0;:::o;13298:90::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13376:4:::1;13364:9;:16;;;;13298:90:::0;:::o;4492:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;13554:254::-;13644:4;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13674:1:::1;13664:6;:11:::0;13661:73:::1;;13694:12;13687:30;;;13726:4;13687:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13678:54;;13661:73;13758:12;13751:29;;;13781:10;13793:6;13751:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13744:56;;13554:254:::0;;;;:::o;11563:213::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11666:9:::1;11661:108;11685:8;;:15;;11681:1;:19;11661:108;;;11748:9;11722:10;:23;11733:8;;11742:1;11733:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11722:23;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11702:3;;;;;:::i;:::-;;;;11661:108;;;;11563:213:::0;;;:::o;6810:105::-;6876:7;6894:9;:18;6904:7;6894:18;;;;;;;;;;;;;;;;6887:25;;6810:105;;;:::o;3128:148::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3235:1:::1;3198:40;;3219:6;::::0;::::1;;;;;;;;3198:40;;;;;;;;;;;;3266:1;3249:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3128:148::o:0;12920:105::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13010:7:::1;12995:6;:12;13002:4;12995:12;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;12920:105:::0;;:::o;12141:131::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12221:2:::1;12213:4;:10;;12205:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;12260:4;12250:7;:14;;;;12141:131:::0;:::o;2897:87::-;2943:7;2970:6;;;;;;;;;;;2963:13;;2897:87;:::o;13124:76::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13188:4:::1;13181;;:11;;;;;;;;;;;;;;;;;;13124:76:::0;:::o;6634:84::-;6684:13;6708:7;;;;;;;;;;;;;;;;;6701:14;;6634:84;:::o;13033:83::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13104:4:::1;13093:8;;:15;;;;;;;;;;;;;;;;;;13033:83:::0;:::o;12379:98::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12465:4:::1;12449:13;:20;;;;12379:98:::0;:::o;7290:158::-;7370:4;7394:46;7408:12;:10;:12::i;:::-;7422:9;7433:6;7394:13;:46::i;:::-;7387:53;;7290:158;;;;:::o;12601:104::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12693:4:::1;12674:16;;:23;;;;;;;;;;;;;;;;;;12601:104:::0;:::o;11784:212::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11888:9:::1;11883:106;11907:8;;:15;;11903:1;:19;11883:106;;;11968:9;11944:8;:21;11953:8;;11962:1;11953:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11944:21;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11924:3;;;;;:::i;:::-;;;;11883:106;;;;11784:212:::0;;;:::o;12004:129::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12083:2:::1;12075:4;:10;;12067:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;12121:4;12112:6;:13;;;;12004:129:::0;:::o;6921:133::-;7005:7;7023:11;:19;7035:6;7023:19;;;;;;;;;;;;;;;:28;7043:7;7023:28;;;;;;;;;;;;;;;;7016:35;;6921:133;;;;:::o;12280:91::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12359:4:::1;12345:11;;:18;;;;;;;;;;;;;;;;;;12280:91:::0;:::o;3284:244::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3393:1:::1;3373:22;;:8;:22;;::::0;3365:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3483:8;3454:38;;3475:6;::::0;::::1;;;;;;;;3454:38;;;;;;;;;;;;3512:8;3503:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3284:244:::0;:::o;12486:102::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12576:4:::1;12558:15;:22;;;;12486:102:::0;:::o;13396:150::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13454:15:::1;13472:21;13454:39;;13512:7;:5;:7::i;:::-;13504:25;;:34;13530:7;13504:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13443:103;13396:150::o:0;4912:54::-;;;;:::o;7838:251::-;7894:4;7928:7;:5;:7::i;:::-;7915:20;;:9;:20;;;7911:64;;7959:4;7952:11;;;;7911:64;7995:6;;;;;;;;;;;7989:12;;:2;:12;;;7985:67;;8036:4;8029:11;;;;7985:67;8076:5;8069:12;;7838:251;;;;:::o;12811:101::-;3047:12;:10;:12::i;:::-;3036:23;;:7;:5;:7::i;:::-;:23;;;3028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12900:4:::1;12881:16;;:23;;;;;;;;;;;;;;;;;;12811:101:::0;:::o;748:246::-;806:7;835:1;830;:6;826:47;;860:1;853:8;;;;826:47;883:9;899:1;895;:5;;;;:::i;:::-;883:17;;928:1;923;919;:5;;;;:::i;:::-;:10;911:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;985:1;978:8;;;748:246;;;;;:::o;1000:132::-;1058:7;1085:39;1089:1;1092;1085:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1078:46;;1000:132;;;;:::o;2225:98::-;2278:7;2305:10;2298:17;;2225:98;:::o;552:190::-;638:7;671:1;666;:6;;674:12;658:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;698:9;714:1;710;:5;;;;:::i;:::-;698:17;;733:1;726:8;;;552:190;;;;;:::o;8097:1262::-;8189:4;8213;;;;;;;;;;;8208:136;;8242:24;8256:9;8242:13;:24::i;:::-;8234:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8328:4;8303:11;:22;8315:9;8303:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;8208:136;8359:6;;;;;;;;;;;8356:63;;;8375:41;8390:6;8398:9;8409:6;8375:14;:41::i;:::-;8368:48;;;;8356:63;8436:8;:19;8445:9;8436:19;;;;;;;;;;;;;;;;;;;;;;;;;8435:20;:44;;;;;8472:7;:5;:7::i;:::-;8459:20;;:9;:20;;;;8435:44;:67;;;;;8496:6;;;;;;;;;;;8483:19;;:9;:19;;;;8435:67;:99;;;;;8527:6;8506:28;;:9;:28;;;;8435:99;:128;;;;;8559:3;8538:25;;:9;:25;;;;8435:128;:140;;;;;8567:8;;;;;;;;;;;8435:140;8431:246;;;8633:9;;8623:6;8600:9;:20;8610:9;8600:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:42;;8592:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8431:246;8706:6;;;;;;;;;;;8693:19;;:9;:19;;;:40;;;;;8717:8;:16;8726:6;8717:16;;;;;;;;;;;;;;;;;;;;;;;;;8716:17;8693:40;:60;;;;;8737:16;;;;;;;;;;;8693:60;8689:176;;;8803:12;8779;:20;8792:6;8779:20;;;;;;;;;;;;;;;;:36;8770:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;8689:176;8880:25;8895:9;8880:14;:25::i;:::-;8877:50;;;8908:16;8917:6;8908:8;:16::i;:::-;8877:50;8960:53;8982:6;8960:53;;;;;;;;;;;;;;;;;:9;:17;8970:6;8960:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8940:9;:17;8950:6;8940:17;;;;;;;;;;;;;;;:73;;;;9024:22;9049:21;9063:6;9049:13;:21::i;:::-;:67;;9110:6;9049:67;;;9073:34;9081:6;9089:9;9100:6;9073:7;:34::i;:::-;9049:67;9024:92;;9150:40;9175:14;9150:9;:20;9160:9;9150:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9127:9;:20;9137:9;9127:20;;;;;;;;;;;;;;;:63;;;;9220:6;;;;;;;;;;;9207:19;;:9;:19;;;9203:66;;9254:12;9228;:23;9241:9;9228:23;;;;;;;;;;;;;;;:38;;;;9203:66;9303:9;9286:43;;9295:6;9286:43;;;9314:14;9286:43;;;;;;:::i;:::-;;;;;;;;9347:4;9340:11;;;8097:1262;;;;;;:::o;1138:189::-;1224:7;1256:1;1252;:5;1259:12;1244:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1283:9;1299:1;1295;:5;;;;:::i;:::-;1283:17;;1318:1;1311:8;;;1138:189;;;;;:::o;9370:330::-;9463:4;9500:53;9522:6;9500:53;;;;;;;;;;;;;;;;;:9;:17;9510:6;9500:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9480:9;:17;9490:6;9480:17;;;;;;;;;;;;;;;:73;;;;9587:32;9612:6;9587:9;:20;9597:9;9587:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9564:9;:20;9574:9;9564:20;;;;;;;;;;;;;;;:55;;;;9652:9;9635:35;;9644:6;9635:35;;;9663:6;9635:35;;;;;;:::i;:::-;;;;;;;;9688:4;9681:11;;9370:330;;;;;:::o;10418:235::-;10477:4;10501:6;:10;10508:2;10501:10;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;10540:7;:5;:7::i;:::-;10524:23;;:12;:10;:12::i;:::-;:23;;;;10501:46;:66;;;;;10561:6;;;;;;;;;;;10560:7;10501:66;:90;;;;;10580:11;;;;;;;;;;;10501:90;:144;;;;;10632:13;;10604:9;:24;10622:4;10604:24;;;;;;;;;;;;;;;;:41;;10501:144;10494:151;;10418:235;;;:::o;10661:894::-;5463:4;5454:6;;:13;;;;;;;;;;;;;;;;;;10728:20:::1;10751:40;10787:3;10751:31;10766:15;;10751:10;:14;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;10728:63;;10802:23;10828:9;:24;10846:4;10828:24;;;;;;;;;;;;;;;;10802:50;;10887:12;10869:15;:30;10865:93;;;10931:15;10916:30;;10865:93;10990:1;10975:12;:16;10970:578;;;11021:8;;;;;;;;;;;:59;;;11099:12;11130:1;11150:12;11189:4;11213:15;11021:222;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11266:18;11287:21;11266:42;;11323:25;11351:40;11387:3;11351:31;11366:15;;11351:10;:14;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;11323:68;;11414:16;;;;;;;;;;;11406:34;;:53;11441:17;11406:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11482:9;;;;;;;;;;;11474:27;;:62;11502:33;11517:17;11502:10;:14;;:33;;;;:::i;:::-;11474:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10994:554;;10970:578;10717:838;;5481:5:::0;5472:6;;:14;;;;;;;;;;;;;;;;;;10661:894;:::o;9708:107::-;9768:4;9793:8;:14;9802:4;9793:14;;;;;;;;;;;;;;;;;;;;;;;;;9792:15;9785:22;;9708:107;;;:::o;9827:583::-;9904:7;9924:17;9944:1;9924:21;;9970:6;;;;;;;;;;;9962:14;;:4;:14;;;:31;;;;;9981:8;:12;9990:2;9981:12;;;;;;;;;;;;;;;;;;;;;;;;;9980:13;9962:31;9958:223;;;10022:27;10045:3;10022:18;10033:6;;10022;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;10010:39;;9958:223;;;10087:6;;;;;;;;;;;10081:12;;:2;:12;;;:31;;;;;10098:8;:14;10107:4;10098:14;;;;;;;;;;;;;;;;;;;;;;;;;10097:15;10081:31;10077:104;;;10141:28;10165:3;10141:19;10152:7;;10141:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;10129:40;;10077:104;9958:223;10208:1;10196:9;:13;10192:172;;;10253:39;10282:9;10253;:24;10271:4;10253:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10226:9;:24;10244:4;10226:24;;;;;;;;;;;;;;;:66;;;;10335:4;10312:40;;10321:4;10312:40;;;10342:9;10312:40;;;;;;:::i;:::-;;;;;;;;10192:172;10381:21;10392:9;10381:6;:10;;:21;;;;:::i;:::-;10374:28;;;9827:583;;;;;:::o;225:179::-;283:7;303:9;319:1;315;:5;;;;:::i;:::-;303:17;;344:1;339;:6;;331:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;395:1;388:8;;;225:179;;;;:::o;410:136::-;468:7;495:43;499:1;502;495:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;488:50;;410:136;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:323::-;5505:6;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:50;5747:7;5738:6;5727:9;5723:22;5705:50;:::i;:::-;5695:60;;5651:114;5449:323;;;;:::o;5778:329::-;5837:6;5886:2;5874:9;5865:7;5861:23;5857:32;5854:119;;;5892:79;;:::i;:::-;5854:119;6012:1;6037:53;6082:7;6073:6;6062:9;6058:22;6037:53;:::i;:::-;6027:63;;5983:117;5778:329;;;;:::o;6113:117::-;6222:1;6219;6212:12;6236:117;6345:1;6342;6335:12;6359:117;6468:1;6465;6458:12;6499:568;6572:8;6582:6;6632:3;6625:4;6617:6;6613:17;6609:27;6599:122;;6640:79;;:::i;:::-;6599:122;6753:6;6740:20;6730:30;;6783:18;6775:6;6772:30;6769:117;;;6805:79;;:::i;:::-;6769:117;6919:4;6911:6;6907:17;6895:29;;6973:3;6965:4;6957:6;6953:17;6943:8;6939:32;6936:41;6933:128;;;6980:79;;:::i;:::-;6933:128;6499:568;;;;;:::o;7073:698::-;7165:6;7173;7181;7230:2;7218:9;7209:7;7205:23;7201:32;7198:119;;;7236:79;;:::i;:::-;7198:119;7384:1;7373:9;7369:17;7356:31;7414:18;7406:6;7403:30;7400:117;;;7436:79;;:::i;:::-;7400:117;7549:80;7621:7;7612:6;7601:9;7597:22;7549:80;:::i;:::-;7531:98;;;;7327:312;7678:2;7704:50;7746:7;7737:6;7726:9;7722:22;7704:50;:::i;:::-;7694:60;;7649:115;7073:698;;;;;:::o;7777:468::-;7842:6;7850;7899:2;7887:9;7878:7;7874:23;7870:32;7867:119;;;7905:79;;:::i;:::-;7867:119;8025:1;8050:53;8095:7;8086:6;8075:9;8071:22;8050:53;:::i;:::-;8040:63;;7996:117;8152:2;8178:50;8220:7;8211:6;8200:9;8196:22;8178:50;:::i;:::-;8168:60;;8123:115;7777:468;;;;;:::o;8251:118::-;8338:24;8356:5;8338:24;:::i;:::-;8333:3;8326:37;8251:118;;:::o;8375:222::-;8468:4;8506:2;8495:9;8491:18;8483:26;;8519:71;8587:1;8576:9;8572:17;8563:6;8519:71;:::i;:::-;8375:222;;;;:::o;8603:474::-;8671:6;8679;8728:2;8716:9;8707:7;8703:23;8699:32;8696:119;;;8734:79;;:::i;:::-;8696:119;8854:1;8879:53;8924:7;8915:6;8904:9;8900:22;8879:53;:::i;:::-;8869:63;;8825:117;8981:2;9007:53;9052:7;9043:6;9032:9;9028:22;9007:53;:::i;:::-;8997:63;;8952:118;8603:474;;;;;:::o;9083:182::-;9223:34;9219:1;9211:6;9207:14;9200:58;9083:182;:::o;9271:366::-;9413:3;9434:67;9498:2;9493:3;9434:67;:::i;:::-;9427:74;;9510:93;9599:3;9510:93;:::i;:::-;9628:2;9623:3;9619:12;9612:19;;9271:366;;;:::o;9643:419::-;9809:4;9847:2;9836:9;9832:18;9824:26;;9896:9;9890:4;9886:20;9882:1;9871:9;9867:17;9860:47;9924:131;10050:4;9924:131;:::i;:::-;9916:139;;9643:419;;;:::o;10068:143::-;10125:5;10156:6;10150:13;10141:22;;10172:33;10199:5;10172:33;:::i;:::-;10068:143;;;;:::o;10217:351::-;10287:6;10336:2;10324:9;10315:7;10311:23;10307:32;10304:119;;;10342:79;;:::i;:::-;10304:119;10462:1;10487:64;10543:7;10534:6;10523:9;10519:22;10487:64;:::i;:::-;10477:74;;10433:128;10217:351;;;;:::o;10574:332::-;10695:4;10733:2;10722:9;10718:18;10710:26;;10746:71;10814:1;10803:9;10799:17;10790:6;10746:71;:::i;:::-;10827:72;10895:2;10884:9;10880:18;10871:6;10827:72;:::i;:::-;10574:332;;;;;:::o;10912:137::-;10966:5;10997:6;10991:13;10982:22;;11013:30;11037:5;11013:30;:::i;:::-;10912:137;;;;:::o;11055:345::-;11122:6;11171:2;11159:9;11150:7;11146:23;11142:32;11139:119;;;11177:79;;:::i;:::-;11139:119;11297:1;11322:61;11375:7;11366:6;11355:9;11351:22;11322:61;:::i;:::-;11312:71;;11268:125;11055:345;;;;:::o;11406:180::-;11454:77;11451:1;11444:88;11551:4;11548:1;11541:15;11575:4;11572:1;11565:15;11592:180;11640:77;11637:1;11630:88;11737:4;11734:1;11727:15;11761:4;11758:1;11751:15;11778:233;11817:3;11840:24;11858:5;11840:24;:::i;:::-;11831:33;;11886:66;11879:5;11876:77;11873:103;;11956:18;;:::i;:::-;11873:103;12003:1;11996:5;11992:13;11985:20;;11778:233;;;:::o;12017:161::-;12157:13;12153:1;12145:6;12141:14;12134:37;12017:161;:::o;12184:366::-;12326:3;12347:67;12411:2;12406:3;12347:67;:::i;:::-;12340:74;;12423:93;12512:3;12423:93;:::i;:::-;12541:2;12536:3;12532:12;12525:19;;12184:366;;;:::o;12556:419::-;12722:4;12760:2;12749:9;12745:18;12737:26;;12809:9;12803:4;12799:20;12795:1;12784:9;12780:17;12773:47;12837:131;12963:4;12837:131;:::i;:::-;12829:139;;12556:419;;;:::o;12981:225::-;13121:34;13117:1;13109:6;13105:14;13098:58;13190:8;13185:2;13177:6;13173:15;13166:33;12981:225;:::o;13212:366::-;13354:3;13375:67;13439:2;13434:3;13375:67;:::i;:::-;13368:74;;13451:93;13540:3;13451:93;:::i;:::-;13569:2;13564:3;13560:12;13553:19;;13212:366;;;:::o;13584:419::-;13750:4;13788:2;13777:9;13773:18;13765:26;;13837:9;13831:4;13827:20;13823:1;13812:9;13808:17;13801:47;13865:131;13991:4;13865:131;:::i;:::-;13857:139;;13584:419;;;:::o;14009:348::-;14049:7;14072:20;14090:1;14072:20;:::i;:::-;14067:25;;14106:20;14124:1;14106:20;:::i;:::-;14101:25;;14294:1;14226:66;14222:74;14219:1;14216:81;14211:1;14204:9;14197:17;14193:105;14190:131;;;14301:18;;:::i;:::-;14190:131;14349:1;14346;14342:9;14331:20;;14009:348;;;;:::o;14363:180::-;14411:77;14408:1;14401:88;14508:4;14505:1;14498:15;14532:4;14529:1;14522:15;14549:185;14589:1;14606:20;14624:1;14606:20;:::i;:::-;14601:25;;14640:20;14658:1;14640:20;:::i;:::-;14635:25;;14679:1;14669:35;;14684:18;;:::i;:::-;14669:35;14726:1;14723;14719:9;14714:14;;14549:185;;;;:::o;14740:220::-;14880:34;14876:1;14868:6;14864:14;14857:58;14949:3;14944:2;14936:6;14932:15;14925:28;14740:220;:::o;14966:366::-;15108:3;15129:67;15193:2;15188:3;15129:67;:::i;:::-;15122:74;;15205:93;15294:3;15205:93;:::i;:::-;15323:2;15318:3;15314:12;15307:19;;14966:366;;;:::o;15338:419::-;15504:4;15542:2;15531:9;15527:18;15519:26;;15591:9;15585:4;15581:20;15577:1;15566:9;15562:17;15555:47;15619:131;15745:4;15619:131;:::i;:::-;15611:139;;15338:419;;;:::o;15763:194::-;15803:4;15823:20;15841:1;15823:20;:::i;:::-;15818:25;;15857:20;15875:1;15857:20;:::i;:::-;15852:25;;15901:1;15898;15894:9;15886:17;;15925:1;15919:4;15916:11;15913:37;;;15930:18;;:::i;:::-;15913:37;15763:194;;;;:::o;15963:167::-;16103:19;16099:1;16091:6;16087:14;16080:43;15963:167;:::o;16136:366::-;16278:3;16299:67;16363:2;16358:3;16299:67;:::i;:::-;16292:74;;16375:93;16464:3;16375:93;:::i;:::-;16493:2;16488:3;16484:12;16477:19;;16136:366;;;:::o;16508:419::-;16674:4;16712:2;16701:9;16697:18;16689:26;;16761:9;16755:4;16751:20;16747:1;16736:9;16732:17;16725:47;16789:131;16915:4;16789:131;:::i;:::-;16781:139;;16508:419;;;:::o;16933:191::-;16973:3;16992:20;17010:1;16992:20;:::i;:::-;16987:25;;17026:20;17044:1;17026:20;:::i;:::-;17021:25;;17069:1;17066;17062:9;17055:16;;17090:3;17087:1;17084:10;17081:36;;;17097:18;;:::i;:::-;17081:36;16933:191;;;;:::o;17130:168::-;17270:20;17266:1;17258:6;17254:14;17247:44;17130:168;:::o;17304:366::-;17446:3;17467:67;17531:2;17526:3;17467:67;:::i;:::-;17460:74;;17543:93;17632:3;17543:93;:::i;:::-;17661:2;17656:3;17652:12;17645:19;;17304:366;;;:::o;17676:419::-;17842:4;17880:2;17869:9;17865:18;17857:26;;17929:9;17923:4;17919:20;17915:1;17904:9;17900:17;17893:47;17957:131;18083:4;17957:131;:::i;:::-;17949:139;;17676:419;;;:::o;18101:220::-;18241:34;18237:1;18229:6;18225:14;18218:58;18310:3;18305:2;18297:6;18293:15;18286:28;18101:220;:::o;18327:366::-;18469:3;18490:67;18554:2;18549:3;18490:67;:::i;:::-;18483:74;;18566:93;18655:3;18566:93;:::i;:::-;18684:2;18679:3;18675:12;18668:19;;18327:366;;;:::o;18699:419::-;18865:4;18903:2;18892:9;18888:18;18880:26;;18952:9;18946:4;18942:20;18938:1;18927:9;18923:17;18916:47;18980:131;19106:4;18980:131;:::i;:::-;18972:139;;18699:419;;;:::o;19124:85::-;19169:7;19198:5;19187:16;;19124:85;;;:::o;19215:60::-;19243:3;19264:5;19257:12;;19215:60;;;:::o;19281:158::-;19339:9;19372:61;19390:42;19399:32;19425:5;19399:32;:::i;:::-;19390:42;:::i;:::-;19372:61;:::i;:::-;19359:74;;19281:158;;;:::o;19445:147::-;19540:45;19579:5;19540:45;:::i;:::-;19535:3;19528:58;19445:147;;:::o;19598:111::-;19662:6;19696:5;19690:12;19680:22;;19598:111;;;:::o;19715:184::-;19814:11;19848:6;19843:3;19836:19;19888:4;19883:3;19879:14;19864:29;;19715:184;;;;:::o;19905:156::-;19969:4;19992:3;19984:11;;20015:3;20012:1;20005:14;20049:4;20046:1;20036:18;20028:26;;19905:156;;;:::o;20067:108::-;20144:24;20162:5;20144:24;:::i;:::-;20139:3;20132:37;20067:108;;:::o;20181:179::-;20250:10;20271:46;20313:3;20305:6;20271:46;:::i;:::-;20349:4;20344:3;20340:14;20326:28;;20181:179;;;;:::o;20366:102::-;20408:8;20455:5;20452:1;20448:13;20427:34;;20366:102;;;:::o;20474:139::-;20524:7;20564:42;20557:5;20553:54;20542:65;;20474:139;;;:::o;20619:166::-;20688:5;20713:66;20744:34;20767:10;20744:34;:::i;:::-;20713:66;:::i;:::-;20704:75;;20619:166;;;:::o;20791:144::-;20846:5;20871:57;20922:4;20916:11;20871:57;:::i;:::-;20862:66;;20791:144;;;:::o;20941:110::-;21008:4;21040;21035:3;21031:14;21023:22;;20941:110;;;:::o;21087:751::-;21203:3;21232:51;21277:5;21232:51;:::i;:::-;21299:86;21378:6;21373:3;21299:86;:::i;:::-;21292:93;;21409:53;21456:5;21409:53;:::i;:::-;21485:7;21516:1;21501:312;21526:6;21523:1;21520:13;21501:312;;;21596:44;21633:6;21596:44;:::i;:::-;21660:63;21719:3;21704:13;21660:63;:::i;:::-;21653:70;;21746:57;21796:6;21746:57;:::i;:::-;21736:67;;21561:252;21548:1;21545;21541:9;21536:14;;21501:312;;;21505:14;21829:3;21822:10;;21208:630;;;21087:751;;;;:::o;21844:825::-;22104:4;22142:3;22131:9;22127:19;22119:27;;22156:71;22224:1;22213:9;22209:17;22200:6;22156:71;:::i;:::-;22237:80;22313:2;22302:9;22298:18;22289:6;22237:80;:::i;:::-;22364:9;22358:4;22354:20;22349:2;22338:9;22334:18;22327:48;22392:105;22492:4;22483:6;22392:105;:::i;:::-;22384:113;;22507:72;22575:2;22564:9;22560:18;22551:6;22507:72;:::i;:::-;22589:73;22657:3;22646:9;22642:19;22633:6;22589:73;:::i;:::-;21844:825;;;;;;;;:::o;22675:177::-;22815:29;22811:1;22803:6;22799:14;22792:53;22675:177;:::o;22858:366::-;23000:3;23021:67;23085:2;23080:3;23021:67;:::i;:::-;23014:74;;23097:93;23186:3;23097:93;:::i;:::-;23215:2;23210:3;23206:12;23199:19;;22858:366;;;:::o;23230:419::-;23396:4;23434:2;23423:9;23419:18;23411:26;;23483:9;23477:4;23473:20;23469:1;23458:9;23454:17;23447:47;23511:131;23637:4;23511:131;:::i;:::-;23503:139;;23230:419;;;:::o

Swarm Source

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