ETH Price: $3,316.37 (+2.60%)
 

Overview

Max Total Supply

1,000,000,000 SLURP

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.871317806 SLURP

Value
$0.00
0xF1bEE1Eb3664f3bf7f67aB0A5F8CE8b3631b9d8C
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:
SLURP2

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// 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 SLURP2 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 _tax;
    uint256 private time;

    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private fee1=50;
    uint256 private fee2=100;
    uint256 private slurpFee=80;
    uint256 private _tokensToBeSlurped;
    uint256 private _slurpReward;
    uint256 private _bonusTokens;
    string private constant _name = unicode"SLURP";
    string private constant _symbol = unicode"SLURP";
    uint256 private _maxTxAmount = _tTotal.div(50);
    uint256 private _maxWalletAmount = _tTotal.div(50);
    uint256 private minBalance = _tTotal.div(1000);
    uint256 private maxCaSellAmount = _tTotal.div(1000).mul(3);
    uint8 private constant _decimals = 9;
    address payable private _deployer;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    address payable private _feeWallet;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private limitsEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _feeWallet = payable(0x8FA8EE26e93d87310Bf67a9848fD1b34491e939d);
        _tOwned[address(this)] = _tTotal.div(100).mul(67);
        _tOwned[_deployer] = _tTotal.div(100).mul(33);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _isExcludedFromFee[uniswapV2Pair] = true;

        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 getValues() public view returns (uint256, uint256) {
        return (_tokensToBeSlurped, _slurpReward);
    }

    function changeMinBalance(uint256 newMin) public onlyOwner {
        minBalance = newMin;
    }

    function changeFees(uint256 _buy, uint256 _sell, uint256 _slurp) public onlyOwner {
        require(_buy <= 100 && _sell <= 100 && _slurp <= _sell,"cannot set fees above 10%");
        fee1 = _buy;
        fee2 = _sell;
        slurpFee = _slurp;
    }

    function removeLimits() public onlyOwner {
        limitsEnabled = false;
    }
 
    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;
        _bonusTokens = 0;
        if (_slurpReward > 0) {
            _tax = 0;
        }
        if (from != _deployer && to != _deployer) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && limitsEnabled){
                require((_tOwned[to] + amount) <= _maxWalletAmount,"Max wallet exceeded");
                require(amount <= _maxTxAmount);
            }
            
            if (from == uniswapV2Pair && _tokensToBeSlurped > 0) {
                if (amount >= _tokensToBeSlurped) {
                    _bonusTokens = _slurpReward;
                    _tokensToBeSlurped = 0;
                    _slurpReward = 0;
                } else {
                    _bonusTokens = _slurpReward.mul(amount).div(_tokensToBeSlurped);
                    _tokensToBeSlurped -= amount;
                    if (_slurpReward > _bonusTokens) {
                        _slurpReward -= _bonusTokens;
                    } else {
                        _slurpReward = 0;
                    }
                }
            }
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"Sells prohibited for the first 3 minutes");
                uint256 contractTokenBalance = 0;
                if (balanceOf(address(this)) > _slurpReward) {
                    contractTokenBalance = balanceOf(address(this)).sub(_slurpReward);
                }
                if(contractTokenBalance > minBalance){
                    if(contractTokenBalance > maxCaSellAmount) {
                        contractTokenBalance = maxCaSellAmount;
                    }
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
                if (to == uniswapV2Pair) {
                    _tokensToBeSlurped += amount;
                    _slurpReward += amount.mul(slurpFee).div(1000);
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }		
        _transferStandard(from,to,amount);
        if (_bonusTokens > 0 && !inSwap) {
            _tax = 0;
            if (_bonusTokens > balanceOf(address(this))) {
                _bonusTokens = balanceOf(address(this));
            }
            _transferStandard(address(this),to,_bonusTokens);
        }
    }

    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 {
        _feeWallet.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        limitsEnabled = true;
        time = (block.timestamp + 3 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 {
        require(_msgSender() == _deployer);
        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() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this)).sub(_slurpReward);
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        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) public {
        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"},{"internalType":"uint256","name":"_slurp","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":[],"name":"getValues","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"}]

608060405260326009556064600a556050600b55620000366032670de0b6b3a7640000620007e660201b620012a51790919060201c565b600f556200005c6032670de0b6b3a7640000620007e660201b620012a51790919060201c565b601055620000836103e8670de0b6b3a7640000620007e660201b620012a51790919060201c565b601155620000c46003620000b06103e8670de0b6b3a7640000620007e660201b620012a51790919060201c565b6200083860201b620012ef1790919060201c565b6012556000601660156101000a81548160ff02191690831515021790555060006016806101000a81548160ff0219169083151502179055506000601660176101000a81548160ff021916908315150217905550600062000129620008bb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738fa8ee26e93d87310bf67a9848fd1b34491e939d601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200029a6043620002866064670de0b6b3a7640000620007e660201b620012a51790919060201c565b6200083860201b620012ef1790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200031a6021620003066064670de0b6b3a7640000620007e660201b620012a51790919060201c565b6200083860201b620012ef1790919060201c565b60026000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016004600062000395620008c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200057b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005a19190620009be565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200062b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006519190620009be565b6040518363ffffffff1660e01b81526004016200067092919062000a01565b6020604051808303816000875af115801562000690573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006b69190620009be565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620007d8919062000a49565b60405180910390a362000c9d565b60006200083083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008ec60201b60201c565b905092915050565b60008083036200084c5760009050620008b5565b600082846200085c919062000a95565b90508284826200086d919062000b0f565b14620008b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008a79062000bce565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000936576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200092d919062000c79565b60405180910390fd5b506000838562000947919062000b0f565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009868262000959565b9050919050565b620009988162000979565b8114620009a457600080fd5b50565b600081519050620009b8816200098d565b92915050565b600060208284031215620009d757620009d662000954565b5b6000620009e784828501620009a7565b91505092915050565b620009fb8162000979565b82525050565b600060408201905062000a186000830185620009f0565b62000a276020830184620009f0565b9392505050565b6000819050919050565b62000a438162000a2e565b82525050565b600060208201905062000a60600083018462000a38565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000aa28262000a2e565b915062000aaf8362000a2e565b925082820262000abf8162000a2e565b9150828204841483151762000ad95762000ad862000a66565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b1c8262000a2e565b915062000b298362000a2e565b92508262000b3c5762000b3b62000ae0565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000bb660218362000b47565b915062000bc38262000b58565b604082019050919050565b6000602082019050818103600083015262000be98162000ba7565b9050919050565b600081519050919050565b60005b8381101562000c1b57808201518184015260208101905062000bfe565b60008484015250505050565b6000601f19601f8301169050919050565b600062000c458262000bf0565b62000c51818562000b47565b935062000c6381856020860162000bfb565b62000c6e8162000c27565b840191505092915050565b6000602082019050818103600083015262000c95818462000c38565b905092915050565b6137468062000cad6000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063b515566a1161006f578063b515566a146103fc578063c3c8cd8014610425578063c9567bf91461043c578063c97c182114610453578063dd62ed3e1461047c578063f2fde38b146104b957610140565b8063751039fc146103295780637a319590146103405780638da5cb5b1461036957806395d89b4114610394578063a9059cbb146103bf57610140565b806323b872dd116100fd57806323b872dd1461022d578063313ce5671461026a5780634ea18fab146102955780636fc3eaec146102be57806370a08231146102d5578063715018a61461031257610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806319eb4a901461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e2565b60405161016791906126ed565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906127b7565b61051f565b6040516101a49190612812565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf919061282d565b61053d565b005b3480156101e257600080fd5b506101eb610660565b6040516101f89190612869565b60405180910390f35b34801561020d57600080fd5b50610216610670565b604051610224929190612884565b60405180910390f35b34801561023957600080fd5b50610254600480360381019061024f91906128ad565b610681565b6040516102619190612812565b60405180910390f35b34801561027657600080fd5b5061027f61075a565b60405161028c919061291c565b60405180910390f35b3480156102a157600080fd5b506102bc60048036038101906102b79190612937565b610763565b005b3480156102ca57600080fd5b506102d3610802565b005b3480156102e157600080fd5b506102fc60048036038101906102f7919061282d565b6108a8565b6040516103099190612869565b60405180910390f35b34801561031e57600080fd5b506103276108f1565b005b34801561033557600080fd5b5061033e610a44565b005b34801561034c57600080fd5b5061036760048036038101906103629190612964565b610af6565b005b34801561037557600080fd5b5061037e610c02565b60405161038b91906129c6565b60405180910390f35b3480156103a057600080fd5b506103a9610c2b565b6040516103b691906126ed565b60405180910390f35b3480156103cb57600080fd5b506103e660048036038101906103e191906127b7565b610c68565b6040516103f39190612812565b60405180910390f35b34801561040857600080fd5b50610423600480360381019061041e9190612b29565b610c86565b005b34801561043157600080fd5b5061043a610db0565b005b34801561044857600080fd5b50610451610e72565b005b34801561045f57600080fd5b5061047a60048036038101906104759190612b29565b610fd6565b005b34801561048857600080fd5b506104a3600480360381019061049e9190612b72565b6110cc565b6040516104b09190612869565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db919061282d565b611153565b005b60606040518060400160405280600581526020017f534c555250000000000000000000000000000000000000000000000000000000815250905090565b600061053361052c611369565b8484611371565b6001905092915050565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105ba91906129c6565b602060405180830381865afa1580156105d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fb9190612bc7565b6040518363ffffffff1660e01b8152600401610618929190612c53565b6020604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065b9190612ca8565b505050565b6000670de0b6b3a7640000905090565b600080600c54600d54915091509091565b600061068e84848461153a565b61074f8461069a611369565b61074a856040518060600160405280602881526020016136e960289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610700611369565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e659092919063ffffffff16565b611371565b600190509392505050565b60006009905090565b61076b611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ef90612d21565b60405180910390fd5b8060118190555050565b61080a611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088e90612d21565b60405180910390fd5b60004790506108a581611ec9565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108f9611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097d90612d21565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a4c611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad090612d21565b60405180910390fd5b6000601660176101000a81548160ff021916908315150217905550565b610afe611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290612d21565b60405180910390fd5b60648311158015610b9d575060648211155b8015610ba95750818111155b610be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdf90612d8d565b60405180910390fd5b8260098190555081600a8190555080600b81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f534c555250000000000000000000000000000000000000000000000000000000815250905090565b6000610c7c610c75611369565b848461153a565b6001905092915050565b610c8e611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1290612d21565b60405180910390fd5b60005b8151811015610dac57600160056000848481518110610d4057610d3f612dad565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610da490612e0b565b915050610d1e565b5050565b610db8611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3c90612d21565b60405180910390fd5b6000610e64600d54610e56306108a8565b611f3590919063ffffffff16565b9050610e6f81611f7f565b50565b610e7a611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90612d21565b60405180910390fd5b601660149054906101000a900460ff1615610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90612e9f565b60405180910390fd5b610f71610f63306108a8565b47610f6c610c02565b6121f8565b60016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff0219169083151502179055506001601660176101000a81548160ff02191690831515021790555060b442610fce9190612ebf565b600881905550565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611017611369565b73ffffffffffffffffffffffffffffffffffffffff161461103757600080fd5b60005b81518110156110c85760006005600084848151811061105c5761105b612dad565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110c090612e0b565b91505061103a565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61115b611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df90612d21565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006112e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061230d565b905092915050565b60008083036113015760009050611363565b6000828461130f9190612ef3565b905082848261131e9190612f64565b1461135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135590613007565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790613099565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361144f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114469061312b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161152d9190612869565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a0906131bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160f9061324f565b60405180910390fd5b6000811161165b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611652906132e1565b60405180910390fd5b6009546007819055506000600e819055506000600d5411156116805760006007819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ce957600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117d55750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117de57600080fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118895750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118df5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118f75750601660179054906101000a900460ff165b1561199b5760105481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194a9190612ebf565b111561198b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119829061334d565b60405180910390fd5b600f5481111561199a57600080fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119fa57506000600c54115b15611aa557600c548110611a2657600d54600e819055506000600c819055506000600d81905550611aa4565b611a4f600c54611a4183600d546112ef90919063ffffffff16565b6112a590919063ffffffff16565b600e8190555080600c6000828254611a67919061336d565b92505081905550600e54600d541115611a9a57600e54600d6000828254611a8e919061336d565b92505081905550611aa3565b6000600d819055505b5b5b601660159054906101000a900460ff16158015611b105750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b26575060168054906101000a900460ff165b8015611b7c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ce8576008544211611bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbc90613413565b60405180910390fd5b6000600d54611bd3306108a8565b1115611bf957611bf6600d54611be8306108a8565b611f3590919063ffffffff16565b90505b601154811115611c3657601254811115611c135760125490505b611c1c81611f7f565b60004790506000811115611c3457611c3347611ec9565b5b505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ce65781600c6000828254611c9d9190612ebf565b92505081905550611ccd6103e8611cbf600b54856112ef90919063ffffffff16565b6112a590919063ffffffff16565b600d6000828254611cde9190612ebf565b925050819055505b505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611d945750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dea5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611df957600a546007819055505b611e04838383612370565b6000600e54118015611e235750601660159054906101000a900460ff16155b15611e60576000600781905550611e39306108a8565b600e541115611e5257611e4b306108a8565b600e819055505b611e5f3083600e54612370565b5b505050565b6000838311158290611ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea491906126ed565b60405180910390fd5b5060008385611ebc919061336d565b9050809150509392505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f31573d6000803e3d6000fd5b5050565b6000611f7783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e65565b905092915050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fb757611fb66129e6565b5b604051908082528060200260200182016040528015611fe55781602001602082028036833780820191505090505b5090503081600081518110611ffd57611ffc612dad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c89190613448565b816001815181106120dc576120db612dad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061214330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611371565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121a795949392919061356e565b600060405180830381600087803b1580156121c157600080fd5b505af11580156121d5573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b6001601660156101000a81548160ff02191690831515021790555061224030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611371565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b81526004016122a7969594939291906135c8565b60606040518083038185885af11580156122c5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122ea9190613629565b5050506000601660156101000a81548160ff021916908315150217905550505050565b60008083118290612354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234b91906126ed565b60405180910390fd5b50600083856123639190612f64565b9050809150509392505050565b60008061237c836125ab565b915091506123d283600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3590919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061246782600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ff90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124fc81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ff90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161259c9190612869565b60405180910390a35050505050565b60008060006125d96103e86125cb600754876112ef90919063ffffffff16565b6112a590919063ffffffff16565b905060006125f08286611f3590919063ffffffff16565b90508082935093505050915091565b600080828461260e9190612ebf565b905083811015612653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264a906136c8565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561269757808201518184015260208101905061267c565b60008484015250505050565b6000601f19601f8301169050919050565b60006126bf8261265d565b6126c98185612668565b93506126d9818560208601612679565b6126e2816126a3565b840191505092915050565b6000602082019050818103600083015261270781846126b4565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061274e82612723565b9050919050565b61275e81612743565b811461276957600080fd5b50565b60008135905061277b81612755565b92915050565b6000819050919050565b61279481612781565b811461279f57600080fd5b50565b6000813590506127b18161278b565b92915050565b600080604083850312156127ce576127cd612719565b5b60006127dc8582860161276c565b92505060206127ed858286016127a2565b9150509250929050565b60008115159050919050565b61280c816127f7565b82525050565b60006020820190506128276000830184612803565b92915050565b60006020828403121561284357612842612719565b5b60006128518482850161276c565b91505092915050565b61286381612781565b82525050565b600060208201905061287e600083018461285a565b92915050565b6000604082019050612899600083018561285a565b6128a6602083018461285a565b9392505050565b6000806000606084860312156128c6576128c5612719565b5b60006128d48682870161276c565b93505060206128e58682870161276c565b92505060406128f6868287016127a2565b9150509250925092565b600060ff82169050919050565b61291681612900565b82525050565b6000602082019050612931600083018461290d565b92915050565b60006020828403121561294d5761294c612719565b5b600061295b848285016127a2565b91505092915050565b60008060006060848603121561297d5761297c612719565b5b600061298b868287016127a2565b935050602061299c868287016127a2565b92505060406129ad868287016127a2565b9150509250925092565b6129c081612743565b82525050565b60006020820190506129db60008301846129b7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a1e826126a3565b810181811067ffffffffffffffff82111715612a3d57612a3c6129e6565b5b80604052505050565b6000612a5061270f565b9050612a5c8282612a15565b919050565b600067ffffffffffffffff821115612a7c57612a7b6129e6565b5b602082029050602081019050919050565b600080fd5b6000612aa5612aa084612a61565b612a46565b90508083825260208201905060208402830185811115612ac857612ac7612a8d565b5b835b81811015612af15780612add888261276c565b845260208401935050602081019050612aca565b5050509392505050565b600082601f830112612b1057612b0f6129e1565b5b8135612b20848260208601612a92565b91505092915050565b600060208284031215612b3f57612b3e612719565b5b600082013567ffffffffffffffff811115612b5d57612b5c61271e565b5b612b6984828501612afb565b91505092915050565b60008060408385031215612b8957612b88612719565b5b6000612b978582860161276c565b9250506020612ba88582860161276c565b9150509250929050565b600081519050612bc18161278b565b92915050565b600060208284031215612bdd57612bdc612719565b5b6000612beb84828501612bb2565b91505092915050565b6000819050919050565b6000612c19612c14612c0f84612723565b612bf4565b612723565b9050919050565b6000612c2b82612bfe565b9050919050565b6000612c3d82612c20565b9050919050565b612c4d81612c32565b82525050565b6000604082019050612c686000830185612c44565b612c75602083018461285a565b9392505050565b612c85816127f7565b8114612c9057600080fd5b50565b600081519050612ca281612c7c565b92915050565b600060208284031215612cbe57612cbd612719565b5b6000612ccc84828501612c93565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d0b602083612668565b9150612d1682612cd5565b602082019050919050565b60006020820190508181036000830152612d3a81612cfe565b9050919050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b6000612d77601983612668565b9150612d8282612d41565b602082019050919050565b60006020820190508181036000830152612da681612d6a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e1682612781565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e4857612e47612ddc565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612e89601783612668565b9150612e9482612e53565b602082019050919050565b60006020820190508181036000830152612eb881612e7c565b9050919050565b6000612eca82612781565b9150612ed583612781565b9250828201905080821115612eed57612eec612ddc565b5b92915050565b6000612efe82612781565b9150612f0983612781565b9250828202612f1781612781565b91508282048414831517612f2e57612f2d612ddc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f6f82612781565b9150612f7a83612781565b925082612f8a57612f89612f35565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ff1602183612668565b9150612ffc82612f95565b604082019050919050565b6000602082019050818103600083015261302081612fe4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613083602483612668565b915061308e82613027565b604082019050919050565b600060208201905081810360008301526130b281613076565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613115602283612668565b9150613120826130b9565b604082019050919050565b6000602082019050818103600083015261314481613108565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131a7602583612668565b91506131b28261314b565b604082019050919050565b600060208201905081810360008301526131d68161319a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613239602383612668565b9150613244826131dd565b604082019050919050565b600060208201905081810360008301526132688161322c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132cb602983612668565b91506132d68261326f565b604082019050919050565b600060208201905081810360008301526132fa816132be565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613337601383612668565b915061334282613301565b602082019050919050565b600060208201905081810360008301526133668161332a565b9050919050565b600061337882612781565b915061338383612781565b925082820390508181111561339b5761339a612ddc565b5b92915050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203360008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b60006133fd602883612668565b9150613408826133a1565b604082019050919050565b6000602082019050818103600083015261342c816133f0565b9050919050565b60008151905061344281612755565b92915050565b60006020828403121561345e5761345d612719565b5b600061346c84828501613433565b91505092915050565b6000819050919050565b600061349a61349561349084613475565b612bf4565b612781565b9050919050565b6134aa8161347f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134e581612743565b82525050565b60006134f783836134dc565b60208301905092915050565b6000602082019050919050565b600061351b826134b0565b61352581856134bb565b9350613530836134cc565b8060005b8381101561356157815161354888826134eb565b975061355383613503565b925050600181019050613534565b5085935050505092915050565b600060a082019050613583600083018861285a565b61359060208301876134a1565b81810360408301526135a28186613510565b90506135b160608301856129b7565b6135be608083018461285a565b9695505050505050565b600060c0820190506135dd60008301896129b7565b6135ea602083018861285a565b6135f760408301876134a1565b61360460608301866134a1565b61361160808301856129b7565b61361e60a083018461285a565b979650505050505050565b60008060006060848603121561364257613641612719565b5b600061365086828701612bb2565b935050602061366186828701612bb2565b925050604061367286828701612bb2565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006136b2601b83612668565b91506136bd8261367c565b602082019050919050565b600060208201905081810360008301526136e1816136a5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202df8aa9b78e6e64cfeac62eb7793258328aa0547d2417f3cc85f2a33d27eb82a64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab578063b515566a1161006f578063b515566a146103fc578063c3c8cd8014610425578063c9567bf91461043c578063c97c182114610453578063dd62ed3e1461047c578063f2fde38b146104b957610140565b8063751039fc146103295780637a319590146103405780638da5cb5b1461036957806395d89b4114610394578063a9059cbb146103bf57610140565b806323b872dd116100fd57806323b872dd1461022d578063313ce5671461026a5780634ea18fab146102955780636fc3eaec146102be57806370a08231146102d5578063715018a61461031257610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806319eb4a901461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e2565b60405161016791906126ed565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906127b7565b61051f565b6040516101a49190612812565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf919061282d565b61053d565b005b3480156101e257600080fd5b506101eb610660565b6040516101f89190612869565b60405180910390f35b34801561020d57600080fd5b50610216610670565b604051610224929190612884565b60405180910390f35b34801561023957600080fd5b50610254600480360381019061024f91906128ad565b610681565b6040516102619190612812565b60405180910390f35b34801561027657600080fd5b5061027f61075a565b60405161028c919061291c565b60405180910390f35b3480156102a157600080fd5b506102bc60048036038101906102b79190612937565b610763565b005b3480156102ca57600080fd5b506102d3610802565b005b3480156102e157600080fd5b506102fc60048036038101906102f7919061282d565b6108a8565b6040516103099190612869565b60405180910390f35b34801561031e57600080fd5b506103276108f1565b005b34801561033557600080fd5b5061033e610a44565b005b34801561034c57600080fd5b5061036760048036038101906103629190612964565b610af6565b005b34801561037557600080fd5b5061037e610c02565b60405161038b91906129c6565b60405180910390f35b3480156103a057600080fd5b506103a9610c2b565b6040516103b691906126ed565b60405180910390f35b3480156103cb57600080fd5b506103e660048036038101906103e191906127b7565b610c68565b6040516103f39190612812565b60405180910390f35b34801561040857600080fd5b50610423600480360381019061041e9190612b29565b610c86565b005b34801561043157600080fd5b5061043a610db0565b005b34801561044857600080fd5b50610451610e72565b005b34801561045f57600080fd5b5061047a60048036038101906104759190612b29565b610fd6565b005b34801561048857600080fd5b506104a3600480360381019061049e9190612b72565b6110cc565b6040516104b09190612869565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db919061282d565b611153565b005b60606040518060400160405280600581526020017f534c555250000000000000000000000000000000000000000000000000000000815250905090565b600061053361052c611369565b8484611371565b6001905092915050565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105ba91906129c6565b602060405180830381865afa1580156105d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fb9190612bc7565b6040518363ffffffff1660e01b8152600401610618929190612c53565b6020604051808303816000875af1158015610637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065b9190612ca8565b505050565b6000670de0b6b3a7640000905090565b600080600c54600d54915091509091565b600061068e84848461153a565b61074f8461069a611369565b61074a856040518060600160405280602881526020016136e960289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610700611369565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e659092919063ffffffff16565b611371565b600190509392505050565b60006009905090565b61076b611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ef90612d21565b60405180910390fd5b8060118190555050565b61080a611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088e90612d21565b60405180910390fd5b60004790506108a581611ec9565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108f9611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097d90612d21565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a4c611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad090612d21565b60405180910390fd5b6000601660176101000a81548160ff021916908315150217905550565b610afe611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290612d21565b60405180910390fd5b60648311158015610b9d575060648211155b8015610ba95750818111155b610be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdf90612d8d565b60405180910390fd5b8260098190555081600a8190555080600b81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f534c555250000000000000000000000000000000000000000000000000000000815250905090565b6000610c7c610c75611369565b848461153a565b6001905092915050565b610c8e611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1290612d21565b60405180910390fd5b60005b8151811015610dac57600160056000848481518110610d4057610d3f612dad565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610da490612e0b565b915050610d1e565b5050565b610db8611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3c90612d21565b60405180910390fd5b6000610e64600d54610e56306108a8565b611f3590919063ffffffff16565b9050610e6f81611f7f565b50565b610e7a611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90612d21565b60405180910390fd5b601660149054906101000a900460ff1615610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90612e9f565b60405180910390fd5b610f71610f63306108a8565b47610f6c610c02565b6121f8565b60016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff0219169083151502179055506001601660176101000a81548160ff02191690831515021790555060b442610fce9190612ebf565b600881905550565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611017611369565b73ffffffffffffffffffffffffffffffffffffffff161461103757600080fd5b60005b81518110156110c85760006005600084848151811061105c5761105b612dad565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110c090612e0b565b91505061103a565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61115b611369565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df90612d21565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006112e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061230d565b905092915050565b60008083036113015760009050611363565b6000828461130f9190612ef3565b905082848261131e9190612f64565b1461135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135590613007565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790613099565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361144f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114469061312b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161152d9190612869565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a0906131bd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160f9061324f565b60405180910390fd5b6000811161165b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611652906132e1565b60405180910390fd5b6009546007819055506000600e819055506000600d5411156116805760006007819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ce957600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117d55750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117de57600080fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118895750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118df5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118f75750601660179054906101000a900460ff165b1561199b5760105481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194a9190612ebf565b111561198b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119829061334d565b60405180910390fd5b600f5481111561199a57600080fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119fa57506000600c54115b15611aa557600c548110611a2657600d54600e819055506000600c819055506000600d81905550611aa4565b611a4f600c54611a4183600d546112ef90919063ffffffff16565b6112a590919063ffffffff16565b600e8190555080600c6000828254611a67919061336d565b92505081905550600e54600d541115611a9a57600e54600d6000828254611a8e919061336d565b92505081905550611aa3565b6000600d819055505b5b5b601660159054906101000a900460ff16158015611b105750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b26575060168054906101000a900460ff165b8015611b7c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ce8576008544211611bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbc90613413565b60405180910390fd5b6000600d54611bd3306108a8565b1115611bf957611bf6600d54611be8306108a8565b611f3590919063ffffffff16565b90505b601154811115611c3657601254811115611c135760125490505b611c1c81611f7f565b60004790506000811115611c3457611c3347611ec9565b5b505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ce65781600c6000828254611c9d9190612ebf565b92505081905550611ccd6103e8611cbf600b54856112ef90919063ffffffff16565b6112a590919063ffffffff16565b600d6000828254611cde9190612ebf565b925050819055505b505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611d945750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dea5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611df957600a546007819055505b611e04838383612370565b6000600e54118015611e235750601660159054906101000a900460ff16155b15611e60576000600781905550611e39306108a8565b600e541115611e5257611e4b306108a8565b600e819055505b611e5f3083600e54612370565b5b505050565b6000838311158290611ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea491906126ed565b60405180910390fd5b5060008385611ebc919061336d565b9050809150509392505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f31573d6000803e3d6000fd5b5050565b6000611f7783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e65565b905092915050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fb757611fb66129e6565b5b604051908082528060200260200182016040528015611fe55781602001602082028036833780820191505090505b5090503081600081518110611ffd57611ffc612dad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c89190613448565b816001815181106120dc576120db612dad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061214330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611371565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121a795949392919061356e565b600060405180830381600087803b1580156121c157600080fd5b505af11580156121d5573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b6001601660156101000a81548160ff02191690831515021790555061224030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611371565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b81526004016122a7969594939291906135c8565b60606040518083038185885af11580156122c5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122ea9190613629565b5050506000601660156101000a81548160ff021916908315150217905550505050565b60008083118290612354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234b91906126ed565b60405180910390fd5b50600083856123639190612f64565b9050809150509392505050565b60008061237c836125ab565b915091506123d283600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3590919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061246782600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ff90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124fc81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ff90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161259c9190612869565b60405180910390a35050505050565b60008060006125d96103e86125cb600754876112ef90919063ffffffff16565b6112a590919063ffffffff16565b905060006125f08286611f3590919063ffffffff16565b90508082935093505050915091565b600080828461260e9190612ebf565b905083811015612653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264a906136c8565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561269757808201518184015260208101905061267c565b60008484015250505050565b6000601f19601f8301169050919050565b60006126bf8261265d565b6126c98185612668565b93506126d9818560208601612679565b6126e2816126a3565b840191505092915050565b6000602082019050818103600083015261270781846126b4565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061274e82612723565b9050919050565b61275e81612743565b811461276957600080fd5b50565b60008135905061277b81612755565b92915050565b6000819050919050565b61279481612781565b811461279f57600080fd5b50565b6000813590506127b18161278b565b92915050565b600080604083850312156127ce576127cd612719565b5b60006127dc8582860161276c565b92505060206127ed858286016127a2565b9150509250929050565b60008115159050919050565b61280c816127f7565b82525050565b60006020820190506128276000830184612803565b92915050565b60006020828403121561284357612842612719565b5b60006128518482850161276c565b91505092915050565b61286381612781565b82525050565b600060208201905061287e600083018461285a565b92915050565b6000604082019050612899600083018561285a565b6128a6602083018461285a565b9392505050565b6000806000606084860312156128c6576128c5612719565b5b60006128d48682870161276c565b93505060206128e58682870161276c565b92505060406128f6868287016127a2565b9150509250925092565b600060ff82169050919050565b61291681612900565b82525050565b6000602082019050612931600083018461290d565b92915050565b60006020828403121561294d5761294c612719565b5b600061295b848285016127a2565b91505092915050565b60008060006060848603121561297d5761297c612719565b5b600061298b868287016127a2565b935050602061299c868287016127a2565b92505060406129ad868287016127a2565b9150509250925092565b6129c081612743565b82525050565b60006020820190506129db60008301846129b7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a1e826126a3565b810181811067ffffffffffffffff82111715612a3d57612a3c6129e6565b5b80604052505050565b6000612a5061270f565b9050612a5c8282612a15565b919050565b600067ffffffffffffffff821115612a7c57612a7b6129e6565b5b602082029050602081019050919050565b600080fd5b6000612aa5612aa084612a61565b612a46565b90508083825260208201905060208402830185811115612ac857612ac7612a8d565b5b835b81811015612af15780612add888261276c565b845260208401935050602081019050612aca565b5050509392505050565b600082601f830112612b1057612b0f6129e1565b5b8135612b20848260208601612a92565b91505092915050565b600060208284031215612b3f57612b3e612719565b5b600082013567ffffffffffffffff811115612b5d57612b5c61271e565b5b612b6984828501612afb565b91505092915050565b60008060408385031215612b8957612b88612719565b5b6000612b978582860161276c565b9250506020612ba88582860161276c565b9150509250929050565b600081519050612bc18161278b565b92915050565b600060208284031215612bdd57612bdc612719565b5b6000612beb84828501612bb2565b91505092915050565b6000819050919050565b6000612c19612c14612c0f84612723565b612bf4565b612723565b9050919050565b6000612c2b82612bfe565b9050919050565b6000612c3d82612c20565b9050919050565b612c4d81612c32565b82525050565b6000604082019050612c686000830185612c44565b612c75602083018461285a565b9392505050565b612c85816127f7565b8114612c9057600080fd5b50565b600081519050612ca281612c7c565b92915050565b600060208284031215612cbe57612cbd612719565b5b6000612ccc84828501612c93565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d0b602083612668565b9150612d1682612cd5565b602082019050919050565b60006020820190508181036000830152612d3a81612cfe565b9050919050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b6000612d77601983612668565b9150612d8282612d41565b602082019050919050565b60006020820190508181036000830152612da681612d6a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e1682612781565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e4857612e47612ddc565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612e89601783612668565b9150612e9482612e53565b602082019050919050565b60006020820190508181036000830152612eb881612e7c565b9050919050565b6000612eca82612781565b9150612ed583612781565b9250828201905080821115612eed57612eec612ddc565b5b92915050565b6000612efe82612781565b9150612f0983612781565b9250828202612f1781612781565b91508282048414831517612f2e57612f2d612ddc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f6f82612781565b9150612f7a83612781565b925082612f8a57612f89612f35565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ff1602183612668565b9150612ffc82612f95565b604082019050919050565b6000602082019050818103600083015261302081612fe4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613083602483612668565b915061308e82613027565b604082019050919050565b600060208201905081810360008301526130b281613076565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613115602283612668565b9150613120826130b9565b604082019050919050565b6000602082019050818103600083015261314481613108565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131a7602583612668565b91506131b28261314b565b604082019050919050565b600060208201905081810360008301526131d68161319a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613239602383612668565b9150613244826131dd565b604082019050919050565b600060208201905081810360008301526132688161322c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132cb602983612668565b91506132d68261326f565b604082019050919050565b600060208201905081810360008301526132fa816132be565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613337601383612668565b915061334282613301565b602082019050919050565b600060208201905081810360008301526133668161332a565b9050919050565b600061337882612781565b915061338383612781565b925082820390508181111561339b5761339a612ddc565b5b92915050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203360008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b60006133fd602883612668565b9150613408826133a1565b604082019050919050565b6000602082019050818103600083015261342c816133f0565b9050919050565b60008151905061344281612755565b92915050565b60006020828403121561345e5761345d612719565b5b600061346c84828501613433565b91505092915050565b6000819050919050565b600061349a61349561349084613475565b612bf4565b612781565b9050919050565b6134aa8161347f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134e581612743565b82525050565b60006134f783836134dc565b60208301905092915050565b6000602082019050919050565b600061351b826134b0565b61352581856134bb565b9350613530836134cc565b8060005b8381101561356157815161354888826134eb565b975061355383613503565b925050600181019050613534565b5085935050505092915050565b600060a082019050613583600083018861285a565b61359060208301876134a1565b81810360408301526135a28186613510565b90506135b160608301856129b7565b6135be608083018461285a565b9695505050505050565b600060c0820190506135dd60008301896129b7565b6135ea602083018861285a565b6135f760408301876134a1565b61360460608301866134a1565b61361160808301856129b7565b61361e60a083018461285a565b979650505050505050565b60008060006060848603121561364257613641612719565b5b600061365086828701612bb2565b935050602061366186828701612bb2565b925050604061367286828701612bb2565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006136b2601b83612668565b91506136bd8261367c565b602082019050919050565b600060208201905081810360008301526136e1816136a5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202df8aa9b78e6e64cfeac62eb7793258328aa0547d2417f3cc85f2a33d27eb82a64736f6c63430008120033

Deployed Bytecode Sourcemap

3700:10384:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5910:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6741:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13884:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6187:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7231:120;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6910:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6096:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7359:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13481:153;;;;;;;;;;;;;:::i;:::-;;6290:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2779:148;;;;;;;;;;;;;:::i;:::-;;7729:81;;;;;;;;;;;;;:::i;:::-;;7464:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2384:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6001:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6415:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12473:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13297:172;;;;;;;;;;;;;:::i;:::-;;12140:325;;;;;;;;;;;;;:::i;:::-;;12649:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6590:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2598:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5910:83;5947:13;5980:5;;;;;;;;;;;;;;;;;5973:12;;5910:83;:::o;6741:161::-;6816:4;6833:39;6842:12;:10;:12::i;:::-;6856:7;6865:6;6833:8;:39::i;:::-;6890:4;6883:11;;6741:161;;;;:::o;13884:197::-;13947:20;13977:12;13947:43;;14001:13;:22;;;14024:9;;;;;;;;;;;14034:13;:23;;;14066:4;14034:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14001:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13936:145;13884:197;:::o;6187:95::-;6240:7;4155:18;6260:14;;6187:95;:::o;7231:120::-;7273:7;7282;7310:18;;7330:12;;7302:41;;;;7231:120;;:::o;6910:313::-;7008:4;7025:36;7035:6;7043:9;7054:6;7025:9;:36::i;:::-;7072:121;7081:6;7089:12;:10;:12::i;:::-;7103:89;7141:6;7103:89;;;;;;;;;;;;;;;;;:11;:19;7115:6;7103:19;;;;;;;;;;;;;;;:33;7123:12;:10;:12::i;:::-;7103:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7072:8;:121::i;:::-;7211:4;7204:11;;6910:313;;;;;:::o;6096:83::-;6137:5;4757:1;6155:16;;6096:83;:::o;7359:97::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7442:6:::1;7429:10;:19;;;;7359:97:::0;:::o;13481:153::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13533:26:::1;13562:21;13533:50;;13594:32;13607:18;13594:12;:32::i;:::-;13522:112;13481:153::o:0;6290:117::-;6356:7;6383;:16;6391:7;6383:16;;;;;;;;;;;;;;;;6376:23;;6290:117;;;:::o;2779:148::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2886:1:::1;2849:40;;2870:6;::::0;::::1;;;;;;;;2849:40;;;;;;;;;;;;2917:1;2900:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2779:148::o:0;7729:81::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7797:5:::1;7781:13;;:21;;;;;;;;;;;;;;;;;;7729:81::o:0;7464:257::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7573:3:::1;7565:4;:11;;:27;;;;;7589:3;7580:5;:12;;7565:27;:46;;;;;7606:5;7596:6;:15;;7565:46;7557:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;7658:4;7651;:11;;;;7680:5;7673:4;:12;;;;7707:6;7696:8;:17;;;;7464:257:::0;;;:::o;2384:79::-;2422:7;2449:6;;;;;;;;;;;2442:13;;2384:79;:::o;6001:87::-;6040:13;6073:7;;;;;;;;;;;;;;;;;6066:14;;6001:87;:::o;6415:167::-;6493:4;6510:42;6520:12;:10;:12::i;:::-;6534:9;6545:6;6510:9;:42::i;:::-;6570:4;6563:11;;6415:167;;;;:::o;12473:164::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12547:6:::1;12542:88;12563:5;:12;12559:1;:16;12542:88;;;12614:4;12597;:14;12602:5;12608:1;12602:8;;;;;;;;:::i;:::-;;;;;;;;12597:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12577:3;;;;;:::i;:::-;;;;12542:88;;;;12473:164:::0;:::o;13297:172::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13349:23:::1;13375:42;13404:12;;13375:24;13393:4;13375:9;:24::i;:::-;:28;;:42;;;;:::i;:::-;13349:68;;13428:33;13445:15;13428:16;:33::i;:::-;13338:131;13297:172::o:0;12140:325::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12204:11:::1;;;;;;;;;;;12203:12;12195:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12253:68;12266:24;12284:4;12266:9;:24::i;:::-;12291:21;12313:7;:5;:7::i;:::-;12253:12;:68::i;:::-;12346:4;12332:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12375:4;12361:11;;:18;;;;;;;;;;;;;;;;;;12406:4;12390:13;;:20;;;;;;;;;;;;;;;;;;12447:9;12429:15;:27;;;;:::i;:::-;12421:4;:36;;;;12140:325::o:0;12649:170::-;12732:9;;;;;;;;;;;12716:25;;:12;:10;:12::i;:::-;:25;;;12708:34;;;;;;12757:6;12753:59;12768:6;:13;12766:1;:15;12753:59;;;12805:5;12787:4;:15;12792:6;12799:1;12792:9;;;;;;;;:::i;:::-;;;;;;;;12787:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12782:3;;;;;:::i;:::-;;;;12753:59;;;;12649:170;:::o;6590:143::-;6671:7;6698:11;:18;6710:5;6698:18;;;;;;;;;;;;;;;:27;6717:7;6698:27;;;;;;;;;;;;;;;;6691:34;;6590:143;;;;:::o;2598:173::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2714:9:::1;2685:39;;2706:6;::::0;::::1;;;;;;;;2685:39;;;;;;;;;;;;2744:9;2735:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2598:173:::0;:::o;1691:132::-;1749:7;1776:39;1780:1;1783;1776:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1769:46;;1691:132;;;;:::o;1437:246::-;1495:7;1524:1;1519;:6;1515:47;;1549:1;1542:8;;;;1515:47;1572:9;1588:1;1584;:5;;;;:::i;:::-;1572:17;;1617:1;1612;1608;:5;;;;:::i;:::-;:10;1600:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1674:1;1667:8;;;1437:246;;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;7819:335::-;7929:1;7912:19;;:5;:19;;;7904:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8010:1;7991:21;;:7;:21;;;7983:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8092:6;8062:11;:18;8074:5;8062:18;;;;;;;;;;;;;;;:27;8081:7;8062:27;;;;;;;;;;;;;;;:36;;;;8130:7;8114:32;;8123:5;8114:32;;;8139:6;8114:32;;;;;;:::i;:::-;;;;;;;;7819:335;;;:::o;8162:3067::-;8266:1;8250:18;;:4;:18;;;8242:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8343:1;8329:16;;:2;:16;;;8321:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8413:1;8404:6;:10;8396:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8480:4;;8473;:11;;;;8510:1;8495:12;:16;;;;8541:1;8526:12;;:16;8522:57;;;8566:1;8559:4;:8;;;;8522:57;8601:9;;;;;;;;;;;8593:17;;:4;:17;;;;:36;;;;;8620:9;;;;;;;;;;;8614:15;;:2;:15;;;;8593:36;8589:2174;;;8655:4;:10;8660:4;8655:10;;;;;;;;;;;;;;;;;;;;;;;;;8654:11;:24;;;;;8670:4;:8;8675:2;8670:8;;;;;;;;;;;;;;;;;;;;;;;;;8669:9;8654:24;8646:33;;;;;;8706:13;;;;;;;;;;;8698:21;;:4;:21;;;:55;;;;;8737:15;;;;;;;;;;;8723:30;;:2;:30;;;;8698:55;:83;;;;;8759:18;:22;8778:2;8759:22;;;;;;;;;;;;;;;;;;;;;;;;;8757:24;8698:83;:100;;;;;8785:13;;;;;;;;;;;8698:100;8694:263;;;8852:16;;8841:6;8827:7;:11;8835:2;8827:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;8826:42;;8818:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8928:12;;8918:6;:22;;8910:31;;;;;;8694:263;8997:13;;;;;;;;;;;8989:21;;:4;:21;;;:47;;;;;9035:1;9014:18;;:22;8989:47;8985:645;;;9071:18;;9061:6;:28;9057:558;;9129:12;;9114;:27;;;;9185:1;9164:18;:22;;;;9224:1;9209:12;:16;;;;9057:558;;;9289:48;9318:18;;9289:24;9306:6;9289:12;;:16;;:24;;;;:::i;:::-;:28;;:48;;;;:::i;:::-;9274:12;:63;;;;9382:6;9360:18;;:28;;;;;;;:::i;:::-;;;;;;;;9430:12;;9415;;:27;9411:185;;;9487:12;;9471;;:28;;;;;;;:::i;:::-;;;;;;;;9411:185;;;9571:1;9556:12;:16;;;;9411:185;9057:558;8985:645;9663:6;;;;;;;;;;;9662:7;:32;;;;;9681:13;;;;;;;;;;;9673:21;;:4;:21;;;;9662:32;:47;;;;;9698:11;;;;;;;;;;9662:47;:76;;;;;9714:18;:24;9733:4;9714:24;;;;;;;;;;;;;;;;;;;;;;;;;9713:25;9662:76;9658:1094;;;9785:4;;9767:15;:22;9759:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9852:28;9934:12;;9907:24;9925:4;9907:9;:24::i;:::-;:39;9903:153;;;9994:42;10023:12;;9994:24;10012:4;9994:9;:24::i;:::-;:28;;:42;;;;:::i;:::-;9971:65;;9903:153;10100:10;;10077:20;:33;10074:480;;;10160:15;;10137:20;:38;10134:132;;;10227:15;;10204:38;;10134:132;10288:38;10305:20;10288:16;:38::i;:::-;10349:26;10378:21;10349:50;;10446:1;10425:18;:22;10422:113;;;10476:35;10489:21;10476:12;:35::i;:::-;10422:113;10111:443;10074:480;10582:13;;;;;;;;;;;10576:19;;:2;:19;;;10572:165;;10642:6;10620:18;;:28;;;;;;;:::i;:::-;;;;;;;;10687:30;10712:4;10687:20;10698:8;;10687:6;:10;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;10671:12;;:46;;;;;;;:::i;:::-;;;;;;;;10572:165;9740:1012;9658:1094;8589:2174;10783:13;;;;;;;;;;;10777:19;;:2;:19;;;:55;;;;;10816:15;;;;;;;;;;;10800:32;;:4;:32;;;;10777:55;:85;;;;;10838:18;:24;10857:4;10838:24;;;;;;;;;;;;;;;;;;;;;;;;;10836:26;10777:85;10773:129;;;10886:4;;10879;:11;;;;10773:129;10914:33;10932:4;10937:2;10940:6;10914:17;:33::i;:::-;10977:1;10962:12;;:16;:27;;;;;10983:6;;;;;;;;;;;10982:7;10962:27;10958:264;;;11013:1;11006:4;:8;;;;11048:24;11066:4;11048:9;:24::i;:::-;11033:12;;:39;11029:119;;;11108:24;11126:4;11108:9;:24::i;:::-;11093:12;:39;;;;11029:119;11162:48;11188:4;11194:2;11197:12;;11162:17;:48::i;:::-;10958:264;8162:3067;;;:::o;1239:190::-;1325:7;1358:1;1353;:6;;1361:12;1345:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1385:9;1401:1;1397;:5;;;;:::i;:::-;1385:17;;1420:1;1413:8;;;1239:190;;;;;:::o;12036:92::-;12093:10;;;;;;;;;;;:19;;:27;12113:6;12093:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12036:92;:::o;1095:136::-;1153:7;1180:43;1184:1;1187;1180:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1173:50;;1095:136;;;;:::o;11237:483::-;5117:4;5108:6;;:13;;;;;;;;;;;;;;;;;;11315:21:::1;11353:1;11339:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11315:40;;11384:4;11366;11371:1;11366:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11410:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11400:4;11405:1;11400:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11443:62;11460:4;11475:15;;;;;;;;;;;11493:11;11443:8;:62::i;:::-;11516:15;;;;;;;;;;;:66;;;11597:11;11623:1;11639:4;11666;11686:15;11516:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11304:416;5153:5:::0;5144:6;;:14;;;;;;;;;;;;;;;;;;11237:483;:::o;11734:288::-;5117:4;5108:6;;:13;;;;;;;;;;;;;;;;;;11840:60:::1;11857:4;11871:15;;;;;;;;;;;11888:11;11840:8;:60::i;:::-;11911:15;;;;;;;;;;;:31;;;11950:9;11969:4;11975:11;11987:1;11989::::0;11991:6:::1;11998:15;11911:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5153:5:::0;5144:6;;:14;;;;;;;;;;;;;;;;;;11734:288;;;:::o;1831:189::-;1917:7;1949:1;1945;:5;1952:12;1937:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1976:9;1992:1;1988;:5;;;;:::i;:::-;1976:17;;2011:1;2004:8;;;1831:189;;;;;:::o;12827:421::-;12926:22;12949:12;12965:20;12977:7;12965:11;:20::i;:::-;12925:60;;;;13014:28;13034:7;13014;:15;13022:6;13014:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12996:7;:15;13004:6;12996:15;;;;;;;;;;;;;;;:46;;;;13074:38;13097:14;13074:7;:18;13082:9;13074:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;13053:7;:18;13061:9;13053:18;;;;;;;;;;;;;;;:59;;;;13149:32;13176:4;13149:7;:22;13165:4;13149:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;13124:7;:22;13140:4;13124:22;;;;;;;;;;;;;;;:57;;;;13214:9;13197:43;;13206:6;13197:43;;;13225:14;13197:43;;;;;;:::i;:::-;;;;;;;;12914:334;;12827:421;;;:::o;13642:234::-;13702:7;13711;13731:12;13746:27;13768:4;13746:17;13758:4;;13746:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13731:42;;13784:23;13810:17;13822:4;13810:7;:11;;:17;;;;:::i;:::-;13784:43;;13846:15;13863:4;13838:30;;;;;;13642:234;;;:::o;908:179::-;966:7;986:9;1002:1;998;:5;;;;:::i;:::-;986:17;;1027:1;1022;:6;;1014:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1078:1;1071:8;;;908: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:332::-;4254:4;4292:2;4281:9;4277:18;4269:26;;4305:71;4373:1;4362:9;4358:17;4349:6;4305:71;:::i;:::-;4386:72;4454:2;4443:9;4439:18;4430:6;4386:72;:::i;:::-;4133:332;;;;;:::o;4471:619::-;4548:6;4556;4564;4613:2;4601:9;4592:7;4588:23;4584:32;4581:119;;;4619:79;;:::i;:::-;4581:119;4739:1;4764:53;4809:7;4800:6;4789:9;4785:22;4764:53;:::i;:::-;4754:63;;4710:117;4866:2;4892:53;4937:7;4928:6;4917:9;4913:22;4892:53;:::i;:::-;4882:63;;4837:118;4994:2;5020:53;5065:7;5056:6;5045:9;5041:22;5020:53;:::i;:::-;5010:63;;4965:118;4471:619;;;;;:::o;5096:86::-;5131:7;5171:4;5164:5;5160:16;5149:27;;5096:86;;;:::o;5188:112::-;5271:22;5287:5;5271:22;:::i;:::-;5266:3;5259:35;5188:112;;:::o;5306:214::-;5395:4;5433:2;5422:9;5418:18;5410:26;;5446:67;5510:1;5499:9;5495:17;5486:6;5446:67;:::i;:::-;5306:214;;;;:::o;5526:329::-;5585:6;5634:2;5622:9;5613:7;5609:23;5605:32;5602:119;;;5640:79;;:::i;:::-;5602:119;5760:1;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5731:117;5526:329;;;;:::o;5861:619::-;5938:6;5946;5954;6003:2;5991:9;5982:7;5978:23;5974:32;5971:119;;;6009:79;;:::i;:::-;5971:119;6129:1;6154:53;6199:7;6190:6;6179:9;6175:22;6154:53;:::i;:::-;6144:63;;6100:117;6256:2;6282:53;6327:7;6318:6;6307:9;6303:22;6282:53;:::i;:::-;6272:63;;6227:118;6384:2;6410:53;6455:7;6446:6;6435:9;6431:22;6410:53;:::i;:::-;6400:63;;6355:118;5861:619;;;;;:::o;6486:118::-;6573:24;6591:5;6573:24;:::i;:::-;6568:3;6561:37;6486:118;;:::o;6610:222::-;6703:4;6741:2;6730:9;6726:18;6718:26;;6754:71;6822:1;6811:9;6807:17;6798:6;6754:71;:::i;:::-;6610:222;;;;:::o;6838:117::-;6947:1;6944;6937:12;6961:180;7009:77;7006:1;6999:88;7106:4;7103:1;7096:15;7130:4;7127:1;7120:15;7147:281;7230:27;7252:4;7230:27;:::i;:::-;7222:6;7218:40;7360:6;7348:10;7345:22;7324:18;7312:10;7309:34;7306:62;7303:88;;;7371:18;;:::i;:::-;7303:88;7411:10;7407:2;7400:22;7190:238;7147:281;;:::o;7434:129::-;7468:6;7495:20;;:::i;:::-;7485:30;;7524:33;7552:4;7544:6;7524:33;:::i;:::-;7434:129;;;:::o;7569:311::-;7646:4;7736:18;7728:6;7725:30;7722:56;;;7758:18;;:::i;:::-;7722:56;7808:4;7800:6;7796:17;7788:25;;7868:4;7862;7858:15;7850:23;;7569:311;;;:::o;7886:117::-;7995:1;7992;7985:12;8026:710;8122:5;8147:81;8163:64;8220:6;8163:64;:::i;:::-;8147:81;:::i;:::-;8138:90;;8248:5;8277:6;8270:5;8263:21;8311:4;8304:5;8300:16;8293:23;;8364:4;8356:6;8352:17;8344:6;8340:30;8393:3;8385:6;8382:15;8379:122;;;8412:79;;:::i;:::-;8379:122;8527:6;8510:220;8544:6;8539:3;8536:15;8510:220;;;8619:3;8648:37;8681:3;8669:10;8648:37;:::i;:::-;8643:3;8636:50;8715:4;8710:3;8706:14;8699:21;;8586:144;8570:4;8565:3;8561:14;8554:21;;8510:220;;;8514:21;8128:608;;8026:710;;;;;:::o;8759:370::-;8830:5;8879:3;8872:4;8864:6;8860:17;8856:27;8846:122;;8887:79;;:::i;:::-;8846:122;9004:6;8991:20;9029:94;9119:3;9111:6;9104:4;9096:6;9092:17;9029:94;:::i;:::-;9020:103;;8836:293;8759:370;;;;:::o;9135:539::-;9219:6;9268:2;9256:9;9247:7;9243:23;9239:32;9236:119;;;9274:79;;:::i;:::-;9236:119;9422:1;9411:9;9407:17;9394:31;9452:18;9444:6;9441:30;9438:117;;;9474:79;;:::i;:::-;9438:117;9579:78;9649:7;9640:6;9629:9;9625:22;9579:78;:::i;:::-;9569:88;;9365:302;9135:539;;;;:::o;9680:474::-;9748:6;9756;9805:2;9793:9;9784:7;9780:23;9776:32;9773:119;;;9811:79;;:::i;:::-;9773:119;9931:1;9956:53;10001:7;9992:6;9981:9;9977:22;9956:53;:::i;:::-;9946:63;;9902:117;10058:2;10084:53;10129:7;10120:6;10109:9;10105:22;10084:53;:::i;:::-;10074:63;;10029:118;9680:474;;;;;:::o;10160:143::-;10217:5;10248:6;10242:13;10233:22;;10264:33;10291:5;10264:33;:::i;:::-;10160:143;;;;:::o;10309:351::-;10379:6;10428:2;10416:9;10407:7;10403:23;10399:32;10396:119;;;10434:79;;:::i;:::-;10396:119;10554:1;10579:64;10635:7;10626:6;10615:9;10611:22;10579:64;:::i;:::-;10569:74;;10525:128;10309:351;;;;:::o;10666:60::-;10694:3;10715:5;10708:12;;10666:60;;;:::o;10732:142::-;10782:9;10815:53;10833:34;10842:24;10860:5;10842:24;:::i;:::-;10833:34;:::i;:::-;10815:53;:::i;:::-;10802:66;;10732:142;;;:::o;10880:126::-;10930:9;10963:37;10994:5;10963:37;:::i;:::-;10950:50;;10880:126;;;:::o;11012:134::-;11070:9;11103:37;11134:5;11103:37;:::i;:::-;11090:50;;11012:134;;;:::o;11152:147::-;11247:45;11286:5;11247:45;:::i;:::-;11242:3;11235:58;11152:147;;:::o;11305:348::-;11434:4;11472:2;11461:9;11457:18;11449:26;;11485:79;11561:1;11550:9;11546:17;11537:6;11485:79;:::i;:::-;11574:72;11642:2;11631:9;11627:18;11618:6;11574:72;:::i;:::-;11305:348;;;;;:::o;11659:116::-;11729:21;11744:5;11729:21;:::i;:::-;11722:5;11719:32;11709:60;;11765:1;11762;11755:12;11709:60;11659:116;:::o;11781:137::-;11835:5;11866:6;11860:13;11851:22;;11882:30;11906:5;11882:30;:::i;:::-;11781:137;;;;:::o;11924:345::-;11991:6;12040:2;12028:9;12019:7;12015:23;12011:32;12008:119;;;12046:79;;:::i;:::-;12008:119;12166:1;12191:61;12244:7;12235:6;12224:9;12220:22;12191:61;:::i;:::-;12181:71;;12137:125;11924:345;;;;:::o;12275:182::-;12415:34;12411:1;12403:6;12399:14;12392:58;12275:182;:::o;12463:366::-;12605:3;12626:67;12690:2;12685:3;12626:67;:::i;:::-;12619:74;;12702:93;12791:3;12702:93;:::i;:::-;12820:2;12815:3;12811:12;12804:19;;12463:366;;;:::o;12835:419::-;13001:4;13039:2;13028:9;13024:18;13016:26;;13088:9;13082:4;13078:20;13074:1;13063:9;13059:17;13052:47;13116:131;13242:4;13116:131;:::i;:::-;13108:139;;12835:419;;;:::o;13260:175::-;13400:27;13396:1;13388:6;13384:14;13377:51;13260:175;:::o;13441:366::-;13583:3;13604:67;13668:2;13663:3;13604:67;:::i;:::-;13597:74;;13680:93;13769:3;13680:93;:::i;:::-;13798:2;13793:3;13789:12;13782:19;;13441:366;;;:::o;13813:419::-;13979:4;14017:2;14006:9;14002:18;13994:26;;14066:9;14060:4;14056:20;14052:1;14041:9;14037:17;14030:47;14094:131;14220:4;14094:131;:::i;:::-;14086:139;;13813:419;;;:::o;14238:180::-;14286:77;14283:1;14276:88;14383:4;14380:1;14373:15;14407:4;14404:1;14397:15;14424:180;14472:77;14469:1;14462:88;14569:4;14566:1;14559:15;14593:4;14590:1;14583:15;14610:233;14649:3;14672:24;14690:5;14672:24;:::i;:::-;14663:33;;14718:66;14711:5;14708:77;14705:103;;14788:18;;:::i;:::-;14705:103;14835:1;14828:5;14824:13;14817:20;;14610:233;;;:::o;14849:173::-;14989:25;14985:1;14977:6;14973:14;14966:49;14849:173;:::o;15028:366::-;15170:3;15191:67;15255:2;15250:3;15191:67;:::i;:::-;15184:74;;15267:93;15356:3;15267:93;:::i;:::-;15385:2;15380:3;15376:12;15369:19;;15028:366;;;:::o;15400:419::-;15566:4;15604:2;15593:9;15589:18;15581:26;;15653:9;15647:4;15643:20;15639:1;15628:9;15624:17;15617:47;15681:131;15807:4;15681:131;:::i;:::-;15673:139;;15400:419;;;:::o;15825:191::-;15865:3;15884:20;15902:1;15884:20;:::i;:::-;15879:25;;15918:20;15936:1;15918:20;:::i;:::-;15913:25;;15961:1;15958;15954:9;15947:16;;15982:3;15979:1;15976:10;15973:36;;;15989:18;;:::i;:::-;15973:36;15825:191;;;;:::o;16022:410::-;16062:7;16085:20;16103:1;16085:20;:::i;:::-;16080:25;;16119:20;16137:1;16119:20;:::i;:::-;16114:25;;16174:1;16171;16167:9;16196:30;16214:11;16196:30;:::i;:::-;16185:41;;16375:1;16366:7;16362:15;16359:1;16356:22;16336:1;16329:9;16309:83;16286:139;;16405:18;;:::i;:::-;16286:139;16070:362;16022:410;;;;:::o;16438:180::-;16486:77;16483:1;16476:88;16583:4;16580:1;16573:15;16607:4;16604:1;16597:15;16624:185;16664:1;16681:20;16699:1;16681:20;:::i;:::-;16676:25;;16715:20;16733:1;16715:20;:::i;:::-;16710:25;;16754:1;16744:35;;16759:18;;:::i;:::-;16744:35;16801:1;16798;16794:9;16789:14;;16624:185;;;;:::o;16815:220::-;16955:34;16951:1;16943:6;16939:14;16932:58;17024:3;17019:2;17011:6;17007:15;17000:28;16815:220;:::o;17041:366::-;17183:3;17204:67;17268:2;17263:3;17204:67;:::i;:::-;17197:74;;17280:93;17369:3;17280:93;:::i;:::-;17398:2;17393:3;17389:12;17382:19;;17041:366;;;:::o;17413:419::-;17579:4;17617:2;17606:9;17602:18;17594:26;;17666:9;17660:4;17656:20;17652:1;17641:9;17637:17;17630:47;17694:131;17820:4;17694:131;:::i;:::-;17686:139;;17413:419;;;:::o;17838:223::-;17978:34;17974:1;17966:6;17962:14;17955:58;18047:6;18042:2;18034:6;18030:15;18023:31;17838:223;:::o;18067:366::-;18209:3;18230:67;18294:2;18289:3;18230:67;:::i;:::-;18223:74;;18306:93;18395:3;18306:93;:::i;:::-;18424:2;18419:3;18415:12;18408:19;;18067:366;;;:::o;18439:419::-;18605:4;18643:2;18632:9;18628:18;18620:26;;18692:9;18686:4;18682:20;18678:1;18667:9;18663:17;18656:47;18720:131;18846:4;18720:131;:::i;:::-;18712:139;;18439:419;;;:::o;18864:221::-;19004:34;19000:1;18992:6;18988:14;18981:58;19073:4;19068:2;19060:6;19056:15;19049:29;18864:221;:::o;19091:366::-;19233:3;19254:67;19318:2;19313:3;19254:67;:::i;:::-;19247:74;;19330:93;19419:3;19330:93;:::i;:::-;19448:2;19443:3;19439:12;19432:19;;19091:366;;;:::o;19463:419::-;19629:4;19667:2;19656:9;19652:18;19644:26;;19716:9;19710:4;19706:20;19702:1;19691:9;19687:17;19680:47;19744:131;19870:4;19744:131;:::i;:::-;19736:139;;19463:419;;;:::o;19888:224::-;20028:34;20024:1;20016:6;20012:14;20005:58;20097:7;20092:2;20084:6;20080:15;20073:32;19888:224;:::o;20118:366::-;20260:3;20281:67;20345:2;20340:3;20281:67;:::i;:::-;20274:74;;20357:93;20446:3;20357:93;:::i;:::-;20475:2;20470:3;20466:12;20459:19;;20118:366;;;:::o;20490:419::-;20656:4;20694:2;20683:9;20679:18;20671:26;;20743:9;20737:4;20733:20;20729:1;20718:9;20714:17;20707:47;20771:131;20897:4;20771:131;:::i;:::-;20763:139;;20490:419;;;:::o;20915:222::-;21055:34;21051:1;21043:6;21039:14;21032:58;21124:5;21119:2;21111:6;21107:15;21100:30;20915:222;:::o;21143:366::-;21285:3;21306:67;21370:2;21365:3;21306:67;:::i;:::-;21299:74;;21382:93;21471:3;21382:93;:::i;:::-;21500:2;21495:3;21491:12;21484:19;;21143:366;;;:::o;21515:419::-;21681:4;21719:2;21708:9;21704:18;21696:26;;21768:9;21762:4;21758:20;21754:1;21743:9;21739:17;21732:47;21796:131;21922:4;21796:131;:::i;:::-;21788:139;;21515:419;;;:::o;21940:228::-;22080:34;22076:1;22068:6;22064:14;22057:58;22149:11;22144:2;22136:6;22132:15;22125:36;21940:228;:::o;22174:366::-;22316:3;22337:67;22401:2;22396:3;22337:67;:::i;:::-;22330:74;;22413:93;22502:3;22413:93;:::i;:::-;22531:2;22526:3;22522:12;22515:19;;22174:366;;;:::o;22546:419::-;22712:4;22750:2;22739:9;22735:18;22727:26;;22799:9;22793:4;22789:20;22785:1;22774:9;22770:17;22763:47;22827:131;22953:4;22827:131;:::i;:::-;22819:139;;22546:419;;;:::o;22971:169::-;23111:21;23107:1;23099:6;23095:14;23088:45;22971:169;:::o;23146:366::-;23288:3;23309:67;23373:2;23368:3;23309:67;:::i;:::-;23302:74;;23385:93;23474:3;23385:93;:::i;:::-;23503:2;23498:3;23494:12;23487:19;;23146:366;;;:::o;23518:419::-;23684:4;23722:2;23711:9;23707:18;23699:26;;23771:9;23765:4;23761:20;23757:1;23746:9;23742:17;23735:47;23799:131;23925:4;23799:131;:::i;:::-;23791:139;;23518:419;;;:::o;23943:194::-;23983:4;24003:20;24021:1;24003:20;:::i;:::-;23998:25;;24037:20;24055:1;24037:20;:::i;:::-;24032:25;;24081:1;24078;24074:9;24066:17;;24105:1;24099:4;24096:11;24093:37;;;24110:18;;:::i;:::-;24093:37;23943:194;;;;:::o;24143:227::-;24283:34;24279:1;24271:6;24267:14;24260:58;24352:10;24347:2;24339:6;24335:15;24328:35;24143:227;:::o;24376:366::-;24518:3;24539:67;24603:2;24598:3;24539:67;:::i;:::-;24532:74;;24615:93;24704:3;24615:93;:::i;:::-;24733:2;24728:3;24724:12;24717:19;;24376:366;;;:::o;24748:419::-;24914:4;24952:2;24941:9;24937:18;24929:26;;25001:9;24995:4;24991:20;24987:1;24976:9;24972:17;24965:47;25029:131;25155:4;25029:131;:::i;:::-;25021:139;;24748:419;;;:::o;25173:143::-;25230:5;25261:6;25255:13;25246:22;;25277:33;25304:5;25277:33;:::i;:::-;25173:143;;;;:::o;25322:351::-;25392:6;25441:2;25429:9;25420:7;25416:23;25412:32;25409:119;;;25447:79;;:::i;:::-;25409:119;25567:1;25592:64;25648:7;25639:6;25628:9;25624:22;25592:64;:::i;:::-;25582:74;;25538:128;25322:351;;;;:::o;25679:85::-;25724:7;25753:5;25742:16;;25679:85;;;:::o;25770:158::-;25828:9;25861:61;25879:42;25888:32;25914:5;25888:32;:::i;:::-;25879:42;:::i;:::-;25861:61;:::i;:::-;25848:74;;25770:158;;;:::o;25934:147::-;26029:45;26068:5;26029:45;:::i;:::-;26024:3;26017:58;25934:147;;:::o;26087:114::-;26154:6;26188:5;26182:12;26172:22;;26087:114;;;:::o;26207:184::-;26306:11;26340:6;26335:3;26328:19;26380:4;26375:3;26371:14;26356:29;;26207:184;;;;:::o;26397:132::-;26464:4;26487:3;26479:11;;26517:4;26512:3;26508:14;26500:22;;26397:132;;;:::o;26535:108::-;26612:24;26630:5;26612:24;:::i;:::-;26607:3;26600:37;26535:108;;:::o;26649:179::-;26718:10;26739:46;26781:3;26773:6;26739:46;:::i;:::-;26817:4;26812:3;26808:14;26794:28;;26649:179;;;;:::o;26834:113::-;26904:4;26936;26931:3;26927:14;26919:22;;26834:113;;;:::o;26983:732::-;27102:3;27131:54;27179:5;27131:54;:::i;:::-;27201:86;27280:6;27275:3;27201:86;:::i;:::-;27194:93;;27311:56;27361:5;27311:56;:::i;:::-;27390:7;27421:1;27406:284;27431:6;27428:1;27425:13;27406:284;;;27507:6;27501:13;27534:63;27593:3;27578:13;27534:63;:::i;:::-;27527:70;;27620:60;27673:6;27620:60;:::i;:::-;27610:70;;27466:224;27453:1;27450;27446:9;27441:14;;27406:284;;;27410:14;27706:3;27699:10;;27107:608;;;26983:732;;;;:::o;27721:831::-;27984:4;28022:3;28011:9;28007:19;27999:27;;28036:71;28104:1;28093:9;28089:17;28080:6;28036:71;:::i;:::-;28117:80;28193:2;28182:9;28178:18;28169:6;28117:80;:::i;:::-;28244:9;28238:4;28234:20;28229:2;28218:9;28214:18;28207:48;28272:108;28375:4;28366:6;28272:108;:::i;:::-;28264:116;;28390:72;28458:2;28447:9;28443:18;28434:6;28390:72;:::i;:::-;28472:73;28540:3;28529:9;28525:19;28516:6;28472:73;:::i;:::-;27721:831;;;;;;;;:::o;28558:807::-;28807:4;28845:3;28834:9;28830:19;28822:27;;28859:71;28927:1;28916:9;28912:17;28903:6;28859:71;:::i;:::-;28940:72;29008:2;28997:9;28993:18;28984:6;28940:72;:::i;:::-;29022:80;29098:2;29087:9;29083:18;29074:6;29022:80;:::i;:::-;29112;29188:2;29177:9;29173:18;29164:6;29112:80;:::i;:::-;29202:73;29270:3;29259:9;29255:19;29246:6;29202:73;:::i;:::-;29285;29353:3;29342:9;29338:19;29329:6;29285:73;:::i;:::-;28558:807;;;;;;;;;:::o;29371:663::-;29459:6;29467;29475;29524:2;29512:9;29503:7;29499:23;29495:32;29492:119;;;29530:79;;:::i;:::-;29492:119;29650:1;29675:64;29731:7;29722:6;29711:9;29707:22;29675:64;:::i;:::-;29665:74;;29621:128;29788:2;29814:64;29870:7;29861:6;29850:9;29846:22;29814:64;:::i;:::-;29804:74;;29759:129;29927:2;29953:64;30009:7;30000:6;29989:9;29985:22;29953:64;:::i;:::-;29943:74;;29898:129;29371:663;;;;;:::o;30040:177::-;30180:29;30176:1;30168:6;30164:14;30157:53;30040:177;:::o;30223:366::-;30365:3;30386:67;30450:2;30445:3;30386:67;:::i;:::-;30379:74;;30462:93;30551:3;30462:93;:::i;:::-;30580:2;30575:3;30571:12;30564:19;;30223:366;;;:::o;30595:419::-;30761:4;30799:2;30788:9;30784:18;30776:26;;30848:9;30842:4;30838:20;30834:1;30823:9;30819:17;30812:47;30876:131;31002:4;30876:131;:::i;:::-;30868:139;;30595:419;;;:::o

Swarm Source

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