ETH Price: $2,503.39 (-0.88%)

Token

Dragon Warrior ($POU)
 

Overview

Max Total Supply

1,000,000,000 $POU

Holders

46

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 $POU

Value
$0.00
0x811d77b93746E93d06b774B0B1FF2De1d7b2c229
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:
Dragon

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-28
*/

/**
 *Submitted for verification at Etherscan.io on 2022-09-27
*/

/**
DRAGON WARRIOR ($POU) 

Introducing $POU (Dragon Warrior) a deflationary token on the Ethereum blockchain with great tokenomics!

Join our #$POU movement and let's rise together to create history as one unified #$POU tribe!

Tokenomics
Buy Tax: 5%
Sell Tax: 5%

Total Supply: 1 Billion 
Max Wallet: 2%

Telegram: https://t.me/Dragonwarriorportal
Medium: https://medium.com/@DragonWarriorerc20
Twitter: https://twitter.com/DragonWarriorer

*/
// 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 Dragon is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; //UNISWAP
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Dragon Warrior";
    string constant _symbol = "$POU";
    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 = 7;

    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"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac919062000870565b633b9aca00620000bd9190620008c1565b60035560646002600354620000d39190620008c1565b620000df91906200093b565b6004556005600a556007600b556064600c5533600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60146101000a81548160ff02191690831515021790555060326127106003546200016191906200093b565b6200016d9190620008c1565b6010553480156200017d57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000291573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b79190620009dd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000340573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003669190620009dd565b306040518363ffffffff1660e01b81526004016200038692919062000a20565b6020604051808303816000875af1158015620003a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cc9190620009dd565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620006c7919062000a5e565b60405180910390a35062000a7b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000764578086048111156200073c576200073b620006d6565b5b60018516156200074c5780820291505b80810290506200075c8562000705565b94506200071c565b94509492505050565b6000826200077f576001905062000852565b816200078f576000905062000852565b8160018114620007a85760028114620007b357620007e9565b600191505062000852565b60ff841115620007c857620007c7620006d6565b5b8360020a915084821115620007e257620007e1620006d6565b5b5062000852565b5060208310610133831016604e8410600b8410161715620008235782820a9050838111156200081d576200081c620006d6565b5b62000852565b62000832848484600162000712565b925090508184048111156200084c576200084b620006d6565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200087d8262000859565b91506200088a8362000863565b9250620008b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200076d565b905092915050565b6000620008ce8262000859565b9150620008db8362000859565b9250828202620008eb8162000859565b91508282048414831517620009055762000904620006d6565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009488262000859565b9150620009558362000859565b9250826200096857620009676200090c565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009a58262000978565b9050919050565b620009b78162000998565b8114620009c357600080fd5b50565b600081519050620009d781620009ac565b92915050565b600060208284031215620009f657620009f562000973565b5b600062000a0684828501620009c6565b91505092915050565b62000a1a8162000998565b82525050565b600060408201905062000a37600083018562000a0f565b62000a46602083018462000a0f565b9392505050565b62000a588162000859565b82525050565b600060208201905062000a75600083018462000a4d565b92915050565b612cd48062000a8b6000396000f3fe6080604052600436106101bb5760003560e01c8063715018a6116100ec578063d05b5a001161008a578063e96fada211610064578063e96fada21461063f578063f1d5f5171461066a578063f429389014610693578063f887ea40146106aa576101c2565b8063d05b5a00146105b0578063dd62ed3e146105d9578063e01bb68814610616576101c2565b806395d89b41116100c657806395d89b41146104f4578063960bfe041461051f578063a8aa1b3114610548578063a9059cbb14610573576101c2565b8063715018a6146104895780637e26d19f146104a0578063893d20e8146104c9576101c2565b80632f54bf6e11610159578063571ac8b011610133578063571ac8b0146103b95780636c0a24eb146103f65780636ddd17131461042157806370a082311461044c576101c2565b80632f54bf6e14610314578063313ce567146103515780633bbac5791461037c576101c2565b80630b78f9c0116101955780630b78f9c01461025a578063144eef071461028357806318160ddd146102ac57806323b872dd146102d7576101c2565b80630445b667146101c757806306fdde03146101f2578063095ea7b31461021d576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106d5565b6040516101e9919061205f565b60405180910390f35b3480156101fe57600080fd5b506102076106db565b604051610214919061210a565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906121ca565b610718565b6040516102519190612225565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c9190612240565b61080a565b005b34801561028f57600080fd5b506102aa60048036038101906102a591906123f4565b6108b8565b005b3480156102b857600080fd5b506102c1610995565b6040516102ce919061205f565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f99190612450565b61099f565b60405161030b9190612225565b60405180910390f35b34801561032057600080fd5b5061033b600480360381019061033691906124a3565b610b9f565b6040516103489190612225565b60405180910390f35b34801561035d57600080fd5b50610366610bf8565b60405161037391906124ec565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e91906124a3565b610c01565b6040516103b09190612225565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db91906124a3565b610c21565b6040516103ed9190612225565b60405180910390f35b34801561040257600080fd5b5061040b610c54565b604051610418919061205f565b60405180910390f35b34801561042d57600080fd5b50610436610c5a565b6040516104439190612225565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e91906124a3565b610c6d565b604051610480919061205f565b60405180910390f35b34801561049557600080fd5b5061049e610cb6565b005b3480156104ac57600080fd5b506104c760048036038101906104c29190612507565b610d79565b005b3480156104d557600080fd5b506104de610dde565b6040516104eb9190612543565b60405180910390f35b34801561050057600080fd5b50610509610e07565b604051610516919061210a565b60405180910390f35b34801561052b57600080fd5b506105466004803603810190610541919061255e565b610e44565b005b34801561055457600080fd5b5061055d610e96565b60405161056a9190612543565b60405180910390f35b34801561057f57600080fd5b5061059a600480360381019061059591906121ca565b610ebc565b6040516105a79190612225565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d2919061258b565b610ed1565b005b3480156105e557600080fd5b5061060060048036038101906105fb91906125cb565b610f74565b60405161060d919061205f565b60405180910390f35b34801561062257600080fd5b5061063d600480360381019061063891906124a3565b610ffb565b005b34801561064b57600080fd5b50610654611087565b6040516106619190612543565b60405180910390f35b34801561067657600080fd5b50610691600480360381019061068c919061255e565b6110ad565b005b34801561069f57600080fd5b506106a8611119565b005b3480156106b657600080fd5b506106bf611184565b6040516106cc919061266a565b60405180910390f35b60105481565b60606040518060400160405280600e81526020017f447261676f6e2057617272696f72000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107f8919061205f565b60405180910390a36001905092915050565b61081333610b9f565b610852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610849906126d1565b60405180910390fd5b81600a8190555080600b81905550600a8054111580156108755750600a600b5411155b6108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab9061273d565b60405180910390fd5b5050565b6108c133610b9f565b610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f7906126d1565b60405180910390fd5b60005b82518110156109905781600960008584815181106109245761092361275d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610988906127bb565b915050610903565b505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b8b57610b0a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b9684848461120e565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610c4d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610718565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cbf33610b9f565b610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf5906126d1565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610d6f9190612543565b60405180910390a1565b610d8233610b9f565b610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906126d1565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f24504f5500000000000000000000000000000000000000000000000000000000815250905090565b610e4d33610b9f565b610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e83906126d1565b60405180910390fd5b8060108190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ec933848461120e565b905092915050565b610eda33610b9f565b610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f10906126d1565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61100433610b9f565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a906126d1565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110b633610b9f565b6110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec906126d1565b60405180910390fd5b6103e8816003546111069190612803565b6111109190612874565b60048190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611181573d6000803e3d6000fd5b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e9919061210a565b60405180910390fd5b506000838561120191906128a5565b9050809150509392505050565b6000601160009054906101000a900460ff1615611237576112308484846116cd565b90506116c6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112e35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113cc57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061138c575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138991906128d9565b11155b6113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c29061297f565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611459576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611450906129eb565b60405180910390fd5b6114616118a0565b1561146f5761146e611977565b5b6114f8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082905061154985611ca7565b156115c657600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036115b6576115af85846000611cfe565b90506115c5565b6115c285846001611cfe565b90505b5b61161881600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b8919061205f565b60405180910390a360019150505b9392505050565b6000611758826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ed82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188d919061205f565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561190d5750601160009054906101000a900460ff16155b80156119255750600f60149054906101000a900460ff165b80156119725750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026010546119e59190612803565b81106119fd5760026010546119fa9190612803565b90505b6000600267ffffffffffffffff811115611a1a57611a19612285565b5b604051908082528060200260200182016040528015611a485781602001602082028036833780820191505090505b5090503081600081518110611a6057611a5f61275d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2b9190612a20565b81600181518110611b3f57611b3e61275d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bdd959493929190612b46565b600060405180830381600087803b158015611bf757600080fd5b505af1158015611c0b573d6000803e3d6000fd5b505050506702c68af0bb1400004710611c8857600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c86573d6000803e3d6000fd5b505b50506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082611d3457611d2f600c54611d21600a5487611ed590919063ffffffff16565b611f4f90919063ffffffff16565b611d5e565b611d5d600c54611d4f600b5487611ed590919063ffffffff16565b611f4f90919063ffffffff16565b5b9050611db281600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e52919061205f565b60405180910390a3611e6d8185611f9990919063ffffffff16565b9150509392505050565b6000808284611e8691906128d9565b905083811015611ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec290612bec565b60405180910390fd5b8091505092915050565b6000808303611ee75760009050611f49565b60008284611ef59190612803565b9050828482611f049190612874565b14611f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3b90612c7e565b60405180910390fd5b809150505b92915050565b6000611f9183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fe3565b905092915050565b6000611fdb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111aa565b905092915050565b6000808311829061202a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612021919061210a565b60405180910390fd5b50600083856120399190612874565b9050809150509392505050565b6000819050919050565b61205981612046565b82525050565b60006020820190506120746000830184612050565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120b4578082015181840152602081019050612099565b60008484015250505050565b6000601f19601f8301169050919050565b60006120dc8261207a565b6120e68185612085565b93506120f6818560208601612096565b6120ff816120c0565b840191505092915050565b6000602082019050818103600083015261212481846120d1565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061216b82612140565b9050919050565b61217b81612160565b811461218657600080fd5b50565b60008135905061219881612172565b92915050565b6121a781612046565b81146121b257600080fd5b50565b6000813590506121c48161219e565b92915050565b600080604083850312156121e1576121e0612136565b5b60006121ef85828601612189565b9250506020612200858286016121b5565b9150509250929050565b60008115159050919050565b61221f8161220a565b82525050565b600060208201905061223a6000830184612216565b92915050565b6000806040838503121561225757612256612136565b5b6000612265858286016121b5565b9250506020612276858286016121b5565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6122bd826120c0565b810181811067ffffffffffffffff821117156122dc576122db612285565b5b80604052505050565b60006122ef61212c565b90506122fb82826122b4565b919050565b600067ffffffffffffffff82111561231b5761231a612285565b5b602082029050602081019050919050565b600080fd5b600061234461233f84612300565b6122e5565b905080838252602082019050602084028301858111156123675761236661232c565b5b835b81811015612390578061237c8882612189565b845260208401935050602081019050612369565b5050509392505050565b600082601f8301126123af576123ae612280565b5b81356123bf848260208601612331565b91505092915050565b6123d18161220a565b81146123dc57600080fd5b50565b6000813590506123ee816123c8565b92915050565b6000806040838503121561240b5761240a612136565b5b600083013567ffffffffffffffff8111156124295761242861213b565b5b6124358582860161239a565b9250506020612446858286016123df565b9150509250929050565b60008060006060848603121561246957612468612136565b5b600061247786828701612189565b935050602061248886828701612189565b9250506040612499868287016121b5565b9150509250925092565b6000602082840312156124b9576124b8612136565b5b60006124c784828501612189565b91505092915050565b600060ff82169050919050565b6124e6816124d0565b82525050565b600060208201905061250160008301846124dd565b92915050565b60006020828403121561251d5761251c612136565b5b600061252b848285016123df565b91505092915050565b61253d81612160565b82525050565b60006020820190506125586000830184612534565b92915050565b60006020828403121561257457612573612136565b5b6000612582848285016121b5565b91505092915050565b600080604083850312156125a2576125a1612136565b5b60006125b085828601612189565b92505060206125c1858286016123df565b9150509250929050565b600080604083850312156125e2576125e1612136565b5b60006125f085828601612189565b925050602061260185828601612189565b9150509250929050565b6000819050919050565b600061263061262b61262684612140565b61260b565b612140565b9050919050565b600061264282612615565b9050919050565b600061265482612637565b9050919050565b61266481612649565b82525050565b600060208201905061267f600083018461265b565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006126bb600683612085565b91506126c682612685565b602082019050919050565b600060208201905081810360008301526126ea816126ae565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000612727601d83612085565b9150612732826126f1565b602082019050919050565b600060208201905081810360008301526127568161271a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127c682612046565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127f8576127f761278c565b5b600182019050919050565b600061280e82612046565b915061281983612046565b925082820261282781612046565b9150828204841483151761283e5761283d61278c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061287f82612046565b915061288a83612046565b92508261289a57612899612845565b5b828204905092915050565b60006128b082612046565b91506128bb83612046565b92508282039050818111156128d3576128d261278c565b5b92915050565b60006128e482612046565b91506128ef83612046565b92508282019050808211156129075761290661278c565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612969602583612085565b91506129748261290d565b604082019050919050565b600060208201905081810360008301526129988161295c565b9050919050565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b60006129d5600b83612085565b91506129e08261299f565b602082019050919050565b60006020820190508181036000830152612a04816129c8565b9050919050565b600081519050612a1a81612172565b92915050565b600060208284031215612a3657612a35612136565b5b6000612a4484828501612a0b565b91505092915050565b6000819050919050565b6000612a72612a6d612a6884612a4d565b61260b565b612046565b9050919050565b612a8281612a57565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612abd81612160565b82525050565b6000612acf8383612ab4565b60208301905092915050565b6000602082019050919050565b6000612af382612a88565b612afd8185612a93565b9350612b0883612aa4565b8060005b83811015612b39578151612b208882612ac3565b9750612b2b83612adb565b925050600181019050612b0c565b5085935050505092915050565b600060a082019050612b5b6000830188612050565b612b686020830187612a79565b8181036040830152612b7a8186612ae8565b9050612b896060830185612534565b612b966080830184612050565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612bd6601b83612085565b9150612be182612ba0565b602082019050919050565b60006020820190508181036000830152612c0581612bc9565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c68602183612085565b9150612c7382612c0c565b604082019050919050565b60006020820190508181036000830152612c9781612c5b565b905091905056fea264697066735822122077a96656e71787461b8e25a040288d77bdfd8393d4e5223877d354db6b690a8564736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063715018a6116100ec578063d05b5a001161008a578063e96fada211610064578063e96fada21461063f578063f1d5f5171461066a578063f429389014610693578063f887ea40146106aa576101c2565b8063d05b5a00146105b0578063dd62ed3e146105d9578063e01bb68814610616576101c2565b806395d89b41116100c657806395d89b41146104f4578063960bfe041461051f578063a8aa1b3114610548578063a9059cbb14610573576101c2565b8063715018a6146104895780637e26d19f146104a0578063893d20e8146104c9576101c2565b80632f54bf6e11610159578063571ac8b011610133578063571ac8b0146103b95780636c0a24eb146103f65780636ddd17131461042157806370a082311461044c576101c2565b80632f54bf6e14610314578063313ce567146103515780633bbac5791461037c576101c2565b80630b78f9c0116101955780630b78f9c01461025a578063144eef071461028357806318160ddd146102ac57806323b872dd146102d7576101c2565b80630445b667146101c757806306fdde03146101f2578063095ea7b31461021d576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106d5565b6040516101e9919061205f565b60405180910390f35b3480156101fe57600080fd5b506102076106db565b604051610214919061210a565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906121ca565b610718565b6040516102519190612225565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c9190612240565b61080a565b005b34801561028f57600080fd5b506102aa60048036038101906102a591906123f4565b6108b8565b005b3480156102b857600080fd5b506102c1610995565b6040516102ce919061205f565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f99190612450565b61099f565b60405161030b9190612225565b60405180910390f35b34801561032057600080fd5b5061033b600480360381019061033691906124a3565b610b9f565b6040516103489190612225565b60405180910390f35b34801561035d57600080fd5b50610366610bf8565b60405161037391906124ec565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e91906124a3565b610c01565b6040516103b09190612225565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db91906124a3565b610c21565b6040516103ed9190612225565b60405180910390f35b34801561040257600080fd5b5061040b610c54565b604051610418919061205f565b60405180910390f35b34801561042d57600080fd5b50610436610c5a565b6040516104439190612225565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e91906124a3565b610c6d565b604051610480919061205f565b60405180910390f35b34801561049557600080fd5b5061049e610cb6565b005b3480156104ac57600080fd5b506104c760048036038101906104c29190612507565b610d79565b005b3480156104d557600080fd5b506104de610dde565b6040516104eb9190612543565b60405180910390f35b34801561050057600080fd5b50610509610e07565b604051610516919061210a565b60405180910390f35b34801561052b57600080fd5b506105466004803603810190610541919061255e565b610e44565b005b34801561055457600080fd5b5061055d610e96565b60405161056a9190612543565b60405180910390f35b34801561057f57600080fd5b5061059a600480360381019061059591906121ca565b610ebc565b6040516105a79190612225565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d2919061258b565b610ed1565b005b3480156105e557600080fd5b5061060060048036038101906105fb91906125cb565b610f74565b60405161060d919061205f565b60405180910390f35b34801561062257600080fd5b5061063d600480360381019061063891906124a3565b610ffb565b005b34801561064b57600080fd5b50610654611087565b6040516106619190612543565b60405180910390f35b34801561067657600080fd5b50610691600480360381019061068c919061255e565b6110ad565b005b34801561069f57600080fd5b506106a8611119565b005b3480156106b657600080fd5b506106bf611184565b6040516106cc919061266a565b60405180910390f35b60105481565b60606040518060400160405280600e81526020017f447261676f6e2057617272696f72000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107f8919061205f565b60405180910390a36001905092915050565b61081333610b9f565b610852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610849906126d1565b60405180910390fd5b81600a8190555080600b81905550600a8054111580156108755750600a600b5411155b6108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab9061273d565b60405180910390fd5b5050565b6108c133610b9f565b610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f7906126d1565b60405180910390fd5b60005b82518110156109905781600960008584815181106109245761092361275d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610988906127bb565b915050610903565b505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b8b57610b0a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b9684848461120e565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610c4d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610718565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cbf33610b9f565b610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf5906126d1565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610d6f9190612543565b60405180910390a1565b610d8233610b9f565b610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906126d1565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f24504f5500000000000000000000000000000000000000000000000000000000815250905090565b610e4d33610b9f565b610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e83906126d1565b60405180910390fd5b8060108190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ec933848461120e565b905092915050565b610eda33610b9f565b610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f10906126d1565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61100433610b9f565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a906126d1565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110b633610b9f565b6110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec906126d1565b60405180910390fd5b6103e8816003546111069190612803565b6111109190612874565b60048190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611181573d6000803e3d6000fd5b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e9919061210a565b60405180910390fd5b506000838561120191906128a5565b9050809150509392505050565b6000601160009054906101000a900460ff1615611237576112308484846116cd565b90506116c6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112e35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113cc57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061138c575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138991906128d9565b11155b6113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c29061297f565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611459576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611450906129eb565b60405180910390fd5b6114616118a0565b1561146f5761146e611977565b5b6114f8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082905061154985611ca7565b156115c657600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036115b6576115af85846000611cfe565b90506115c5565b6115c285846001611cfe565b90505b5b61161881600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b8919061205f565b60405180910390a360019150505b9392505050565b6000611758826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ed82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188d919061205f565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561190d5750601160009054906101000a900460ff16155b80156119255750600f60149054906101000a900460ff165b80156119725750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026010546119e59190612803565b81106119fd5760026010546119fa9190612803565b90505b6000600267ffffffffffffffff811115611a1a57611a19612285565b5b604051908082528060200260200182016040528015611a485781602001602082028036833780820191505090505b5090503081600081518110611a6057611a5f61275d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2b9190612a20565b81600181518110611b3f57611b3e61275d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bdd959493929190612b46565b600060405180830381600087803b158015611bf757600080fd5b505af1158015611c0b573d6000803e3d6000fd5b505050506702c68af0bb1400004710611c8857600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c86573d6000803e3d6000fd5b505b50506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082611d3457611d2f600c54611d21600a5487611ed590919063ffffffff16565b611f4f90919063ffffffff16565b611d5e565b611d5d600c54611d4f600b5487611ed590919063ffffffff16565b611f4f90919063ffffffff16565b5b9050611db281600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7790919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e52919061205f565b60405180910390a3611e6d8185611f9990919063ffffffff16565b9150509392505050565b6000808284611e8691906128d9565b905083811015611ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec290612bec565b60405180910390fd5b8091505092915050565b6000808303611ee75760009050611f49565b60008284611ef59190612803565b9050828482611f049190612874565b14611f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3b90612c7e565b60405180910390fd5b809150505b92915050565b6000611f9183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fe3565b905092915050565b6000611fdb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111aa565b905092915050565b6000808311829061202a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612021919061210a565b60405180910390fd5b50600083856120399190612874565b9050809150509392505050565b6000819050919050565b61205981612046565b82525050565b60006020820190506120746000830184612050565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120b4578082015181840152602081019050612099565b60008484015250505050565b6000601f19601f8301169050919050565b60006120dc8261207a565b6120e68185612085565b93506120f6818560208601612096565b6120ff816120c0565b840191505092915050565b6000602082019050818103600083015261212481846120d1565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061216b82612140565b9050919050565b61217b81612160565b811461218657600080fd5b50565b60008135905061219881612172565b92915050565b6121a781612046565b81146121b257600080fd5b50565b6000813590506121c48161219e565b92915050565b600080604083850312156121e1576121e0612136565b5b60006121ef85828601612189565b9250506020612200858286016121b5565b9150509250929050565b60008115159050919050565b61221f8161220a565b82525050565b600060208201905061223a6000830184612216565b92915050565b6000806040838503121561225757612256612136565b5b6000612265858286016121b5565b9250506020612276858286016121b5565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6122bd826120c0565b810181811067ffffffffffffffff821117156122dc576122db612285565b5b80604052505050565b60006122ef61212c565b90506122fb82826122b4565b919050565b600067ffffffffffffffff82111561231b5761231a612285565b5b602082029050602081019050919050565b600080fd5b600061234461233f84612300565b6122e5565b905080838252602082019050602084028301858111156123675761236661232c565b5b835b81811015612390578061237c8882612189565b845260208401935050602081019050612369565b5050509392505050565b600082601f8301126123af576123ae612280565b5b81356123bf848260208601612331565b91505092915050565b6123d18161220a565b81146123dc57600080fd5b50565b6000813590506123ee816123c8565b92915050565b6000806040838503121561240b5761240a612136565b5b600083013567ffffffffffffffff8111156124295761242861213b565b5b6124358582860161239a565b9250506020612446858286016123df565b9150509250929050565b60008060006060848603121561246957612468612136565b5b600061247786828701612189565b935050602061248886828701612189565b9250506040612499868287016121b5565b9150509250925092565b6000602082840312156124b9576124b8612136565b5b60006124c784828501612189565b91505092915050565b600060ff82169050919050565b6124e6816124d0565b82525050565b600060208201905061250160008301846124dd565b92915050565b60006020828403121561251d5761251c612136565b5b600061252b848285016123df565b91505092915050565b61253d81612160565b82525050565b60006020820190506125586000830184612534565b92915050565b60006020828403121561257457612573612136565b5b6000612582848285016121b5565b91505092915050565b600080604083850312156125a2576125a1612136565b5b60006125b085828601612189565b92505060206125c1858286016123df565b9150509250929050565b600080604083850312156125e2576125e1612136565b5b60006125f085828601612189565b925050602061260185828601612189565b9150509250929050565b6000819050919050565b600061263061262b61262684612140565b61260b565b612140565b9050919050565b600061264282612615565b9050919050565b600061265482612637565b9050919050565b61266481612649565b82525050565b600060208201905061267f600083018461265b565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006126bb600683612085565b91506126c682612685565b602082019050919050565b600060208201905081810360008301526126ea816126ae565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000612727601d83612085565b9150612732826126f1565b602082019050919050565b600060208201905081810360008301526127568161271a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127c682612046565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127f8576127f761278c565b5b600182019050919050565b600061280e82612046565b915061281983612046565b925082820261282781612046565b9150828204841483151761283e5761283d61278c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061287f82612046565b915061288a83612046565b92508261289a57612899612845565b5b828204905092915050565b60006128b082612046565b91506128bb83612046565b92508282039050818111156128d3576128d261278c565b5b92915050565b60006128e482612046565b91506128ef83612046565b92508282019050808211156129075761290661278c565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612969602583612085565b91506129748261290d565b604082019050919050565b600060208201905081810360008301526129988161295c565b9050919050565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b60006129d5600b83612085565b91506129e08261299f565b602082019050919050565b60006020820190508181036000830152612a04816129c8565b9050919050565b600081519050612a1a81612172565b92915050565b600060208284031215612a3657612a35612136565b5b6000612a4484828501612a0b565b91505092915050565b6000819050919050565b6000612a72612a6d612a6884612a4d565b61260b565b612046565b9050919050565b612a8281612a57565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612abd81612160565b82525050565b6000612acf8383612ab4565b60208301905092915050565b6000602082019050919050565b6000612af382612a88565b612afd8185612a93565b9350612b0883612aa4565b8060005b83811015612b39578151612b208882612ac3565b9750612b2b83612adb565b925050600181019050612b0c565b5085935050505092915050565b600060a082019050612b5b6000830188612050565b612b686020830187612a79565b8181036040830152612b7a8186612ae8565b9050612b896060830185612534565b612b966080830184612050565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612bd6601b83612085565b9150612be182612ba0565b602082019050919050565b60006020820190508181036000830152612c0581612bc9565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c68602183612085565b9150612c7382612c0c565b604082019050919050565b60006020820190508181036000830152612c9781612c5b565b905091905056fea264697066735822122077a96656e71787461b8e25a040288d77bdfd8393d4e5223877d354db6b690a8564736f6c63430008110033

Deployed Bytecode Sourcemap

4619:7767:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5603:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6570:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6992:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11776:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11585:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6300:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7510:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2857:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6394:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5299:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7216:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5027:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5566:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6740:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2966:131;;;;;;;;;;;;;:::i;:::-;;11359:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6656:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6480:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12064:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5538:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7346:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11459:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6851:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12177:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5450:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11209:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11090:111;;;;;;;;;;;;;:::i;:::-;;5507:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5603:56;;;;:::o;6570:80::-;6618:13;6642:5;;;;;;;;;;;;;;;;;6635:12;;6570:80;:::o;6992:216::-;7067:4;7119:6;7084:11;:23;7096:10;7084:23;;;;;;;;;;;;;;;:32;7108:7;7084:32;;;;;;;;;;;;;;;:41;;;;7162:7;7141:37;;7150:10;7141:37;;;7171:6;7141:37;;;;;;:::i;:::-;;;;;;;;7196:4;7189:11;;6992:216;;;;:::o;11776:280::-;2810:19;2818:10;2810:7;:19::i;:::-;2802:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11889:13:::1;11874:12;:28;;;;11933:17;11914:16;:36;;;;11986:2;11970:12:::0;::::1;:18;;:44;;;;;12012:2;11992:16;;:22;;11970:44;11962:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;11776:280:::0;;:::o;11585:183::-;2810:19;2818:10;2810:7;:19::i;:::-;2802:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11672:9:::1;11667:94;11691:5;:12;11687:1;:16;11667:94;;;11743:6;11725:5;:15;11731:5;11737:1;11731:8;;;;;;;;:::i;:::-;;;;;;;;11725:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;11705:3;;;;;:::i;:::-;;;;11667:94;;;;11585:183:::0;;:::o;6300:88::-;6355:7;6373:12;;6366:19;;6300:88;:::o;7510:370::-;7610:4;7665:17;7630:11;:19;7642:6;7630:19;;;;;;;;;;;;;;;:31;7650:10;7630:31;;;;;;;;;;;;;;;;:52;7627:186;;7732:69;7768:6;7732:69;;;;;;;;;;;;;;;;;:11;:19;7744:6;7732:19;;;;;;;;;;;;;;;:31;7752:10;7732:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7698:11;:19;7710:6;7698:19;;;;;;;;;;;;;;;:31;7718:10;7698:31;;;;;;;;;;;;;;;:103;;;;7627:186;7832:40;7846:6;7854:9;7865:6;7832:13;:40::i;:::-;7825:47;;7510:370;;;;;:::o;2857:103::-;2912:4;2947:5;;;;;;;;;;;2936:16;;:7;:16;;;2929:23;;2857:103;;;:::o;6394:80::-;6446:5;4954:1;6455:16;;6394:80;:::o;5299:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;7216:122::-;7271:4;7295:35;7303:7;7312:17;7295:7;:35::i;:::-;7288:42;;7216:122;;;:::o;5027:56::-;;;;:::o;5566:30::-;;;;;;;;;;;;;:::o;6740:105::-;6806:7;6824:9;:18;6834:7;6824:18;;;;;;;;;;;;;;;;6817:25;;6740:105;;;:::o;2966:131::-;2810:19;2818:10;2810:7;:19::i;:::-;2802:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3039:1:::1;3023:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;3057:32;3086:1;3057:32;;;;;;:::i;:::-;;;;;;;;2966:131::o:0;11359:92::-;2810:19;2818:10;2810:7;:19::i;:::-;2802:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11437:6:::1;11423:11;;:20;;;;;;;;;;;;;;;;;;11359:92:::0;:::o;6656:78::-;6708:7;6726:5;;;;;;;;;;;6719:12;;6656:78;:::o;6480:84::-;6530:13;6554:7;;;;;;;;;;;;;;;;;6547:14;;6480:84;:::o;12064:105::-;2810:19;2818:10;2810:7;:19::i;:::-;2802:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12152:9:::1;12136:13;:25;;;;12064:105:::0;:::o;5538:19::-;;;;;;;;;;;;;:::o;7346:156::-;7426:4;7450:44;7464:10;7476:9;7487:6;7450:13;:44::i;:::-;7443:51;;7346:156;;;;:::o;11459:119::-;2810:19;2818:10;2810:7;:19::i;:::-;2802:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11564:6:::1;11544:5;:17;11550:10;11544:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11459:119:::0;;:::o;6851:133::-;6935:7;6953:11;:19;6965:6;6953:19;;;;;;;;;;;;;;;:28;6973:7;6953:28;;;;;;;;;;;;;;;;6946:35;;6851:133;;;;:::o;12177:138::-;2810:19;2818:10;2810:7;:19::i;:::-;2802:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12286:21:::1;12263:20;;:44;;;;;;;;;;;;;;;;;;12177:138:::0;:::o;5450:48::-;;;;;;;;;;;;;:::o;11209:142::-;2810:19;2818:10;2810:7;:19::i;:::-;2802:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11339:4:::1;11321:13;11306:12;;:28;;;;:::i;:::-;11305:38;;;;:::i;:::-;11286:16;:57;;;;11209:142:::0;:::o;11090:111::-;11140:20;;;;;;;;;;;11132:38;;:61;11171:21;11132:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11090:111::o;5507:24::-;;;;;;;;;;;;;:::o;946:190::-;1032:7;1065:1;1060;:6;;1068:12;1052:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1092:9;1108:1;1104;:5;;;;:::i;:::-;1092:17;;1127:1;1120:8;;;946:190;;;;;:::o;7888:1043::-;7980:4;8000:6;;;;;;;;;;;7997:63;;;8016:41;8031:6;8039:9;8050:6;8016:14;:41::i;:::-;8009:48;;;;7997:63;8097:4;;;;;;;;;;;8084:17;;:9;:17;;;;:38;;;;;8118:4;;;;;;;;;;;8105:17;;:9;:17;;;;8084:38;8080:200;;;8147:15;:26;8163:9;8147:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;8210:16;;8200:6;8177:9;:20;8187:9;8177:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;8147:79;8139:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;8080:200;8309:5;:13;8315:6;8309:13;;;;;;;;;;;;;;;;;;;;;;;;;8308:14;8300:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8354:16;:14;:16::i;:::-;8351:35;;;8373:10;:8;:10::i;:::-;8351:35;8419:53;8441:6;8419:53;;;;;;;;;;;;;;;;;:9;:17;8429:6;8419:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8399:9;:17;8409:6;8399:17;;;;;;;;;;;;;;;:73;;;;8485:22;8511:6;8485:32;;8531:21;8545:6;8531:13;:21::i;:::-;8528:235;;;8581:4;;;;;;;;;;;8571:14;;:6;:14;;;8568:183;;8622:29;8630:6;8638;8645:5;8622:7;:29::i;:::-;8605:46;;8568:183;;;8707:28;8715:6;8723;8730:4;8707:7;:28::i;:::-;8690:45;;8568:183;8528:235;8800:40;8825:14;8800:9;:20;8810:9;8800:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8777:9;:20;8787:9;8777:20;;;;;;;;;;;;;;;:63;;;;8875:9;8858:43;;8867:6;8858:43;;;8886:14;8858:43;;;;;;:::i;:::-;;;;;;;;8919:4;8912:11;;;7888:1043;;;;;;:::o;8943:330::-;9036:4;9073:53;9095:6;9073:53;;;;;;;;;;;;;;;;;:9;:17;9083:6;9073:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9053:9;:17;9063:6;9053:17;;;;;;;;;;;;;;;:73;;;;9160:32;9185:6;9160:9;:20;9170:9;9160:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9137:9;:20;9147:9;9137:20;;;;;;;;;;;;;;;:55;;;;9225:9;9208:35;;9217:6;9208:35;;;9236:6;9208:35;;;;;;:::i;:::-;;;;;;;;9261:4;9254:11;;8943:330;;;;;:::o;9814:197::-;9863:4;9901;;;;;;;;;;;9887:18;;:10;:18;;;;:38;;;;;9919:6;;;;;;;;;;;9918:7;9887:38;:62;;;;;9938:11;;;;;;;;;;;9887:62;:116;;;;;9990:13;;9962:9;:24;9980:4;9962:24;;;;;;;;;;;;;;;;:41;;9887:116;9880:123;;9814:197;:::o;10019:685::-;5716:4;5707:6;;:13;;;;;;;;;;;;;;;;;;10068:20:::1;10091:9;:24;10109:4;10091:24;;;;;;;;;;;;;;;;10068:47;;10161:1;10147:13;;:15;;;;:::i;:::-;10130:12;:33;10126:95;;10208:1;10194:13;;:15;;;;:::i;:::-;10179:30;;10126:95;10231:21;10269:1;10255:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10231:40;;10300:4;10282;10287:1;10282:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10326:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10316:4;10321:1;10316:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10352:6;;;;;;;;;;;:57;;;10424:12;10451:1;10467:4;10494;10514:15;10352:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10582:18;10557:21;:43;10553:136;;10624:20;;;;;;;;;;;10616:38;;:61;10655:21;10616:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10553:136;10057:647;;5734:5:::0;5725:6;;:14;;;;;;;;;;;;;;;;;;10019:685::o;9281:114::-;9343:4;9368:11;:19;9380:6;9368:19;;;;;;;;;;;;;;;;;;;;;;;;;9367:20;9360:27;;9281:114;;;:::o;9403:403::-;9483:7;9503:14;9520:6;:104;;9580:44;9609:14;;9580:24;9591:12;;9580:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;9520:104;;;9529:48;9562:14;;9529:28;9540:16;;9529:6;:10;;:28;;;;:::i;:::-;:32;;:48;;;;:::i;:::-;9520:104;9503:121;;9662:39;9691:9;9662;:24;9680:4;9662:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9635:9;:24;9653:4;9635:24;;;;;;;;;;;;;;;:66;;;;9742:4;9717:42;;9726:6;9717:42;;;9749:9;9717:42;;;;;;:::i;:::-;;;;;;;;9777:21;9788:9;9777:6;:10;;:21;;;;:::i;:::-;9770:28;;;9403:403;;;;;:::o;619:179::-;677:7;697:9;713:1;709;:5;;;;:::i;:::-;697:17;;738:1;733;:6;;725:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;789:1;782:8;;;619:179;;;;:::o;1142:246::-;1200:7;1229:1;1224;:6;1220:47;;1254:1;1247:8;;;;1220:47;1277:9;1293:1;1289;:5;;;;:::i;:::-;1277:17;;1322:1;1317;1313;:5;;;;:::i;:::-;:10;1305:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1379:1;1372:8;;;1142:246;;;;;:::o;1394:132::-;1452:7;1479:39;1483:1;1486;1479:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1472:46;;1394:132;;;;:::o;804:136::-;862:7;889:43;893:1;896;889:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;882:50;;804:136;;;;:::o;1532:189::-;1618:7;1650:1;1646;:5;1653:12;1638:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1677:9;1693:1;1689;:5;;;;:::i;:::-;1677:17;;1712:1;1705:8;;;1532: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:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:474::-;3866:6;3874;3923:2;3911:9;3902:7;3898:23;3894:32;3891:119;;;3929:79;;:::i;:::-;3891:119;4049:1;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4020:117;4176:2;4202:53;4247:7;4238:6;4227:9;4223:22;4202:53;:::i;:::-;4192:63;;4147:118;3798:474;;;;;:::o;4278:117::-;4387:1;4384;4377:12;4401:180;4449:77;4446:1;4439:88;4546:4;4543:1;4536:15;4570:4;4567:1;4560:15;4587:281;4670:27;4692:4;4670:27;:::i;:::-;4662:6;4658:40;4800:6;4788:10;4785:22;4764:18;4752:10;4749:34;4746:62;4743:88;;;4811:18;;:::i;:::-;4743:88;4851:10;4847:2;4840:22;4630:238;4587:281;;:::o;4874:129::-;4908:6;4935:20;;:::i;:::-;4925:30;;4964:33;4992:4;4984:6;4964:33;:::i;:::-;4874:129;;;:::o;5009:311::-;5086:4;5176:18;5168:6;5165:30;5162:56;;;5198:18;;:::i;:::-;5162:56;5248:4;5240:6;5236:17;5228:25;;5308:4;5302;5298:15;5290:23;;5009:311;;;:::o;5326:117::-;5435:1;5432;5425:12;5466:710;5562:5;5587:81;5603:64;5660:6;5603:64;:::i;:::-;5587:81;:::i;:::-;5578:90;;5688:5;5717:6;5710:5;5703:21;5751:4;5744:5;5740:16;5733:23;;5804:4;5796:6;5792:17;5784:6;5780:30;5833:3;5825:6;5822:15;5819:122;;;5852:79;;:::i;:::-;5819:122;5967:6;5950:220;5984:6;5979:3;5976:15;5950:220;;;6059:3;6088:37;6121:3;6109:10;6088:37;:::i;:::-;6083:3;6076:50;6155:4;6150:3;6146:14;6139:21;;6026:144;6010:4;6005:3;6001:14;5994:21;;5950:220;;;5954:21;5568:608;;5466:710;;;;;:::o;6199:370::-;6270:5;6319:3;6312:4;6304:6;6300:17;6296:27;6286:122;;6327:79;;:::i;:::-;6286:122;6444:6;6431:20;6469:94;6559:3;6551:6;6544:4;6536:6;6532:17;6469:94;:::i;:::-;6460:103;;6276:293;6199:370;;;;:::o;6575:116::-;6645:21;6660:5;6645:21;:::i;:::-;6638:5;6635:32;6625:60;;6681:1;6678;6671:12;6625:60;6575:116;:::o;6697:133::-;6740:5;6778:6;6765:20;6756:29;;6794:30;6818:5;6794:30;:::i;:::-;6697:133;;;;:::o;6836:678::-;6926:6;6934;6983:2;6971:9;6962:7;6958:23;6954:32;6951:119;;;6989:79;;:::i;:::-;6951:119;7137:1;7126:9;7122:17;7109:31;7167:18;7159:6;7156:30;7153:117;;;7189:79;;:::i;:::-;7153:117;7294:78;7364:7;7355:6;7344:9;7340:22;7294:78;:::i;:::-;7284:88;;7080:302;7421:2;7447:50;7489:7;7480:6;7469:9;7465:22;7447:50;:::i;:::-;7437:60;;7392:115;6836:678;;;;;:::o;7520:619::-;7597:6;7605;7613;7662:2;7650:9;7641:7;7637:23;7633:32;7630:119;;;7668:79;;:::i;:::-;7630:119;7788:1;7813:53;7858:7;7849:6;7838:9;7834:22;7813:53;:::i;:::-;7803:63;;7759:117;7915:2;7941:53;7986:7;7977:6;7966:9;7962:22;7941:53;:::i;:::-;7931:63;;7886:118;8043:2;8069:53;8114:7;8105:6;8094:9;8090:22;8069:53;:::i;:::-;8059:63;;8014:118;7520:619;;;;;:::o;8145:329::-;8204:6;8253:2;8241:9;8232:7;8228:23;8224:32;8221:119;;;8259:79;;:::i;:::-;8221:119;8379:1;8404:53;8449:7;8440:6;8429:9;8425:22;8404:53;:::i;:::-;8394:63;;8350:117;8145:329;;;;:::o;8480:86::-;8515:7;8555:4;8548:5;8544:16;8533:27;;8480:86;;;:::o;8572:112::-;8655:22;8671:5;8655:22;:::i;:::-;8650:3;8643:35;8572:112;;:::o;8690:214::-;8779:4;8817:2;8806:9;8802:18;8794:26;;8830:67;8894:1;8883:9;8879:17;8870:6;8830:67;:::i;:::-;8690:214;;;;:::o;8910:323::-;8966:6;9015:2;9003:9;8994:7;8990:23;8986:32;8983:119;;;9021:79;;:::i;:::-;8983:119;9141:1;9166:50;9208:7;9199:6;9188:9;9184:22;9166:50;:::i;:::-;9156:60;;9112:114;8910:323;;;;:::o;9239:118::-;9326:24;9344:5;9326:24;:::i;:::-;9321:3;9314:37;9239:118;;:::o;9363:222::-;9456:4;9494:2;9483:9;9479:18;9471:26;;9507:71;9575:1;9564:9;9560:17;9551:6;9507:71;:::i;:::-;9363:222;;;;:::o;9591:329::-;9650:6;9699:2;9687:9;9678:7;9674:23;9670:32;9667:119;;;9705:79;;:::i;:::-;9667:119;9825:1;9850:53;9895:7;9886:6;9875:9;9871:22;9850:53;:::i;:::-;9840:63;;9796:117;9591:329;;;;:::o;9926:468::-;9991:6;9999;10048:2;10036:9;10027:7;10023:23;10019:32;10016:119;;;10054:79;;:::i;:::-;10016:119;10174:1;10199:53;10244:7;10235:6;10224:9;10220:22;10199:53;:::i;:::-;10189:63;;10145:117;10301:2;10327:50;10369:7;10360:6;10349:9;10345:22;10327:50;:::i;:::-;10317:60;;10272:115;9926:468;;;;;:::o;10400:474::-;10468:6;10476;10525:2;10513:9;10504:7;10500:23;10496:32;10493:119;;;10531:79;;:::i;:::-;10493:119;10651:1;10676:53;10721:7;10712:6;10701:9;10697:22;10676:53;:::i;:::-;10666:63;;10622:117;10778:2;10804:53;10849:7;10840:6;10829:9;10825:22;10804:53;:::i;:::-;10794:63;;10749:118;10400:474;;;;;:::o;10880:60::-;10908:3;10929:5;10922:12;;10880:60;;;:::o;10946:142::-;10996:9;11029:53;11047:34;11056:24;11074:5;11056:24;:::i;:::-;11047:34;:::i;:::-;11029:53;:::i;:::-;11016:66;;10946:142;;;:::o;11094:126::-;11144:9;11177:37;11208:5;11177:37;:::i;:::-;11164:50;;11094:126;;;:::o;11226:144::-;11294:9;11327:37;11358:5;11327:37;:::i;:::-;11314:50;;11226:144;;;:::o;11376:167::-;11481:55;11530:5;11481:55;:::i;:::-;11476:3;11469:68;11376:167;;:::o;11549:258::-;11660:4;11698:2;11687:9;11683:18;11675:26;;11711:89;11797:1;11786:9;11782:17;11773:6;11711:89;:::i;:::-;11549:258;;;;:::o;11813:156::-;11953:8;11949:1;11941:6;11937:14;11930:32;11813:156;:::o;11975:365::-;12117:3;12138:66;12202:1;12197:3;12138:66;:::i;:::-;12131:73;;12213:93;12302:3;12213:93;:::i;:::-;12331:2;12326:3;12322:12;12315:19;;11975:365;;;:::o;12346:419::-;12512:4;12550:2;12539:9;12535:18;12527:26;;12599:9;12593:4;12589:20;12585:1;12574:9;12570:17;12563:47;12627:131;12753:4;12627:131;:::i;:::-;12619:139;;12346:419;;;:::o;12771:179::-;12911:31;12907:1;12899:6;12895:14;12888:55;12771:179;:::o;12956:366::-;13098:3;13119:67;13183:2;13178:3;13119:67;:::i;:::-;13112:74;;13195:93;13284:3;13195:93;:::i;:::-;13313:2;13308:3;13304:12;13297:19;;12956:366;;;:::o;13328:419::-;13494:4;13532:2;13521:9;13517:18;13509:26;;13581:9;13575:4;13571:20;13567:1;13556:9;13552:17;13545:47;13609:131;13735:4;13609:131;:::i;:::-;13601:139;;13328:419;;;:::o;13753:180::-;13801:77;13798:1;13791:88;13898:4;13895:1;13888:15;13922:4;13919:1;13912:15;13939:180;13987:77;13984:1;13977:88;14084:4;14081:1;14074:15;14108:4;14105:1;14098:15;14125:233;14164:3;14187:24;14205:5;14187:24;:::i;:::-;14178:33;;14233:66;14226:5;14223:77;14220:103;;14303:18;;:::i;:::-;14220:103;14350:1;14343:5;14339:13;14332:20;;14125:233;;;:::o;14364:410::-;14404:7;14427:20;14445:1;14427:20;:::i;:::-;14422:25;;14461:20;14479:1;14461:20;:::i;:::-;14456:25;;14516:1;14513;14509:9;14538:30;14556:11;14538:30;:::i;:::-;14527:41;;14717:1;14708:7;14704:15;14701:1;14698:22;14678:1;14671:9;14651:83;14628:139;;14747:18;;:::i;:::-;14628:139;14412:362;14364:410;;;;:::o;14780:180::-;14828:77;14825:1;14818:88;14925:4;14922:1;14915:15;14949:4;14946:1;14939:15;14966:185;15006:1;15023:20;15041:1;15023:20;:::i;:::-;15018:25;;15057:20;15075:1;15057:20;:::i;:::-;15052:25;;15096:1;15086:35;;15101:18;;:::i;:::-;15086:35;15143:1;15140;15136:9;15131:14;;14966:185;;;;:::o;15157:194::-;15197:4;15217:20;15235:1;15217:20;:::i;:::-;15212:25;;15251:20;15269:1;15251:20;:::i;:::-;15246:25;;15295:1;15292;15288:9;15280:17;;15319:1;15313:4;15310:11;15307:37;;;15324:18;;:::i;:::-;15307:37;15157:194;;;;:::o;15357:191::-;15397:3;15416:20;15434:1;15416:20;:::i;:::-;15411:25;;15450:20;15468:1;15450:20;:::i;:::-;15445:25;;15493:1;15490;15486:9;15479:16;;15514:3;15511:1;15508:10;15505:36;;;15521:18;;:::i;:::-;15505:36;15357:191;;;;:::o;15554:224::-;15694:34;15690:1;15682:6;15678:14;15671:58;15763:7;15758:2;15750:6;15746:15;15739:32;15554:224;:::o;15784:366::-;15926:3;15947:67;16011:2;16006:3;15947:67;:::i;:::-;15940:74;;16023:93;16112:3;16023:93;:::i;:::-;16141:2;16136:3;16132:12;16125:19;;15784:366;;;:::o;16156:419::-;16322:4;16360:2;16349:9;16345:18;16337:26;;16409:9;16403:4;16399:20;16395:1;16384:9;16380:17;16373:47;16437:131;16563:4;16437:131;:::i;:::-;16429:139;;16156:419;;;:::o;16581:161::-;16721:13;16717:1;16709:6;16705:14;16698:37;16581:161;:::o;16748:366::-;16890:3;16911:67;16975:2;16970:3;16911:67;:::i;:::-;16904:74;;16987:93;17076:3;16987:93;:::i;:::-;17105:2;17100:3;17096:12;17089:19;;16748:366;;;:::o;17120:419::-;17286:4;17324:2;17313:9;17309:18;17301:26;;17373:9;17367:4;17363:20;17359:1;17348:9;17344:17;17337:47;17401:131;17527:4;17401:131;:::i;:::-;17393:139;;17120:419;;;:::o;17545:143::-;17602:5;17633:6;17627:13;17618:22;;17649:33;17676:5;17649:33;:::i;:::-;17545:143;;;;:::o;17694:351::-;17764:6;17813:2;17801:9;17792:7;17788:23;17784:32;17781:119;;;17819:79;;:::i;:::-;17781:119;17939:1;17964:64;18020:7;18011:6;18000:9;17996:22;17964:64;:::i;:::-;17954:74;;17910:128;17694:351;;;;:::o;18051:85::-;18096:7;18125:5;18114:16;;18051:85;;;:::o;18142:158::-;18200:9;18233:61;18251:42;18260:32;18286:5;18260:32;:::i;:::-;18251:42;:::i;:::-;18233:61;:::i;:::-;18220:74;;18142:158;;;:::o;18306:147::-;18401:45;18440:5;18401:45;:::i;:::-;18396:3;18389:58;18306:147;;:::o;18459:114::-;18526:6;18560:5;18554:12;18544:22;;18459:114;;;:::o;18579:184::-;18678:11;18712:6;18707:3;18700:19;18752:4;18747:3;18743:14;18728:29;;18579:184;;;;:::o;18769:132::-;18836:4;18859:3;18851:11;;18889:4;18884:3;18880:14;18872:22;;18769:132;;;:::o;18907:108::-;18984:24;19002:5;18984:24;:::i;:::-;18979:3;18972:37;18907:108;;:::o;19021:179::-;19090:10;19111:46;19153:3;19145:6;19111:46;:::i;:::-;19189:4;19184:3;19180:14;19166:28;;19021:179;;;;:::o;19206:113::-;19276:4;19308;19303:3;19299:14;19291:22;;19206:113;;;:::o;19355:732::-;19474:3;19503:54;19551:5;19503:54;:::i;:::-;19573:86;19652:6;19647:3;19573:86;:::i;:::-;19566:93;;19683:56;19733:5;19683:56;:::i;:::-;19762:7;19793:1;19778:284;19803:6;19800:1;19797:13;19778:284;;;19879:6;19873:13;19906:63;19965:3;19950:13;19906:63;:::i;:::-;19899:70;;19992:60;20045:6;19992:60;:::i;:::-;19982:70;;19838:224;19825:1;19822;19818:9;19813:14;;19778:284;;;19782:14;20078:3;20071:10;;19479:608;;;19355:732;;;;:::o;20093:831::-;20356:4;20394:3;20383:9;20379:19;20371:27;;20408:71;20476:1;20465:9;20461:17;20452:6;20408:71;:::i;:::-;20489:80;20565:2;20554:9;20550:18;20541:6;20489:80;:::i;:::-;20616:9;20610:4;20606:20;20601:2;20590:9;20586:18;20579:48;20644:108;20747:4;20738:6;20644:108;:::i;:::-;20636:116;;20762:72;20830:2;20819:9;20815:18;20806:6;20762:72;:::i;:::-;20844:73;20912:3;20901:9;20897:19;20888:6;20844:73;:::i;:::-;20093:831;;;;;;;;:::o;20930:177::-;21070:29;21066:1;21058:6;21054:14;21047:53;20930:177;:::o;21113:366::-;21255:3;21276:67;21340:2;21335:3;21276:67;:::i;:::-;21269:74;;21352:93;21441:3;21352:93;:::i;:::-;21470:2;21465:3;21461:12;21454:19;;21113:366;;;:::o;21485:419::-;21651:4;21689:2;21678:9;21674:18;21666:26;;21738:9;21732:4;21728:20;21724:1;21713:9;21709:17;21702:47;21766:131;21892:4;21766:131;:::i;:::-;21758:139;;21485:419;;;:::o;21910:220::-;22050:34;22046:1;22038:6;22034:14;22027:58;22119:3;22114:2;22106:6;22102:15;22095:28;21910:220;:::o;22136:366::-;22278:3;22299:67;22363:2;22358:3;22299:67;:::i;:::-;22292:74;;22375:93;22464:3;22375:93;:::i;:::-;22493:2;22488:3;22484:12;22477:19;;22136:366;;;:::o;22508:419::-;22674:4;22712:2;22701:9;22697:18;22689:26;;22761:9;22755:4;22751:20;22747:1;22736:9;22732:17;22725:47;22789:131;22915:4;22789:131;:::i;:::-;22781:139;;22508:419;;;:::o

Swarm Source

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