ETH Price: $2,642.10 (+1.42%)

Token

BBC Game (BBC)
 

Overview

Max Total Supply

1,000,000,000 BBC

Holders

242

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
635,655.816112543469704394 BBC

Value
$0.00
0x2B9627330D680E854ED2f32234850e5748A23AC1
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:
BBCGame

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-11-08
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.0;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function 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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    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;
}

interface StakingContract {
    function checkTime() external;
}

contract BBCGame is IERC20, Auth {
    using SafeMath for uint256;

    address private WETH;
    address private ZERO = 0x0000000000000000000000000000000000000000;


    string private constant  _name = "BBC Game";
    string private constant _symbol = "BBC";
    uint8 public constant _decimals = 18;

    uint256 private _totalSupply = 1000000000 * (10 ** _decimals); 

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

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) private isBot;
            
    uint256 public buyFee = 7;
    uint256 public sellFee = 25;
    uint256 private feeDenominator = 100;

    address payable public teamWallet = payable(0x657f05797256A4527c33dc6fa2D8d07cddBFbf88);
    address payable public prizeWallet = payable(0x27B0E428911bBbC3C3f58c166F1ea91aAcAF1B27); 

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen;
    bool private buyLimit = true;
    uint256 private maxBuy = 4000001 * (10 ** _decimals);
    uint256 public swapThresholdAmount = 10000000 * (10**_decimals);

    StakingContract public stakingContract; 
    
    bool public blacklistEnabled = false;
    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (
        address _owner
    ) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);        
        WETH = router.WETH();        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        approve(address(router), type(uint).max);
        IERC20(pair).approve(address(router), type(uint).max);  
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[_owner] = true;
        isFeeExempt[teamWallet] = true; 
        isFeeExempt[address(this)] = 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 (!tradingOpen) {
            require (sender == owner ||  sender == address (this));
            return _basicTransfer(sender, recipient, amount);
        }
        
        if (blacklistEnabled) {
            require (!isBot[sender] && !isBot[recipient], "Bot!");
        }
        if (buyLimit) { 
            require (amount<=maxBuy, "Too much sir");        
        }

        if (sender == pair && recipient != address(router) && !isFeeExempt[recipient]) {
            require (cooldown[recipient] < block.timestamp);
            cooldown[recipient] = block.timestamp + 60 seconds;
            if (block.number <= (launchedAt + 1)) { 
                isBot[recipient] = true;
            }
        }
       
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= swapThresholdAmount;
    
        bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(); }

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

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

        if  (address(stakingContract) != address(0)) {
            stakingContract.checkTime();
        }

        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, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
   }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;
        if(sender != pair) {
            feeAmount = amount.mul(sellFee).div(feeDenominator);
        }
        else {
            feeAmount = amount.mul(buyFee).div(feeDenominator);
        }
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

   
    function swapBack() internal swapping {

        uint256 amountToSwap = balanceOf(address(this));        

        swapTokensForEth(amountToSwap);

        uint256 contractETHBalance = address(this).balance;
             
        payable(teamWallet).transfer(contractETHBalance.div(2));
        payable(prizeWallet).transfer(contractETHBalance.div(2));             
    }

    

    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    
    function haveFun() external onlyOwner {
      
        router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner,
            block.timestamp
        );       

        launchedAt = block.number;
        tradingOpen = true;
    }    

    function removeBuyLimit() external onlyOwner {
        buyLimit = false;
    }

    function setBuyFee (uint256 _fee) external onlyOwner {
        require (_fee <= 25, "Fee can't exceed 14%");
        buyFee = _fee;
    }

     function setSellFee (uint256 _fee) external onlyOwner {
        require (_fee <= 10, "Fee can't exceed 14%");
        sellFee = _fee;
    }  

    function setSwapThresholdAmount (uint256 amount) external onlyOwner {
        require (amount <= _totalSupply.div(100), "can't exceed 1%");
        swapThresholdAmount = amount * 10 ** _decimals;
    } 

    function setTeamWallet(address _teamWallet) external onlyOwner {
        teamWallet = payable(_teamWallet);
    } 

    function setPrizeWallet(address _prizeWallet) external onlyOwner {
        prizeWallet = payable(_prizeWallet);
    } 

    function setStakingContract (address _stakingContractAddress) external onlyOwner {
        stakingContract =  StakingContract(_stakingContractAddress);
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setBlacklistEnabled() external onlyOwner {
        require (blacklistEnabled == false, "can only be called once");
        blacklistEnabled = true;
    }
    
    function setBot(address _address, bool toggle) public onlyOwner {
        isBot[_address] = toggle;
    }

    function checkBot(address account) public view returns (bool) {
        return isBot[account];
    }

    function blacklistArray (address[] calldata bots) external onlyOwner {
        require (bots.length > 0);
        uint i =0;
        while (i < bots.length) {
            setBot(bots[i],  true);
            i++;
        }
    }
  
    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(teamWallet).transfer(contractETHBalance);
    }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"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":"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":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"blacklistArray","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"blacklistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"haveFun","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":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","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":"prizeWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_prizeWallet","type":"address"}],"name":"setPrizeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_stakingContractAddress","type":"address"}],"name":"setStakingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_teamWallet","type":"address"}],"name":"setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingContract","outputs":[{"internalType":"contract StakingContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThresholdAmount","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":"teamWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000056919062000b23565b633b9aca0062000067919062000b74565b60035560076009556019600a556064600b5573657f05797256a4527c33dc6fa2d8d07cddbfbf88600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507327b0e428911bbbc3c3f58c166f1ea91aacaf1b27600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601160016101000a81548160ff0219169083151502179055506012600a6200014e919062000b23565b623d09016200015e919062000b74565b6012556012600a62000171919062000b23565b6298968062000181919062000b74565b60135560006014806101000a81548160ff021916908315150217905550348015620001ab57600080fd5b50604051620046d5380380620046d58339818101604052810190620001d1919062000c29565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fc919062000c29565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d0919062000c29565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200042e92919062000c6c565b6020604051808303816000875af11580156200044e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000474919062000c29565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000508600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200089560201b60201c565b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620005aa92919062000caa565b6020604051808303816000875af1158015620005ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005f0919062000d14565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000886919062000d46565b60405180910390a35062000d63565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000977919062000d46565b60405180910390a36001905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a1757808604811115620009ef57620009ee62000989565b5b6001851615620009ff5780820291505b808102905062000a0f85620009b8565b9450620009cf565b94509492505050565b60008262000a32576001905062000b05565b8162000a42576000905062000b05565b816001811462000a5b576002811462000a665762000a9c565b600191505062000b05565b60ff84111562000a7b5762000a7a62000989565b5b8360020a91508482111562000a955762000a9462000989565b5b5062000b05565b5060208310610133831016604e8410600b841016171562000ad65782820a90508381111562000ad05762000acf62000989565b5b62000b05565b62000ae58484846001620009c5565b9250905081840481111562000aff5762000afe62000989565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b308262000b0c565b915062000b3d8362000b16565b925062000b6c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a20565b905092915050565b600062000b818262000b0c565b915062000b8e8362000b0c565b925082820262000b9e8162000b0c565b9150828204841483151762000bb85762000bb762000989565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bf18262000bc4565b9050919050565b62000c038162000be4565b811462000c0f57600080fd5b50565b60008151905062000c238162000bf8565b92915050565b60006020828403121562000c425762000c4162000bbf565b5b600062000c528482850162000c12565b91505092915050565b62000c668162000be4565b82525050565b600060408201905062000c83600083018562000c5b565b62000c92602083018462000c5b565b9392505050565b62000ca48162000b0c565b82525050565b600060408201905062000cc1600083018562000c5b565b62000cd0602083018462000c99565b9392505050565b60008115159050919050565b62000cee8162000cd7565b811462000cfa57600080fd5b50565b60008151905062000d0e8162000ce3565b92915050565b60006020828403121562000d2d5762000d2c62000bbf565b5b600062000d3d8482850162000cfd565b91505092915050565b600060208201905062000d5d600083018462000c99565b92915050565b6139628062000d736000396000f3fe6080604052600436106102295760003560e01c8063764ca51211610123578063b1a4e0dc116100ab578063dd62ed3e1161006f578063dd62ed3e146107f0578063ee99205c1461082d578063f2fde38b14610858578063f429389014610881578063f887ea401461089857610230565b8063b1a4e0dc14610709578063bf56b37114610746578063bffb691d14610771578063d0aa7abe1461079c578063d3ee6738146107c757610230565b806391c04f98116100f257806391c04f981461062457806395d89b411461064d5780639dd373b914610678578063a8aa1b31146106a1578063a9059cbb146106cc57610230565b8063764ca512146105a2578063864f0875146105b9578063893d20e8146105d05780638b4cee08146105fb57610230565b8063313ce567116101b15780634fe92618116101755780634fe92618146104a9578063571ac8b0146104d45780635992704414610511578063658d4b7f1461053c57806370a082311461056557610230565b8063313ce567146103e857806332424aa314610413578063342aa8b51461043e5780633e07ce5b14610467578063470624021461047e57610230565b806318160ddd116101f857806318160ddd146102ef57806323b872dd1461031a57806329e04b4a146103575780632b14ca56146103805780632f54bf6e146103ab57610230565b806306fdde0314610235578063095ea7b3146102605780630cc835a31461029d5780631525ff7d146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108c3565b6040516102579190612ada565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612b9a565b610900565b6040516102949190612bf5565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190612c10565b6109f2565b005b3480156102d257600080fd5b506102ed60048036038101906102e89190612c3d565b610a88565b005b3480156102fb57600080fd5b50610304610b14565b6040516103119190612c79565b60405180910390f35b34801561032657600080fd5b50610341600480360381019061033c9190612c94565b610b1e565b60405161034e9190612bf5565b60405180910390f35b34801561036357600080fd5b5061037e60048036038101906103799190612c10565b610d1e565b005b34801561038c57600080fd5b50610395610de0565b6040516103a29190612c79565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190612c3d565b610de6565b6040516103df9190612bf5565b60405180910390f35b3480156103f457600080fd5b506103fd610e3f565b60405161040a9190612d03565b60405180910390f35b34801561041f57600080fd5b50610428610e48565b6040516104359190612d03565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612d4a565b610e4d565b005b34801561047357600080fd5b5061047c610ef0565b005b34801561048a57600080fd5b50610493610f55565b6040516104a09190612c79565b60405180910390f35b3480156104b557600080fd5b506104be610f5b565b6040516104cb9190612dab565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190612c3d565b610f81565b6040516105089190612bf5565b60405180910390f35b34801561051d57600080fd5b50610526610fb4565b6040516105339190612dab565b60405180910390f35b34801561054857600080fd5b50610563600480360381019061055e9190612d4a565b610fda565b005b34801561057157600080fd5b5061058c60048036038101906105879190612c3d565b61107d565b6040516105999190612c79565b60405180910390f35b3480156105ae57600080fd5b506105b76110c6565b005b3480156105c557600080fd5b506105ce61117e565b005b3480156105dc57600080fd5b506105e56112bf565b6040516105f29190612dd5565b60405180910390f35b34801561060757600080fd5b50610622600480360381019061061d9190612c10565b6112e8565b005b34801561063057600080fd5b5061064b60048036038101906106469190612c3d565b61137e565b005b34801561065957600080fd5b5061066261140a565b60405161066f9190612ada565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a9190612c3d565b611447565b005b3480156106ad57600080fd5b506106b66114d3565b6040516106c39190612dd5565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee9190612b9a565b6114f9565b6040516107009190612bf5565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b9190612c3d565b61150e565b60405161073d9190612bf5565b60405180910390f35b34801561075257600080fd5b5061075b611564565b6040516107689190612c79565b60405180910390f35b34801561077d57600080fd5b5061078661156a565b6040516107939190612bf5565b60405180910390f35b3480156107a857600080fd5b506107b161157b565b6040516107be9190612c79565b60405180910390f35b3480156107d357600080fd5b506107ee60048036038101906107e99190612e55565b611581565b005b3480156107fc57600080fd5b5061081760048036038101906108129190612ea2565b611631565b6040516108249190612c79565b60405180910390f35b34801561083957600080fd5b506108426116b8565b60405161084f9190612f41565b60405180910390f35b34801561086457600080fd5b5061087f600480360381019061087a9190612f88565b6116de565b005b34801561088d57600080fd5b506108966117a0565b005b3480156108a457600080fd5b506108ad611859565b6040516108ba9190612fd6565b60405180910390f35b60606040518060400160405280600881526020017f4242432047616d65000000000000000000000000000000000000000000000000815250905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109e09190612c79565b60405180910390a36001905092915050565b6109fb33610de6565b610a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a319061303d565b60405180910390fd5b6019811115610a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a75906130a9565b60405180910390fd5b8060098190555050565b610a9133610de6565b610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac79061303d565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d0a57610c89826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461187f9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d158484846118e3565b90509392505050565b610d2733610de6565b610d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5d9061303d565b60405180910390fd5b610d7c606460035461208c90919063ffffffff16565b811115610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590613115565b60405180910390fd5b6012600a610dcc9190613297565b81610dd791906132e2565b60138190555050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601281565b610e5633610de6565b610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8c9061303d565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ef933610de6565b610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f9061303d565b60405180910390fd5b6000601160016101000a81548160ff021916908315150217905550565b60095481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610fad827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610900565b9050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fe333610de6565b611022576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110199061303d565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110cf33610de6565b61110e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111059061303d565b60405180910390fd5b6000151560148054906101000a900460ff16151514611162576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115990613370565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b61118733610de6565b6111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd9061303d565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061120f3061107d565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611255969594939291906133cb565b60606040518083038185885af1158015611273573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112989190613441565b505050436010819055506001601160006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112f133610de6565b611330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113279061303d565b60405180910390fd5b600a811115611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b906130a9565b60405180910390fd5b80600a8190555050565b61138733610de6565b6113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd9061303d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600381526020017f4242430000000000000000000000000000000000000000000000000000000000815250905090565b61145033610de6565b61148f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114869061303d565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115063384846118e3565b905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60105481565b60148054906101000a900460ff1681565b60135481565b61158a33610de6565b6115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c09061303d565b60405180910390fd5b600082829050116115d957600080fd5b60005b8282905081101561162c576116198383838181106115fd576115fc613494565b5b90506020020160208101906116129190612c3d565b6001610e4d565b8080611624906134c3565b9150506115dc565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116e733610de6565b611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d9061303d565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611795919061352c565b60405180910390a150565b6117a933610de6565b6117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df9061303d565b60405180910390fd5b6000479050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611855573d6000803e3d6000fd5b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be9190612ada565b60405180910390fd5b50600083856118d69190613547565b9050809150509392505050565b6000601160009054906101000a900460ff166119995760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061197e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b61198757600080fd5b6119928484846120d6565b9050612085565b60148054906101000a900460ff1615611a9057600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a505750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a86906135c7565b60405180910390fd5b5b601160019054906101000a900460ff1615611aeb57601254821115611aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae190613633565b60405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b965750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bec5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cfb5742600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611c3c57600080fd5b603c42611c499190613653565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601054611c9b9190613653565b4311611cfa576001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601460159054906101000a900460ff1615611d2257611d1b8484846120d6565b9050612085565b6000611d2d3061107d565b9050600060135482101590506000818015611d955750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b8015611da957506000611da73061107d565b115b90508015611dba57611db96122a9565b5b611e43856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461187f9092919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611e9288886123f6565b611e9c5785611ea7565b611ea68887612553565b5b9050611efb81600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271d90919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461201757601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e0c6190d6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611ffe57600080fd5b505af1158015612012573d6000803e3d6000fd5b505050505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120749190612c79565b60405180910390a360019450505050505b9392505050565b60006120ce83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061277b565b905092915050565b6000612161826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461187f9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121f682600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271d90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122969190612c79565b60405180910390a3600190509392505050565b6001601460156101000a81548160ff02191690831515021790555060006122cf3061107d565b90506122da816127de565b6000479050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61232f60028461208c90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561235a573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123ab60028461208c90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156123d6573d6000803e3d6000fd5b5050506000601460156101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124995750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15801561254b5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061254a5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146125db576125d4600b546125c6600a548661298690919063ffffffff16565b61208c90919063ffffffff16565b9050612607565b612604600b546125f66009548661298690919063ffffffff16565b61208c90919063ffffffff16565b90505b61265981600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271d90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126f99190612c79565b60405180910390a36127148184612a0090919063ffffffff16565b91505092915050565b600080828461272c9190613653565b905083811015612771576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612768906136d3565b60405180910390fd5b8091505092915050565b600080831182906127c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b99190612ada565b60405180910390fd5b50600083856127d19190613722565b9050809150509392505050565b6000600267ffffffffffffffff8111156127fb576127fa613753565b5b6040519080825280602002602001820160405280156128295781602001602082028036833780820191505090505b509050308160008151811061284157612840613494565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106128b2576128b1613494565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612950959493929190613840565b600060405180830381600087803b15801561296a57600080fd5b505af115801561297e573d6000803e3d6000fd5b505050505050565b600080830361299857600090506129fa565b600082846129a691906132e2565b90508284826129b59190613722565b146129f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ec9061390c565b60405180910390fd5b809150505b92915050565b6000612a4283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061187f565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a84578082015181840152602081019050612a69565b60008484015250505050565b6000601f19601f8301169050919050565b6000612aac82612a4a565b612ab68185612a55565b9350612ac6818560208601612a66565b612acf81612a90565b840191505092915050565b60006020820190508181036000830152612af48184612aa1565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b3182612b06565b9050919050565b612b4181612b26565b8114612b4c57600080fd5b50565b600081359050612b5e81612b38565b92915050565b6000819050919050565b612b7781612b64565b8114612b8257600080fd5b50565b600081359050612b9481612b6e565b92915050565b60008060408385031215612bb157612bb0612afc565b5b6000612bbf85828601612b4f565b9250506020612bd085828601612b85565b9150509250929050565b60008115159050919050565b612bef81612bda565b82525050565b6000602082019050612c0a6000830184612be6565b92915050565b600060208284031215612c2657612c25612afc565b5b6000612c3484828501612b85565b91505092915050565b600060208284031215612c5357612c52612afc565b5b6000612c6184828501612b4f565b91505092915050565b612c7381612b64565b82525050565b6000602082019050612c8e6000830184612c6a565b92915050565b600080600060608486031215612cad57612cac612afc565b5b6000612cbb86828701612b4f565b9350506020612ccc86828701612b4f565b9250506040612cdd86828701612b85565b9150509250925092565b600060ff82169050919050565b612cfd81612ce7565b82525050565b6000602082019050612d186000830184612cf4565b92915050565b612d2781612bda565b8114612d3257600080fd5b50565b600081359050612d4481612d1e565b92915050565b60008060408385031215612d6157612d60612afc565b5b6000612d6f85828601612b4f565b9250506020612d8085828601612d35565b9150509250929050565b6000612d9582612b06565b9050919050565b612da581612d8a565b82525050565b6000602082019050612dc06000830184612d9c565b92915050565b612dcf81612b26565b82525050565b6000602082019050612dea6000830184612dc6565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612e1557612e14612df0565b5b8235905067ffffffffffffffff811115612e3257612e31612df5565b5b602083019150836020820283011115612e4e57612e4d612dfa565b5b9250929050565b60008060208385031215612e6c57612e6b612afc565b5b600083013567ffffffffffffffff811115612e8a57612e89612b01565b5b612e9685828601612dff565b92509250509250929050565b60008060408385031215612eb957612eb8612afc565b5b6000612ec785828601612b4f565b9250506020612ed885828601612b4f565b9150509250929050565b6000819050919050565b6000612f07612f02612efd84612b06565b612ee2565b612b06565b9050919050565b6000612f1982612eec565b9050919050565b6000612f2b82612f0e565b9050919050565b612f3b81612f20565b82525050565b6000602082019050612f566000830184612f32565b92915050565b612f6581612d8a565b8114612f7057600080fd5b50565b600081359050612f8281612f5c565b92915050565b600060208284031215612f9e57612f9d612afc565b5b6000612fac84828501612f73565b91505092915050565b6000612fc082612f0e565b9050919050565b612fd081612fb5565b82525050565b6000602082019050612feb6000830184612fc7565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613027600683612a55565b915061303282612ff1565b602082019050919050565b600060208201905081810360008301526130568161301a565b9050919050565b7f4665652063616e27742065786365656420313425000000000000000000000000600082015250565b6000613093601483612a55565b915061309e8261305d565b602082019050919050565b600060208201905081810360008301526130c281613086565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b60006130ff600f83612a55565b915061310a826130c9565b602082019050919050565b6000602082019050818103600083015261312e816130f2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156131bb5780860481111561319757613196613135565b5b60018516156131a65780820291505b80810290506131b485613164565b945061317b565b94509492505050565b6000826131d45760019050613290565b816131e25760009050613290565b81600181146131f8576002811461320257613231565b6001915050613290565b60ff84111561321457613213613135565b5b8360020a91508482111561322b5761322a613135565b5b50613290565b5060208310610133831016604e8410600b84101617156132665782820a90508381111561326157613260613135565b5b613290565b6132738484846001613171565b9250905081840481111561328a57613289613135565b5b81810290505b9392505050565b60006132a282612b64565b91506132ad83612ce7565b92506132da7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846131c4565b905092915050565b60006132ed82612b64565b91506132f883612b64565b925082820261330681612b64565b9150828204841483151761331d5761331c613135565b5b5092915050565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b600061335a601783612a55565b915061336582613324565b602082019050919050565b600060208201905081810360008301526133898161334d565b9050919050565b6000819050919050565b60006133b56133b06133ab84613390565b612ee2565b612b64565b9050919050565b6133c58161339a565b82525050565b600060c0820190506133e06000830189612dc6565b6133ed6020830188612c6a565b6133fa60408301876133bc565b61340760608301866133bc565b6134146080830185612dc6565b61342160a0830184612c6a565b979650505050505050565b60008151905061343b81612b6e565b92915050565b60008060006060848603121561345a57613459612afc565b5b60006134688682870161342c565b93505060206134798682870161342c565b925050604061348a8682870161342c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006134ce82612b64565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613500576134ff613135565b5b600182019050919050565b600061351682612f0e565b9050919050565b6135268161350b565b82525050565b6000602082019050613541600083018461351d565b92915050565b600061355282612b64565b915061355d83612b64565b925082820390508181111561357557613574613135565b5b92915050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b60006135b1600483612a55565b91506135bc8261357b565b602082019050919050565b600060208201905081810360008301526135e0816135a4565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b600061361d600c83612a55565b9150613628826135e7565b602082019050919050565b6000602082019050818103600083015261364c81613610565b9050919050565b600061365e82612b64565b915061366983612b64565b925082820190508082111561368157613680613135565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006136bd601b83612a55565b91506136c882613687565b602082019050919050565b600060208201905081810360008301526136ec816136b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061372d82612b64565b915061373883612b64565b925082613748576137476136f3565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137b781612b26565b82525050565b60006137c983836137ae565b60208301905092915050565b6000602082019050919050565b60006137ed82613782565b6137f7818561378d565b93506138028361379e565b8060005b8381101561383357815161381a88826137bd565b9750613825836137d5565b925050600181019050613806565b5085935050505092915050565b600060a0820190506138556000830188612c6a565b61386260208301876133bc565b818103604083015261387481866137e2565b90506138836060830185612dc6565b6138906080830184612c6a565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006138f6602183612a55565b91506139018261389a565b604082019050919050565b60006020820190508181036000830152613925816138e9565b905091905056fea26469706673582212208dde0c50e377c8f528ce424c37c92772b2b0751a20b310e6261d418a2d1ab34c64736f6c63430008110033000000000000000000000000dac57a95712fd9ae06a277533f5076c5f9257db4

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063764ca51211610123578063b1a4e0dc116100ab578063dd62ed3e1161006f578063dd62ed3e146107f0578063ee99205c1461082d578063f2fde38b14610858578063f429389014610881578063f887ea401461089857610230565b8063b1a4e0dc14610709578063bf56b37114610746578063bffb691d14610771578063d0aa7abe1461079c578063d3ee6738146107c757610230565b806391c04f98116100f257806391c04f981461062457806395d89b411461064d5780639dd373b914610678578063a8aa1b31146106a1578063a9059cbb146106cc57610230565b8063764ca512146105a2578063864f0875146105b9578063893d20e8146105d05780638b4cee08146105fb57610230565b8063313ce567116101b15780634fe92618116101755780634fe92618146104a9578063571ac8b0146104d45780635992704414610511578063658d4b7f1461053c57806370a082311461056557610230565b8063313ce567146103e857806332424aa314610413578063342aa8b51461043e5780633e07ce5b14610467578063470624021461047e57610230565b806318160ddd116101f857806318160ddd146102ef57806323b872dd1461031a57806329e04b4a146103575780632b14ca56146103805780632f54bf6e146103ab57610230565b806306fdde0314610235578063095ea7b3146102605780630cc835a31461029d5780631525ff7d146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108c3565b6040516102579190612ada565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612b9a565b610900565b6040516102949190612bf5565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190612c10565b6109f2565b005b3480156102d257600080fd5b506102ed60048036038101906102e89190612c3d565b610a88565b005b3480156102fb57600080fd5b50610304610b14565b6040516103119190612c79565b60405180910390f35b34801561032657600080fd5b50610341600480360381019061033c9190612c94565b610b1e565b60405161034e9190612bf5565b60405180910390f35b34801561036357600080fd5b5061037e60048036038101906103799190612c10565b610d1e565b005b34801561038c57600080fd5b50610395610de0565b6040516103a29190612c79565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190612c3d565b610de6565b6040516103df9190612bf5565b60405180910390f35b3480156103f457600080fd5b506103fd610e3f565b60405161040a9190612d03565b60405180910390f35b34801561041f57600080fd5b50610428610e48565b6040516104359190612d03565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612d4a565b610e4d565b005b34801561047357600080fd5b5061047c610ef0565b005b34801561048a57600080fd5b50610493610f55565b6040516104a09190612c79565b60405180910390f35b3480156104b557600080fd5b506104be610f5b565b6040516104cb9190612dab565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190612c3d565b610f81565b6040516105089190612bf5565b60405180910390f35b34801561051d57600080fd5b50610526610fb4565b6040516105339190612dab565b60405180910390f35b34801561054857600080fd5b50610563600480360381019061055e9190612d4a565b610fda565b005b34801561057157600080fd5b5061058c60048036038101906105879190612c3d565b61107d565b6040516105999190612c79565b60405180910390f35b3480156105ae57600080fd5b506105b76110c6565b005b3480156105c557600080fd5b506105ce61117e565b005b3480156105dc57600080fd5b506105e56112bf565b6040516105f29190612dd5565b60405180910390f35b34801561060757600080fd5b50610622600480360381019061061d9190612c10565b6112e8565b005b34801561063057600080fd5b5061064b60048036038101906106469190612c3d565b61137e565b005b34801561065957600080fd5b5061066261140a565b60405161066f9190612ada565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a9190612c3d565b611447565b005b3480156106ad57600080fd5b506106b66114d3565b6040516106c39190612dd5565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee9190612b9a565b6114f9565b6040516107009190612bf5565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b9190612c3d565b61150e565b60405161073d9190612bf5565b60405180910390f35b34801561075257600080fd5b5061075b611564565b6040516107689190612c79565b60405180910390f35b34801561077d57600080fd5b5061078661156a565b6040516107939190612bf5565b60405180910390f35b3480156107a857600080fd5b506107b161157b565b6040516107be9190612c79565b60405180910390f35b3480156107d357600080fd5b506107ee60048036038101906107e99190612e55565b611581565b005b3480156107fc57600080fd5b5061081760048036038101906108129190612ea2565b611631565b6040516108249190612c79565b60405180910390f35b34801561083957600080fd5b506108426116b8565b60405161084f9190612f41565b60405180910390f35b34801561086457600080fd5b5061087f600480360381019061087a9190612f88565b6116de565b005b34801561088d57600080fd5b506108966117a0565b005b3480156108a457600080fd5b506108ad611859565b6040516108ba9190612fd6565b60405180910390f35b60606040518060400160405280600881526020017f4242432047616d65000000000000000000000000000000000000000000000000815250905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109e09190612c79565b60405180910390a36001905092915050565b6109fb33610de6565b610a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a319061303d565b60405180910390fd5b6019811115610a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a75906130a9565b60405180910390fd5b8060098190555050565b610a9133610de6565b610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac79061303d565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d0a57610c89826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461187f9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d158484846118e3565b90509392505050565b610d2733610de6565b610d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5d9061303d565b60405180910390fd5b610d7c606460035461208c90919063ffffffff16565b811115610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590613115565b60405180910390fd5b6012600a610dcc9190613297565b81610dd791906132e2565b60138190555050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601281565b610e5633610de6565b610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8c9061303d565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ef933610de6565b610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f9061303d565b60405180910390fd5b6000601160016101000a81548160ff021916908315150217905550565b60095481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610fad827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610900565b9050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fe333610de6565b611022576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110199061303d565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110cf33610de6565b61110e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111059061303d565b60405180910390fd5b6000151560148054906101000a900460ff16151514611162576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115990613370565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b61118733610de6565b6111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd9061303d565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061120f3061107d565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611255969594939291906133cb565b60606040518083038185885af1158015611273573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112989190613441565b505050436010819055506001601160006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112f133610de6565b611330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113279061303d565b60405180910390fd5b600a811115611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b906130a9565b60405180910390fd5b80600a8190555050565b61138733610de6565b6113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd9061303d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600381526020017f4242430000000000000000000000000000000000000000000000000000000000815250905090565b61145033610de6565b61148f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114869061303d565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115063384846118e3565b905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60105481565b60148054906101000a900460ff1681565b60135481565b61158a33610de6565b6115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c09061303d565b60405180910390fd5b600082829050116115d957600080fd5b60005b8282905081101561162c576116198383838181106115fd576115fc613494565b5b90506020020160208101906116129190612c3d565b6001610e4d565b8080611624906134c3565b9150506115dc565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116e733610de6565b611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d9061303d565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611795919061352c565b60405180910390a150565b6117a933610de6565b6117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df9061303d565b60405180910390fd5b6000479050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611855573d6000803e3d6000fd5b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be9190612ada565b60405180910390fd5b50600083856118d69190613547565b9050809150509392505050565b6000601160009054906101000a900460ff166119995760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061197e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b61198757600080fd5b6119928484846120d6565b9050612085565b60148054906101000a900460ff1615611a9057600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a505750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a86906135c7565b60405180910390fd5b5b601160019054906101000a900460ff1615611aeb57601254821115611aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae190613633565b60405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b965750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bec5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cfb5742600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611c3c57600080fd5b603c42611c499190613653565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601054611c9b9190613653565b4311611cfa576001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601460159054906101000a900460ff1615611d2257611d1b8484846120d6565b9050612085565b6000611d2d3061107d565b9050600060135482101590506000818015611d955750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b8015611da957506000611da73061107d565b115b90508015611dba57611db96122a9565b5b611e43856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461187f9092919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611e9288886123f6565b611e9c5785611ea7565b611ea68887612553565b5b9050611efb81600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271d90919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff16601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461201757601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e0c6190d6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611ffe57600080fd5b505af1158015612012573d6000803e3d6000fd5b505050505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120749190612c79565b60405180910390a360019450505050505b9392505050565b60006120ce83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061277b565b905092915050565b6000612161826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461187f9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121f682600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271d90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122969190612c79565b60405180910390a3600190509392505050565b6001601460156101000a81548160ff02191690831515021790555060006122cf3061107d565b90506122da816127de565b6000479050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61232f60028461208c90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561235a573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123ab60028461208c90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156123d6573d6000803e3d6000fd5b5050506000601460156101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124995750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15801561254b5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061254a5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146125db576125d4600b546125c6600a548661298690919063ffffffff16565b61208c90919063ffffffff16565b9050612607565b612604600b546125f66009548661298690919063ffffffff16565b61208c90919063ffffffff16565b90505b61265981600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271d90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126f99190612c79565b60405180910390a36127148184612a0090919063ffffffff16565b91505092915050565b600080828461272c9190613653565b905083811015612771576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612768906136d3565b60405180910390fd5b8091505092915050565b600080831182906127c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b99190612ada565b60405180910390fd5b50600083856127d19190613722565b9050809150509392505050565b6000600267ffffffffffffffff8111156127fb576127fa613753565b5b6040519080825280602002602001820160405280156128295781602001602082028036833780820191505090505b509050308160008151811061284157612840613494565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106128b2576128b1613494565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612950959493929190613840565b600060405180830381600087803b15801561296a57600080fd5b505af115801561297e573d6000803e3d6000fd5b505050505050565b600080830361299857600090506129fa565b600082846129a691906132e2565b90508284826129b59190613722565b146129f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ec9061390c565b60405180910390fd5b809150505b92915050565b6000612a4283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061187f565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a84578082015181840152602081019050612a69565b60008484015250505050565b6000601f19601f8301169050919050565b6000612aac82612a4a565b612ab68185612a55565b9350612ac6818560208601612a66565b612acf81612a90565b840191505092915050565b60006020820190508181036000830152612af48184612aa1565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b3182612b06565b9050919050565b612b4181612b26565b8114612b4c57600080fd5b50565b600081359050612b5e81612b38565b92915050565b6000819050919050565b612b7781612b64565b8114612b8257600080fd5b50565b600081359050612b9481612b6e565b92915050565b60008060408385031215612bb157612bb0612afc565b5b6000612bbf85828601612b4f565b9250506020612bd085828601612b85565b9150509250929050565b60008115159050919050565b612bef81612bda565b82525050565b6000602082019050612c0a6000830184612be6565b92915050565b600060208284031215612c2657612c25612afc565b5b6000612c3484828501612b85565b91505092915050565b600060208284031215612c5357612c52612afc565b5b6000612c6184828501612b4f565b91505092915050565b612c7381612b64565b82525050565b6000602082019050612c8e6000830184612c6a565b92915050565b600080600060608486031215612cad57612cac612afc565b5b6000612cbb86828701612b4f565b9350506020612ccc86828701612b4f565b9250506040612cdd86828701612b85565b9150509250925092565b600060ff82169050919050565b612cfd81612ce7565b82525050565b6000602082019050612d186000830184612cf4565b92915050565b612d2781612bda565b8114612d3257600080fd5b50565b600081359050612d4481612d1e565b92915050565b60008060408385031215612d6157612d60612afc565b5b6000612d6f85828601612b4f565b9250506020612d8085828601612d35565b9150509250929050565b6000612d9582612b06565b9050919050565b612da581612d8a565b82525050565b6000602082019050612dc06000830184612d9c565b92915050565b612dcf81612b26565b82525050565b6000602082019050612dea6000830184612dc6565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612e1557612e14612df0565b5b8235905067ffffffffffffffff811115612e3257612e31612df5565b5b602083019150836020820283011115612e4e57612e4d612dfa565b5b9250929050565b60008060208385031215612e6c57612e6b612afc565b5b600083013567ffffffffffffffff811115612e8a57612e89612b01565b5b612e9685828601612dff565b92509250509250929050565b60008060408385031215612eb957612eb8612afc565b5b6000612ec785828601612b4f565b9250506020612ed885828601612b4f565b9150509250929050565b6000819050919050565b6000612f07612f02612efd84612b06565b612ee2565b612b06565b9050919050565b6000612f1982612eec565b9050919050565b6000612f2b82612f0e565b9050919050565b612f3b81612f20565b82525050565b6000602082019050612f566000830184612f32565b92915050565b612f6581612d8a565b8114612f7057600080fd5b50565b600081359050612f8281612f5c565b92915050565b600060208284031215612f9e57612f9d612afc565b5b6000612fac84828501612f73565b91505092915050565b6000612fc082612f0e565b9050919050565b612fd081612fb5565b82525050565b6000602082019050612feb6000830184612fc7565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613027600683612a55565b915061303282612ff1565b602082019050919050565b600060208201905081810360008301526130568161301a565b9050919050565b7f4665652063616e27742065786365656420313425000000000000000000000000600082015250565b6000613093601483612a55565b915061309e8261305d565b602082019050919050565b600060208201905081810360008301526130c281613086565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b60006130ff600f83612a55565b915061310a826130c9565b602082019050919050565b6000602082019050818103600083015261312e816130f2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156131bb5780860481111561319757613196613135565b5b60018516156131a65780820291505b80810290506131b485613164565b945061317b565b94509492505050565b6000826131d45760019050613290565b816131e25760009050613290565b81600181146131f8576002811461320257613231565b6001915050613290565b60ff84111561321457613213613135565b5b8360020a91508482111561322b5761322a613135565b5b50613290565b5060208310610133831016604e8410600b84101617156132665782820a90508381111561326157613260613135565b5b613290565b6132738484846001613171565b9250905081840481111561328a57613289613135565b5b81810290505b9392505050565b60006132a282612b64565b91506132ad83612ce7565b92506132da7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846131c4565b905092915050565b60006132ed82612b64565b91506132f883612b64565b925082820261330681612b64565b9150828204841483151761331d5761331c613135565b5b5092915050565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b600061335a601783612a55565b915061336582613324565b602082019050919050565b600060208201905081810360008301526133898161334d565b9050919050565b6000819050919050565b60006133b56133b06133ab84613390565b612ee2565b612b64565b9050919050565b6133c58161339a565b82525050565b600060c0820190506133e06000830189612dc6565b6133ed6020830188612c6a565b6133fa60408301876133bc565b61340760608301866133bc565b6134146080830185612dc6565b61342160a0830184612c6a565b979650505050505050565b60008151905061343b81612b6e565b92915050565b60008060006060848603121561345a57613459612afc565b5b60006134688682870161342c565b93505060206134798682870161342c565b925050604061348a8682870161342c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006134ce82612b64565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613500576134ff613135565b5b600182019050919050565b600061351682612f0e565b9050919050565b6135268161350b565b82525050565b6000602082019050613541600083018461351d565b92915050565b600061355282612b64565b915061355d83612b64565b925082820390508181111561357557613574613135565b5b92915050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b60006135b1600483612a55565b91506135bc8261357b565b602082019050919050565b600060208201905081810360008301526135e0816135a4565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b600061361d600c83612a55565b9150613628826135e7565b602082019050919050565b6000602082019050818103600083015261364c81613610565b9050919050565b600061365e82612b64565b915061366983612b64565b925082820190508082111561368157613680613135565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006136bd601b83612a55565b91506136c882613687565b602082019050919050565b600060208201905081810360008301526136ec816136b0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061372d82612b64565b915061373883612b64565b925082613748576137476136f3565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137b781612b26565b82525050565b60006137c983836137ae565b60208301905092915050565b6000602082019050919050565b60006137ed82613782565b6137f7818561378d565b93506138028361379e565b8060005b8381101561383357815161381a88826137bd565b9750613825836137d5565b925050600181019050613806565b5085935050505092915050565b600060a0820190506138556000830188612c6a565b61386260208301876133bc565b818103604083015261387481866137e2565b90506138836060830185612dc6565b6138906080830184612c6a565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006138f6602183612a55565b91506139018261389a565b604082019050919050565b60006020820190508181036000830152613925816138e9565b905091905056fea26469706673582212208dde0c50e377c8f528ce424c37c92772b2b0751a20b310e6261d418a2d1ab34c64736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000dac57a95712fd9ae06a277533f5076c5f9257db4

-----Decoded View---------------
Arg [0] : _owner (address): 0xdAC57a95712Fd9Ae06a277533F5076c5f9257Db4

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000dac57a95712fd9ae06a277533f5076c5f9257db4


Deployed Bytecode Sourcemap

4797:9895:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7312:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7734:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12808:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13322:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7042:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8252:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13109:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5514:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2831:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7136:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5071:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14045:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12720:80;;;;;;;;;;;;;:::i;:::-;;5482:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5687:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7958:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5593:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13741:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7482:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13868:165;;;;;;;;;;;;;:::i;:::-;;12303:405;;;;;;;;;;;;;:::i;:::-;;7398:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12957:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13446:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7222:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13574:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5816:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8088:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14160:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5844:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6125:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6001:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14270:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7593:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6073:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3059:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14514:169;;;;;;;;;;;;;:::i;:::-;;5785:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7312:80;7360:13;7384:5;;;;;;;;;;;;;;;;;7377:12;;7312:80;:::o;7734:216::-;7809:4;7861:6;7826:11;:23;7838:10;7826:23;;;;;;;;;;;;;;;:32;7850:7;7826:32;;;;;;;;;;;;;;;:41;;;;7904:7;7883:37;;7892:10;7883:37;;;7913:6;7883:37;;;;;;:::i;:::-;;;;;;;;7938:4;7931:11;;7734:216;;;;:::o;12808:140::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12889:2:::1;12881:4;:10;;12872:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12936:4;12927:6;:13;;;;12808:140:::0;:::o;13322:115::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13417:11:::1;13396:10;;:33;;;;;;;;;;;;;;;;;;13322:115:::0;:::o;7042:88::-;7097:7;7115:12;;7108:19;;7042:88;:::o;8252:370::-;8352:4;8407:17;8372:11;:19;8384:6;8372:19;;;;;;;;;;;;;;;:31;8392:10;8372:31;;;;;;;;;;;;;;;;:52;8369:186;;8474:69;8510:6;8474:69;;;;;;;;;;;;;;;;;:11;:19;8486:6;8474:19;;;;;;;;;;;;;;;:31;8494:10;8474:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8440:11;:19;8452:6;8440:19;;;;;;;;;;;;;;;:31;8460:10;8440:31;;;;;;;;;;;;;;;:103;;;;8369:186;8574:40;8588:6;8596:9;8607:6;8574:13;:40::i;:::-;8567:47;;8252:370;;;;;:::o;13109:204::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13207:21:::1;13224:3;13207:12;;:16;;:21;;;;:::i;:::-;13197:6;:31;;13188:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;5105:2;13290;:15;;;;:::i;:::-;13281:6;:24;;;;:::i;:::-;13259:19;:46;;;;13109:204:::0;:::o;5514:27::-;;;;:::o;2831:103::-;2886:4;2921:5;;;;;;;;;;;2910:16;;:7;:16;;;2903:23;;2831:103;;;:::o;7136:80::-;7188:5;5105:2;7197:16;;7136:80;:::o;5071:36::-;5105:2;5071:36;:::o;14045:107::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14138:6:::1;14120:5;:15;14126:8;14120:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;14045:107:::0;;:::o;12720:80::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12787:5:::1;12776:8;;:16;;;;;;;;;;;;;;;;;;12720:80::o:0;5482:25::-;;;;:::o;5687:88::-;;;;;;;;;;;;;:::o;7958:122::-;8013:4;8037:35;8045:7;8054:17;8037:7;:35::i;:::-;8030:42;;7958:122;;;:::o;5593:87::-;;;;;;;;;;;;;:::o;13741:119::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13846:6:::1;13824:11;:19;13836:6;13824:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13741:119:::0;;:::o;7482:105::-;7548:7;7566:9;:18;7576:7;7566:18;;;;;;;;;;;;;;;;7559:25;;7482:105;;;:::o;13868:165::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13958:5:::1;13938:25;;:16;::::0;::::1;;;;;;;;:25;;;13929:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;14021:4;14002:16;::::0;:23:::1;;;;;;;;;;;;;;;;;;13868:165::o:0;12303:405::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12360:6:::1;;;;;;;;;;;:22;;;12390:21;12435:4;12455:24;12473:4;12455:9;:24::i;:::-;12494:1;12537::::0;12580:5:::1;::::0;::::1;;;;;;;;12600:15;12360:266;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12659:12;12646:10;:25;;;;12696:4;12682:11;;:18;;;;;;;;;;;;;;;;;;12303:405::o:0;7398:78::-;7450:7;7468:5;;;;;;;;;;;7461:12;;7398:78;:::o;12957:142::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13039:2:::1;13031:4;:10;;13022:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;13087:4;13077:7;:14;;;;12957:142:::0;:::o;13446:119::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13544:12:::1;13522:11;;:35;;;;;;;;;;;;;;;;;;13446:119:::0;:::o;7222:84::-;7272:13;7296:7;;;;;;;;;;;;;;;;;7289:14;;7222:84;:::o;13574:159::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13701:23:::1;13666:15;;:59;;;;;;;;;;;;;;;;;;13574:159:::0;:::o;5816:19::-;;;;;;;;;;;;;:::o;8088:156::-;8168:4;8192:44;8206:10;8218:9;8229:6;8192:13;:44::i;:::-;8185:51;;8088:156;;;;:::o;14160:102::-;14216:4;14240:5;:14;14246:7;14240:14;;;;;;;;;;;;;;;;;;;;;;;;;14233:21;;14160:102;;;:::o;5844:25::-;;;;:::o;6125:36::-;;;;;;;;;;;;:::o;6001:63::-;;;;:::o;14270:234::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14373:1:::1;14359:4;;:11;;:15;14350:25;;;::::0;::::1;;14386:6;14406:91;14417:4;;:11;;14413:1;:15;14406:91;;;14445:22;14452:4;;14457:1;14452:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14462:4;14445:6;:22::i;:::-;14482:3;;;;;:::i;:::-;;;;14406:91;;;14339:165;14270:234:::0;;:::o;7593:133::-;7677:7;7695:11;:19;7707:6;7695:19;;;;;;;;;;;;;;;:28;7715:7;7695:28;;;;;;;;;;;;;;;;7688:35;;7593:133;;;;:::o;6073:38::-;;;;;;;;;;;;;:::o;3059:136::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3143:3:::1;3135:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3162:25;3183:3;3162:25;;;;;;:::i;:::-;;;;;;;;3059:136:::0;:::o;14514:169::-;2730:19;2738:10;2730:7;:19::i;:::-;2722:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14566:26:::1;14595:21;14566:50;;14635:10;;;;;;;;;;;14627:28;;:48;14656:18;14627:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14555:128;14514:169::o:0;5785:24::-;;;;;;;;;;;;;:::o;493:192::-;579:7;612:1;607;:6;;615:12;599:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;639:9;655:1;651;:5;;;;:::i;:::-;639:17;;676:1;669:8;;;493:192;;;;;:::o;8630:1703::-;8722:4;8744:11;;;;;;;;;;;8739:162;;8791:5;;;;;;;;;;8781:15;;:6;:15;;;:44;;;;8820:4;8801:24;;:6;:24;;;8781:44;8772:54;;;;;;8848:41;8863:6;8871:9;8882:6;8848:14;:41::i;:::-;8841:48;;;;8739:162;8925:16;;;;;;;;;;8921:102;;;8968:5;:13;8974:6;8968:13;;;;;;;;;;;;;;;;;;;;;;;;;8967:14;:35;;;;;8986:5;:16;8992:9;8986:16;;;;;;;;;;;;;;;;;;;;;;;;;8985:17;8967:35;8958:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;8921:102;9037:8;;;;;;;;;;;9033:90;;;9080:6;;9072;:14;;9063:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;9033:90;9149:4;;;;;;;;;;;9139:14;;:6;:14;;;:46;;;;;9178:6;;;;;;;;;;;9157:28;;:9;:28;;;;9139:46;:73;;;;;9190:11;:22;9202:9;9190:22;;;;;;;;;;;;;;;;;;;;;;;;;9189:23;9139:73;9135:329;;;9260:15;9238:8;:19;9247:9;9238:19;;;;;;;;;;;;;;;;:37;9229:47;;;;;;9331:10;9313:15;:28;;;;:::i;:::-;9291:8;:19;9300:9;9291:19;;;;;;;;;;;;;;;:50;;;;9390:1;9377:10;;:14;;;;:::i;:::-;9360:12;:32;9356:97;;9433:4;9414:5;:16;9420:9;9414:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;9356:97;9135:329;9486:6;;;;;;;;;;;9483:63;;;9502:41;9517:6;9525:9;9536:6;9502:14;:41::i;:::-;9495:48;;;;9483:63;9564:28;9595:24;9613:4;9595:9;:24::i;:::-;9564:55;;9632:24;9683:19;;9659:20;:43;;9632:70;;9719:19;9742;:38;;;;;9776:4;;;;;;;;;;;9765:15;;:9;:15;;;9742:38;:70;;;;;9811:1;9784:24;9802:4;9784:9;:24::i;:::-;:28;9742:70;9719:94;;9827:14;9824:33;;;9844:10;:8;:10::i;:::-;9824:33;9889:53;9911:6;9889:53;;;;;;;;;;;;;;;;;:9;:17;9899:6;9889:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9869:9;:17;9879:6;9869:17;;;;;;;;;;;;;;;:73;;;;9955:22;9980:32;9994:6;10002:9;9980:13;:32::i;:::-;:67;;10041:6;9980:67;;;10015:23;10023:6;10031;10015:7;:23::i;:::-;9980:67;9955:92;;10091:40;10116:14;10091:9;:20;10101:9;10091:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10068:9;:20;10078:9;10068:20;;;;;;;;;;;;;;;:63;;;;10185:1;10149:38;;10157:15;;;;;;;;;;;10149:38;;;10144:99;;10204:15;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10144:99;10277:9;10260:43;;10269:6;10260:43;;;10288:14;10260:43;;;;;;:::i;:::-;;;;;;;;10321:4;10314:11;;;;;;8630:1703;;;;;;:::o;947:132::-;1005:7;1032:39;1036:1;1039;1032:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1025:46;;947:132;;;;:::o;10345:330::-;10438:4;10475:53;10497:6;10475:53;;;;;;;;;;;;;;;;;:9;:17;10485:6;10475:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10455:9;:17;10465:6;10455:17;;;;;;;;;;;;;;;:73;;;;10562:32;10587:6;10562:9;:20;10572:9;10562:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10539:9;:20;10549:9;10539:20;;;;;;;;;;;;;;;:55;;;;10627:9;10610:35;;10619:6;10610:35;;;10638:6;10610:35;;;;;;:::i;:::-;;;;;;;;10663:4;10656:11;;10345:330;;;;;:::o;11403:381::-;6225:4;6216:6;;:13;;;;;;;;;;;;;;;;;;11454:20:::1;11477:24;11495:4;11477:9;:24::i;:::-;11454:47;;11522:30;11539:12;11522:16;:30::i;:::-;11565:26;11594:21;11565:50;;11649:10;;;;;;;;;;;11641:28;;:55;11670:25;11693:1;11670:18;:22;;:25;;;;:::i;:::-;11641:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11715:11;;;;;;;;;;;11707:29;;:56;11737:25;11760:1;11737:18;:22;;:25;;;;:::i;:::-;11707:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11441:343;;6243:5:::0;6234:6;;:14;;;;;;;;;;;;;;;;;;11403:381::o;10686:206::-;10767:4;10795:11;:19;10807:6;10795:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;10818:11;:22;10830:9;10818:22;;;;;;;;;;;;;;;;;;;;;;;;;10795:45;10793:48;:90;;;;;10857:4;;;;;;;;;;;10847:14;;:6;:14;;;:35;;;;10878:4;;;;;;;;;;;10865:17;;:9;:17;;;10847:35;10793:90;10784:101;;10686:206;;;;:::o;10900:490::-;10967:7;10987:17;11028:4;;;;;;;;;;;11018:14;;:6;:14;;;11015:189;;11061:39;11085:14;;11061:19;11072:7;;11061:6;:10;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;11049:51;;11015:189;;;11154:38;11177:14;;11154:18;11165:6;;11154;:10;;:18;;;;:::i;:::-;:22;;:38;;;;:::i;:::-;11142:50;;11015:189;11241:39;11270:9;11241;:24;11259:4;11241:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11214:9;:24;11232:4;11214:24;;;;;;;;;;;;;;;:66;;;;11321:4;11296:42;;11305:6;11296:42;;;11328:9;11296:42;;;;;;:::i;:::-;;;;;;;;11361:21;11372:9;11361:6;:10;;:21;;;;:::i;:::-;11354:28;;;10900:490;;;;:::o;164:181::-;222:7;242:9;258:1;254;:5;;;;:::i;:::-;242:17;;283:1;278;:6;;270:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;336:1;329:8;;;164:181;;;;:::o;1085:345::-;1171:7;1270:1;1266;:5;1273:12;1258:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1297:9;1313:1;1309;:5;;;;:::i;:::-;1297:17;;1421:1;1414:8;;;1085:345;;;;;:::o;11800:489::-;11928:21;11966:1;11952:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11928:40;;11997:4;11979;11984:1;11979:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12023:4;;;;;;;;;;;12013;12018:1;12013:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;12066:6;;;;;;;;;;;:57;;;12138:11;12164:1;12208:4;12235;12255:15;12066:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11855:434;11800:489;:::o;691:250::-;749:7;778:1;773;:6;769:47;;803:1;796:8;;;;769:47;828:9;844:1;840;:5;;;;:::i;:::-;828:17;;873:1;868;864;:5;;;;:::i;:::-;:10;856:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;932:1;925:8;;;691:250;;;;;:::o;351:136::-;409:7;436:43;440:1;443;436:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;429:50;;351:136;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:::-;3840:6;3889:2;3877:9;3868:7;3864:23;3860:32;3857:119;;;3895:79;;:::i;:::-;3857:119;4015:1;4040:53;4085:7;4076:6;4065:9;4061:22;4040:53;:::i;:::-;4030:63;;3986:117;3781:329;;;;:::o;4116:118::-;4203:24;4221:5;4203:24;:::i;:::-;4198:3;4191:37;4116:118;;:::o;4240:222::-;4333:4;4371:2;4360:9;4356:18;4348:26;;4384:71;4452:1;4441:9;4437:17;4428:6;4384:71;:::i;:::-;4240:222;;;;:::o;4468:619::-;4545:6;4553;4561;4610:2;4598:9;4589:7;4585:23;4581:32;4578:119;;;4616:79;;:::i;:::-;4578:119;4736:1;4761:53;4806:7;4797:6;4786:9;4782:22;4761:53;:::i;:::-;4751:63;;4707:117;4863:2;4889:53;4934:7;4925:6;4914:9;4910:22;4889:53;:::i;:::-;4879:63;;4834:118;4991:2;5017:53;5062:7;5053:6;5042:9;5038:22;5017:53;:::i;:::-;5007:63;;4962:118;4468:619;;;;;:::o;5093:86::-;5128:7;5168:4;5161:5;5157:16;5146:27;;5093:86;;;:::o;5185:112::-;5268:22;5284:5;5268:22;:::i;:::-;5263:3;5256:35;5185:112;;:::o;5303:214::-;5392:4;5430:2;5419:9;5415:18;5407:26;;5443:67;5507:1;5496:9;5492:17;5483:6;5443:67;:::i;:::-;5303:214;;;;:::o;5523:116::-;5593:21;5608:5;5593:21;:::i;:::-;5586:5;5583:32;5573:60;;5629:1;5626;5619:12;5573:60;5523:116;:::o;5645:133::-;5688:5;5726:6;5713:20;5704:29;;5742:30;5766:5;5742:30;:::i;:::-;5645:133;;;;:::o;5784:468::-;5849:6;5857;5906:2;5894:9;5885:7;5881:23;5877:32;5874:119;;;5912:79;;:::i;:::-;5874:119;6032:1;6057:53;6102:7;6093:6;6082:9;6078:22;6057:53;:::i;:::-;6047:63;;6003:117;6159:2;6185:50;6227:7;6218:6;6207:9;6203:22;6185:50;:::i;:::-;6175:60;;6130:115;5784:468;;;;;:::o;6258:104::-;6303:7;6332:24;6350:5;6332:24;:::i;:::-;6321:35;;6258:104;;;:::o;6368:142::-;6471:32;6497:5;6471:32;:::i;:::-;6466:3;6459:45;6368:142;;:::o;6516:254::-;6625:4;6663:2;6652:9;6648:18;6640:26;;6676:87;6760:1;6749:9;6745:17;6736:6;6676:87;:::i;:::-;6516:254;;;;:::o;6776:118::-;6863:24;6881:5;6863:24;:::i;:::-;6858:3;6851:37;6776:118;;:::o;6900:222::-;6993:4;7031:2;7020:9;7016:18;7008:26;;7044:71;7112:1;7101:9;7097:17;7088:6;7044:71;:::i;:::-;6900:222;;;;:::o;7128:117::-;7237:1;7234;7227:12;7251:117;7360:1;7357;7350:12;7374:117;7483:1;7480;7473:12;7514:568;7587:8;7597:6;7647:3;7640:4;7632:6;7628:17;7624:27;7614:122;;7655:79;;:::i;:::-;7614:122;7768:6;7755:20;7745:30;;7798:18;7790:6;7787:30;7784:117;;;7820:79;;:::i;:::-;7784:117;7934:4;7926:6;7922:17;7910:29;;7988:3;7980:4;7972:6;7968:17;7958:8;7954:32;7951:41;7948:128;;;7995:79;;:::i;:::-;7948:128;7514:568;;;;;:::o;8088:559::-;8174:6;8182;8231:2;8219:9;8210:7;8206:23;8202:32;8199:119;;;8237:79;;:::i;:::-;8199:119;8385:1;8374:9;8370:17;8357:31;8415:18;8407:6;8404:30;8401:117;;;8437:79;;:::i;:::-;8401:117;8550:80;8622:7;8613:6;8602:9;8598:22;8550:80;:::i;:::-;8532:98;;;;8328:312;8088:559;;;;;:::o;8653:474::-;8721:6;8729;8778:2;8766:9;8757:7;8753:23;8749:32;8746:119;;;8784:79;;:::i;:::-;8746:119;8904:1;8929:53;8974:7;8965:6;8954:9;8950:22;8929:53;:::i;:::-;8919:63;;8875:117;9031:2;9057:53;9102:7;9093:6;9082:9;9078:22;9057:53;:::i;:::-;9047:63;;9002:118;8653:474;;;;;:::o;9133:60::-;9161:3;9182:5;9175:12;;9133:60;;;:::o;9199:142::-;9249:9;9282:53;9300:34;9309:24;9327:5;9309:24;:::i;:::-;9300:34;:::i;:::-;9282:53;:::i;:::-;9269:66;;9199:142;;;:::o;9347:126::-;9397:9;9430:37;9461:5;9430:37;:::i;:::-;9417:50;;9347:126;;;:::o;9479:149::-;9552:9;9585:37;9616:5;9585:37;:::i;:::-;9572:50;;9479:149;;;:::o;9634:177::-;9744:60;9798:5;9744:60;:::i;:::-;9739:3;9732:73;9634:177;;:::o;9817:268::-;9933:4;9971:2;9960:9;9956:18;9948:26;;9984:94;10075:1;10064:9;10060:17;10051:6;9984:94;:::i;:::-;9817:268;;;;:::o;10091:138::-;10172:32;10198:5;10172:32;:::i;:::-;10165:5;10162:43;10152:71;;10219:1;10216;10209:12;10152:71;10091:138;:::o;10235:155::-;10289:5;10327:6;10314:20;10305:29;;10343:41;10378:5;10343:41;:::i;:::-;10235:155;;;;:::o;10396:345::-;10463:6;10512:2;10500:9;10491:7;10487:23;10483:32;10480:119;;;10518:79;;:::i;:::-;10480:119;10638:1;10663:61;10716:7;10707:6;10696:9;10692:22;10663:61;:::i;:::-;10653:71;;10609:125;10396:345;;;;:::o;10747:144::-;10815:9;10848:37;10879:5;10848:37;:::i;:::-;10835:50;;10747:144;;;:::o;10897:167::-;11002:55;11051:5;11002:55;:::i;:::-;10997:3;10990:68;10897:167;;:::o;11070:258::-;11181:4;11219:2;11208:9;11204:18;11196:26;;11232:89;11318:1;11307:9;11303:17;11294:6;11232:89;:::i;:::-;11070:258;;;;:::o;11334:156::-;11474:8;11470:1;11462:6;11458:14;11451:32;11334:156;:::o;11496:365::-;11638:3;11659:66;11723:1;11718:3;11659:66;:::i;:::-;11652:73;;11734:93;11823:3;11734:93;:::i;:::-;11852:2;11847:3;11843:12;11836:19;;11496:365;;;:::o;11867:419::-;12033:4;12071:2;12060:9;12056:18;12048:26;;12120:9;12114:4;12110:20;12106:1;12095:9;12091:17;12084:47;12148:131;12274:4;12148:131;:::i;:::-;12140:139;;11867:419;;;:::o;12292:170::-;12432:22;12428:1;12420:6;12416:14;12409:46;12292:170;:::o;12468:366::-;12610:3;12631:67;12695:2;12690:3;12631:67;:::i;:::-;12624:74;;12707:93;12796:3;12707:93;:::i;:::-;12825:2;12820:3;12816:12;12809:19;;12468:366;;;:::o;12840:419::-;13006:4;13044:2;13033:9;13029:18;13021:26;;13093:9;13087:4;13083:20;13079:1;13068:9;13064:17;13057:47;13121:131;13247:4;13121:131;:::i;:::-;13113:139;;12840:419;;;:::o;13265:165::-;13405:17;13401:1;13393:6;13389:14;13382:41;13265:165;:::o;13436:366::-;13578:3;13599:67;13663:2;13658:3;13599:67;:::i;:::-;13592:74;;13675:93;13764:3;13675:93;:::i;:::-;13793:2;13788:3;13784:12;13777:19;;13436:366;;;:::o;13808:419::-;13974:4;14012:2;14001:9;13997:18;13989:26;;14061:9;14055:4;14051:20;14047:1;14036:9;14032:17;14025:47;14089:131;14215:4;14089:131;:::i;:::-;14081:139;;13808:419;;;:::o;14233:180::-;14281:77;14278:1;14271:88;14378:4;14375:1;14368:15;14402:4;14399:1;14392:15;14419:102;14461:8;14508:5;14505:1;14501:13;14480:34;;14419:102;;;:::o;14527:848::-;14588:5;14595:4;14619:6;14610:15;;14643:5;14634:14;;14657:712;14678:1;14668:8;14665:15;14657:712;;;14773:4;14768:3;14764:14;14758:4;14755:24;14752:50;;;14782:18;;:::i;:::-;14752:50;14832:1;14822:8;14818:16;14815:451;;;15247:4;15240:5;15236:16;15227:25;;14815:451;15297:4;15291;15287:15;15279:23;;15327:32;15350:8;15327:32;:::i;:::-;15315:44;;14657:712;;;14527:848;;;;;;;:::o;15381:1073::-;15435:5;15626:8;15616:40;;15647:1;15638:10;;15649:5;;15616:40;15675:4;15665:36;;15692:1;15683:10;;15694:5;;15665:36;15761:4;15809:1;15804:27;;;;15845:1;15840:191;;;;15754:277;;15804:27;15822:1;15813:10;;15824:5;;;15840:191;15885:3;15875:8;15872:17;15869:43;;;15892:18;;:::i;:::-;15869:43;15941:8;15938:1;15934:16;15925:25;;15976:3;15969:5;15966:14;15963:40;;;15983:18;;:::i;:::-;15963:40;16016:5;;;15754:277;;16140:2;16130:8;16127:16;16121:3;16115:4;16112:13;16108:36;16090:2;16080:8;16077:16;16072:2;16066:4;16063:12;16059:35;16043:111;16040:246;;;16196:8;16190:4;16186:19;16177:28;;16231:3;16224:5;16221:14;16218:40;;;16238:18;;:::i;:::-;16218:40;16271:5;;16040:246;16311:42;16349:3;16339:8;16333:4;16330:1;16311:42;:::i;:::-;16296:57;;;;16385:4;16380:3;16376:14;16369:5;16366:25;16363:51;;;16394:18;;:::i;:::-;16363:51;16443:4;16436:5;16432:16;16423:25;;15381:1073;;;;;;:::o;16460:281::-;16518:5;16542:23;16560:4;16542:23;:::i;:::-;16534:31;;16586:25;16602:8;16586:25;:::i;:::-;16574:37;;16630:104;16667:66;16657:8;16651:4;16630:104;:::i;:::-;16621:113;;16460:281;;;;:::o;16747:410::-;16787:7;16810:20;16828:1;16810:20;:::i;:::-;16805:25;;16844:20;16862:1;16844:20;:::i;:::-;16839:25;;16899:1;16896;16892:9;16921:30;16939:11;16921:30;:::i;:::-;16910:41;;17100:1;17091:7;17087:15;17084:1;17081:22;17061:1;17054:9;17034:83;17011:139;;17130:18;;:::i;:::-;17011:139;16795:362;16747:410;;;;:::o;17163:173::-;17303:25;17299:1;17291:6;17287:14;17280:49;17163:173;:::o;17342:366::-;17484:3;17505:67;17569:2;17564:3;17505:67;:::i;:::-;17498:74;;17581:93;17670:3;17581:93;:::i;:::-;17699:2;17694:3;17690:12;17683:19;;17342:366;;;:::o;17714:419::-;17880:4;17918:2;17907:9;17903:18;17895:26;;17967:9;17961:4;17957:20;17953:1;17942:9;17938:17;17931:47;17995:131;18121:4;17995:131;:::i;:::-;17987:139;;17714:419;;;:::o;18139:85::-;18184:7;18213:5;18202:16;;18139:85;;;:::o;18230:158::-;18288:9;18321:61;18339:42;18348:32;18374:5;18348:32;:::i;:::-;18339:42;:::i;:::-;18321:61;:::i;:::-;18308:74;;18230:158;;;:::o;18394:147::-;18489:45;18528:5;18489:45;:::i;:::-;18484:3;18477:58;18394:147;;:::o;18547:807::-;18796:4;18834:3;18823:9;18819:19;18811:27;;18848:71;18916:1;18905:9;18901:17;18892:6;18848:71;:::i;:::-;18929:72;18997:2;18986:9;18982:18;18973:6;18929:72;:::i;:::-;19011:80;19087:2;19076:9;19072:18;19063:6;19011:80;:::i;:::-;19101;19177:2;19166:9;19162:18;19153:6;19101:80;:::i;:::-;19191:73;19259:3;19248:9;19244:19;19235:6;19191:73;:::i;:::-;19274;19342:3;19331:9;19327:19;19318:6;19274:73;:::i;:::-;18547:807;;;;;;;;;:::o;19360:143::-;19417:5;19448:6;19442:13;19433:22;;19464:33;19491:5;19464:33;:::i;:::-;19360:143;;;;:::o;19509:663::-;19597:6;19605;19613;19662:2;19650:9;19641:7;19637:23;19633:32;19630:119;;;19668:79;;:::i;:::-;19630:119;19788:1;19813:64;19869:7;19860:6;19849:9;19845:22;19813:64;:::i;:::-;19803:74;;19759:128;19926:2;19952:64;20008:7;19999:6;19988:9;19984:22;19952:64;:::i;:::-;19942:74;;19897:129;20065:2;20091:64;20147:7;20138:6;20127:9;20123:22;20091:64;:::i;:::-;20081:74;;20036:129;19509:663;;;;;:::o;20178:180::-;20226:77;20223:1;20216:88;20323:4;20320:1;20313:15;20347:4;20344:1;20337:15;20364:233;20403:3;20426:24;20444:5;20426:24;:::i;:::-;20417:33;;20472:66;20465:5;20462:77;20459:103;;20542:18;;:::i;:::-;20459:103;20589:1;20582:5;20578:13;20571:20;;20364:233;;;:::o;20603:134::-;20661:9;20694:37;20725:5;20694:37;:::i;:::-;20681:50;;20603:134;;;:::o;20743:147::-;20838:45;20877:5;20838:45;:::i;:::-;20833:3;20826:58;20743:147;;:::o;20896:238::-;20997:4;21035:2;21024:9;21020:18;21012:26;;21048:79;21124:1;21113:9;21109:17;21100:6;21048:79;:::i;:::-;20896:238;;;;:::o;21140:194::-;21180:4;21200:20;21218:1;21200:20;:::i;:::-;21195:25;;21234:20;21252:1;21234:20;:::i;:::-;21229:25;;21278:1;21275;21271:9;21263:17;;21302:1;21296:4;21293:11;21290:37;;;21307:18;;:::i;:::-;21290:37;21140:194;;;;:::o;21340:154::-;21480:6;21476:1;21468:6;21464:14;21457:30;21340:154;:::o;21500:365::-;21642:3;21663:66;21727:1;21722:3;21663:66;:::i;:::-;21656:73;;21738:93;21827:3;21738:93;:::i;:::-;21856:2;21851:3;21847:12;21840:19;;21500:365;;;:::o;21871:419::-;22037:4;22075:2;22064:9;22060:18;22052:26;;22124:9;22118:4;22114:20;22110:1;22099:9;22095:17;22088:47;22152:131;22278:4;22152:131;:::i;:::-;22144:139;;21871:419;;;:::o;22296:162::-;22436:14;22432:1;22424:6;22420:14;22413:38;22296:162;:::o;22464:366::-;22606:3;22627:67;22691:2;22686:3;22627:67;:::i;:::-;22620:74;;22703:93;22792:3;22703:93;:::i;:::-;22821:2;22816:3;22812:12;22805:19;;22464:366;;;:::o;22836:419::-;23002:4;23040:2;23029:9;23025:18;23017:26;;23089:9;23083:4;23079:20;23075:1;23064:9;23060:17;23053:47;23117:131;23243:4;23117:131;:::i;:::-;23109:139;;22836:419;;;:::o;23261:191::-;23301:3;23320:20;23338:1;23320:20;:::i;:::-;23315:25;;23354:20;23372:1;23354:20;:::i;:::-;23349:25;;23397:1;23394;23390:9;23383:16;;23418:3;23415:1;23412:10;23409:36;;;23425:18;;:::i;:::-;23409:36;23261:191;;;;:::o;23458:177::-;23598:29;23594:1;23586:6;23582:14;23575:53;23458:177;:::o;23641:366::-;23783:3;23804:67;23868:2;23863:3;23804:67;:::i;:::-;23797:74;;23880:93;23969:3;23880:93;:::i;:::-;23998:2;23993:3;23989:12;23982:19;;23641:366;;;:::o;24013:419::-;24179:4;24217:2;24206:9;24202:18;24194:26;;24266:9;24260:4;24256:20;24252:1;24241:9;24237:17;24230:47;24294:131;24420:4;24294:131;:::i;:::-;24286:139;;24013:419;;;:::o;24438:180::-;24486:77;24483:1;24476:88;24583:4;24580:1;24573:15;24607:4;24604:1;24597:15;24624:185;24664:1;24681:20;24699:1;24681:20;:::i;:::-;24676:25;;24715:20;24733:1;24715:20;:::i;:::-;24710:25;;24754:1;24744:35;;24759:18;;:::i;:::-;24744:35;24801:1;24798;24794:9;24789:14;;24624:185;;;;:::o;24815:180::-;24863:77;24860:1;24853:88;24960:4;24957:1;24950:15;24984:4;24981:1;24974:15;25001:114;25068:6;25102:5;25096:12;25086:22;;25001:114;;;:::o;25121:184::-;25220:11;25254:6;25249:3;25242:19;25294:4;25289:3;25285:14;25270:29;;25121:184;;;;:::o;25311:132::-;25378:4;25401:3;25393:11;;25431:4;25426:3;25422:14;25414:22;;25311:132;;;:::o;25449:108::-;25526:24;25544:5;25526:24;:::i;:::-;25521:3;25514:37;25449:108;;:::o;25563:179::-;25632:10;25653:46;25695:3;25687:6;25653:46;:::i;:::-;25731:4;25726:3;25722:14;25708:28;;25563:179;;;;:::o;25748:113::-;25818:4;25850;25845:3;25841:14;25833:22;;25748:113;;;:::o;25897:732::-;26016:3;26045:54;26093:5;26045:54;:::i;:::-;26115:86;26194:6;26189:3;26115:86;:::i;:::-;26108:93;;26225:56;26275:5;26225:56;:::i;:::-;26304:7;26335:1;26320:284;26345:6;26342:1;26339:13;26320:284;;;26421:6;26415:13;26448:63;26507:3;26492:13;26448:63;:::i;:::-;26441:70;;26534:60;26587:6;26534:60;:::i;:::-;26524:70;;26380:224;26367:1;26364;26360:9;26355:14;;26320:284;;;26324:14;26620:3;26613:10;;26021:608;;;25897:732;;;;:::o;26635:831::-;26898:4;26936:3;26925:9;26921:19;26913:27;;26950:71;27018:1;27007:9;27003:17;26994:6;26950:71;:::i;:::-;27031:80;27107:2;27096:9;27092:18;27083:6;27031:80;:::i;:::-;27158:9;27152:4;27148:20;27143:2;27132:9;27128:18;27121:48;27186:108;27289:4;27280:6;27186:108;:::i;:::-;27178:116;;27304:72;27372:2;27361:9;27357:18;27348:6;27304:72;:::i;:::-;27386:73;27454:3;27443:9;27439:19;27430:6;27386:73;:::i;:::-;26635:831;;;;;;;;:::o;27472:220::-;27612:34;27608:1;27600:6;27596:14;27589:58;27681:3;27676:2;27668:6;27664:15;27657:28;27472:220;:::o;27698:366::-;27840:3;27861:67;27925:2;27920:3;27861:67;:::i;:::-;27854:74;;27937:93;28026:3;27937:93;:::i;:::-;28055:2;28050:3;28046:12;28039:19;;27698:366;;;:::o;28070:419::-;28236:4;28274:2;28263:9;28259:18;28251:26;;28323:9;28317:4;28313:20;28309:1;28298:9;28294:17;28287:47;28351:131;28477:4;28351:131;:::i;:::-;28343:139;;28070:419;;;:::o

Swarm Source

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