ETH Price: $3,468.69 (+0.00%)
Gas: 13 Gwei

Token

X Protocol ($X)
 

Overview

Max Total Supply

1,000,000,000 $X

Holders

196

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,620,517.462257874 $X

Value
$0.00
0xfbaec3e8a1d9a26c8f3878807fa4b3f84d4ad3c3
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:
X

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

/**


Tweet:  https://twitter.com/VitalikButerin/status/1583508425132355584

You guys should now i am always deploying low tax and locking for long time. I just doing for you its a communtiy driven.
Now, we got the potential of a bullish tweet instead of a random one. Let's send this.

If you make TG  please send on via Etherscan.






/**


*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.11;
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 ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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 addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract X is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; //UNISWAP
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "X Protocol";
    string constant _symbol = "$X";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = _totalSupply * 2 / 100;

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping(address => bool) public isBot;

    uint256 marketingFee = 5;
    uint256 sellMarketingFee = 5;

    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = msg.sender;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 10000 * 50; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _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 getOwner() external view override returns (address) { return owner; }
    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[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        require(!isBot[sender], "Bot Address");

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

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived =  amount;
        if(shouldTakeFee(sender)){
            if(sender == pair){
                amountReceived = takeFee(sender, amount,false);
            }else{
                amountReceived = takeFee(sender, amount,true);
            } 
        }


        _balances[recipient] = _balances[recipient].add(amountReceived);

        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 sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {
        uint feeAmount = isSell ? amount.mul(sellMarketingFee).div(feeDenominator) : amount.mul(marketingFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 amountToSwap = _balances[address(this)];
        if (amountToSwap >= (swapThreshold*2)){
            amountToSwap = swapThreshold*2;
        }
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        if (address(this).balance >= 200000000000000000){
            payable(marketingFeeReceiver).transfer(address(this).balance);
        }
      
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function manualSend() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function swapStatus (bool status) external onlyOwner {
        swapEnabled = status;
    }

    function isBots(address botAddress, bool status) external onlyOwner {      
        isBot[botAddress] = status;
    }

   function areBots(address[] memory bots_, bool status) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            isBot[bots_[i]] = status;
        }
    }

    function setFees(uint256 _MarketingFee, uint256 _sellMarketingFee) external onlyOwner {
         marketingFee = _MarketingFee;
         sellMarketingFee = _sellMarketingFee;
         require(marketingFee <= 10 && sellMarketingFee <= 10, "Must keep fees at 10% or less");
    }

    function setThreshold(uint256 _treshold) external onlyOwner {
         swapThreshold = _treshold;
    }

    function setFeeReceivers(address _marketingFeeReceiver) external onlyOwner {
        marketingFeeReceiver = _marketingFeeReceiver;
    }
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"areBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"botAddress","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_MarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treshold","type":"uint256"}],"name":"setThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"swapStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac919062000870565b633b9aca00620000bd9190620008c1565b60035560646002600354620000d39190620008c1565b620000df919062000951565b6004556005600a556005600b556064600c5533600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60146101000a81548160ff021916908315150217905550603261271060035462000161919062000951565b6200016d9190620008c1565b6010553480156200017d57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000291573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b79190620009f3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000340573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003669190620009f3565b306040518363ffffffff1660e01b81526004016200038692919062000a36565b6020604051808303816000875af1158015620003a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cc9190620009f3565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620006c7919062000a74565b60405180910390a35062000a91565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000764578086048111156200073c576200073b620006d6565b5b60018516156200074c5780820291505b80810290506200075c8562000705565b94506200071c565b94509492505050565b6000826200077f576001905062000852565b816200078f576000905062000852565b8160018114620007a85760028114620007b357620007e9565b600191505062000852565b60ff841115620007c857620007c7620006d6565b5b8360020a915084821115620007e257620007e1620006d6565b5b5062000852565b5060208310610133831016604e8410600b8410161715620008235782820a9050838111156200081d576200081c620006d6565b5b62000852565b62000832848484600162000712565b925090508184048111156200084c576200084b620006d6565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200087d8262000859565b91506200088a8362000863565b9250620008b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200076d565b905092915050565b6000620008ce8262000859565b9150620008db8362000859565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009175762000916620006d6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200095e8262000859565b91506200096b8362000859565b9250826200097e576200097d62000922565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009bb826200098e565b9050919050565b620009cd81620009ae565b8114620009d957600080fd5b50565b600081519050620009ed81620009c2565b92915050565b60006020828403121562000a0c5762000a0b62000989565b5b600062000a1c84828501620009dc565b91505092915050565b62000a3081620009ae565b82525050565b600060408201905062000a4d600083018562000a25565b62000a5c602083018462000a25565b9392505050565b62000a6e8162000859565b82525050565b600060208201905062000a8b600083018462000a63565b92915050565b612d1a8062000aa16000396000f3fe6080604052600436106101bb5760003560e01c8063715018a6116100ec578063d05b5a001161008a578063e96fada211610064578063e96fada21461063f578063f1d5f5171461066a578063f429389014610693578063f887ea40146106aa576101c2565b8063d05b5a00146105b0578063dd62ed3e146105d9578063e01bb68814610616576101c2565b806395d89b41116100c657806395d89b41146104f4578063960bfe041461051f578063a8aa1b3114610548578063a9059cbb14610573576101c2565b8063715018a6146104895780637e26d19f146104a0578063893d20e8146104c9576101c2565b80632f54bf6e11610159578063571ac8b011610133578063571ac8b0146103b95780636c0a24eb146103f65780636ddd17131461042157806370a082311461044c576101c2565b80632f54bf6e14610314578063313ce567146103515780633bbac5791461037c576101c2565b80630b78f9c0116101955780630b78f9c01461025a578063144eef071461028357806318160ddd146102ac57806323b872dd146102d7576101c2565b80630445b667146101c757806306fdde03146101f2578063095ea7b31461021d576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106d5565b6040516101e99190612061565b60405180910390f35b3480156101fe57600080fd5b506102076106db565b6040516102149190612115565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906121d5565b610718565b6040516102519190612230565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c919061224b565b61080a565b005b34801561028f57600080fd5b506102aa60048036038101906102a591906123ff565b6108b8565b005b3480156102b857600080fd5b506102c1610995565b6040516102ce9190612061565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f9919061245b565b61099f565b60405161030b9190612230565b60405180910390f35b34801561032057600080fd5b5061033b600480360381019061033691906124ae565b610b9f565b6040516103489190612230565b60405180910390f35b34801561035d57600080fd5b50610366610bf8565b60405161037391906124f7565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e91906124ae565b610c01565b6040516103b09190612230565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db91906124ae565b610c21565b6040516103ed9190612230565b60405180910390f35b34801561040257600080fd5b5061040b610c54565b6040516104189190612061565b60405180910390f35b34801561042d57600080fd5b50610436610c5a565b6040516104439190612230565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e91906124ae565b610c6d565b6040516104809190612061565b60405180910390f35b34801561049557600080fd5b5061049e610cb6565b005b3480156104ac57600080fd5b506104c760048036038101906104c29190612512565b610d79565b005b3480156104d557600080fd5b506104de610dde565b6040516104eb919061254e565b60405180910390f35b34801561050057600080fd5b50610509610e07565b6040516105169190612115565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190612569565b610e44565b005b34801561055457600080fd5b5061055d610e96565b60405161056a919061254e565b60405180910390f35b34801561057f57600080fd5b5061059a600480360381019061059591906121d5565b610ebc565b6040516105a79190612230565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d29190612596565b610ed1565b005b3480156105e557600080fd5b5061060060048036038101906105fb91906125d6565b610f74565b60405161060d9190612061565b60405180910390f35b34801561062257600080fd5b5061063d600480360381019061063891906124ae565b610ffb565b005b34801561064b57600080fd5b50610654611087565b604051610661919061254e565b60405180910390f35b34801561067657600080fd5b50610691600480360381019061068c9190612569565b6110ad565b005b34801561069f57600080fd5b506106a8611119565b005b3480156106b657600080fd5b506106bf611184565b6040516106cc9190612675565b60405180910390f35b60105481565b60606040518060400160405280600a81526020017f582050726f746f636f6c00000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107f89190612061565b60405180910390a36001905092915050565b61081333610b9f565b610852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610849906126dc565b60405180910390fd5b81600a8190555080600b81905550600a8054111580156108755750600a600b5411155b6108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90612748565b60405180910390fd5b5050565b6108c133610b9f565b610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f7906126dc565b60405180910390fd5b60005b825181101561099057816009600085848151811061092457610923612768565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610988906127c6565b915050610903565b505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b8b57610b0a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b9684848461120e565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610c4d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610718565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cbf33610b9f565b610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf5906126dc565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610d6f919061254e565b60405180910390a1565b610d8233610b9f565b610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906126dc565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f2458000000000000000000000000000000000000000000000000000000000000815250905090565b610e4d33610b9f565b610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e83906126dc565b60405180910390fd5b8060108190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ec933848461120e565b905092915050565b610eda33610b9f565b610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f10906126dc565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61100433610b9f565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a906126dc565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110b633610b9f565b6110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec906126dc565b60405180910390fd5b6103e881600354611106919061280f565b6111109190612898565b60048190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611181573d6000803e3d6000fd5b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e99190612115565b60405180910390fd5b506000838561120191906128c9565b9050809150509392505050565b6000601160009054906101000a900460ff1615611237576112308484846116ce565b90506116c7565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112e35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113cc57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061138c575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138991906128fd565b11155b6113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c2906129c5565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090612a31565b60405180910390fd5b6114616118a1565b1561146f5761146e611978565b5b6114f8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082905061154985611ca8565b156115c757600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156115b7576115b085846000611cff565b90506115c6565b6115c385846001611cff565b90505b5b61161981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b99190612061565b60405180910390a360019150505b9392505050565b6000611759826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ee82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188e9190612061565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561190e5750601160009054906101000a900460ff16155b80156119265750600f60149054906101000a900460ff165b80156119735750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026010546119e6919061280f565b81106119fe5760026010546119fb919061280f565b90505b6000600267ffffffffffffffff811115611a1b57611a1a612290565b5b604051908082528060200260200182016040528015611a495781602001602082028036833780820191505090505b5090503081600081518110611a6157611a60612768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2c9190612a66565b81600181518110611b4057611b3f612768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bde959493929190612b8c565b600060405180830381600087803b158015611bf857600080fd5b505af1158015611c0c573d6000803e3d6000fd5b505050506702c68af0bb1400004710611c8957600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c87573d6000803e3d6000fd5b505b50506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082611d3557611d30600c54611d22600a5487611ed690919063ffffffff16565b611f5190919063ffffffff16565b611d5f565b611d5e600c54611d50600b5487611ed690919063ffffffff16565b611f5190919063ffffffff16565b5b9050611db381600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e539190612061565b60405180910390a3611e6e8185611f9b90919063ffffffff16565b9150509392505050565b6000808284611e8791906128fd565b905083811015611ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec390612c32565b60405180910390fd5b8091505092915050565b600080831415611ee95760009050611f4b565b60008284611ef7919061280f565b9050828482611f069190612898565b14611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90612cc4565b60405180910390fd5b809150505b92915050565b6000611f9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fe5565b905092915050565b6000611fdd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111aa565b905092915050565b6000808311829061202c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120239190612115565b60405180910390fd5b506000838561203b9190612898565b9050809150509392505050565b6000819050919050565b61205b81612048565b82525050565b60006020820190506120766000830184612052565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120b657808201518184015260208101905061209b565b838111156120c5576000848401525b50505050565b6000601f19601f8301169050919050565b60006120e78261207c565b6120f18185612087565b9350612101818560208601612098565b61210a816120cb565b840191505092915050565b6000602082019050818103600083015261212f81846120dc565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121768261214b565b9050919050565b6121868161216b565b811461219157600080fd5b50565b6000813590506121a38161217d565b92915050565b6121b281612048565b81146121bd57600080fd5b50565b6000813590506121cf816121a9565b92915050565b600080604083850312156121ec576121eb612141565b5b60006121fa85828601612194565b925050602061220b858286016121c0565b9150509250929050565b60008115159050919050565b61222a81612215565b82525050565b60006020820190506122456000830184612221565b92915050565b6000806040838503121561226257612261612141565b5b6000612270858286016121c0565b9250506020612281858286016121c0565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6122c8826120cb565b810181811067ffffffffffffffff821117156122e7576122e6612290565b5b80604052505050565b60006122fa612137565b905061230682826122bf565b919050565b600067ffffffffffffffff82111561232657612325612290565b5b602082029050602081019050919050565b600080fd5b600061234f61234a8461230b565b6122f0565b9050808382526020820190506020840283018581111561237257612371612337565b5b835b8181101561239b57806123878882612194565b845260208401935050602081019050612374565b5050509392505050565b600082601f8301126123ba576123b961228b565b5b81356123ca84826020860161233c565b91505092915050565b6123dc81612215565b81146123e757600080fd5b50565b6000813590506123f9816123d3565b92915050565b6000806040838503121561241657612415612141565b5b600083013567ffffffffffffffff81111561243457612433612146565b5b612440858286016123a5565b9250506020612451858286016123ea565b9150509250929050565b60008060006060848603121561247457612473612141565b5b600061248286828701612194565b935050602061249386828701612194565b92505060406124a4868287016121c0565b9150509250925092565b6000602082840312156124c4576124c3612141565b5b60006124d284828501612194565b91505092915050565b600060ff82169050919050565b6124f1816124db565b82525050565b600060208201905061250c60008301846124e8565b92915050565b60006020828403121561252857612527612141565b5b6000612536848285016123ea565b91505092915050565b6125488161216b565b82525050565b6000602082019050612563600083018461253f565b92915050565b60006020828403121561257f5761257e612141565b5b600061258d848285016121c0565b91505092915050565b600080604083850312156125ad576125ac612141565b5b60006125bb85828601612194565b92505060206125cc858286016123ea565b9150509250929050565b600080604083850312156125ed576125ec612141565b5b60006125fb85828601612194565b925050602061260c85828601612194565b9150509250929050565b6000819050919050565b600061263b6126366126318461214b565b612616565b61214b565b9050919050565b600061264d82612620565b9050919050565b600061265f82612642565b9050919050565b61266f81612654565b82525050565b600060208201905061268a6000830184612666565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006126c6600683612087565b91506126d182612690565b602082019050919050565b600060208201905081810360008301526126f5816126b9565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000612732601d83612087565b915061273d826126fc565b602082019050919050565b6000602082019050818103600083015261276181612725565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127d182612048565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561280457612803612797565b5b600182019050919050565b600061281a82612048565b915061282583612048565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561285e5761285d612797565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128a382612048565b91506128ae83612048565b9250826128be576128bd612869565b5b828204905092915050565b60006128d482612048565b91506128df83612048565b9250828210156128f2576128f1612797565b5b828203905092915050565b600061290882612048565b915061291383612048565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561294857612947612797565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006129af602583612087565b91506129ba82612953565b604082019050919050565b600060208201905081810360008301526129de816129a2565b9050919050565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b6000612a1b600b83612087565b9150612a26826129e5565b602082019050919050565b60006020820190508181036000830152612a4a81612a0e565b9050919050565b600081519050612a608161217d565b92915050565b600060208284031215612a7c57612a7b612141565b5b6000612a8a84828501612a51565b91505092915050565b6000819050919050565b6000612ab8612ab3612aae84612a93565b612616565b612048565b9050919050565b612ac881612a9d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b038161216b565b82525050565b6000612b158383612afa565b60208301905092915050565b6000602082019050919050565b6000612b3982612ace565b612b438185612ad9565b9350612b4e83612aea565b8060005b83811015612b7f578151612b668882612b09565b9750612b7183612b21565b925050600181019050612b52565b5085935050505092915050565b600060a082019050612ba16000830188612052565b612bae6020830187612abf565b8181036040830152612bc08186612b2e565b9050612bcf606083018561253f565b612bdc6080830184612052565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612c1c601b83612087565b9150612c2782612be6565b602082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cae602183612087565b9150612cb982612c52565b604082019050919050565b60006020820190508181036000830152612cdd81612ca1565b905091905056fea2646970667358221220e9296fd83a5e073461d26ccb5b0c32611eff9fe1352b4acd5be50deb2a4dd03b64736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063715018a6116100ec578063d05b5a001161008a578063e96fada211610064578063e96fada21461063f578063f1d5f5171461066a578063f429389014610693578063f887ea40146106aa576101c2565b8063d05b5a00146105b0578063dd62ed3e146105d9578063e01bb68814610616576101c2565b806395d89b41116100c657806395d89b41146104f4578063960bfe041461051f578063a8aa1b3114610548578063a9059cbb14610573576101c2565b8063715018a6146104895780637e26d19f146104a0578063893d20e8146104c9576101c2565b80632f54bf6e11610159578063571ac8b011610133578063571ac8b0146103b95780636c0a24eb146103f65780636ddd17131461042157806370a082311461044c576101c2565b80632f54bf6e14610314578063313ce567146103515780633bbac5791461037c576101c2565b80630b78f9c0116101955780630b78f9c01461025a578063144eef071461028357806318160ddd146102ac57806323b872dd146102d7576101c2565b80630445b667146101c757806306fdde03146101f2578063095ea7b31461021d576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106d5565b6040516101e99190612061565b60405180910390f35b3480156101fe57600080fd5b506102076106db565b6040516102149190612115565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906121d5565b610718565b6040516102519190612230565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c919061224b565b61080a565b005b34801561028f57600080fd5b506102aa60048036038101906102a591906123ff565b6108b8565b005b3480156102b857600080fd5b506102c1610995565b6040516102ce9190612061565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f9919061245b565b61099f565b60405161030b9190612230565b60405180910390f35b34801561032057600080fd5b5061033b600480360381019061033691906124ae565b610b9f565b6040516103489190612230565b60405180910390f35b34801561035d57600080fd5b50610366610bf8565b60405161037391906124f7565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e91906124ae565b610c01565b6040516103b09190612230565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db91906124ae565b610c21565b6040516103ed9190612230565b60405180910390f35b34801561040257600080fd5b5061040b610c54565b6040516104189190612061565b60405180910390f35b34801561042d57600080fd5b50610436610c5a565b6040516104439190612230565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e91906124ae565b610c6d565b6040516104809190612061565b60405180910390f35b34801561049557600080fd5b5061049e610cb6565b005b3480156104ac57600080fd5b506104c760048036038101906104c29190612512565b610d79565b005b3480156104d557600080fd5b506104de610dde565b6040516104eb919061254e565b60405180910390f35b34801561050057600080fd5b50610509610e07565b6040516105169190612115565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190612569565b610e44565b005b34801561055457600080fd5b5061055d610e96565b60405161056a919061254e565b60405180910390f35b34801561057f57600080fd5b5061059a600480360381019061059591906121d5565b610ebc565b6040516105a79190612230565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d29190612596565b610ed1565b005b3480156105e557600080fd5b5061060060048036038101906105fb91906125d6565b610f74565b60405161060d9190612061565b60405180910390f35b34801561062257600080fd5b5061063d600480360381019061063891906124ae565b610ffb565b005b34801561064b57600080fd5b50610654611087565b604051610661919061254e565b60405180910390f35b34801561067657600080fd5b50610691600480360381019061068c9190612569565b6110ad565b005b34801561069f57600080fd5b506106a8611119565b005b3480156106b657600080fd5b506106bf611184565b6040516106cc9190612675565b60405180910390f35b60105481565b60606040518060400160405280600a81526020017f582050726f746f636f6c00000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107f89190612061565b60405180910390a36001905092915050565b61081333610b9f565b610852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610849906126dc565b60405180910390fd5b81600a8190555080600b81905550600a8054111580156108755750600a600b5411155b6108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90612748565b60405180910390fd5b5050565b6108c133610b9f565b610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f7906126dc565b60405180910390fd5b60005b825181101561099057816009600085848151811061092457610923612768565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610988906127c6565b915050610903565b505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b8b57610b0a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b9684848461120e565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610c4d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610718565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cbf33610b9f565b610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf5906126dc565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610d6f919061254e565b60405180910390a1565b610d8233610b9f565b610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906126dc565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f2458000000000000000000000000000000000000000000000000000000000000815250905090565b610e4d33610b9f565b610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e83906126dc565b60405180910390fd5b8060108190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ec933848461120e565b905092915050565b610eda33610b9f565b610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f10906126dc565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61100433610b9f565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a906126dc565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110b633610b9f565b6110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec906126dc565b60405180910390fd5b6103e881600354611106919061280f565b6111109190612898565b60048190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611181573d6000803e3d6000fd5b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e99190612115565b60405180910390fd5b506000838561120191906128c9565b9050809150509392505050565b6000601160009054906101000a900460ff1615611237576112308484846116ce565b90506116c7565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112e35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113cc57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061138c575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138991906128fd565b11155b6113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c2906129c5565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090612a31565b60405180910390fd5b6114616118a1565b1561146f5761146e611978565b5b6114f8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082905061154985611ca8565b156115c757600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156115b7576115b085846000611cff565b90506115c6565b6115c385846001611cff565b90505b5b61161981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b99190612061565b60405180910390a360019150505b9392505050565b6000611759826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ee82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188e9190612061565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561190e5750601160009054906101000a900460ff16155b80156119265750600f60149054906101000a900460ff165b80156119735750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026010546119e6919061280f565b81106119fe5760026010546119fb919061280f565b90505b6000600267ffffffffffffffff811115611a1b57611a1a612290565b5b604051908082528060200260200182016040528015611a495781602001602082028036833780820191505090505b5090503081600081518110611a6157611a60612768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2c9190612a66565b81600181518110611b4057611b3f612768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bde959493929190612b8c565b600060405180830381600087803b158015611bf857600080fd5b505af1158015611c0c573d6000803e3d6000fd5b505050506702c68af0bb1400004710611c8957600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c87573d6000803e3d6000fd5b505b50506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082611d3557611d30600c54611d22600a5487611ed690919063ffffffff16565b611f5190919063ffffffff16565b611d5f565b611d5e600c54611d50600b5487611ed690919063ffffffff16565b611f5190919063ffffffff16565b5b9050611db381600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e539190612061565b60405180910390a3611e6e8185611f9b90919063ffffffff16565b9150509392505050565b6000808284611e8791906128fd565b905083811015611ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec390612c32565b60405180910390fd5b8091505092915050565b600080831415611ee95760009050611f4b565b60008284611ef7919061280f565b9050828482611f069190612898565b14611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90612cc4565b60405180910390fd5b809150505b92915050565b6000611f9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fe5565b905092915050565b6000611fdd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111aa565b905092915050565b6000808311829061202c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120239190612115565b60405180910390fd5b506000838561203b9190612898565b9050809150509392505050565b6000819050919050565b61205b81612048565b82525050565b60006020820190506120766000830184612052565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120b657808201518184015260208101905061209b565b838111156120c5576000848401525b50505050565b6000601f19601f8301169050919050565b60006120e78261207c565b6120f18185612087565b9350612101818560208601612098565b61210a816120cb565b840191505092915050565b6000602082019050818103600083015261212f81846120dc565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121768261214b565b9050919050565b6121868161216b565b811461219157600080fd5b50565b6000813590506121a38161217d565b92915050565b6121b281612048565b81146121bd57600080fd5b50565b6000813590506121cf816121a9565b92915050565b600080604083850312156121ec576121eb612141565b5b60006121fa85828601612194565b925050602061220b858286016121c0565b9150509250929050565b60008115159050919050565b61222a81612215565b82525050565b60006020820190506122456000830184612221565b92915050565b6000806040838503121561226257612261612141565b5b6000612270858286016121c0565b9250506020612281858286016121c0565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6122c8826120cb565b810181811067ffffffffffffffff821117156122e7576122e6612290565b5b80604052505050565b60006122fa612137565b905061230682826122bf565b919050565b600067ffffffffffffffff82111561232657612325612290565b5b602082029050602081019050919050565b600080fd5b600061234f61234a8461230b565b6122f0565b9050808382526020820190506020840283018581111561237257612371612337565b5b835b8181101561239b57806123878882612194565b845260208401935050602081019050612374565b5050509392505050565b600082601f8301126123ba576123b961228b565b5b81356123ca84826020860161233c565b91505092915050565b6123dc81612215565b81146123e757600080fd5b50565b6000813590506123f9816123d3565b92915050565b6000806040838503121561241657612415612141565b5b600083013567ffffffffffffffff81111561243457612433612146565b5b612440858286016123a5565b9250506020612451858286016123ea565b9150509250929050565b60008060006060848603121561247457612473612141565b5b600061248286828701612194565b935050602061249386828701612194565b92505060406124a4868287016121c0565b9150509250925092565b6000602082840312156124c4576124c3612141565b5b60006124d284828501612194565b91505092915050565b600060ff82169050919050565b6124f1816124db565b82525050565b600060208201905061250c60008301846124e8565b92915050565b60006020828403121561252857612527612141565b5b6000612536848285016123ea565b91505092915050565b6125488161216b565b82525050565b6000602082019050612563600083018461253f565b92915050565b60006020828403121561257f5761257e612141565b5b600061258d848285016121c0565b91505092915050565b600080604083850312156125ad576125ac612141565b5b60006125bb85828601612194565b92505060206125cc858286016123ea565b9150509250929050565b600080604083850312156125ed576125ec612141565b5b60006125fb85828601612194565b925050602061260c85828601612194565b9150509250929050565b6000819050919050565b600061263b6126366126318461214b565b612616565b61214b565b9050919050565b600061264d82612620565b9050919050565b600061265f82612642565b9050919050565b61266f81612654565b82525050565b600060208201905061268a6000830184612666565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006126c6600683612087565b91506126d182612690565b602082019050919050565b600060208201905081810360008301526126f5816126b9565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000612732601d83612087565b915061273d826126fc565b602082019050919050565b6000602082019050818103600083015261276181612725565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127d182612048565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561280457612803612797565b5b600182019050919050565b600061281a82612048565b915061282583612048565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561285e5761285d612797565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128a382612048565b91506128ae83612048565b9250826128be576128bd612869565b5b828204905092915050565b60006128d482612048565b91506128df83612048565b9250828210156128f2576128f1612797565b5b828203905092915050565b600061290882612048565b915061291383612048565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561294857612947612797565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006129af602583612087565b91506129ba82612953565b604082019050919050565b600060208201905081810360008301526129de816129a2565b9050919050565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b6000612a1b600b83612087565b9150612a26826129e5565b602082019050919050565b60006020820190508181036000830152612a4a81612a0e565b9050919050565b600081519050612a608161217d565b92915050565b600060208284031215612a7c57612a7b612141565b5b6000612a8a84828501612a51565b91505092915050565b6000819050919050565b6000612ab8612ab3612aae84612a93565b612616565b612048565b9050919050565b612ac881612a9d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b038161216b565b82525050565b6000612b158383612afa565b60208301905092915050565b6000602082019050919050565b6000612b3982612ace565b612b438185612ad9565b9350612b4e83612aea565b8060005b83811015612b7f578151612b668882612b09565b9750612b7183612b21565b925050600181019050612b52565b5085935050505092915050565b600060a082019050612ba16000830188612052565b612bae6020830187612abf565b8181036040830152612bc08186612b2e565b9050612bcf606083018561253f565b612bdc6080830184612052565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612c1c601b83612087565b9150612c2782612be6565b602082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cae602183612087565b9150612cb982612c52565b604082019050919050565b60006020820190508181036000830152612cdd81612ca1565b905091905056fea2646970667358221220e9296fd83a5e073461d26ccb5b0c32611eff9fe1352b4acd5be50deb2a4dd03b64736f6c634300080b0033

Deployed Bytecode Sourcemap

4521:7756:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5494:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6461:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6883:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11667:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11476:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6191:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7401:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2759:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6285:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5190:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7107:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4918:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5457:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6631:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2868:131;;;;;;;;;;;;;:::i;:::-;;11250:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6547:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6371:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11955:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5429:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7237:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11350:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6742:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12068:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5341:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11100:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10981:111;;;;;;;;;;;;;:::i;:::-;;5398:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5494:56;;;;:::o;6461:80::-;6509:13;6533:5;;;;;;;;;;;;;;;;;6526:12;;6461:80;:::o;6883:216::-;6958:4;7010:6;6975:11;:23;6987:10;6975:23;;;;;;;;;;;;;;;:32;6999:7;6975:32;;;;;;;;;;;;;;;:41;;;;7053:7;7032:37;;7041:10;7032:37;;;7062:6;7032:37;;;;;;:::i;:::-;;;;;;;;7087:4;7080:11;;6883:216;;;;:::o;11667:280::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11780:13:::1;11765:12;:28;;;;11824:17;11805:16;:36;;;;11877:2;11861:12:::0;::::1;:18;;:44;;;;;11903:2;11883:16;;:22;;11861:44;11853:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;11667:280:::0;;:::o;11476:183::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11563:9:::1;11558:94;11582:5;:12;11578:1;:16;11558:94;;;11634:6;11616:5;:15;11622:5;11628:1;11622:8;;;;;;;;:::i;:::-;;;;;;;;11616:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;11596:3;;;;;:::i;:::-;;;;11558:94;;;;11476:183:::0;;:::o;6191:88::-;6246:7;6264:12;;6257:19;;6191:88;:::o;7401:370::-;7501:4;7556:17;7521:11;:19;7533:6;7521:19;;;;;;;;;;;;;;;:31;7541:10;7521:31;;;;;;;;;;;;;;;;:52;7518:186;;7623:69;7659:6;7623:69;;;;;;;;;;;;;;;;;:11;:19;7635:6;7623:19;;;;;;;;;;;;;;;:31;7643:10;7623:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7589:11;:19;7601:6;7589:19;;;;;;;;;;;;;;;:31;7609:10;7589:31;;;;;;;;;;;;;;;:103;;;;7518:186;7723:40;7737:6;7745:9;7756:6;7723:13;:40::i;:::-;7716:47;;7401:370;;;;;:::o;2759:103::-;2814:4;2849:5;;;;;;;;;;;2838:16;;:7;:16;;;2831:23;;2759:103;;;:::o;6285:80::-;6337:5;4845:1;6346:16;;6285:80;:::o;5190:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;7107:122::-;7162:4;7186:35;7194:7;7203:17;7186:7;:35::i;:::-;7179:42;;7107:122;;;:::o;4918:56::-;;;;:::o;5457:30::-;;;;;;;;;;;;;:::o;6631:105::-;6697:7;6715:9;:18;6725:7;6715:18;;;;;;;;;;;;;;;;6708:25;;6631:105;;;:::o;2868:131::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2941:1:::1;2925:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2959:32;2988:1;2959:32;;;;;;:::i;:::-;;;;;;;;2868:131::o:0;11250:92::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11328:6:::1;11314:11;;:20;;;;;;;;;;;;;;;;;;11250:92:::0;:::o;6547:78::-;6599:7;6617:5;;;;;;;;;;;6610:12;;6547:78;:::o;6371:84::-;6421:13;6445:7;;;;;;;;;;;;;;;;;6438:14;;6371:84;:::o;11955:105::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12043:9:::1;12027:13;:25;;;;11955:105:::0;:::o;5429:19::-;;;;;;;;;;;;;:::o;7237:156::-;7317:4;7341:44;7355:10;7367:9;7378:6;7341:13;:44::i;:::-;7334:51;;7237:156;;;;:::o;11350:119::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11455:6:::1;11435:5;:17;11441:10;11435:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11350:119:::0;;:::o;6742:133::-;6826:7;6844:11;:19;6856:6;6844:19;;;;;;;;;;;;;;;:28;6864:7;6844:28;;;;;;;;;;;;;;;;6837:35;;6742:133;;;;:::o;12068:138::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12177:21:::1;12154:20;;:44;;;;;;;;;;;;;;;;;;12068:138:::0;:::o;5341:48::-;;;;;;;;;;;;;:::o;11100:142::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11230:4:::1;11212:13;11197:12;;:28;;;;:::i;:::-;11196:38;;;;:::i;:::-;11177:16;:57;;;;11100:142:::0;:::o;10981:111::-;11031:20;;;;;;;;;;;11023:38;;:61;11062:21;11023:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10981:111::o;5398:24::-;;;;;;;;;;;;;:::o;848:190::-;934:7;967:1;962;:6;;970:12;954:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;994:9;1010:1;1006;:5;;;;:::i;:::-;994:17;;1029:1;1022:8;;;848:190;;;;;:::o;7779:1043::-;7871:4;7891:6;;;;;;;;;;;7888:63;;;7907:41;7922:6;7930:9;7941:6;7907:14;:41::i;:::-;7900:48;;;;7888:63;7988:4;;;;;;;;;;;7975:17;;:9;:17;;;;:38;;;;;8009:4;;;;;;;;;;;7996:17;;:9;:17;;;;7975:38;7971:200;;;8038:15;:26;8054:9;8038:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;8101:16;;8091:6;8068:9;:20;8078:9;8068:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;8038:79;8030:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7971:200;8200:5;:13;8206:6;8200:13;;;;;;;;;;;;;;;;;;;;;;;;;8199:14;8191:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8245:16;:14;:16::i;:::-;8242:35;;;8264:10;:8;:10::i;:::-;8242:35;8310:53;8332:6;8310:53;;;;;;;;;;;;;;;;;:9;:17;8320:6;8310:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8290:9;:17;8300:6;8290:17;;;;;;;;;;;;;;;:73;;;;8376:22;8402:6;8376:32;;8422:21;8436:6;8422:13;:21::i;:::-;8419:235;;;8472:4;;;;;;;;;;;8462:14;;:6;:14;;;8459:183;;;8513:29;8521:6;8529;8536:5;8513:7;:29::i;:::-;8496:46;;8459:183;;;8598:28;8606:6;8614;8621:4;8598:7;:28::i;:::-;8581:45;;8459:183;8419:235;8691:40;8716:14;8691:9;:20;8701:9;8691:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8668:9;:20;8678:9;8668:20;;;;;;;;;;;;;;;:63;;;;8766:9;8749:43;;8758:6;8749:43;;;8777:14;8749:43;;;;;;:::i;:::-;;;;;;;;8810:4;8803:11;;;7779:1043;;;;;;:::o;8834:330::-;8927:4;8964:53;8986:6;8964:53;;;;;;;;;;;;;;;;;:9;:17;8974:6;8964:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8944:9;:17;8954:6;8944:17;;;;;;;;;;;;;;;:73;;;;9051:32;9076:6;9051:9;:20;9061:9;9051:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9028:9;:20;9038:9;9028:20;;;;;;;;;;;;;;;:55;;;;9116:9;9099:35;;9108:6;9099:35;;;9127:6;9099:35;;;;;;:::i;:::-;;;;;;;;9152:4;9145:11;;8834:330;;;;;:::o;9705:197::-;9754:4;9792;;;;;;;;;;;9778:18;;:10;:18;;;;:38;;;;;9810:6;;;;;;;;;;;9809:7;9778:38;:62;;;;;9829:11;;;;;;;;;;;9778:62;:116;;;;;9881:13;;9853:9;:24;9871:4;9853:24;;;;;;;;;;;;;;;;:41;;9778:116;9771:123;;9705:197;:::o;9910:685::-;5607:4;5598:6;;:13;;;;;;;;;;;;;;;;;;9959:20:::1;9982:9;:24;10000:4;9982:24;;;;;;;;;;;;;;;;9959:47;;10052:1;10038:13;;:15;;;;:::i;:::-;10021:12;:33;10017:95;;10099:1;10085:13;;:15;;;;:::i;:::-;10070:30;;10017:95;10122:21;10160:1;10146:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10122:40;;10191:4;10173;10178:1;10173:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10217:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10207:4;10212:1;10207:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10243:6;;;;;;;;;;;:57;;;10315:12;10342:1;10358:4;10385;10405:15;10243:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10473:18;10448:21;:43;10444:136;;10515:20;;;;;;;;;;;10507:38;;:61;10546:21;10507:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10444:136;9948:647;;5625:5:::0;5616:6;;:14;;;;;;;;;;;;;;;;;;9910:685::o;9172:114::-;9234:4;9259:11;:19;9271:6;9259:19;;;;;;;;;;;;;;;;;;;;;;;;;9258:20;9251:27;;9172:114;;;:::o;9294:403::-;9374:7;9394:14;9411:6;:104;;9471:44;9500:14;;9471:24;9482:12;;9471:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;9411:104;;;9420:48;9453:14;;9420:28;9431:16;;9420:6;:10;;:28;;;;:::i;:::-;:32;;:48;;;;:::i;:::-;9411:104;9394:121;;9553:39;9582:9;9553;:24;9571:4;9553:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9526:9;:24;9544:4;9526:24;;;;;;;;;;;;;;;:66;;;;9633:4;9608:42;;9617:6;9608:42;;;9640:9;9608:42;;;;;;:::i;:::-;;;;;;;;9668:21;9679:9;9668:6;:10;;:21;;;;:::i;:::-;9661:28;;;9294:403;;;;;:::o;521:179::-;579:7;599:9;615:1;611;:5;;;;:::i;:::-;599:17;;640:1;635;:6;;627:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;691:1;684:8;;;521:179;;;;:::o;1044:246::-;1102:7;1131:1;1126;:6;1122:47;;;1156:1;1149:8;;;;1122:47;1179:9;1195:1;1191;:5;;;;:::i;:::-;1179:17;;1224:1;1219;1215;:5;;;;:::i;:::-;:10;1207:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1281:1;1274:8;;;1044:246;;;;;:::o;1296:132::-;1354:7;1381:39;1385:1;1388;1381:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1374:46;;1296:132;;;;:::o;706:136::-;764:7;791:43;795:1;798;791:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;784:50;;706:136;;;;:::o;1434:189::-;1520:7;1552:1;1548;:5;1555:12;1540:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1579:9;1595:1;1591;:5;;;;:::i;:::-;1579:17;;1614:1;1607:8;;;1434:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:117::-;4435:1;4432;4425:12;4449:180;4497:77;4494:1;4487:88;4594:4;4591:1;4584:15;4618:4;4615:1;4608:15;4635:281;4718:27;4740:4;4718:27;:::i;:::-;4710:6;4706:40;4848:6;4836:10;4833:22;4812:18;4800:10;4797:34;4794:62;4791:88;;;4859:18;;:::i;:::-;4791:88;4899:10;4895:2;4888:22;4678:238;4635:281;;:::o;4922:129::-;4956:6;4983:20;;:::i;:::-;4973:30;;5012:33;5040:4;5032:6;5012:33;:::i;:::-;4922:129;;;:::o;5057:311::-;5134:4;5224:18;5216:6;5213:30;5210:56;;;5246:18;;:::i;:::-;5210:56;5296:4;5288:6;5284:17;5276:25;;5356:4;5350;5346:15;5338:23;;5057:311;;;:::o;5374:117::-;5483:1;5480;5473:12;5514:710;5610:5;5635:81;5651:64;5708:6;5651:64;:::i;:::-;5635:81;:::i;:::-;5626:90;;5736:5;5765:6;5758:5;5751:21;5799:4;5792:5;5788:16;5781:23;;5852:4;5844:6;5840:17;5832:6;5828:30;5881:3;5873:6;5870:15;5867:122;;;5900:79;;:::i;:::-;5867:122;6015:6;5998:220;6032:6;6027:3;6024:15;5998:220;;;6107:3;6136:37;6169:3;6157:10;6136:37;:::i;:::-;6131:3;6124:50;6203:4;6198:3;6194:14;6187:21;;6074:144;6058:4;6053:3;6049:14;6042:21;;5998:220;;;6002:21;5616:608;;5514:710;;;;;:::o;6247:370::-;6318:5;6367:3;6360:4;6352:6;6348:17;6344:27;6334:122;;6375:79;;:::i;:::-;6334:122;6492:6;6479:20;6517:94;6607:3;6599:6;6592:4;6584:6;6580:17;6517:94;:::i;:::-;6508:103;;6324:293;6247:370;;;;:::o;6623:116::-;6693:21;6708:5;6693:21;:::i;:::-;6686:5;6683:32;6673:60;;6729:1;6726;6719:12;6673:60;6623:116;:::o;6745:133::-;6788:5;6826:6;6813:20;6804:29;;6842:30;6866:5;6842:30;:::i;:::-;6745:133;;;;:::o;6884:678::-;6974:6;6982;7031:2;7019:9;7010:7;7006:23;7002:32;6999:119;;;7037:79;;:::i;:::-;6999:119;7185:1;7174:9;7170:17;7157:31;7215:18;7207:6;7204:30;7201:117;;;7237:79;;:::i;:::-;7201:117;7342:78;7412:7;7403:6;7392:9;7388:22;7342:78;:::i;:::-;7332:88;;7128:302;7469:2;7495:50;7537:7;7528:6;7517:9;7513:22;7495:50;:::i;:::-;7485:60;;7440:115;6884:678;;;;;:::o;7568:619::-;7645:6;7653;7661;7710:2;7698:9;7689:7;7685:23;7681:32;7678:119;;;7716:79;;:::i;:::-;7678:119;7836:1;7861:53;7906:7;7897:6;7886:9;7882:22;7861:53;:::i;:::-;7851:63;;7807:117;7963:2;7989:53;8034:7;8025:6;8014:9;8010:22;7989:53;:::i;:::-;7979:63;;7934:118;8091:2;8117:53;8162:7;8153:6;8142:9;8138:22;8117:53;:::i;:::-;8107:63;;8062:118;7568:619;;;;;:::o;8193:329::-;8252:6;8301:2;8289:9;8280:7;8276:23;8272:32;8269:119;;;8307:79;;:::i;:::-;8269:119;8427:1;8452:53;8497:7;8488:6;8477:9;8473:22;8452:53;:::i;:::-;8442:63;;8398:117;8193:329;;;;:::o;8528:86::-;8563:7;8603:4;8596:5;8592:16;8581:27;;8528:86;;;:::o;8620:112::-;8703:22;8719:5;8703:22;:::i;:::-;8698:3;8691:35;8620:112;;:::o;8738:214::-;8827:4;8865:2;8854:9;8850:18;8842:26;;8878:67;8942:1;8931:9;8927:17;8918:6;8878:67;:::i;:::-;8738:214;;;;:::o;8958:323::-;9014:6;9063:2;9051:9;9042:7;9038:23;9034:32;9031:119;;;9069:79;;:::i;:::-;9031:119;9189:1;9214:50;9256:7;9247:6;9236:9;9232:22;9214:50;:::i;:::-;9204:60;;9160:114;8958:323;;;;:::o;9287:118::-;9374:24;9392:5;9374:24;:::i;:::-;9369:3;9362:37;9287:118;;:::o;9411:222::-;9504:4;9542:2;9531:9;9527:18;9519:26;;9555:71;9623:1;9612:9;9608:17;9599:6;9555:71;:::i;:::-;9411:222;;;;:::o;9639:329::-;9698:6;9747:2;9735:9;9726:7;9722:23;9718:32;9715:119;;;9753:79;;:::i;:::-;9715:119;9873:1;9898:53;9943:7;9934:6;9923:9;9919:22;9898:53;:::i;:::-;9888:63;;9844:117;9639:329;;;;:::o;9974:468::-;10039:6;10047;10096:2;10084:9;10075:7;10071:23;10067:32;10064:119;;;10102:79;;:::i;:::-;10064:119;10222:1;10247:53;10292:7;10283:6;10272:9;10268:22;10247:53;:::i;:::-;10237:63;;10193:117;10349:2;10375:50;10417:7;10408:6;10397:9;10393:22;10375:50;:::i;:::-;10365:60;;10320:115;9974:468;;;;;:::o;10448:474::-;10516:6;10524;10573:2;10561:9;10552:7;10548:23;10544:32;10541:119;;;10579:79;;:::i;:::-;10541:119;10699:1;10724:53;10769:7;10760:6;10749:9;10745:22;10724:53;:::i;:::-;10714:63;;10670:117;10826:2;10852:53;10897:7;10888:6;10877:9;10873:22;10852:53;:::i;:::-;10842:63;;10797:118;10448:474;;;;;:::o;10928:60::-;10956:3;10977:5;10970:12;;10928:60;;;:::o;10994:142::-;11044:9;11077:53;11095:34;11104:24;11122:5;11104:24;:::i;:::-;11095:34;:::i;:::-;11077:53;:::i;:::-;11064:66;;10994:142;;;:::o;11142:126::-;11192:9;11225:37;11256:5;11225:37;:::i;:::-;11212:50;;11142:126;;;:::o;11274:144::-;11342:9;11375:37;11406:5;11375:37;:::i;:::-;11362:50;;11274:144;;;:::o;11424:167::-;11529:55;11578:5;11529:55;:::i;:::-;11524:3;11517:68;11424:167;;:::o;11597:258::-;11708:4;11746:2;11735:9;11731:18;11723:26;;11759:89;11845:1;11834:9;11830:17;11821:6;11759:89;:::i;:::-;11597:258;;;;:::o;11861:156::-;12001:8;11997:1;11989:6;11985:14;11978:32;11861:156;:::o;12023:365::-;12165:3;12186:66;12250:1;12245:3;12186:66;:::i;:::-;12179:73;;12261:93;12350:3;12261:93;:::i;:::-;12379:2;12374:3;12370:12;12363:19;;12023:365;;;:::o;12394:419::-;12560:4;12598:2;12587:9;12583:18;12575:26;;12647:9;12641:4;12637:20;12633:1;12622:9;12618:17;12611:47;12675:131;12801:4;12675:131;:::i;:::-;12667:139;;12394:419;;;:::o;12819:179::-;12959:31;12955:1;12947:6;12943:14;12936:55;12819:179;:::o;13004:366::-;13146:3;13167:67;13231:2;13226:3;13167:67;:::i;:::-;13160:74;;13243:93;13332:3;13243:93;:::i;:::-;13361:2;13356:3;13352:12;13345:19;;13004:366;;;:::o;13376:419::-;13542:4;13580:2;13569:9;13565:18;13557:26;;13629:9;13623:4;13619:20;13615:1;13604:9;13600:17;13593:47;13657:131;13783:4;13657:131;:::i;:::-;13649:139;;13376:419;;;:::o;13801:180::-;13849:77;13846:1;13839:88;13946:4;13943:1;13936:15;13970:4;13967:1;13960:15;13987:180;14035:77;14032:1;14025:88;14132:4;14129:1;14122:15;14156:4;14153:1;14146:15;14173:233;14212:3;14235:24;14253:5;14235:24;:::i;:::-;14226:33;;14281:66;14274:5;14271:77;14268:103;;;14351:18;;:::i;:::-;14268:103;14398:1;14391:5;14387:13;14380:20;;14173:233;;;:::o;14412:348::-;14452:7;14475:20;14493:1;14475:20;:::i;:::-;14470:25;;14509:20;14527:1;14509:20;:::i;:::-;14504:25;;14697:1;14629:66;14625:74;14622:1;14619:81;14614:1;14607:9;14600:17;14596:105;14593:131;;;14704:18;;:::i;:::-;14593:131;14752:1;14749;14745:9;14734:20;;14412:348;;;;:::o;14766:180::-;14814:77;14811:1;14804:88;14911:4;14908:1;14901:15;14935:4;14932:1;14925:15;14952:185;14992:1;15009:20;15027:1;15009:20;:::i;:::-;15004:25;;15043:20;15061:1;15043:20;:::i;:::-;15038:25;;15082:1;15072:35;;15087:18;;:::i;:::-;15072:35;15129:1;15126;15122:9;15117:14;;14952:185;;;;:::o;15143:191::-;15183:4;15203:20;15221:1;15203:20;:::i;:::-;15198:25;;15237:20;15255:1;15237:20;:::i;:::-;15232:25;;15276:1;15273;15270:8;15267:34;;;15281:18;;:::i;:::-;15267:34;15326:1;15323;15319:9;15311:17;;15143:191;;;;:::o;15340:305::-;15380:3;15399:20;15417:1;15399:20;:::i;:::-;15394:25;;15433:20;15451:1;15433:20;:::i;:::-;15428:25;;15587:1;15519:66;15515:74;15512:1;15509:81;15506:107;;;15593:18;;:::i;:::-;15506:107;15637:1;15634;15630:9;15623:16;;15340:305;;;;:::o;15651:224::-;15791:34;15787:1;15779:6;15775:14;15768:58;15860:7;15855:2;15847:6;15843:15;15836:32;15651:224;:::o;15881:366::-;16023:3;16044:67;16108:2;16103:3;16044:67;:::i;:::-;16037:74;;16120:93;16209:3;16120:93;:::i;:::-;16238:2;16233:3;16229:12;16222:19;;15881:366;;;:::o;16253:419::-;16419:4;16457:2;16446:9;16442:18;16434:26;;16506:9;16500:4;16496:20;16492:1;16481:9;16477:17;16470:47;16534:131;16660:4;16534:131;:::i;:::-;16526:139;;16253:419;;;:::o;16678:161::-;16818:13;16814:1;16806:6;16802:14;16795:37;16678:161;:::o;16845:366::-;16987:3;17008:67;17072:2;17067:3;17008:67;:::i;:::-;17001:74;;17084:93;17173:3;17084:93;:::i;:::-;17202:2;17197:3;17193:12;17186:19;;16845:366;;;:::o;17217:419::-;17383:4;17421:2;17410:9;17406:18;17398:26;;17470:9;17464:4;17460:20;17456:1;17445:9;17441:17;17434:47;17498:131;17624:4;17498:131;:::i;:::-;17490:139;;17217:419;;;:::o;17642:143::-;17699:5;17730:6;17724:13;17715:22;;17746:33;17773:5;17746:33;:::i;:::-;17642:143;;;;:::o;17791:351::-;17861:6;17910:2;17898:9;17889:7;17885:23;17881:32;17878:119;;;17916:79;;:::i;:::-;17878:119;18036:1;18061:64;18117:7;18108:6;18097:9;18093:22;18061:64;:::i;:::-;18051:74;;18007:128;17791:351;;;;:::o;18148:85::-;18193:7;18222:5;18211:16;;18148:85;;;:::o;18239:158::-;18297:9;18330:61;18348:42;18357:32;18383:5;18357:32;:::i;:::-;18348:42;:::i;:::-;18330:61;:::i;:::-;18317:74;;18239:158;;;:::o;18403:147::-;18498:45;18537:5;18498:45;:::i;:::-;18493:3;18486:58;18403:147;;:::o;18556:114::-;18623:6;18657:5;18651:12;18641:22;;18556:114;;;:::o;18676:184::-;18775:11;18809:6;18804:3;18797:19;18849:4;18844:3;18840:14;18825:29;;18676:184;;;;:::o;18866:132::-;18933:4;18956:3;18948:11;;18986:4;18981:3;18977:14;18969:22;;18866:132;;;:::o;19004:108::-;19081:24;19099:5;19081:24;:::i;:::-;19076:3;19069:37;19004:108;;:::o;19118:179::-;19187:10;19208:46;19250:3;19242:6;19208:46;:::i;:::-;19286:4;19281:3;19277:14;19263:28;;19118:179;;;;:::o;19303:113::-;19373:4;19405;19400:3;19396:14;19388:22;;19303:113;;;:::o;19452:732::-;19571:3;19600:54;19648:5;19600:54;:::i;:::-;19670:86;19749:6;19744:3;19670:86;:::i;:::-;19663:93;;19780:56;19830:5;19780:56;:::i;:::-;19859:7;19890:1;19875:284;19900:6;19897:1;19894:13;19875:284;;;19976:6;19970:13;20003:63;20062:3;20047:13;20003:63;:::i;:::-;19996:70;;20089:60;20142:6;20089:60;:::i;:::-;20079:70;;19935:224;19922:1;19919;19915:9;19910:14;;19875:284;;;19879:14;20175:3;20168:10;;19576:608;;;19452:732;;;;:::o;20190:831::-;20453:4;20491:3;20480:9;20476:19;20468:27;;20505:71;20573:1;20562:9;20558:17;20549:6;20505:71;:::i;:::-;20586:80;20662:2;20651:9;20647:18;20638:6;20586:80;:::i;:::-;20713:9;20707:4;20703:20;20698:2;20687:9;20683:18;20676:48;20741:108;20844:4;20835:6;20741:108;:::i;:::-;20733:116;;20859:72;20927:2;20916:9;20912:18;20903:6;20859:72;:::i;:::-;20941:73;21009:3;20998:9;20994:19;20985:6;20941:73;:::i;:::-;20190:831;;;;;;;;:::o;21027:177::-;21167:29;21163:1;21155:6;21151:14;21144:53;21027:177;:::o;21210:366::-;21352:3;21373:67;21437:2;21432:3;21373:67;:::i;:::-;21366:74;;21449:93;21538:3;21449:93;:::i;:::-;21567:2;21562:3;21558:12;21551:19;;21210:366;;;:::o;21582:419::-;21748:4;21786:2;21775:9;21771:18;21763:26;;21835:9;21829:4;21825:20;21821:1;21810:9;21806:17;21799:47;21863:131;21989:4;21863:131;:::i;:::-;21855:139;;21582:419;;;:::o;22007:220::-;22147:34;22143:1;22135:6;22131:14;22124:58;22216:3;22211:2;22203:6;22199:15;22192:28;22007:220;:::o;22233:366::-;22375:3;22396:67;22460:2;22455:3;22396:67;:::i;:::-;22389:74;;22472:93;22561:3;22472:93;:::i;:::-;22590:2;22585:3;22581:12;22574:19;;22233:366;;;:::o;22605:419::-;22771:4;22809:2;22798:9;22794:18;22786:26;;22858:9;22852:4;22848:20;22844:1;22833:9;22829:17;22822:47;22886:131;23012:4;22886:131;:::i;:::-;22878:139;;22605:419;;;:::o

Swarm Source

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