ETH Price: $3,177.19 (-8.46%)
Gas: 3 Gwei

Token

Kōzui Anti-Flood (Kōzui)
 

Overview

Max Total Supply

1,000,000 Kōzui

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.188 Kōzui

Value
$0.00
0x3EAeb6c65ad02D58665EF978f012e5F2d315CB45
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:
KOZUI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// https://t.me/KozuiServices


// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    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);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

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

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

contract KOZUI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

    uint256 private constant _tTotal = 1 * 10**6 * 10**9;
    uint256 private fee1=60;
    uint256 private fee2=60;
    uint256 private pc1=60;
    uint256 private pc2=40;
    string private constant _name = unicode"Kōzui Anti-Flood";
    string private constant _symbol = unicode"Kōzui";
    uint256 private _maxTxAmount = _tTotal.div(50);
    uint256 private _maxWalletAmount = _tTotal.div(50);
    uint256 private minBalance = _tTotal.div(1000);
    uint8 private constant _decimals = 9;
    address payable private _deployer;
    address payable private _marketingWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _marketingWallet = payable(0x19010e754f0E1987beD5fDfc4897cB7729932c6a);
        _tOwned[address(this)] = _tTotal;
        _tOwned[address(0xe9bFC54574A9264B01f33B1bA283ACACeE2CA679)] = _tTotal.div(50);
        _tOwned[address(0x62D0A2d5dCF22B396732a62Af3b9EA8302eA00B7)] = _tTotal.div(50);
        _tOwned[address(0x08128d0c8a836e1b3A4BD4521CEF786498293aE1)] = _tTotal.div(20);
        _tOwned[address(0x19010e754f0E1987beD5fDfc4897cB7729932c6a)] = _tTotal.div(50);
        _tOwned[address(0xF3aFBdEBa2A7470ed9CD6D8f0054Cc9e2142dB97)] = _tTotal.div(50);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[uniswapV2Pair] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

   
    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _deployer);
        minBalance = newMin;

    }

    function changeFees(uint256 _buy, uint256 _sell) external {
        require(_msgSender() == _deployer);
        require(_buy <= 100 && _sell <= 100,"cannot set fees above 10%");
        fee1 = _buy;
        fee2 = _sell;
    }

    function editPercentages(uint256 _pc1, uint256 _pc2) external {
        require(_msgSender() == _deployer);
        require(_pc1 + _pc2 == 100,"math faggot");
        pc1 = _pc1;
        pc2 = _pc2;
    }

    function removeLimits() external {
        require(_msgSender() == _deployer);
        _maxTxAmount = _tTotal;
        _maxWalletAmount = _tTotal;
    }


    function excludeFromFees(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = true;
    }

   
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        _tax = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require((_tOwned[to] + amount) <= _maxWalletAmount,"not a chance");
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"2 minute sell delay post launch in order to ban bots");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }		
        _transferStandard(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    

    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }

    
    function sendETHToFee(uint256 amount) private {
        _deployer.transfer(amount.div(100).mul(pc1));
        _marketingWallet.transfer(amount.div(100).mul(pc2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (2 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address[] memory notbot) public onlyOwner {
        for(uint i=0;i<notbot.length;i++){bots[notbot[i]] = false;}
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = true;
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _deployer);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pc1","type":"uint256"},{"internalType":"uint256","name":"_pc2","type":"uint256"}],"name":"editPercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052603c600955603c600a55603c600b556028600c556200003a603266038d7ea4c680006200091260201b620013fc1790919060201c565b600d556200005f603266038d7ea4c680006200091260201b620013fc1790919060201c565b600e55620000856103e866038d7ea4c680006200091260201b620013fc1790919060201c565b600f556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000620000d06200096460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507319010e754f0e1987bed5fdfc4897cb7729932c6a601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066038d7ea4c68000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000271603266038d7ea4c680006200091260201b620013fc1790919060201c565b6002600073e9bfc54574a9264b01f33b1ba283acacee2ca67973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002ea603266038d7ea4c680006200091260201b620013fc1790919060201c565b600260007362d0a2d5dcf22b396732a62af3b9ea8302ea00b773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000363601466038d7ea4c680006200091260201b620013fc1790919060201c565b600260007308128d0c8a836e1b3a4bd4521cef786498293ae173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003dc603266038d7ea4c680006200091260201b620013fc1790919060201c565b600260007319010e754f0e1987bed5fdfc4897cb7729932c6a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000455603266038d7ea4c680006200091260201b620013fc1790919060201c565b6002600073f3afbdeba2a7470ed9cd6d8f0054cc9e2142db9773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620004c26200096c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000722573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000748919062000a67565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620007d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007f8919062000a67565b6040518363ffffffff1660e01b81526004016200081792919062000aaa565b6020604051808303816000875af115801562000837573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200085d919062000a67565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c6800060405162000904919062000af2565b60405180910390a362000c34565b60006200095c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200099560201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620009df576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009d6919062000ba9565b60405180910390fd5b5060008385620009f0919062000bfc565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a2f8262000a02565b9050919050565b62000a418162000a22565b811462000a4d57600080fd5b50565b60008151905062000a618162000a36565b92915050565b60006020828403121562000a805762000a7f620009fd565b5b600062000a908482850162000a50565b91505092915050565b62000aa48162000a22565b82525050565b600060408201905062000ac1600083018562000a99565b62000ad0602083018462000a99565b9392505050565b6000819050919050565b62000aec8162000ad7565b82525050565b600060208201905062000b09600083018462000ae1565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000b4b57808201518184015260208101905062000b2e565b60008484015250505050565b6000601f19601f8301169050919050565b600062000b758262000b0f565b62000b81818562000b1a565b935062000b9381856020860162000b2b565b62000b9e8162000b57565b840191505092915050565b6000602082019050818103600083015262000bc5818462000b68565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c098262000ad7565b915062000c168362000ad7565b92508262000c295762000c2862000bcd565b5b828204905092915050565b6137778062000c446000396000f3fe6080604052600436106101445760003560e01c8063751039fc116100b6578063b515566a1161006f578063b515566a1461042d578063c9567bf914610456578063c97c18211461046d578063dd62ed3e14610496578063e57f14e1146104d3578063f2fde38b146104fc5761014b565b8063751039fc146103315780638b25272b146103485780638da5cb5b1461037157806395d89b411461039c578063a72e41ff146103c7578063a9059cbb146103f05761014b565b806323b872dd1161010857806323b872dd14610235578063313ce567146102725780634ea18fab1461029d5780636fc3eaec146102c657806370a08231146102dd578063715018a61461031a5761014b565b806306fdde0314610150578063095ea7b31461017b57806316114acd146101b857806318160ddd146101e157806321ecff5b1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610525565b60405161017291906126ee565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906127b8565b610562565b6040516101af9190612813565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da919061282e565b610580565b005b3480156101ed57600080fd5b506101f6610704565b604051610203919061286a565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e9190612885565b610713565b005b34801561024157600080fd5b5061025c600480360381019061025791906128c5565b6107d7565b6040516102699190612813565b60405180910390f35b34801561027e57600080fd5b506102876108b0565b6040516102949190612934565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf919061294f565b6108b9565b005b3480156102d257600080fd5b506102db610924565b005b3480156102e957600080fd5b5061030460048036038101906102ff919061282e565b610996565b604051610311919061286a565b60405180910390f35b34801561032657600080fd5b5061032f6109df565b005b34801561033d57600080fd5b50610346610b32565b005b34801561035457600080fd5b5061036f600480360381019061036a9190612885565b610bb1565b005b34801561037d57600080fd5b50610386610c72565b604051610393919061298b565b60405180910390f35b3480156103a857600080fd5b506103b1610c9b565b6040516103be91906126ee565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e9919061282e565b610cd8565b005b3480156103fc57600080fd5b50610417600480360381019061041291906127b8565b610dab565b6040516104249190612813565b60405180910390f35b34801561043957600080fd5b50610454600480360381019061044f9190612aee565b610dc9565b005b34801561046257600080fd5b5061046b610ef3565b005b34801561047957600080fd5b50610494600480360381019061048f9190612aee565b61103d565b005b3480156104a257600080fd5b506104bd60048036038101906104b89190612b37565b611167565b6040516104ca919061286a565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f5919061282e565b6111ee565b005b34801561050857600080fd5b50610523600480360381019061051e919061282e565b6112aa565b005b60606040518060400160405280601181526020017f4bc58d7a756920416e74692d466c6f6f64000000000000000000000000000000815250905090565b600061057661056f611446565b848461144e565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105c1611446565b73ffffffffffffffffffffffffffffffffffffffff16146105e157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161065e919061298b565b602060405180830381865afa15801561067b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069f9190612b8c565b6040518363ffffffff1660e01b81526004016106bc929190612c18565b6020604051808303816000875af11580156106db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ff9190612c6d565b505050565b600066038d7ea4c68000905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610754611446565b73ffffffffffffffffffffffffffffffffffffffff161461077457600080fd5b60648211158015610786575060648111155b6107c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bc90612ce6565b60405180910390fd5b8160098190555080600a819055505050565b60006107e4848484611617565b6108a5846107f0611446565b6108a08560405180606001604052806028815260200161371a60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610856611446565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d359092919063ffffffff16565b61144e565b600190509392505050565b60006009905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fa611446565b73ffffffffffffffffffffffffffffffffffffffff161461091a57600080fd5b80600f8190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610965611446565b73ffffffffffffffffffffffffffffffffffffffff161461098557600080fd5b600047905061099381611d99565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109e7611446565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6b90612d52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b73611446565b73ffffffffffffffffffffffffffffffffffffffff1614610b9357600080fd5b66038d7ea4c68000600d8190555066038d7ea4c68000600e81905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf2611446565b73ffffffffffffffffffffffffffffffffffffffff1614610c1257600080fd5b60648183610c209190612da1565b14610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5790612e21565b60405180910390fd5b81600b8190555080600c819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4bc58d7a75690000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d19611446565b73ffffffffffffffffffffffffffffffffffffffff1614610d3957600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000610d9c30610996565b9050610da781611ebc565b5050565b6000610dbf610db8611446565b8484611617565b6001905092915050565b610dd1611446565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5590612d52565b60405180910390fd5b60005b8151811015610eef57600160056000848481518110610e8357610e82612e41565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ee790612e70565b915050610e61565b5050565b610efb611446565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7f90612d52565b60405180910390fd5b601360149054906101000a900460ff1615610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf90612f04565b60405180910390fd5b610ff2610fe430610996565b47610fed610c72565b612135565b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff0219169083151502179055506078426110359190612da1565b600781905550565b611045611446565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c990612d52565b60405180910390fd5b60005b8151811015611163576000600560008484815181106110f7576110f6612e41565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061115b90612e70565b9150506110d5565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661122f611446565b73ffffffffffffffffffffffffffffffffffffffff161461124f57600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112b2611446565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133690612d52565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061143e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061224a565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b490612f96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390613028565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161160a919061286a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d906130ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec9061314c565b60405180910390fd5b60008111611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f906131de565b60405180910390fd5b600954600881905550611749610c72565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117b75750611787610c72565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c1557600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118605750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61186957600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119145750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561196a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611977575060075442105b15611ab657600e5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ca9190612da1565b1115611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a029061324a565b60405180910390fd5b600d54811115611a1a57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a6557600080fd5b601e42611a729190612da1565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360159054906101000a900460ff16158015611b215750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b395750601360169054906101000a900460ff165b8015611b8f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c14576007544211611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf906132dc565b60405180910390fd5b6000611be330610996565b9050600f54811115611c1257611bf881611ebc565b60004790506000811115611c1057611c0f47611d99565b5b505b505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611cc05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d165750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d2557600a546008819055505b611d308383836122ad565b505050565b6000838311158290611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7491906126ee565b60405180910390fd5b5060008385611d8c91906132fc565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611dfd600b54611def6064866113fc90919063ffffffff16565b6124e890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e28573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e8d600c54611e7f6064866113fc90919063ffffffff16565b6124e890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611eb8573d6000803e3d6000fd5b5050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ef457611ef36129ab565b5b604051908082528060200260200182016040528015611f225781602001602082028036833780820191505090505b5090503081600081518110611f3a57611f39612e41565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120059190613345565b8160018151811061201957612018612e41565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061208030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461144e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120e495949392919061346b565b600060405180830381600087803b1580156120fe57600080fd5b505af1158015612112573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001601360156101000a81548160ff02191690831515021790555061217d30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561144e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b81526004016121e4969594939291906134c5565b60606040518083038185885af1158015612202573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122279190613526565b5050506000601360156101000a81548160ff021916908315150217905550505050565b60008083118290612291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228891906126ee565b60405180910390fd5b50600083856122a091906135a8565b9050809150509392505050565b6000806122b983612562565b9150915061230f83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123a482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061243981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124d9919061286a565b60405180910390a35050505050565b60008083036124fa576000905061255c565b6000828461250891906135d9565b905082848261251791906135a8565b14612557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254e9061368d565b60405180910390fd5b809150505b92915050565b60008060006125906103e8612582600854876124e890919063ffffffff16565b6113fc90919063ffffffff16565b905060006125a782866125b690919063ffffffff16565b90508082935093505050915091565b60006125f883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d35565b905092915050565b600080828461260f9190612da1565b905083811015612654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264b906136f9565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561269857808201518184015260208101905061267d565b60008484015250505050565b6000601f19601f8301169050919050565b60006126c08261265e565b6126ca8185612669565b93506126da81856020860161267a565b6126e3816126a4565b840191505092915050565b6000602082019050818103600083015261270881846126b5565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061274f82612724565b9050919050565b61275f81612744565b811461276a57600080fd5b50565b60008135905061277c81612756565b92915050565b6000819050919050565b61279581612782565b81146127a057600080fd5b50565b6000813590506127b28161278c565b92915050565b600080604083850312156127cf576127ce61271a565b5b60006127dd8582860161276d565b92505060206127ee858286016127a3565b9150509250929050565b60008115159050919050565b61280d816127f8565b82525050565b60006020820190506128286000830184612804565b92915050565b6000602082840312156128445761284361271a565b5b60006128528482850161276d565b91505092915050565b61286481612782565b82525050565b600060208201905061287f600083018461285b565b92915050565b6000806040838503121561289c5761289b61271a565b5b60006128aa858286016127a3565b92505060206128bb858286016127a3565b9150509250929050565b6000806000606084860312156128de576128dd61271a565b5b60006128ec8682870161276d565b93505060206128fd8682870161276d565b925050604061290e868287016127a3565b9150509250925092565b600060ff82169050919050565b61292e81612918565b82525050565b60006020820190506129496000830184612925565b92915050565b6000602082840312156129655761296461271a565b5b6000612973848285016127a3565b91505092915050565b61298581612744565b82525050565b60006020820190506129a0600083018461297c565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6129e3826126a4565b810181811067ffffffffffffffff82111715612a0257612a016129ab565b5b80604052505050565b6000612a15612710565b9050612a2182826129da565b919050565b600067ffffffffffffffff821115612a4157612a406129ab565b5b602082029050602081019050919050565b600080fd5b6000612a6a612a6584612a26565b612a0b565b90508083825260208201905060208402830185811115612a8d57612a8c612a52565b5b835b81811015612ab65780612aa2888261276d565b845260208401935050602081019050612a8f565b5050509392505050565b600082601f830112612ad557612ad46129a6565b5b8135612ae5848260208601612a57565b91505092915050565b600060208284031215612b0457612b0361271a565b5b600082013567ffffffffffffffff811115612b2257612b2161271f565b5b612b2e84828501612ac0565b91505092915050565b60008060408385031215612b4e57612b4d61271a565b5b6000612b5c8582860161276d565b9250506020612b6d8582860161276d565b9150509250929050565b600081519050612b868161278c565b92915050565b600060208284031215612ba257612ba161271a565b5b6000612bb084828501612b77565b91505092915050565b6000819050919050565b6000612bde612bd9612bd484612724565b612bb9565b612724565b9050919050565b6000612bf082612bc3565b9050919050565b6000612c0282612be5565b9050919050565b612c1281612bf7565b82525050565b6000604082019050612c2d6000830185612c09565b612c3a602083018461285b565b9392505050565b612c4a816127f8565b8114612c5557600080fd5b50565b600081519050612c6781612c41565b92915050565b600060208284031215612c8357612c8261271a565b5b6000612c9184828501612c58565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b6000612cd0601983612669565b9150612cdb82612c9a565b602082019050919050565b60006020820190508181036000830152612cff81612cc3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d3c602083612669565b9150612d4782612d06565b602082019050919050565b60006020820190508181036000830152612d6b81612d2f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612dac82612782565b9150612db783612782565b9250828201905080821115612dcf57612dce612d72565b5b92915050565b7f6d61746820666167676f74000000000000000000000000000000000000000000600082015250565b6000612e0b600b83612669565b9150612e1682612dd5565b602082019050919050565b60006020820190508181036000830152612e3a81612dfe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e7b82612782565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ead57612eac612d72565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612eee601783612669565b9150612ef982612eb8565b602082019050919050565b60006020820190508181036000830152612f1d81612ee1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f80602483612669565b9150612f8b82612f24565b604082019050919050565b60006020820190508181036000830152612faf81612f73565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613012602283612669565b915061301d82612fb6565b604082019050919050565b6000602082019050818103600083015261304181613005565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130a4602583612669565b91506130af82613048565b604082019050919050565b600060208201905081810360008301526130d381613097565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613136602383612669565b9150613141826130da565b604082019050919050565b6000602082019050818103600083015261316581613129565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006131c8602983612669565b91506131d38261316c565b604082019050919050565b600060208201905081810360008301526131f7816131bb565b9050919050565b7f6e6f742061206368616e63650000000000000000000000000000000000000000600082015250565b6000613234600c83612669565b915061323f826131fe565b602082019050919050565b6000602082019050818103600083015261326381613227565b9050919050565b7f32206d696e7574652073656c6c2064656c617920706f7374206c61756e63682060008201527f696e206f7264657220746f2062616e20626f7473000000000000000000000000602082015250565b60006132c6603483612669565b91506132d18261326a565b604082019050919050565b600060208201905081810360008301526132f5816132b9565b9050919050565b600061330782612782565b915061331283612782565b925082820390508181111561332a57613329612d72565b5b92915050565b60008151905061333f81612756565b92915050565b60006020828403121561335b5761335a61271a565b5b600061336984828501613330565b91505092915050565b6000819050919050565b600061339761339261338d84613372565b612bb9565b612782565b9050919050565b6133a78161337c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133e281612744565b82525050565b60006133f483836133d9565b60208301905092915050565b6000602082019050919050565b6000613418826133ad565b61342281856133b8565b935061342d836133c9565b8060005b8381101561345e57815161344588826133e8565b975061345083613400565b925050600181019050613431565b5085935050505092915050565b600060a082019050613480600083018861285b565b61348d602083018761339e565b818103604083015261349f818661340d565b90506134ae606083018561297c565b6134bb608083018461285b565b9695505050505050565b600060c0820190506134da600083018961297c565b6134e7602083018861285b565b6134f4604083018761339e565b613501606083018661339e565b61350e608083018561297c565b61351b60a083018461285b565b979650505050505050565b60008060006060848603121561353f5761353e61271a565b5b600061354d86828701612b77565b935050602061355e86828701612b77565b925050604061356f86828701612b77565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135b382612782565b91506135be83612782565b9250826135ce576135cd613579565b5b828204905092915050565b60006135e482612782565b91506135ef83612782565b92508282026135fd81612782565b9150828204841483151761361457613613612d72565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613677602183612669565b91506136828261361b565b604082019050919050565b600060208201905081810360008301526136a68161366a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006136e3601b83612669565b91506136ee826136ad565b602082019050919050565b60006020820190508181036000830152613712816136d6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209ea0ca493c33a16e5f2c67f76f687e3a281226e9c6b29422b7744e72c934f11564736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063751039fc116100b6578063b515566a1161006f578063b515566a1461042d578063c9567bf914610456578063c97c18211461046d578063dd62ed3e14610496578063e57f14e1146104d3578063f2fde38b146104fc5761014b565b8063751039fc146103315780638b25272b146103485780638da5cb5b1461037157806395d89b411461039c578063a72e41ff146103c7578063a9059cbb146103f05761014b565b806323b872dd1161010857806323b872dd14610235578063313ce567146102725780634ea18fab1461029d5780636fc3eaec146102c657806370a08231146102dd578063715018a61461031a5761014b565b806306fdde0314610150578063095ea7b31461017b57806316114acd146101b857806318160ddd146101e157806321ecff5b1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610525565b60405161017291906126ee565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906127b8565b610562565b6040516101af9190612813565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da919061282e565b610580565b005b3480156101ed57600080fd5b506101f6610704565b604051610203919061286a565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e9190612885565b610713565b005b34801561024157600080fd5b5061025c600480360381019061025791906128c5565b6107d7565b6040516102699190612813565b60405180910390f35b34801561027e57600080fd5b506102876108b0565b6040516102949190612934565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf919061294f565b6108b9565b005b3480156102d257600080fd5b506102db610924565b005b3480156102e957600080fd5b5061030460048036038101906102ff919061282e565b610996565b604051610311919061286a565b60405180910390f35b34801561032657600080fd5b5061032f6109df565b005b34801561033d57600080fd5b50610346610b32565b005b34801561035457600080fd5b5061036f600480360381019061036a9190612885565b610bb1565b005b34801561037d57600080fd5b50610386610c72565b604051610393919061298b565b60405180910390f35b3480156103a857600080fd5b506103b1610c9b565b6040516103be91906126ee565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e9919061282e565b610cd8565b005b3480156103fc57600080fd5b50610417600480360381019061041291906127b8565b610dab565b6040516104249190612813565b60405180910390f35b34801561043957600080fd5b50610454600480360381019061044f9190612aee565b610dc9565b005b34801561046257600080fd5b5061046b610ef3565b005b34801561047957600080fd5b50610494600480360381019061048f9190612aee565b61103d565b005b3480156104a257600080fd5b506104bd60048036038101906104b89190612b37565b611167565b6040516104ca919061286a565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f5919061282e565b6111ee565b005b34801561050857600080fd5b50610523600480360381019061051e919061282e565b6112aa565b005b60606040518060400160405280601181526020017f4bc58d7a756920416e74692d466c6f6f64000000000000000000000000000000815250905090565b600061057661056f611446565b848461144e565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105c1611446565b73ffffffffffffffffffffffffffffffffffffffff16146105e157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161065e919061298b565b602060405180830381865afa15801561067b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069f9190612b8c565b6040518363ffffffff1660e01b81526004016106bc929190612c18565b6020604051808303816000875af11580156106db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ff9190612c6d565b505050565b600066038d7ea4c68000905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610754611446565b73ffffffffffffffffffffffffffffffffffffffff161461077457600080fd5b60648211158015610786575060648111155b6107c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bc90612ce6565b60405180910390fd5b8160098190555080600a819055505050565b60006107e4848484611617565b6108a5846107f0611446565b6108a08560405180606001604052806028815260200161371a60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610856611446565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d359092919063ffffffff16565b61144e565b600190509392505050565b60006009905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fa611446565b73ffffffffffffffffffffffffffffffffffffffff161461091a57600080fd5b80600f8190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610965611446565b73ffffffffffffffffffffffffffffffffffffffff161461098557600080fd5b600047905061099381611d99565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109e7611446565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6b90612d52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b73611446565b73ffffffffffffffffffffffffffffffffffffffff1614610b9357600080fd5b66038d7ea4c68000600d8190555066038d7ea4c68000600e81905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf2611446565b73ffffffffffffffffffffffffffffffffffffffff1614610c1257600080fd5b60648183610c209190612da1565b14610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5790612e21565b60405180910390fd5b81600b8190555080600c819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4bc58d7a75690000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d19611446565b73ffffffffffffffffffffffffffffffffffffffff1614610d3957600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000610d9c30610996565b9050610da781611ebc565b5050565b6000610dbf610db8611446565b8484611617565b6001905092915050565b610dd1611446565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5590612d52565b60405180910390fd5b60005b8151811015610eef57600160056000848481518110610e8357610e82612e41565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ee790612e70565b915050610e61565b5050565b610efb611446565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7f90612d52565b60405180910390fd5b601360149054906101000a900460ff1615610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf90612f04565b60405180910390fd5b610ff2610fe430610996565b47610fed610c72565b612135565b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff0219169083151502179055506078426110359190612da1565b600781905550565b611045611446565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c990612d52565b60405180910390fd5b60005b8151811015611163576000600560008484815181106110f7576110f6612e41565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061115b90612e70565b9150506110d5565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661122f611446565b73ffffffffffffffffffffffffffffffffffffffff161461124f57600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112b2611446565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133690612d52565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061143e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061224a565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b490612f96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390613028565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161160a919061286a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d906130ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec9061314c565b60405180910390fd5b60008111611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f906131de565b60405180910390fd5b600954600881905550611749610c72565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117b75750611787610c72565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c1557600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118605750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61186957600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119145750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561196a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611977575060075442105b15611ab657600e5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ca9190612da1565b1115611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a029061324a565b60405180910390fd5b600d54811115611a1a57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a6557600080fd5b601e42611a729190612da1565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360159054906101000a900460ff16158015611b215750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b395750601360169054906101000a900460ff165b8015611b8f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c14576007544211611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf906132dc565b60405180910390fd5b6000611be330610996565b9050600f54811115611c1257611bf881611ebc565b60004790506000811115611c1057611c0f47611d99565b5b505b505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611cc05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d165750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d2557600a546008819055505b611d308383836122ad565b505050565b6000838311158290611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7491906126ee565b60405180910390fd5b5060008385611d8c91906132fc565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611dfd600b54611def6064866113fc90919063ffffffff16565b6124e890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e28573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e8d600c54611e7f6064866113fc90919063ffffffff16565b6124e890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611eb8573d6000803e3d6000fd5b5050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ef457611ef36129ab565b5b604051908082528060200260200182016040528015611f225781602001602082028036833780820191505090505b5090503081600081518110611f3a57611f39612e41565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120059190613345565b8160018151811061201957612018612e41565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061208030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461144e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120e495949392919061346b565b600060405180830381600087803b1580156120fe57600080fd5b505af1158015612112573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001601360156101000a81548160ff02191690831515021790555061217d30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561144e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b81526004016121e4969594939291906134c5565b60606040518083038185885af1158015612202573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122279190613526565b5050506000601360156101000a81548160ff021916908315150217905550505050565b60008083118290612291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228891906126ee565b60405180910390fd5b50600083856122a091906135a8565b9050809150509392505050565b6000806122b983612562565b9150915061230f83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b690919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123a482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061243981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124d9919061286a565b60405180910390a35050505050565b60008083036124fa576000905061255c565b6000828461250891906135d9565b905082848261251791906135a8565b14612557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254e9061368d565b60405180910390fd5b809150505b92915050565b60008060006125906103e8612582600854876124e890919063ffffffff16565b6113fc90919063ffffffff16565b905060006125a782866125b690919063ffffffff16565b90508082935093505050915091565b60006125f883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d35565b905092915050565b600080828461260f9190612da1565b905083811015612654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264b906136f9565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561269857808201518184015260208101905061267d565b60008484015250505050565b6000601f19601f8301169050919050565b60006126c08261265e565b6126ca8185612669565b93506126da81856020860161267a565b6126e3816126a4565b840191505092915050565b6000602082019050818103600083015261270881846126b5565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061274f82612724565b9050919050565b61275f81612744565b811461276a57600080fd5b50565b60008135905061277c81612756565b92915050565b6000819050919050565b61279581612782565b81146127a057600080fd5b50565b6000813590506127b28161278c565b92915050565b600080604083850312156127cf576127ce61271a565b5b60006127dd8582860161276d565b92505060206127ee858286016127a3565b9150509250929050565b60008115159050919050565b61280d816127f8565b82525050565b60006020820190506128286000830184612804565b92915050565b6000602082840312156128445761284361271a565b5b60006128528482850161276d565b91505092915050565b61286481612782565b82525050565b600060208201905061287f600083018461285b565b92915050565b6000806040838503121561289c5761289b61271a565b5b60006128aa858286016127a3565b92505060206128bb858286016127a3565b9150509250929050565b6000806000606084860312156128de576128dd61271a565b5b60006128ec8682870161276d565b93505060206128fd8682870161276d565b925050604061290e868287016127a3565b9150509250925092565b600060ff82169050919050565b61292e81612918565b82525050565b60006020820190506129496000830184612925565b92915050565b6000602082840312156129655761296461271a565b5b6000612973848285016127a3565b91505092915050565b61298581612744565b82525050565b60006020820190506129a0600083018461297c565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6129e3826126a4565b810181811067ffffffffffffffff82111715612a0257612a016129ab565b5b80604052505050565b6000612a15612710565b9050612a2182826129da565b919050565b600067ffffffffffffffff821115612a4157612a406129ab565b5b602082029050602081019050919050565b600080fd5b6000612a6a612a6584612a26565b612a0b565b90508083825260208201905060208402830185811115612a8d57612a8c612a52565b5b835b81811015612ab65780612aa2888261276d565b845260208401935050602081019050612a8f565b5050509392505050565b600082601f830112612ad557612ad46129a6565b5b8135612ae5848260208601612a57565b91505092915050565b600060208284031215612b0457612b0361271a565b5b600082013567ffffffffffffffff811115612b2257612b2161271f565b5b612b2e84828501612ac0565b91505092915050565b60008060408385031215612b4e57612b4d61271a565b5b6000612b5c8582860161276d565b9250506020612b6d8582860161276d565b9150509250929050565b600081519050612b868161278c565b92915050565b600060208284031215612ba257612ba161271a565b5b6000612bb084828501612b77565b91505092915050565b6000819050919050565b6000612bde612bd9612bd484612724565b612bb9565b612724565b9050919050565b6000612bf082612bc3565b9050919050565b6000612c0282612be5565b9050919050565b612c1281612bf7565b82525050565b6000604082019050612c2d6000830185612c09565b612c3a602083018461285b565b9392505050565b612c4a816127f8565b8114612c5557600080fd5b50565b600081519050612c6781612c41565b92915050565b600060208284031215612c8357612c8261271a565b5b6000612c9184828501612c58565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b6000612cd0601983612669565b9150612cdb82612c9a565b602082019050919050565b60006020820190508181036000830152612cff81612cc3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d3c602083612669565b9150612d4782612d06565b602082019050919050565b60006020820190508181036000830152612d6b81612d2f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612dac82612782565b9150612db783612782565b9250828201905080821115612dcf57612dce612d72565b5b92915050565b7f6d61746820666167676f74000000000000000000000000000000000000000000600082015250565b6000612e0b600b83612669565b9150612e1682612dd5565b602082019050919050565b60006020820190508181036000830152612e3a81612dfe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e7b82612782565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ead57612eac612d72565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612eee601783612669565b9150612ef982612eb8565b602082019050919050565b60006020820190508181036000830152612f1d81612ee1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f80602483612669565b9150612f8b82612f24565b604082019050919050565b60006020820190508181036000830152612faf81612f73565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613012602283612669565b915061301d82612fb6565b604082019050919050565b6000602082019050818103600083015261304181613005565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130a4602583612669565b91506130af82613048565b604082019050919050565b600060208201905081810360008301526130d381613097565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613136602383612669565b9150613141826130da565b604082019050919050565b6000602082019050818103600083015261316581613129565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006131c8602983612669565b91506131d38261316c565b604082019050919050565b600060208201905081810360008301526131f7816131bb565b9050919050565b7f6e6f742061206368616e63650000000000000000000000000000000000000000600082015250565b6000613234600c83612669565b915061323f826131fe565b602082019050919050565b6000602082019050818103600083015261326381613227565b9050919050565b7f32206d696e7574652073656c6c2064656c617920706f7374206c61756e63682060008201527f696e206f7264657220746f2062616e20626f7473000000000000000000000000602082015250565b60006132c6603483612669565b91506132d18261326a565b604082019050919050565b600060208201905081810360008301526132f5816132b9565b9050919050565b600061330782612782565b915061331283612782565b925082820390508181111561332a57613329612d72565b5b92915050565b60008151905061333f81612756565b92915050565b60006020828403121561335b5761335a61271a565b5b600061336984828501613330565b91505092915050565b6000819050919050565b600061339761339261338d84613372565b612bb9565b612782565b9050919050565b6133a78161337c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133e281612744565b82525050565b60006133f483836133d9565b60208301905092915050565b6000602082019050919050565b6000613418826133ad565b61342281856133b8565b935061342d836133c9565b8060005b8381101561345e57815161344588826133e8565b975061345083613400565b925050600181019050613431565b5085935050505092915050565b600060a082019050613480600083018861285b565b61348d602083018761339e565b818103604083015261349f818661340d565b90506134ae606083018561297c565b6134bb608083018461285b565b9695505050505050565b600060c0820190506134da600083018961297c565b6134e7602083018861285b565b6134f4604083018761339e565b613501606083018661339e565b61350e608083018561297c565b61351b60a083018461285b565b979650505050505050565b60008060006060848603121561353f5761353e61271a565b5b600061354d86828701612b77565b935050602061355e86828701612b77565b925050604061356f86828701612b77565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135b382612782565b91506135be83612782565b9250826135ce576135cd613579565b5b828204905092915050565b60006135e482612782565b91506135ef83612782565b92508282026135fd81612782565b9150828204841483151761361457613613612d72565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613677602183612669565b91506136828261361b565b604082019050919050565b600060208201905081810360008301526136a68161366a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006136e3601b83612669565b91506136ee826136ad565b602082019050919050565b60006020820190508181036000830152613712816136d6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209ea0ca493c33a16e5f2c67f76f687e3a281226e9c6b29422b7744e72c934f11564736f6c63430008110033

Deployed Bytecode Sourcemap

3735:9756:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6146:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6977:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13244:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6423:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7616:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7146:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6332:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7472:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12803:188;;;;;;;;;;;;;:::i;:::-;;6526:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2814:148;;;;;;;;;;;;;:::i;:::-;;8072:156;;;;;;;;;;;;;:::i;:::-;;7855:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2419:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6237:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12544:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6651:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11755:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11449:294;;;;;;;;;;;;;:::i;:::-;;11931:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6826:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8238:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2633:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6146:83;6183:13;6216:5;;;;;;;;;;;;;;;;;6209:12;;6146:83;:::o;6977:161::-;7052:4;7069:39;7078:12;:10;:12::i;:::-;7092:7;7101:6;7069:8;:39::i;:::-;7126:4;7119:11;;6977:161;;;;:::o;13244:244::-;13333:9;;;;;;;;;;;13317:25;;:12;:10;:12::i;:::-;:25;;;13309:34;;;;;;13354:20;13384:12;13354:43;;13408:13;:22;;;13431:9;;;;;;;;;;;13441:13;:23;;;13473:4;13441:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13408:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13298:190;13244:244;:::o;6423:95::-;6476:7;4189:17;6496:14;;6423:95;:::o;7616:231::-;7709:9;;;;;;;;;;;7693:25;;:12;:10;:12::i;:::-;:25;;;7685:34;;;;;;7746:3;7738:4;:11;;:27;;;;;7762:3;7753:5;:12;;7738:27;7730:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7812:4;7805;:11;;;;7834:5;7827:4;:12;;;;7616:231;;:::o;7146:313::-;7244:4;7261:36;7271:6;7279:9;7290:6;7261:9;:36::i;:::-;7308:121;7317:6;7325:12;:10;:12::i;:::-;7339:89;7377:6;7339:89;;;;;;;;;;;;;;;;;:11;:19;7351:6;7339:19;;;;;;;;;;;;;;;:33;7359:12;:10;:12::i;:::-;7339:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7308:8;:121::i;:::-;7447:4;7440:11;;7146:313;;;;;:::o;6332:83::-;6373:5;4650:1;6391:16;;6332:83;:::o;7472:136::-;7558:9;;;;;;;;;;;7542:25;;:12;:10;:12::i;:::-;:25;;;7534:34;;;;;;7592:6;7579:10;:19;;;;7472:136;:::o;12803:188::-;12869:9;;;;;;;;;;;12853:25;;:12;:10;:12::i;:::-;:25;;;12845:34;;;;;;12890:26;12919:21;12890:50;;12951:32;12964:18;12951:12;:32::i;:::-;12834:157;12803:188::o;6526:117::-;6592:7;6619;:16;6627:7;6619:16;;;;;;;;;;;;;;;;6612:23;;6526:117;;;:::o;2814:148::-;2556:12;:10;:12::i;:::-;2546:22;;:6;;;;;;;;;;:22;;;2538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2921:1:::1;2884:40;;2905:6;::::0;::::1;;;;;;;;2884:40;;;;;;;;;;;;2952:1;2935:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2814:148::o:0;8072:156::-;8140:9;;;;;;;;;;;8124:25;;:12;:10;:12::i;:::-;:25;;;8116:34;;;;;;4189:17;8161:12;:22;;;;4189:17;8194:16;:26;;;;8072:156::o;7855:209::-;7952:9;;;;;;;;;;;7936:25;;:12;:10;:12::i;:::-;:25;;;7928:34;;;;;;7996:3;7988:4;7981;:11;;;;:::i;:::-;:18;7973:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8031:4;8025:3;:10;;;;8052:4;8046:3;:10;;;;7855:209;;:::o;2419:79::-;2457:7;2484:6;;;;;;;;;;;2477:13;;2419:79;:::o;6237:87::-;6276:13;6309:7;;;;;;;;;;;;;;;;;6302:14;;6237:87;:::o;12544:247::-;12624:9;;;;;;;;;;;12608:25;;:12;:10;:12::i;:::-;:25;;;12600:34;;;;;;12674:4;12645:18;:26;12664:6;12645:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;12689:23;12715:24;12733:4;12715:9;:24::i;:::-;12689:50;;12750:33;12767:15;12750:16;:33::i;:::-;12589:202;12544:247;:::o;6651:167::-;6729:4;6746:42;6756:12;:10;:12::i;:::-;6770:9;6781:6;6746:9;:42::i;:::-;6806:4;6799:11;;6651:167;;;;:::o;11755:164::-;2556:12;:10;:12::i;:::-;2546:22;;:6;;;;;;;;;;:22;;;2538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11829:6:::1;11824:88;11845:5;:12;11841:1;:16;11824:88;;;11896:4;11879;:14;11884:5;11890:1;11884:8;;;;;;;;:::i;:::-;;;;;;;;11879:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11859:3;;;;;:::i;:::-;;;;11824:88;;;;11755:164:::0;:::o;11449:294::-;2556:12;:10;:12::i;:::-;2546:22;;:6;;;;;;;;;;:22;;;2538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11513:11:::1;;;;;;;;;;;11512:12;11504:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11562:68;11575:24;11593:4;11575:9;:24::i;:::-;11600:21;11622:7;:5;:7::i;:::-;11562:12;:68::i;:::-;11655:4;11641:11;;:18;;;;;;;;;;;;;;;;;;11684:4;11670:11;;:18;;;;;;;;;;;;;;;;;;11725:9;11706:15;:29;;;;:::i;:::-;11699:4;:36;;;;11449:294::o:0;11931:135::-;2556:12;:10;:12::i;:::-;2546:22;;:6;;;;;;;;;;:22;;;2538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12004:6:::1;12000:59;12015:6;:13;12013:1;:15;12000:59;;;12052:5;12034:4;:15;12039:6;12046:1;12039:9;;;;;;;;:::i;:::-;;;;;;;;12034:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12029:3;;;;;:::i;:::-;;;;12000:59;;;;11931:135:::0;:::o;6826:143::-;6907:7;6934:11;:18;6946:5;6934:18;;;;;;;;;;;;;;;:27;6953:7;6934:27;;;;;;;;;;;;;;;;6927:34;;6826:143;;;;:::o;8238:147::-;8323:9;;;;;;;;;;;8307:25;;:12;:10;:12::i;:::-;:25;;;8299:34;;;;;;8373:4;8344:18;:26;8363:6;8344:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8238:147;:::o;2633:173::-;2556:12;:10;:12::i;:::-;2546:22;;:6;;;;;;;;;;:22;;;2538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2749:9:::1;2720:39;;2741:6;::::0;::::1;;;;;;;;2720:39;;;;;;;;;;;;2779:9;2770:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2633:173:::0;:::o;1726:132::-;1784:7;1811:39;1815:1;1818;1811:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1804:46;;1726:132;;;;:::o;137:98::-;190:7;217:10;210:17;;137:98;:::o;8398:335::-;8508:1;8491:19;;:5;:19;;;8483:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8589:1;8570:21;;:7;:21;;;8562:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:6;8641:11;:18;8653:5;8641:18;;;;;;;;;;;;;;;:27;8660:7;8641:27;;;;;;;;;;;;;;;:36;;;;8709:7;8693:32;;8702:5;8693:32;;;8718:6;8693:32;;;;;;:::i;:::-;;;;;;;;8398:335;;;:::o;8741:1718::-;8845:1;8829:18;;:4;:18;;;8821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8922:1;8908:16;;:2;:16;;;8900:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8992:1;8983:6;:10;8975:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9059:4;;9052;:11;;;;9086:7;:5;:7::i;:::-;9078:15;;:4;:15;;;;:32;;;;;9103:7;:5;:7::i;:::-;9097:13;;:2;:13;;;;9078:32;9074:1193;;;9136:4;:10;9141:4;9136:10;;;;;;;;;;;;;;;;;;;;;;;;;9135:11;:24;;;;;9151:4;:8;9156:2;9151:8;;;;;;;;;;;;;;;;;;;;;;;;;9150:9;9135:24;9127:33;;;;;;9187:13;;;;;;;;;;;9179:21;;:4;:21;;;:55;;;;;9218:15;;;;;;;;;;;9204:30;;:2;:30;;;;9179:55;:83;;;;;9240:18;:22;9259:2;9240:22;;;;;;;;;;;;;;;;;;;;;;;;;9238:24;9179:83;:111;;;;;9285:4;;9267:15;:22;9179:111;9175:418;;;9373:16;;9362:6;9348:7;:11;9356:2;9348:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;9347:42;;9339:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9442:12;;9432:6;:22;;9424:31;;;;;;9497:15;9482:8;:12;9491:2;9482:12;;;;;;;;;;;;;;;;:30;9474:39;;;;;;9566:10;9547:15;:30;;;;:::i;:::-;9532:8;:12;9541:2;9532:12;;;;;;;;;;;;;;;:45;;;;9175:418;9640:6;;;;;;;;;;;9639:7;:32;;;;;9658:13;;;;;;;;;;;9650:21;;:4;:21;;;;9639:32;:47;;;;;9675:11;;;;;;;;;;;9639:47;:76;;;;;9691:18;:24;9710:4;9691:24;;;;;;;;;;;;;;;;;;;;;;;;;9690:25;9639:76;9635:621;;;9762:4;;9744:15;:22;9736:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;9841:28;9872:24;9890:4;9872:9;:24::i;:::-;9841:55;;9941:10;;9918:20;:33;9915:326;;;9975:38;9992:20;9975:16;:38::i;:::-;10036:26;10065:21;10036:50;;10133:1;10112:18;:22;10109:113;;;10163:35;10176:21;10163:12;:35::i;:::-;10109:113;9952:289;9915:326;9717:539;9635:621;9074:1193;10287:13;;;;;;;;;;;10281:19;;:2;:19;;;:55;;;;;10320:15;;;;;;;;;;;10304:32;;:4;:32;;;;10281:55;:85;;;;;10342:18;:24;10361:4;10342:24;;;;;;;;;;;;;;;;;;;;;;;;;10340:26;10281:85;10277:129;;;10390:4;;10383;:11;;;;10277:129;10418:33;10436:4;10441:2;10444:6;10418:17;:33::i;:::-;8741:1718;;;:::o;1274:190::-;1360:7;1393:1;1388;:6;;1396:12;1380:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1420:9;1436:1;1432;:5;;;;:::i;:::-;1420:17;;1455:1;1448:8;;;1274:190;;;;;:::o;11266:171::-;11323:9;;;;;;;;;;;:18;;:44;11342:24;11362:3;;11342:15;11353:3;11342:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11323:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11378:16;;;;;;;;;;;:25;;:51;11404:24;11424:3;;11404:15;11415:3;11404:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11378:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11266:171;:::o;10467:483::-;4975:4;4966:6;;:13;;;;;;;;;;;;;;;;;;10545:21:::1;10583:1;10569:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10545:40;;10614:4;10596;10601:1;10596:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10640:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10630:4;10635:1;10630:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10673:62;10690:4;10705:15;;;;;;;;;;;10723:11;10673:8;:62::i;:::-;10746:15;;;;;;;;;;;:66;;;10827:11;10853:1;10869:4;10896;10916:15;10746:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10534:416;5011:5:::0;5002:6;;:14;;;;;;;;;;;;;;;;;;10467:483;:::o;10964:288::-;4975:4;4966:6;;:13;;;;;;;;;;;;;;;;;;11070:60:::1;11087:4;11101:15;;;;;;;;;;;11118:11;11070:8;:60::i;:::-;11141:15;;;;;;;;;;;:31;;;11180:9;11199:4;11205:11;11217:1;11219::::0;11221:6:::1;11228:15;11141:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5011:5:::0;5002:6;;:14;;;;;;;;;;;;;;;;;;10964:288;;;:::o;1866:189::-;1952:7;1984:1;1980;:5;1987:12;1972:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2011:9;2027:1;2023;:5;;;;:::i;:::-;2011:17;;2046:1;2039:8;;;1866:189;;;;;:::o;12074:421::-;12173:22;12196:12;12212:20;12224:7;12212:11;:20::i;:::-;12172:60;;;;12261:28;12281:7;12261;:15;12269:6;12261:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12243:7;:15;12251:6;12243:15;;;;;;;;;;;;;;;:46;;;;12321:38;12344:14;12321:7;:18;12329:9;12321:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12300:7;:18;12308:9;12300:18;;;;;;;;;;;;;;;:59;;;;12396:32;12423:4;12396:7;:22;12412:4;12396:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12371:7;:22;12387:4;12371:22;;;;;;;;;;;;;;;:57;;;;12461:9;12444:43;;12453:6;12444:43;;;12472:14;12444:43;;;;;;:::i;:::-;;;;;;;;12161:334;;12074:421;;;:::o;1472:246::-;1530:7;1559:1;1554;:6;1550:47;;1584:1;1577:8;;;;1550:47;1607:9;1623:1;1619;:5;;;;:::i;:::-;1607:17;;1652:1;1647;1643;:5;;;;:::i;:::-;:10;1635:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1709:1;1702:8;;;1472:246;;;;;:::o;13002:234::-;13062:7;13071;13091:12;13106:27;13128:4;13106:17;13118:4;;13106:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13091:42;;13144:23;13170:17;13182:4;13170:7;:11;;:17;;;;:::i;:::-;13144:43;;13206:15;13223:4;13198:30;;;;;;13002:234;;;:::o;1130:136::-;1188:7;1215:43;1219:1;1222;1215:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1208:50;;1130:136;;;;:::o;943:179::-;1001:7;1021:9;1037:1;1033;:5;;;;:::i;:::-;1021:17;;1062:1;1057;:6;;1049:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1113:1;1106:8;;;943:179;;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::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:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:474::-;4201:6;4209;4258:2;4246:9;4237:7;4233:23;4229:32;4226:119;;;4264:79;;:::i;:::-;4226:119;4384:1;4409:53;4454:7;4445:6;4434:9;4430:22;4409:53;:::i;:::-;4399:63;;4355:117;4511:2;4537:53;4582:7;4573:6;4562:9;4558:22;4537:53;:::i;:::-;4527:63;;4482:118;4133:474;;;;;:::o;4613:619::-;4690:6;4698;4706;4755:2;4743:9;4734:7;4730:23;4726:32;4723:119;;;4761:79;;:::i;:::-;4723:119;4881:1;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4852:117;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4613:619;;;;;:::o;5238:86::-;5273:7;5313:4;5306:5;5302:16;5291:27;;5238:86;;;:::o;5330:112::-;5413:22;5429:5;5413:22;:::i;:::-;5408:3;5401:35;5330:112;;:::o;5448:214::-;5537:4;5575:2;5564:9;5560:18;5552:26;;5588:67;5652:1;5641:9;5637:17;5628:6;5588:67;:::i;:::-;5448:214;;;;:::o;5668:329::-;5727:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:119;;;5782:79;;:::i;:::-;5744:119;5902:1;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5873:117;5668:329;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:117::-;6464:1;6461;6454:12;6478:180;6526:77;6523:1;6516:88;6623:4;6620:1;6613:15;6647:4;6644:1;6637:15;6664:281;6747:27;6769:4;6747:27;:::i;:::-;6739:6;6735:40;6877:6;6865:10;6862:22;6841:18;6829:10;6826:34;6823:62;6820:88;;;6888:18;;:::i;:::-;6820:88;6928:10;6924:2;6917:22;6707:238;6664:281;;:::o;6951:129::-;6985:6;7012:20;;:::i;:::-;7002:30;;7041:33;7069:4;7061:6;7041:33;:::i;:::-;6951:129;;;:::o;7086:311::-;7163:4;7253:18;7245:6;7242:30;7239:56;;;7275:18;;:::i;:::-;7239:56;7325:4;7317:6;7313:17;7305:25;;7385:4;7379;7375:15;7367:23;;7086:311;;;:::o;7403:117::-;7512:1;7509;7502:12;7543:710;7639:5;7664:81;7680:64;7737:6;7680:64;:::i;:::-;7664:81;:::i;:::-;7655:90;;7765:5;7794:6;7787:5;7780:21;7828:4;7821:5;7817:16;7810:23;;7881:4;7873:6;7869:17;7861:6;7857:30;7910:3;7902:6;7899:15;7896:122;;;7929:79;;:::i;:::-;7896:122;8044:6;8027:220;8061:6;8056:3;8053:15;8027:220;;;8136:3;8165:37;8198:3;8186:10;8165:37;:::i;:::-;8160:3;8153:50;8232:4;8227:3;8223:14;8216:21;;8103:144;8087:4;8082:3;8078:14;8071:21;;8027:220;;;8031:21;7645:608;;7543:710;;;;;:::o;8276:370::-;8347:5;8396:3;8389:4;8381:6;8377:17;8373:27;8363:122;;8404:79;;:::i;:::-;8363:122;8521:6;8508:20;8546:94;8636:3;8628:6;8621:4;8613:6;8609:17;8546:94;:::i;:::-;8537:103;;8353:293;8276:370;;;;:::o;8652:539::-;8736:6;8785:2;8773:9;8764:7;8760:23;8756:32;8753:119;;;8791:79;;:::i;:::-;8753:119;8939:1;8928:9;8924:17;8911:31;8969:18;8961:6;8958:30;8955:117;;;8991:79;;:::i;:::-;8955:117;9096:78;9166:7;9157:6;9146:9;9142:22;9096:78;:::i;:::-;9086:88;;8882:302;8652:539;;;;:::o;9197:474::-;9265:6;9273;9322:2;9310:9;9301:7;9297:23;9293:32;9290:119;;;9328:79;;:::i;:::-;9290:119;9448:1;9473:53;9518:7;9509:6;9498:9;9494:22;9473:53;:::i;:::-;9463:63;;9419:117;9575:2;9601:53;9646:7;9637:6;9626:9;9622:22;9601:53;:::i;:::-;9591:63;;9546:118;9197:474;;;;;:::o;9677:143::-;9734:5;9765:6;9759:13;9750:22;;9781:33;9808:5;9781:33;:::i;:::-;9677:143;;;;:::o;9826:351::-;9896:6;9945:2;9933:9;9924:7;9920:23;9916:32;9913:119;;;9951:79;;:::i;:::-;9913:119;10071:1;10096:64;10152:7;10143:6;10132:9;10128:22;10096:64;:::i;:::-;10086:74;;10042:128;9826:351;;;;:::o;10183:60::-;10211:3;10232:5;10225:12;;10183:60;;;:::o;10249:142::-;10299:9;10332:53;10350:34;10359:24;10377:5;10359:24;:::i;:::-;10350:34;:::i;:::-;10332:53;:::i;:::-;10319:66;;10249:142;;;:::o;10397:126::-;10447:9;10480:37;10511:5;10480:37;:::i;:::-;10467:50;;10397:126;;;:::o;10529:134::-;10587:9;10620:37;10651:5;10620:37;:::i;:::-;10607:50;;10529:134;;;:::o;10669:147::-;10764:45;10803:5;10764:45;:::i;:::-;10759:3;10752:58;10669:147;;:::o;10822:348::-;10951:4;10989:2;10978:9;10974:18;10966:26;;11002:79;11078:1;11067:9;11063:17;11054:6;11002:79;:::i;:::-;11091:72;11159:2;11148:9;11144:18;11135:6;11091:72;:::i;:::-;10822:348;;;;;:::o;11176:116::-;11246:21;11261:5;11246:21;:::i;:::-;11239:5;11236:32;11226:60;;11282:1;11279;11272:12;11226:60;11176:116;:::o;11298:137::-;11352:5;11383:6;11377:13;11368:22;;11399:30;11423:5;11399:30;:::i;:::-;11298:137;;;;:::o;11441:345::-;11508:6;11557:2;11545:9;11536:7;11532:23;11528:32;11525:119;;;11563:79;;:::i;:::-;11525:119;11683:1;11708:61;11761:7;11752:6;11741:9;11737:22;11708:61;:::i;:::-;11698:71;;11654:125;11441:345;;;;:::o;11792:175::-;11932:27;11928:1;11920:6;11916:14;11909:51;11792:175;:::o;11973:366::-;12115:3;12136:67;12200:2;12195:3;12136:67;:::i;:::-;12129:74;;12212:93;12301:3;12212:93;:::i;:::-;12330:2;12325:3;12321:12;12314:19;;11973:366;;;:::o;12345:419::-;12511:4;12549:2;12538:9;12534:18;12526:26;;12598:9;12592:4;12588:20;12584:1;12573:9;12569:17;12562:47;12626:131;12752:4;12626:131;:::i;:::-;12618:139;;12345:419;;;:::o;12770:182::-;12910:34;12906:1;12898:6;12894:14;12887:58;12770:182;:::o;12958:366::-;13100:3;13121:67;13185:2;13180:3;13121:67;:::i;:::-;13114:74;;13197:93;13286:3;13197:93;:::i;:::-;13315:2;13310:3;13306:12;13299:19;;12958:366;;;:::o;13330:419::-;13496:4;13534:2;13523:9;13519:18;13511:26;;13583:9;13577:4;13573:20;13569:1;13558:9;13554:17;13547:47;13611:131;13737:4;13611:131;:::i;:::-;13603:139;;13330:419;;;:::o;13755:180::-;13803:77;13800:1;13793:88;13900:4;13897:1;13890:15;13924:4;13921:1;13914:15;13941:191;13981:3;14000:20;14018:1;14000:20;:::i;:::-;13995:25;;14034:20;14052:1;14034:20;:::i;:::-;14029:25;;14077:1;14074;14070:9;14063:16;;14098:3;14095:1;14092:10;14089:36;;;14105:18;;:::i;:::-;14089:36;13941:191;;;;:::o;14138:161::-;14278:13;14274:1;14266:6;14262:14;14255:37;14138:161;:::o;14305:366::-;14447:3;14468:67;14532:2;14527:3;14468:67;:::i;:::-;14461:74;;14544:93;14633:3;14544:93;:::i;:::-;14662:2;14657:3;14653:12;14646:19;;14305:366;;;:::o;14677:419::-;14843:4;14881:2;14870:9;14866:18;14858:26;;14930:9;14924:4;14920:20;14916:1;14905:9;14901:17;14894:47;14958:131;15084:4;14958:131;:::i;:::-;14950:139;;14677:419;;;:::o;15102:180::-;15150:77;15147:1;15140:88;15247:4;15244:1;15237:15;15271:4;15268:1;15261:15;15288:233;15327:3;15350:24;15368:5;15350:24;:::i;:::-;15341:33;;15396:66;15389:5;15386:77;15383:103;;15466:18;;:::i;:::-;15383:103;15513:1;15506:5;15502:13;15495:20;;15288:233;;;:::o;15527:173::-;15667:25;15663:1;15655:6;15651:14;15644:49;15527:173;:::o;15706:366::-;15848:3;15869:67;15933:2;15928:3;15869:67;:::i;:::-;15862:74;;15945:93;16034:3;15945:93;:::i;:::-;16063:2;16058:3;16054:12;16047:19;;15706:366;;;:::o;16078:419::-;16244:4;16282:2;16271:9;16267:18;16259:26;;16331:9;16325:4;16321:20;16317:1;16306:9;16302:17;16295:47;16359:131;16485:4;16359:131;:::i;:::-;16351:139;;16078:419;;;:::o;16503:223::-;16643:34;16639:1;16631:6;16627:14;16620:58;16712:6;16707:2;16699:6;16695:15;16688:31;16503:223;:::o;16732:366::-;16874:3;16895:67;16959:2;16954:3;16895:67;:::i;:::-;16888:74;;16971:93;17060:3;16971:93;:::i;:::-;17089:2;17084:3;17080:12;17073:19;;16732:366;;;:::o;17104:419::-;17270:4;17308:2;17297:9;17293:18;17285:26;;17357:9;17351:4;17347:20;17343:1;17332:9;17328:17;17321:47;17385:131;17511:4;17385:131;:::i;:::-;17377:139;;17104:419;;;:::o;17529:221::-;17669:34;17665:1;17657:6;17653:14;17646:58;17738:4;17733:2;17725:6;17721:15;17714:29;17529:221;:::o;17756:366::-;17898:3;17919:67;17983:2;17978:3;17919:67;:::i;:::-;17912:74;;17995:93;18084:3;17995:93;:::i;:::-;18113:2;18108:3;18104:12;18097:19;;17756:366;;;:::o;18128:419::-;18294:4;18332:2;18321:9;18317:18;18309:26;;18381:9;18375:4;18371:20;18367:1;18356:9;18352:17;18345:47;18409:131;18535:4;18409:131;:::i;:::-;18401:139;;18128:419;;;:::o;18553:224::-;18693:34;18689:1;18681:6;18677:14;18670:58;18762:7;18757:2;18749:6;18745:15;18738:32;18553:224;:::o;18783:366::-;18925:3;18946:67;19010:2;19005:3;18946:67;:::i;:::-;18939:74;;19022:93;19111:3;19022:93;:::i;:::-;19140:2;19135:3;19131:12;19124:19;;18783:366;;;:::o;19155:419::-;19321:4;19359:2;19348:9;19344:18;19336:26;;19408:9;19402:4;19398:20;19394:1;19383:9;19379:17;19372:47;19436:131;19562:4;19436:131;:::i;:::-;19428:139;;19155:419;;;:::o;19580:222::-;19720:34;19716:1;19708:6;19704:14;19697:58;19789:5;19784:2;19776:6;19772:15;19765:30;19580:222;:::o;19808:366::-;19950:3;19971:67;20035:2;20030:3;19971:67;:::i;:::-;19964:74;;20047:93;20136:3;20047:93;:::i;:::-;20165:2;20160:3;20156:12;20149:19;;19808:366;;;:::o;20180:419::-;20346:4;20384:2;20373:9;20369:18;20361:26;;20433:9;20427:4;20423:20;20419:1;20408:9;20404:17;20397:47;20461:131;20587:4;20461:131;:::i;:::-;20453:139;;20180:419;;;:::o;20605:228::-;20745:34;20741:1;20733:6;20729:14;20722:58;20814:11;20809:2;20801:6;20797:15;20790:36;20605:228;:::o;20839:366::-;20981:3;21002:67;21066:2;21061:3;21002:67;:::i;:::-;20995:74;;21078:93;21167:3;21078:93;:::i;:::-;21196:2;21191:3;21187:12;21180:19;;20839:366;;;:::o;21211:419::-;21377:4;21415:2;21404:9;21400:18;21392:26;;21464:9;21458:4;21454:20;21450:1;21439:9;21435:17;21428:47;21492:131;21618:4;21492:131;:::i;:::-;21484:139;;21211:419;;;:::o;21636:162::-;21776:14;21772:1;21764:6;21760:14;21753:38;21636:162;:::o;21804:366::-;21946:3;21967:67;22031:2;22026:3;21967:67;:::i;:::-;21960:74;;22043:93;22132:3;22043:93;:::i;:::-;22161:2;22156:3;22152:12;22145:19;;21804:366;;;:::o;22176:419::-;22342:4;22380:2;22369:9;22365:18;22357:26;;22429:9;22423:4;22419:20;22415:1;22404:9;22400:17;22393:47;22457:131;22583:4;22457:131;:::i;:::-;22449:139;;22176:419;;;:::o;22601:239::-;22741:34;22737:1;22729:6;22725:14;22718:58;22810:22;22805:2;22797:6;22793:15;22786:47;22601:239;:::o;22846:366::-;22988:3;23009:67;23073:2;23068:3;23009:67;:::i;:::-;23002:74;;23085:93;23174:3;23085:93;:::i;:::-;23203:2;23198:3;23194:12;23187:19;;22846:366;;;:::o;23218:419::-;23384:4;23422:2;23411:9;23407:18;23399:26;;23471:9;23465:4;23461:20;23457:1;23446:9;23442:17;23435:47;23499:131;23625:4;23499:131;:::i;:::-;23491:139;;23218:419;;;:::o;23643:194::-;23683:4;23703:20;23721:1;23703:20;:::i;:::-;23698:25;;23737:20;23755:1;23737:20;:::i;:::-;23732:25;;23781:1;23778;23774:9;23766:17;;23805:1;23799:4;23796:11;23793:37;;;23810:18;;:::i;:::-;23793:37;23643:194;;;;:::o;23843:143::-;23900:5;23931:6;23925:13;23916:22;;23947:33;23974:5;23947:33;:::i;:::-;23843:143;;;;:::o;23992:351::-;24062:6;24111:2;24099:9;24090:7;24086:23;24082:32;24079:119;;;24117:79;;:::i;:::-;24079:119;24237:1;24262:64;24318:7;24309:6;24298:9;24294:22;24262:64;:::i;:::-;24252:74;;24208:128;23992:351;;;;:::o;24349:85::-;24394:7;24423:5;24412:16;;24349:85;;;:::o;24440:158::-;24498:9;24531:61;24549:42;24558:32;24584:5;24558:32;:::i;:::-;24549:42;:::i;:::-;24531:61;:::i;:::-;24518:74;;24440:158;;;:::o;24604:147::-;24699:45;24738:5;24699:45;:::i;:::-;24694:3;24687:58;24604:147;;:::o;24757:114::-;24824:6;24858:5;24852:12;24842:22;;24757:114;;;:::o;24877:184::-;24976:11;25010:6;25005:3;24998:19;25050:4;25045:3;25041:14;25026:29;;24877:184;;;;:::o;25067:132::-;25134:4;25157:3;25149:11;;25187:4;25182:3;25178:14;25170:22;;25067:132;;;:::o;25205:108::-;25282:24;25300:5;25282:24;:::i;:::-;25277:3;25270:37;25205:108;;:::o;25319:179::-;25388:10;25409:46;25451:3;25443:6;25409:46;:::i;:::-;25487:4;25482:3;25478:14;25464:28;;25319:179;;;;:::o;25504:113::-;25574:4;25606;25601:3;25597:14;25589:22;;25504:113;;;:::o;25653:732::-;25772:3;25801:54;25849:5;25801:54;:::i;:::-;25871:86;25950:6;25945:3;25871:86;:::i;:::-;25864:93;;25981:56;26031:5;25981:56;:::i;:::-;26060:7;26091:1;26076:284;26101:6;26098:1;26095:13;26076:284;;;26177:6;26171:13;26204:63;26263:3;26248:13;26204:63;:::i;:::-;26197:70;;26290:60;26343:6;26290:60;:::i;:::-;26280:70;;26136:224;26123:1;26120;26116:9;26111:14;;26076:284;;;26080:14;26376:3;26369:10;;25777:608;;;25653:732;;;;:::o;26391:831::-;26654:4;26692:3;26681:9;26677:19;26669:27;;26706:71;26774:1;26763:9;26759:17;26750:6;26706:71;:::i;:::-;26787:80;26863:2;26852:9;26848:18;26839:6;26787:80;:::i;:::-;26914:9;26908:4;26904:20;26899:2;26888:9;26884:18;26877:48;26942:108;27045:4;27036:6;26942:108;:::i;:::-;26934:116;;27060:72;27128:2;27117:9;27113:18;27104:6;27060:72;:::i;:::-;27142:73;27210:3;27199:9;27195:19;27186:6;27142:73;:::i;:::-;26391:831;;;;;;;;:::o;27228:807::-;27477:4;27515:3;27504:9;27500:19;27492:27;;27529:71;27597:1;27586:9;27582:17;27573:6;27529:71;:::i;:::-;27610:72;27678:2;27667:9;27663:18;27654:6;27610:72;:::i;:::-;27692:80;27768:2;27757:9;27753:18;27744:6;27692:80;:::i;:::-;27782;27858:2;27847:9;27843:18;27834:6;27782:80;:::i;:::-;27872:73;27940:3;27929:9;27925:19;27916:6;27872:73;:::i;:::-;27955;28023:3;28012:9;28008:19;27999:6;27955:73;:::i;:::-;27228:807;;;;;;;;;:::o;28041:663::-;28129:6;28137;28145;28194:2;28182:9;28173:7;28169:23;28165:32;28162:119;;;28200:79;;:::i;:::-;28162:119;28320:1;28345:64;28401:7;28392:6;28381:9;28377:22;28345:64;:::i;:::-;28335:74;;28291:128;28458:2;28484:64;28540:7;28531:6;28520:9;28516:22;28484:64;:::i;:::-;28474:74;;28429:129;28597:2;28623:64;28679:7;28670:6;28659:9;28655:22;28623:64;:::i;:::-;28613:74;;28568:129;28041:663;;;;;:::o;28710:180::-;28758:77;28755:1;28748:88;28855:4;28852:1;28845:15;28879:4;28876:1;28869:15;28896:185;28936:1;28953:20;28971:1;28953:20;:::i;:::-;28948:25;;28987:20;29005:1;28987:20;:::i;:::-;28982:25;;29026:1;29016:35;;29031:18;;:::i;:::-;29016:35;29073:1;29070;29066:9;29061:14;;28896:185;;;;:::o;29087:410::-;29127:7;29150:20;29168:1;29150:20;:::i;:::-;29145:25;;29184:20;29202:1;29184:20;:::i;:::-;29179:25;;29239:1;29236;29232:9;29261:30;29279:11;29261:30;:::i;:::-;29250:41;;29440:1;29431:7;29427:15;29424:1;29421:22;29401:1;29394:9;29374:83;29351:139;;29470:18;;:::i;:::-;29351:139;29135:362;29087:410;;;;:::o;29503:220::-;29643:34;29639:1;29631:6;29627:14;29620:58;29712:3;29707:2;29699:6;29695:15;29688:28;29503:220;:::o;29729:366::-;29871:3;29892:67;29956:2;29951:3;29892:67;:::i;:::-;29885:74;;29968:93;30057:3;29968:93;:::i;:::-;30086:2;30081:3;30077:12;30070:19;;29729:366;;;:::o;30101:419::-;30267:4;30305:2;30294:9;30290:18;30282:26;;30354:9;30348:4;30344:20;30340:1;30329:9;30325:17;30318:47;30382:131;30508:4;30382:131;:::i;:::-;30374:139;;30101:419;;;:::o;30526:177::-;30666:29;30662:1;30654:6;30650:14;30643:53;30526:177;:::o;30709:366::-;30851:3;30872:67;30936:2;30931:3;30872:67;:::i;:::-;30865:74;;30948:93;31037:3;30948:93;:::i;:::-;31066:2;31061:3;31057:12;31050:19;;30709:366;;;:::o;31081:419::-;31247:4;31285:2;31274:9;31270:18;31262:26;;31334:9;31328:4;31324:20;31320:1;31309:9;31305:17;31298:47;31362:131;31488:4;31362:131;:::i;:::-;31354:139;;31081:419;;;:::o

Swarm Source

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