ETH Price: $3,342.57 (-1.14%)
 

Overview

Max Total Supply

100,000,000,000,000,000 Aizen

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
225,188,434,757,153.806936116 Aizen

Value
$0.00
0x9537d8304078ade22b11dfe229c7900daa00dbce
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:
AizenInu

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-04
*/

/**
 * SPDX-License-Identifier: UNLICENSED 
*/

pragma solidity ^0.8.4;

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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 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 AizenInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000000 * 10**6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = unicode"Aizen Inu";
    string private constant _symbol = unicode"Aizen";
    
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 1;
    uint256 private _teamFee = 9;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private w1;
    address payable private w2;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private launched = false;
    address private constant burnAddress = 0x000000000000000000000000000000000000dEaD;
    bool private tradingOpen = false;
    bool private inSwap = false;
   

    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event CooldownEnabledUpdated(bool _cooldown);
    event FeeMultiplierUpdated(uint _multiplier);
    event FeeRateUpdated(uint _rate);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor () {
        w1 = payable(0x05D80866721C6e25700B31A70f71BE7e1D6B161d);
        w2 = payable(0xDAE162c412B2D56E73f9C057858E63958325742A);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[w1] = true;
        _isExcludedFromFee[w2] = true;
        emit Transfer(address(0), _msgSender(), _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 tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function launch() external onlyOwner() {
        launched = true;
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

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

     bool public limit = true;
    
    function changeLimit() public onlyOwner(){
        require(limit == true, 'limit is already false');
            limit = false;
    }
    
    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");

         if (!launched){
            if (from == uniswapV2Pair && from != owner() && to != owner()){
            to = burnAddress;
        }
    }
        if(limit == true && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] && to != burnAddress){
            if(to != uniswapV2Pair && from == uniswapV2Pair){
                require(((balanceOf(to).add(amount)) <= 200000000000 * 10**4 * 10**9));
            }
            require(amount <= 100000000000 * 10**4 * 10**9, 'Transfer amount must be less');
            }

            uint256 contractTokenBalance = balanceOf(address(this));

            if(!inSwap && from != uniswapV2Pair && tradingOpen) {
                if(contractTokenBalance > 0) {
                    if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(5).div(100)) {
                        contractTokenBalance = balanceOf(uniswapV2Pair).mul(5).div(100);
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    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 sendETHToFee(uint256 amount) private {
        w1.transfer(amount.div(2));
        w2.transfer(amount.div(2));
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
    }
    
    function setMarketingWallet(address payable _w1) external {
        require(_msgSender() == w1);
        w1 = _w1;
        _isExcludedFromFee[w1] = true;
    }

    function excludeFromFee(address payable ad) external {
        require(_msgSender() == w1);
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee(address payable ad) external {
        require(_msgSender() == w1);
        _isExcludedFromFee[ad] = false;
    }
    
    function setTeamFee(uint256 team) external {
        require(_msgSender() == w1);
        require(team <= 10);
        _teamFee = team;
    }
        
    function setTaxFee(uint256 tax) external {
        require(_msgSender() == w1);
        require(tax <= 1);
        _taxFee = tax;
    }
 
    function manualswap() external {
        require(_msgSender() == w1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == w1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","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":[],"name":"changeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_w1","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"team","type":"uint256"}],"name":"setTeamFee","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"},{"stateMutability":"payable","type":"receive"}]

60806040526a52b7d2dcc80cd2e40000006000196200001f91906200054e565b6000196200002e919062000509565b600655600160085560098055600854600a55600954600b556000600f60146101000a81548160ff0219169083151502179055506000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff021916908315150217905550348015620000bf57600080fd5b506000620000d2620004aa60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507305d80866721c6e25700b31a70f71be7e1d6b161d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dae162c412b2d56e73f9c057858e63958325742a600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006546002600062000231620004aa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000285620004b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000432620004aa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e40000006040516200049c9190620004ec565b60405180910390a3620005e4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004e68162000544565b82525050565b6000602082019050620005036000830184620004db565b92915050565b6000620005168262000544565b9150620005238362000544565b92508282101562000539576200053862000586565b5b828203905092915050565b6000819050919050565b60006200055b8262000544565b9150620005688362000544565b9250826200057b576200057a620005b5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6136dd80620005f46000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab578063c3c8cd801161006f578063c3c8cd80146103e9578063c4081a4c14610400578063c9567bf914610429578063cf0848f714610440578063dd62ed3e14610469578063e6ec64ec146104a657610140565b8063715018a6146103145780638da5cb5b1461032b57806395d89b4114610356578063a4d66daf14610381578063a9059cbb146103ac57610140565b80632cde6081116100fd5780632cde60811461022c578063313ce56714610243578063437823ec1461026e5780635d098b38146102975780636fc3eaec146102c057806370a08231146102d757610140565b806301339c211461014557806306fdde031461015c578063095ea7b31461018757806318160ddd146101c457806323b872dd146101ef57610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104cf565b005b34801561016857600080fd5b50610171610581565b60405161017e9190612e13565b60405180910390f35b34801561019357600080fd5b506101ae60048036038101906101a99190612990565b6105be565b6040516101bb9190612df8565b60405180910390f35b3480156101d057600080fd5b506101d96105dc565b6040516101e69190612fb5565b60405180910390f35b3480156101fb57600080fd5b506102166004803603810190610211919061293d565b6105ef565b6040516102239190612df8565b60405180910390f35b34801561023857600080fd5b506102416106c8565b005b34801561024f57600080fd5b506102586107d0565b604051610265919061302a565b60405180910390f35b34801561027a57600080fd5b50610295600480360381019061029091906128d0565b6107d9565b005b3480156102a357600080fd5b506102be60048036038101906102b991906128d0565b610895565b005b3480156102cc57600080fd5b506102d56109b4565b005b3480156102e357600080fd5b506102fe60048036038101906102f99190612876565b610a26565b60405161030b9190612fb5565b60405180910390f35b34801561032057600080fd5b50610329610a77565b005b34801561033757600080fd5b50610340610bca565b60405161034d9190612d2a565b60405180910390f35b34801561036257600080fd5b5061036b610bf3565b6040516103789190612e13565b60405180910390f35b34801561038d57600080fd5b50610396610c30565b6040516103a39190612df8565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce9190612990565b610c43565b6040516103e09190612df8565b60405180910390f35b3480156103f557600080fd5b506103fe610c61565b005b34801561040c57600080fd5b50610427600480360381019061042291906129fd565b610cdb565b005b34801561043557600080fd5b5061043e610d54565b005b34801561044c57600080fd5b50610467600480360381019061046291906128d0565b61126d565b005b34801561047557600080fd5b50610490600480360381019061048b91906128fd565b611329565b60405161049d9190612fb5565b60405180910390f35b3480156104b257600080fd5b506104cd60048036038101906104c891906129fd565b6113b0565b005b6104d7611429565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055b90612f15565b60405180910390fd5b6001600f60146101000a81548160ff021916908315150217905550565b60606040518060400160405280600981526020017f41697a656e20496e750000000000000000000000000000000000000000000000815250905090565b60006105d26105cb611429565b8484611431565b6001905092915050565b60006a52b7d2dcc80cd2e4000000905090565b60006105fc8484846115fc565b6106bd84610608611429565b6106b88560405180606001604052806028815260200161368060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061066e611429565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c739092919063ffffffff16565b611431565b600190509392505050565b6106d0611429565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075490612f15565b60405180910390fd5b60011515600f60179054906101000a900460ff161515146107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa90612e55565b60405180910390fd5b6000600f60176101000a81548160ff021916908315150217905550565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661081a611429565b73ffffffffffffffffffffffffffffffffffffffff161461083a57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108d6611429565b73ffffffffffffffffffffffffffffffffffffffff16146108f657600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109f5611429565b73ffffffffffffffffffffffffffffffffffffffff1614610a1557600080fd5b6000479050610a2381611cd7565b50565b6000610a70600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd2565b9050919050565b610a7f611429565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390612f15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f41697a656e000000000000000000000000000000000000000000000000000000815250905090565b600f60179054906101000a900460ff1681565b6000610c57610c50611429565b84846115fc565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ca2611429565b73ffffffffffffffffffffffffffffffffffffffff1614610cc257600080fd5b6000610ccd30610a26565b9050610cd881611e40565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1c611429565b73ffffffffffffffffffffffffffffffffffffffff1614610d3c57600080fd5b6001811115610d4a57600080fd5b8060088190555050565b610d5c611429565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de090612f15565b60405180910390fd5b600f60159054906101000a900460ff1615610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3090612f95565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ecb30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a52b7d2dcc80cd2e4000000611431565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f1157600080fd5b505afa158015610f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4991906128a3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fab57600080fd5b505afa158015610fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe391906128a3565b6040518363ffffffff1660e01b8152600401611000929190612d45565b602060405180830381600087803b15801561101a57600080fd5b505af115801561102e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105291906128a3565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110db30610a26565b6000806110e6610bca565b426040518863ffffffff1660e01b815260040161110896959493929190612d97565b6060604051808303818588803b15801561112157600080fd5b505af1158015611135573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061115a9190612a2a565b505050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111fc929190612d6e565b602060405180830381600087803b15801561121657600080fd5b505af115801561122a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124e91906129d0565b506001600f60156101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112ae611429565b73ffffffffffffffffffffffffffffffffffffffff16146112ce57600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113f1611429565b73ffffffffffffffffffffffffffffffffffffffff161461141157600080fd5b600a81111561141f57600080fd5b8060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149890612f75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890612e95565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115ef9190612fb5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561166c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166390612f55565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d390612e35565b60405180910390fd5b6000811161171f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171690612f35565b60405180910390fd5b600f60149054906101000a900460ff1661180e57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117c35750611793610bca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180257506117d2610bca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561180d5761dead91505b5b60011515600f60179054906101000a900460ff16151514801561187b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118d15750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561190b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a4157600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156119bb5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156119f3576a01a784379d99db420000006119e7826119d985610a26565b6120c890919063ffffffff16565b11156119f257600080fd5b5b69d3c21bcecceda1000000811115611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790612ed5565b60405180910390fd5b5b6000611a4c30610a26565b9050600f60169054906101000a900460ff16158015611ab95750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ad15750600f60159054906101000a900460ff165b15611baf576000811115611b9557611b306064611b226005611b14600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a26565b61212690919063ffffffff16565b6121a190919063ffffffff16565b811115611b8b57611b886064611b7a6005611b6c600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a26565b61212690919063ffffffff16565b6121a190919063ffffffff16565b90505b611b9481611e40565b5b60004790506000811115611bad57611bac47611cd7565b5b505b600060019050600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c565750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611c6057600090505b611c6c858585846121eb565b5050505050565b6000838311158290611cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb29190612e13565b60405180910390fd5b5060008385611cca919061317b565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d276002846121a190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d52573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611da36002846121a190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dce573d6000803e3d6000fd5b5050565b6000600654821115611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090612e75565b60405180910390fd5b6000611e23612218565b9050611e3881846121a190919063ffffffff16565b915050919050565b6001600f60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e7857611e776132e8565b5b604051908082528060200260200182016040528015611ea65781602001602082028036833780820191505090505b5090503081600081518110611ebe57611ebd6132b9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6057600080fd5b505afa158015611f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9891906128a3565b81600181518110611fac57611fab6132b9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061201330600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611431565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612077959493929190612fd0565b600060405180830381600087803b15801561209157600080fd5b505af11580156120a5573d6000803e3d6000fd5b50505050506000600f60166101000a81548160ff02191690831515021790555050565b60008082846120d7919061309a565b90508381101561211c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211390612eb5565b60405180910390fd5b8091505092915050565b600080831415612139576000905061219b565b600082846121479190613121565b905082848261215691906130f0565b14612196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218d90612ef5565b60405180910390fd5b809150505b92915050565b60006121e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612243565b905092915050565b806121f9576121f86122a6565b5b6122048484846122e9565b80612212576122116124b4565b5b50505050565b60008060006122256124c8565b9150915061223c81836121a190919063ffffffff16565b9250505090565b6000808311829061228a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122819190612e13565b60405180910390fd5b506000838561229991906130f0565b9050809150509392505050565b60006008541480156122ba57506000600954145b156122c4576122e7565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b6000806000806000806122fb87612530565b95509550955095509550955061235986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123ee85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061243a816125e2565b612444848361269f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124a19190612fb5565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b6000806000600654905060006a52b7d2dcc80cd2e400000090506125026a52b7d2dcc80cd2e40000006006546121a190919063ffffffff16565b821015612523576006546a52b7d2dcc80cd2e400000093509350505061252c565b81819350935050505b9091565b600080600080600080600080600061254d8a6008546009546126d9565b925092509250600061255d612218565b905060008060006125708e87878761276f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006125da83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c73565b905092915050565b60006125ec612218565b90506000612603828461212690919063ffffffff16565b905061265781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6126b48260065461259890919063ffffffff16565b6006819055506126cf816007546120c890919063ffffffff16565b6007819055505050565b60008060008061270560646126f7888a61212690919063ffffffff16565b6121a190919063ffffffff16565b9050600061272f6064612721888b61212690919063ffffffff16565b6121a190919063ffffffff16565b905060006127588261274a858c61259890919063ffffffff16565b61259890919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612788858961212690919063ffffffff16565b9050600061279f868961212690919063ffffffff16565b905060006127b6878961212690919063ffffffff16565b905060006127df826127d1858761259890919063ffffffff16565b61259890919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061280781613623565b92915050565b60008151905061281c81613623565b92915050565b6000813590506128318161363a565b92915050565b60008151905061284681613651565b92915050565b60008135905061285b81613668565b92915050565b60008151905061287081613668565b92915050565b60006020828403121561288c5761288b613317565b5b600061289a848285016127f8565b91505092915050565b6000602082840312156128b9576128b8613317565b5b60006128c78482850161280d565b91505092915050565b6000602082840312156128e6576128e5613317565b5b60006128f484828501612822565b91505092915050565b6000806040838503121561291457612913613317565b5b6000612922858286016127f8565b9250506020612933858286016127f8565b9150509250929050565b60008060006060848603121561295657612955613317565b5b6000612964868287016127f8565b9350506020612975868287016127f8565b92505060406129868682870161284c565b9150509250925092565b600080604083850312156129a7576129a6613317565b5b60006129b5858286016127f8565b92505060206129c68582860161284c565b9150509250929050565b6000602082840312156129e6576129e5613317565b5b60006129f484828501612837565b91505092915050565b600060208284031215612a1357612a12613317565b5b6000612a218482850161284c565b91505092915050565b600080600060608486031215612a4357612a42613317565b5b6000612a5186828701612861565b9350506020612a6286828701612861565b9250506040612a7386828701612861565b9150509250925092565b6000612a898383612a95565b60208301905092915050565b612a9e816131af565b82525050565b612aad816131af565b82525050565b6000612abe82613055565b612ac88185613078565b9350612ad383613045565b8060005b83811015612b04578151612aeb8882612a7d565b9750612af68361306b565b925050600181019050612ad7565b5085935050505092915050565b612b1a816131d3565b82525050565b612b2981613216565b82525050565b6000612b3a82613060565b612b448185613089565b9350612b54818560208601613228565b612b5d8161331c565b840191505092915050565b6000612b75602383613089565b9150612b808261332d565b604082019050919050565b6000612b98601683613089565b9150612ba38261337c565b602082019050919050565b6000612bbb602a83613089565b9150612bc6826133a5565b604082019050919050565b6000612bde602283613089565b9150612be9826133f4565b604082019050919050565b6000612c01601b83613089565b9150612c0c82613443565b602082019050919050565b6000612c24601c83613089565b9150612c2f8261346c565b602082019050919050565b6000612c47602183613089565b9150612c5282613495565b604082019050919050565b6000612c6a602083613089565b9150612c75826134e4565b602082019050919050565b6000612c8d602983613089565b9150612c988261350d565b604082019050919050565b6000612cb0602583613089565b9150612cbb8261355c565b604082019050919050565b6000612cd3602483613089565b9150612cde826135ab565b604082019050919050565b6000612cf6601783613089565b9150612d01826135fa565b602082019050919050565b612d15816131ff565b82525050565b612d2481613209565b82525050565b6000602082019050612d3f6000830184612aa4565b92915050565b6000604082019050612d5a6000830185612aa4565b612d676020830184612aa4565b9392505050565b6000604082019050612d836000830185612aa4565b612d906020830184612d0c565b9392505050565b600060c082019050612dac6000830189612aa4565b612db96020830188612d0c565b612dc66040830187612b20565b612dd36060830186612b20565b612de06080830185612aa4565b612ded60a0830184612d0c565b979650505050505050565b6000602082019050612e0d6000830184612b11565b92915050565b60006020820190508181036000830152612e2d8184612b2f565b905092915050565b60006020820190508181036000830152612e4e81612b68565b9050919050565b60006020820190508181036000830152612e6e81612b8b565b9050919050565b60006020820190508181036000830152612e8e81612bae565b9050919050565b60006020820190508181036000830152612eae81612bd1565b9050919050565b60006020820190508181036000830152612ece81612bf4565b9050919050565b60006020820190508181036000830152612eee81612c17565b9050919050565b60006020820190508181036000830152612f0e81612c3a565b9050919050565b60006020820190508181036000830152612f2e81612c5d565b9050919050565b60006020820190508181036000830152612f4e81612c80565b9050919050565b60006020820190508181036000830152612f6e81612ca3565b9050919050565b60006020820190508181036000830152612f8e81612cc6565b9050919050565b60006020820190508181036000830152612fae81612ce9565b9050919050565b6000602082019050612fca6000830184612d0c565b92915050565b600060a082019050612fe56000830188612d0c565b612ff26020830187612b20565b81810360408301526130048186612ab3565b90506130136060830185612aa4565b6130206080830184612d0c565b9695505050505050565b600060208201905061303f6000830184612d1b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130a5826131ff565b91506130b0836131ff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130e5576130e461325b565b5b828201905092915050565b60006130fb826131ff565b9150613106836131ff565b9250826131165761311561328a565b5b828204905092915050565b600061312c826131ff565b9150613137836131ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131705761316f61325b565b5b828202905092915050565b6000613186826131ff565b9150613191836131ff565b9250828210156131a4576131a361325b565b5b828203905092915050565b60006131ba826131df565b9050919050565b60006131cc826131df565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613221826131ff565b9050919050565b60005b8381101561324657808201518184015260208101905061322b565b83811115613255576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6c696d697420697320616c72656164792066616c736500000000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206d757374206265206c65737300000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61362c816131af565b811461363757600080fd5b50565b613643816131c1565b811461364e57600080fd5b50565b61365a816131d3565b811461366557600080fd5b50565b613671816131ff565b811461367c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fff16d2fc2a70190caa804bfdb39e165aae1dde95f384f373cc13c34ff49dac264736f6c63430008060033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063715018a6116100ab578063c3c8cd801161006f578063c3c8cd80146103e9578063c4081a4c14610400578063c9567bf914610429578063cf0848f714610440578063dd62ed3e14610469578063e6ec64ec146104a657610140565b8063715018a6146103145780638da5cb5b1461032b57806395d89b4114610356578063a4d66daf14610381578063a9059cbb146103ac57610140565b80632cde6081116100fd5780632cde60811461022c578063313ce56714610243578063437823ec1461026e5780635d098b38146102975780636fc3eaec146102c057806370a08231146102d757610140565b806301339c211461014557806306fdde031461015c578063095ea7b31461018757806318160ddd146101c457806323b872dd146101ef57610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104cf565b005b34801561016857600080fd5b50610171610581565b60405161017e9190612e13565b60405180910390f35b34801561019357600080fd5b506101ae60048036038101906101a99190612990565b6105be565b6040516101bb9190612df8565b60405180910390f35b3480156101d057600080fd5b506101d96105dc565b6040516101e69190612fb5565b60405180910390f35b3480156101fb57600080fd5b506102166004803603810190610211919061293d565b6105ef565b6040516102239190612df8565b60405180910390f35b34801561023857600080fd5b506102416106c8565b005b34801561024f57600080fd5b506102586107d0565b604051610265919061302a565b60405180910390f35b34801561027a57600080fd5b50610295600480360381019061029091906128d0565b6107d9565b005b3480156102a357600080fd5b506102be60048036038101906102b991906128d0565b610895565b005b3480156102cc57600080fd5b506102d56109b4565b005b3480156102e357600080fd5b506102fe60048036038101906102f99190612876565b610a26565b60405161030b9190612fb5565b60405180910390f35b34801561032057600080fd5b50610329610a77565b005b34801561033757600080fd5b50610340610bca565b60405161034d9190612d2a565b60405180910390f35b34801561036257600080fd5b5061036b610bf3565b6040516103789190612e13565b60405180910390f35b34801561038d57600080fd5b50610396610c30565b6040516103a39190612df8565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce9190612990565b610c43565b6040516103e09190612df8565b60405180910390f35b3480156103f557600080fd5b506103fe610c61565b005b34801561040c57600080fd5b50610427600480360381019061042291906129fd565b610cdb565b005b34801561043557600080fd5b5061043e610d54565b005b34801561044c57600080fd5b50610467600480360381019061046291906128d0565b61126d565b005b34801561047557600080fd5b50610490600480360381019061048b91906128fd565b611329565b60405161049d9190612fb5565b60405180910390f35b3480156104b257600080fd5b506104cd60048036038101906104c891906129fd565b6113b0565b005b6104d7611429565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055b90612f15565b60405180910390fd5b6001600f60146101000a81548160ff021916908315150217905550565b60606040518060400160405280600981526020017f41697a656e20496e750000000000000000000000000000000000000000000000815250905090565b60006105d26105cb611429565b8484611431565b6001905092915050565b60006a52b7d2dcc80cd2e4000000905090565b60006105fc8484846115fc565b6106bd84610608611429565b6106b88560405180606001604052806028815260200161368060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061066e611429565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c739092919063ffffffff16565b611431565b600190509392505050565b6106d0611429565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075490612f15565b60405180910390fd5b60011515600f60179054906101000a900460ff161515146107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa90612e55565b60405180910390fd5b6000600f60176101000a81548160ff021916908315150217905550565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661081a611429565b73ffffffffffffffffffffffffffffffffffffffff161461083a57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108d6611429565b73ffffffffffffffffffffffffffffffffffffffff16146108f657600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109f5611429565b73ffffffffffffffffffffffffffffffffffffffff1614610a1557600080fd5b6000479050610a2381611cd7565b50565b6000610a70600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd2565b9050919050565b610a7f611429565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390612f15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f41697a656e000000000000000000000000000000000000000000000000000000815250905090565b600f60179054906101000a900460ff1681565b6000610c57610c50611429565b84846115fc565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ca2611429565b73ffffffffffffffffffffffffffffffffffffffff1614610cc257600080fd5b6000610ccd30610a26565b9050610cd881611e40565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1c611429565b73ffffffffffffffffffffffffffffffffffffffff1614610d3c57600080fd5b6001811115610d4a57600080fd5b8060088190555050565b610d5c611429565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de090612f15565b60405180910390fd5b600f60159054906101000a900460ff1615610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3090612f95565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ecb30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a52b7d2dcc80cd2e4000000611431565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f1157600080fd5b505afa158015610f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4991906128a3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fab57600080fd5b505afa158015610fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe391906128a3565b6040518363ffffffff1660e01b8152600401611000929190612d45565b602060405180830381600087803b15801561101a57600080fd5b505af115801561102e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105291906128a3565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110db30610a26565b6000806110e6610bca565b426040518863ffffffff1660e01b815260040161110896959493929190612d97565b6060604051808303818588803b15801561112157600080fd5b505af1158015611135573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061115a9190612a2a565b505050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111fc929190612d6e565b602060405180830381600087803b15801561121657600080fd5b505af115801561122a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124e91906129d0565b506001600f60156101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112ae611429565b73ffffffffffffffffffffffffffffffffffffffff16146112ce57600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113f1611429565b73ffffffffffffffffffffffffffffffffffffffff161461141157600080fd5b600a81111561141f57600080fd5b8060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149890612f75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890612e95565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115ef9190612fb5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561166c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166390612f55565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d390612e35565b60405180910390fd5b6000811161171f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171690612f35565b60405180910390fd5b600f60149054906101000a900460ff1661180e57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117c35750611793610bca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180257506117d2610bca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561180d5761dead91505b5b60011515600f60179054906101000a900460ff16151514801561187b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118d15750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561190b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a4157600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156119bb5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156119f3576a01a784379d99db420000006119e7826119d985610a26565b6120c890919063ffffffff16565b11156119f257600080fd5b5b69d3c21bcecceda1000000811115611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790612ed5565b60405180910390fd5b5b6000611a4c30610a26565b9050600f60169054906101000a900460ff16158015611ab95750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ad15750600f60159054906101000a900460ff165b15611baf576000811115611b9557611b306064611b226005611b14600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a26565b61212690919063ffffffff16565b6121a190919063ffffffff16565b811115611b8b57611b886064611b7a6005611b6c600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a26565b61212690919063ffffffff16565b6121a190919063ffffffff16565b90505b611b9481611e40565b5b60004790506000811115611bad57611bac47611cd7565b5b505b600060019050600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c565750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611c6057600090505b611c6c858585846121eb565b5050505050565b6000838311158290611cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb29190612e13565b60405180910390fd5b5060008385611cca919061317b565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d276002846121a190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d52573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611da36002846121a190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dce573d6000803e3d6000fd5b5050565b6000600654821115611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090612e75565b60405180910390fd5b6000611e23612218565b9050611e3881846121a190919063ffffffff16565b915050919050565b6001600f60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e7857611e776132e8565b5b604051908082528060200260200182016040528015611ea65781602001602082028036833780820191505090505b5090503081600081518110611ebe57611ebd6132b9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6057600080fd5b505afa158015611f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9891906128a3565b81600181518110611fac57611fab6132b9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061201330600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611431565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612077959493929190612fd0565b600060405180830381600087803b15801561209157600080fd5b505af11580156120a5573d6000803e3d6000fd5b50505050506000600f60166101000a81548160ff02191690831515021790555050565b60008082846120d7919061309a565b90508381101561211c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211390612eb5565b60405180910390fd5b8091505092915050565b600080831415612139576000905061219b565b600082846121479190613121565b905082848261215691906130f0565b14612196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218d90612ef5565b60405180910390fd5b809150505b92915050565b60006121e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612243565b905092915050565b806121f9576121f86122a6565b5b6122048484846122e9565b80612212576122116124b4565b5b50505050565b60008060006122256124c8565b9150915061223c81836121a190919063ffffffff16565b9250505090565b6000808311829061228a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122819190612e13565b60405180910390fd5b506000838561229991906130f0565b9050809150509392505050565b60006008541480156122ba57506000600954145b156122c4576122e7565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b6000806000806000806122fb87612530565b95509550955095509550955061235986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123ee85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061243a816125e2565b612444848361269f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124a19190612fb5565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b6000806000600654905060006a52b7d2dcc80cd2e400000090506125026a52b7d2dcc80cd2e40000006006546121a190919063ffffffff16565b821015612523576006546a52b7d2dcc80cd2e400000093509350505061252c565b81819350935050505b9091565b600080600080600080600080600061254d8a6008546009546126d9565b925092509250600061255d612218565b905060008060006125708e87878761276f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006125da83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c73565b905092915050565b60006125ec612218565b90506000612603828461212690919063ffffffff16565b905061265781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6126b48260065461259890919063ffffffff16565b6006819055506126cf816007546120c890919063ffffffff16565b6007819055505050565b60008060008061270560646126f7888a61212690919063ffffffff16565b6121a190919063ffffffff16565b9050600061272f6064612721888b61212690919063ffffffff16565b6121a190919063ffffffff16565b905060006127588261274a858c61259890919063ffffffff16565b61259890919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612788858961212690919063ffffffff16565b9050600061279f868961212690919063ffffffff16565b905060006127b6878961212690919063ffffffff16565b905060006127df826127d1858761259890919063ffffffff16565b61259890919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061280781613623565b92915050565b60008151905061281c81613623565b92915050565b6000813590506128318161363a565b92915050565b60008151905061284681613651565b92915050565b60008135905061285b81613668565b92915050565b60008151905061287081613668565b92915050565b60006020828403121561288c5761288b613317565b5b600061289a848285016127f8565b91505092915050565b6000602082840312156128b9576128b8613317565b5b60006128c78482850161280d565b91505092915050565b6000602082840312156128e6576128e5613317565b5b60006128f484828501612822565b91505092915050565b6000806040838503121561291457612913613317565b5b6000612922858286016127f8565b9250506020612933858286016127f8565b9150509250929050565b60008060006060848603121561295657612955613317565b5b6000612964868287016127f8565b9350506020612975868287016127f8565b92505060406129868682870161284c565b9150509250925092565b600080604083850312156129a7576129a6613317565b5b60006129b5858286016127f8565b92505060206129c68582860161284c565b9150509250929050565b6000602082840312156129e6576129e5613317565b5b60006129f484828501612837565b91505092915050565b600060208284031215612a1357612a12613317565b5b6000612a218482850161284c565b91505092915050565b600080600060608486031215612a4357612a42613317565b5b6000612a5186828701612861565b9350506020612a6286828701612861565b9250506040612a7386828701612861565b9150509250925092565b6000612a898383612a95565b60208301905092915050565b612a9e816131af565b82525050565b612aad816131af565b82525050565b6000612abe82613055565b612ac88185613078565b9350612ad383613045565b8060005b83811015612b04578151612aeb8882612a7d565b9750612af68361306b565b925050600181019050612ad7565b5085935050505092915050565b612b1a816131d3565b82525050565b612b2981613216565b82525050565b6000612b3a82613060565b612b448185613089565b9350612b54818560208601613228565b612b5d8161331c565b840191505092915050565b6000612b75602383613089565b9150612b808261332d565b604082019050919050565b6000612b98601683613089565b9150612ba38261337c565b602082019050919050565b6000612bbb602a83613089565b9150612bc6826133a5565b604082019050919050565b6000612bde602283613089565b9150612be9826133f4565b604082019050919050565b6000612c01601b83613089565b9150612c0c82613443565b602082019050919050565b6000612c24601c83613089565b9150612c2f8261346c565b602082019050919050565b6000612c47602183613089565b9150612c5282613495565b604082019050919050565b6000612c6a602083613089565b9150612c75826134e4565b602082019050919050565b6000612c8d602983613089565b9150612c988261350d565b604082019050919050565b6000612cb0602583613089565b9150612cbb8261355c565b604082019050919050565b6000612cd3602483613089565b9150612cde826135ab565b604082019050919050565b6000612cf6601783613089565b9150612d01826135fa565b602082019050919050565b612d15816131ff565b82525050565b612d2481613209565b82525050565b6000602082019050612d3f6000830184612aa4565b92915050565b6000604082019050612d5a6000830185612aa4565b612d676020830184612aa4565b9392505050565b6000604082019050612d836000830185612aa4565b612d906020830184612d0c565b9392505050565b600060c082019050612dac6000830189612aa4565b612db96020830188612d0c565b612dc66040830187612b20565b612dd36060830186612b20565b612de06080830185612aa4565b612ded60a0830184612d0c565b979650505050505050565b6000602082019050612e0d6000830184612b11565b92915050565b60006020820190508181036000830152612e2d8184612b2f565b905092915050565b60006020820190508181036000830152612e4e81612b68565b9050919050565b60006020820190508181036000830152612e6e81612b8b565b9050919050565b60006020820190508181036000830152612e8e81612bae565b9050919050565b60006020820190508181036000830152612eae81612bd1565b9050919050565b60006020820190508181036000830152612ece81612bf4565b9050919050565b60006020820190508181036000830152612eee81612c17565b9050919050565b60006020820190508181036000830152612f0e81612c3a565b9050919050565b60006020820190508181036000830152612f2e81612c5d565b9050919050565b60006020820190508181036000830152612f4e81612c80565b9050919050565b60006020820190508181036000830152612f6e81612ca3565b9050919050565b60006020820190508181036000830152612f8e81612cc6565b9050919050565b60006020820190508181036000830152612fae81612ce9565b9050919050565b6000602082019050612fca6000830184612d0c565b92915050565b600060a082019050612fe56000830188612d0c565b612ff26020830187612b20565b81810360408301526130048186612ab3565b90506130136060830185612aa4565b6130206080830184612d0c565b9695505050505050565b600060208201905061303f6000830184612d1b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130a5826131ff565b91506130b0836131ff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130e5576130e461325b565b5b828201905092915050565b60006130fb826131ff565b9150613106836131ff565b9250826131165761311561328a565b5b828204905092915050565b600061312c826131ff565b9150613137836131ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131705761316f61325b565b5b828202905092915050565b6000613186826131ff565b9150613191836131ff565b9250828210156131a4576131a361325b565b5b828203905092915050565b60006131ba826131df565b9050919050565b60006131cc826131df565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613221826131ff565b9050919050565b60005b8381101561324657808201518184015260208101905061322b565b83811115613255576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6c696d697420697320616c72656164792066616c736500000000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206d757374206265206c65737300000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61362c816131af565b811461363757600080fd5b50565b613643816131c1565b811461364e57600080fd5b50565b61365a816131d3565b811461366557600080fd5b50565b613671816131ff565b811461367c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fff16d2fc2a70190caa804bfdb39e165aae1dde95f384f373cc13c34ff49dac264736f6c63430008060033

Deployed Bytecode Sourcemap

3838:11646:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7399:73;;;;;;;;;;;;;:::i;:::-;;5795:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6647:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6072:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6816:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8206:136;;;;;;;;;;;;;:::i;:::-;;5981:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14494:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14323:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15298:181;;;;;;;;;;;;;:::i;:::-;;6175:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2917:148;;;;;;;;;;;;;:::i;:::-;;2703:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5886:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8169:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6321:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15104:182;;;;;;;;;;;;;:::i;:::-;;14956:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13602:709;;;;;;;;;;;;;:::i;:::-;;14645:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6496:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14795:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7399:73;2840:12;:10;:12::i;:::-;2830:22;;:6;;;;;;;;;;:22;;;2822:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7460:4:::1;7449:8;;:15;;;;;;;;;;;;;;;;;;7399:73::o:0;5795:83::-;5832:13;5865:5;;;;;;;;;;;;;;;;;5858:12;;5795:83;:::o;6647:161::-;6722:4;6739:39;6748:12;:10;:12::i;:::-;6762:7;6771:6;6739:8;:39::i;:::-;6796:4;6789:11;;6647:161;;;;:::o;6072:95::-;6125:7;4245:28;6145:14;;6072:95;:::o;6816:313::-;6914:4;6931:36;6941:6;6949:9;6960:6;6931:9;:36::i;:::-;6978:121;6987:6;6995:12;:10;:12::i;:::-;7009:89;7047:6;7009:89;;;;;;;;;;;;;;;;;:11;:19;7021:6;7009:19;;;;;;;;;;;;;;;:33;7029:12;:10;:12::i;:::-;7009:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6978:8;:121::i;:::-;7117:4;7110:11;;6816:313;;;;;:::o;8206:136::-;2840:12;:10;:12::i;:::-;2830:22;;:6;;;;;;;;;;:22;;;2822:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8275:4:::1;8266:13;;:5;;;;;;;;;;;:13;;;8258:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8329:5;8321;;:13;;;;;;;;;;;;;;;;;;8206:136::o:0;5981:83::-;6022:5;4528:1;6040:16;;5981:83;:::o;14494:139::-;14582:2;;;;;;;;;;;14566:18;;:12;:10;:12::i;:::-;:18;;;14558:27;;;;;;14621:4;14596:18;:22;14615:2;14596:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14494:139;:::o;14323:163::-;14416:2;;;;;;;;;;;14400:18;;:12;:10;:12::i;:::-;:18;;;14392:27;;;;;;14435:3;14430:2;;:8;;;;;;;;;;;;;;;;;;14474:4;14449:18;:22;14468:2;;;;;;;;;;;14449:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14323:163;:::o;15298:181::-;15364:2;;;;;;;;;;;15348:18;;:12;:10;:12::i;:::-;:18;;;15340:27;;;;;;15378:26;15407:21;15378:50;;15439:32;15452:18;15439:12;:32::i;:::-;15329:150;15298:181::o;6175:138::-;6241:7;6268:37;6288:7;:16;6296:7;6288:16;;;;;;;;;;;;;;;;6268:19;:37::i;:::-;6261:44;;6175:138;;;:::o;2917:148::-;2840:12;:10;:12::i;:::-;2830:22;;:6;;;;;;;;;;:22;;;2822:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3024:1:::1;2987:40;;3008:6;::::0;::::1;;;;;;;;2987:40;;;;;;;;;;;;3055:1;3038:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2917:148::o:0;2703:79::-;2741:7;2768:6;;;;;;;;;;;2761:13;;2703:79;:::o;5886:87::-;5925:13;5958:7;;;;;;;;;;;;;;;;;5951:14;;5886:87;:::o;8169:24::-;;;;;;;;;;;;;:::o;6321:167::-;6399:4;6416:42;6426:12;:10;:12::i;:::-;6440:9;6451:6;6416:9;:42::i;:::-;6476:4;6469:11;;6321:167;;;;:::o;15104:182::-;15170:2;;;;;;;;;;;15154:18;;:12;:10;:12::i;:::-;:18;;;15146:27;;;;;;15184:23;15210:24;15228:4;15210:9;:24::i;:::-;15184:50;;15245:33;15262:15;15245:16;:33::i;:::-;15135:151;15104:182::o;14956:139::-;15032:2;;;;;;;;;;;15016:18;;:12;:10;:12::i;:::-;:18;;;15008:27;;;;;;15061:1;15054:3;:8;;15046:17;;;;;;15084:3;15074:7;:13;;;;14956:139;:::o;13602:709::-;2840:12;:10;:12::i;:::-;2830:22;;:6;;;;;;;;;;:22;;;2822:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13666:11:::1;;;;;;;;;;;13665:12;13657:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13715:35;13772:42;13715:100;;13844:16;13826:15;;:34;;;;;;;;;;;;;;;;;;13871:58;13888:4;13903:15;;;;;;;;;;;4245:28;13871:8;:58::i;:::-;13974:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13956:56;;;14021:4;14028:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13956:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13940:13;;:112;;;;;;;;;;;;;;;;;;14063:15;;;;;;;;;;;:31;;;14102:21;14133:4;14139:24;14157:4;14139:9;:24::i;:::-;14164:1;14166::::0;14168:7:::1;:5;:7::i;:::-;14176:15;14063:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14210:13;;;;;;;;;;;14203:29;;;14241:15;;;;;;;;;;;14259:14;14203:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14299:4;14285:11;;:18;;;;;;;;;;;;;;;;;;13646:665;13602:709::o:0;14645:138::-;14731:2;;;;;;;;;;;14715:18;;:12;:10;:12::i;:::-;:18;;;14707:27;;;;;;14770:5;14745:18;:22;14764:2;14745:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;14645:138;:::o;6496:143::-;6577:7;6604:11;:18;6616:5;6604:18;;;;;;;;;;;;;;;:27;6623:7;6604:27;;;;;;;;;;;;;;;;6597:34;;6496:143;;;;:::o;14795:145::-;14873:2;;;;;;;;;;;14857:18;;:12;:10;:12::i;:::-;:18;;;14849:27;;;;;;14903:2;14895:4;:10;;14887:19;;;;;;14928:4;14917:8;:15;;;;14795:145;:::o;112:98::-;165:7;192:10;185:17;;112:98;:::o;7825:335::-;7935:1;7918:19;;:5;:19;;;;7910:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8016:1;7997:21;;:7;:21;;;;7989:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8098:6;8068:11;:18;8080:5;8068:18;;;;;;;;;;;;;;;:27;8087:7;8068:27;;;;;;;;;;;;;;;:36;;;;8136:7;8120:32;;8129:5;8120:32;;;8145:6;8120:32;;;;;;:::i;:::-;;;;;;;;7825:335;;;:::o;8354:1728::-;8458:1;8442:18;;:4;:18;;;;8434:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8535:1;8521:16;;:2;:16;;;;8513:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8605:1;8596:6;:10;8588:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:8;;;;;;;;;;;8666:141;;8707:13;;;;;;;;;;;8699:21;;:4;:21;;;:40;;;;;8732:7;:5;:7::i;:::-;8724:15;;:4;:15;;;;8699:40;:57;;;;;8749:7;:5;:7::i;:::-;8743:13;;:2;:13;;;;8699:57;8695:105;;;4929:42;8772:16;;8695:105;8666:141;8829:4;8820:13;;:5;;;;;;;;;;;:13;;;:42;;;;;8838:18;:24;8857:4;8838:24;;;;;;;;;;;;;;;;;;;;;;;;;8837:25;8820:42;:69;;;;;8867:18;:22;8886:2;8867:22;;;;;;;;;;;;;;;;;;;;;;;;;8866:23;8820:69;:90;;;;;4929:42;8893:17;;:2;:17;;;;8820:90;8817:371;;;8935:13;;;;;;;;;;;8929:19;;:2;:19;;;;:44;;;;;8960:13;;;;;;;;;;;8952:21;;:4;:21;;;8929:44;8926:153;;;9033:28;9003:25;9021:6;9003:13;9013:2;9003:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;9002:59;;8993:70;;;;;;8926:153;9111:28;9101:6;:38;;9093:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8817:371;9204:28;9235:24;9253:4;9235:9;:24::i;:::-;9204:55;;9280:6;;;;;;;;;;;9279:7;:32;;;;;9298:13;;;;;;;;;;;9290:21;;:4;:21;;;;9279:32;:47;;;;;9315:11;;;;;;;;;;;9279:47;9276:592;;;9373:1;9350:20;:24;9347:314;;;9425:40;9461:3;9425:31;9454:1;9425:24;9435:13;;;;;;;;;;;9425:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9402:20;:63;9399:182;;;9517:40;9553:3;9517:31;9546:1;9517:24;9527:13;;;;;;;;;;;9517:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9494:63;;9399:182;9603:38;9620:20;9603:16;:38::i;:::-;9347:314;9679:26;9708:21;9679:50;;9772:1;9751:18;:22;9748:105;;;9798:35;9811:21;9798:12;:35::i;:::-;9748:105;9328:540;9276:592;9888:12;9903:4;9888:19;;9923:18;:24;9942:4;9923:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9951:18;:22;9970:2;9951:22;;;;;;;;;;;;;;;;;;;;;;;;;9923:50;9920:96;;;9999:5;9989:15;;9920:96;10036:38;10051:4;10056:2;10059:6;10066:7;10036:14;:38::i;:::-;8423:1659;;8354:1728;;;:::o;1249:190::-;1335:7;1368:1;1363;:6;;1371:12;1355:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1395:9;1411:1;1407;:5;;;;:::i;:::-;1395:17;;1430:1;1423:8;;;1249:190;;;;;:::o;10589:128::-;10646:2;;;;;;;;;;;:11;;:26;10658:13;10669:1;10658:6;:10;;:13;;;;:::i;:::-;10646:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10683:2;;;;;;;;;;;:11;;:26;10695:13;10706:1;10695:6;:10;;:13;;;;:::i;:::-;10683:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10589:128;:::o;7137:254::-;7204:7;7243;;7232;:18;;7224:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7308:19;7331:10;:8;:10::i;:::-;7308:33;;7359:24;7371:11;7359:7;:11;;:24;;;;:::i;:::-;7352:31;;;7137:254;;;:::o;10090:483::-;5294:4;5285:6;;:13;;;;;;;;;;;;;;;;;;10168:21:::1;10206:1;10192:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10168:40;;10237:4;10219;10224:1;10219:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10263:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10253:4;10258:1;10253:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10296:62;10313:4;10328:15;;;;;;;;;;;10346:11;10296:8;:62::i;:::-;10369:15;;;;;;;;;;;:66;;;10450:11;10476:1;10492:4;10519;10539:15;10369:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10157:416;5330:5:::0;5321:6;;:14;;;;;;;;;;;;;;;;;;10090:483;:::o;918:179::-;976:7;996:9;1012:1;1008;:5;;;;:::i;:::-;996:17;;1037:1;1032;:6;;1024:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1088:1;1081:8;;;918:179;;;;:::o;1447:245::-;1505:7;1533:1;1528;:6;1525:46;;;1558:1;1551:8;;;;1525:46;1581:9;1597:1;1593;:5;;;;:::i;:::-;1581:17;;1626:1;1621;1617;:5;;;;:::i;:::-;:10;1609:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1683:1;1676:8;;;1447:245;;;;;:::o;1700:132::-;1758:7;1785:39;1789:1;1792;1785:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1778:46;;1700:132;;;;:::o;10729:263::-;10841:7;10837:40;;10863:14;:12;:14::i;:::-;10837:40;10888:44;10906:6;10914:9;10925:6;10888:17;:44::i;:::-;10947:7;10943:41;;10969:15;:13;:15::i;:::-;10943:41;10729:263;;;;:::o;12333:163::-;12374:7;12395:15;12412;12431:19;:17;:19::i;:::-;12394:56;;;;12468:20;12480:7;12468;:11;;:20;;;;:::i;:::-;12461:27;;;;12333:163;:::o;1840:189::-;1926:7;1958:1;1954;:5;1961:12;1946:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1985:9;2001:1;1997;:5;;;;:::i;:::-;1985:17;;2020:1;2013:8;;;1840:189;;;;;:::o;7480:210::-;7537:1;7526:7;;:12;:29;;;;;7554:1;7542:8;;:13;7526:29;7523:41;;;7557:7;;7523:41;7592:7;;7574:15;:25;;;;7629:8;;7610:16;:27;;;;7658:1;7648:7;:11;;;;7681:1;7670:8;:12;;;;7480:210;:::o;11000:490::-;11099:15;11116:23;11141:12;11155:23;11180:12;11194:13;11211:19;11222:7;11211:10;:19::i;:::-;11098:132;;;;;;;;;;;;11259:28;11279:7;11259;:15;11267:6;11259:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11241:7;:15;11249:6;11241:15;;;;;;;;;;;;;;;:46;;;;11319:39;11342:15;11319:7;:18;11327:9;11319:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11298:7;:18;11306:9;11298:18;;;;;;;;;;;;;;;:60;;;;11372:16;11382:5;11372:9;:16::i;:::-;11399:23;11411:4;11417;11399:11;:23::i;:::-;11455:9;11438:44;;11447:6;11438:44;;;11466:15;11438:44;;;;;;:::i;:::-;;;;;;;;11087:403;;;;;;11000:490;;;:::o;7702:115::-;7756:15;;7746:7;:25;;;;7793:16;;7782:8;:27;;;;7702:115::o;12504:255::-;12554:7;12563;12583:15;12601:7;;12583:25;;12619:15;4245:28;12619:25;;12668:20;4245:28;12668:7;;:11;;:20;;;;:::i;:::-;12658:7;:30;12655:60;;;12698:7;;4245:28;12690:25;;;;;;;;12655:60;12734:7;12743;12726:25;;;;;;12504:255;;;:::o;11498:468::-;11557:7;11566;11575;11584;11593;11602;11623:23;11648:12;11662:13;11679:39;11691:7;11700;;11709:8;;11679:11;:39::i;:::-;11622:96;;;;;;11729:19;11752:10;:8;:10::i;:::-;11729:33;;11774:15;11791:23;11816:12;11832:46;11844:7;11853:4;11859:5;11866:11;11832;:46::i;:::-;11773:105;;;;;;11897:7;11906:15;11923:4;11929:15;11946:4;11952:5;11889:69;;;;;;;;;;;;;;;;;;;11498:468;;;;;;;:::o;1105:136::-;1163:7;1190:43;1194:1;1197;1190:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1183:50;;1105:136;;;;:::o;13184:214::-;13237:19;13260:10;:8;:10::i;:::-;13237:33;;13281:13;13297:22;13307:11;13297:5;:9;;:22;;;;:::i;:::-;13281:38;;13357:33;13384:5;13357:7;:22;13373:4;13357:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13332:7;:22;13348:4;13332:22;;;;;;;;;;;;;;;:58;;;;13226:172;;13184:214;:::o;13406:147::-;13484:17;13496:4;13484:7;;:11;;:17;;;;:::i;:::-;13474:7;:27;;;;13525:20;13540:4;13525:10;;:14;;:20;;;;:::i;:::-;13512:10;:33;;;;13406:147;;:::o;11974:351::-;12067:7;12076;12085;12105:12;12120:28;12144:3;12120:19;12132:6;12120:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12105:43;;12159:13;12175:29;12200:3;12175:20;12187:7;12175;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12159:45;;12215:23;12241:28;12263:5;12241:17;12253:4;12241:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12215:54;;12288:15;12305:4;12311:5;12280:37;;;;;;;;;11974:351;;;;;;;:::o;12767:409::-;12877:7;12886;12895;12915:15;12933:24;12945:11;12933:7;:11;;:24;;;;:::i;:::-;12915:42;;12968:12;12983:21;12992:11;12983:4;:8;;:21;;;;:::i;:::-;12968:36;;13015:13;13031:22;13041:11;13031:5;:9;;:22;;;;:::i;:::-;13015:38;;13064:23;13090:28;13112:5;13090:17;13102:4;13090:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13064:54;;13137:7;13146:15;13163:4;13129:39;;;;;;;;;;12767:409;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;462:137::-;516:5;547:6;541:13;532:22;;563:30;587:5;563:30;:::i;:::-;522:77;;;;:::o;605:139::-;651:5;689:6;676:20;667:29;;705:33;732:5;705:33;:::i;:::-;657:87;;;;:::o;750:143::-;807:5;838:6;832:13;823:22;;854:33;881:5;854:33;:::i;:::-;813:80;;;;:::o;899:329::-;958:6;1007:2;995:9;986:7;982:23;978:32;975:2;;;1013:79;;:::i;:::-;975:2;1133:1;1158:53;1203:7;1194:6;1183:9;1179:22;1158:53;:::i;:::-;1148:63;;1104:117;965:263;;;;:::o;1234:351::-;1304:6;1353:2;1341:9;1332:7;1328:23;1324:32;1321:2;;;1359:79;;:::i;:::-;1321:2;1479:1;1504:64;1560:7;1551:6;1540:9;1536:22;1504:64;:::i;:::-;1494:74;;1450:128;1311:274;;;;:::o;1591:345::-;1658:6;1707:2;1695:9;1686:7;1682:23;1678:32;1675:2;;;1713:79;;:::i;:::-;1675:2;1833:1;1858:61;1911:7;1902:6;1891:9;1887:22;1858:61;:::i;:::-;1848:71;;1804:125;1665:271;;;;:::o;1942:474::-;2010:6;2018;2067:2;2055:9;2046:7;2042:23;2038:32;2035:2;;;2073:79;;:::i;:::-;2035:2;2193:1;2218:53;2263:7;2254:6;2243:9;2239:22;2218:53;:::i;:::-;2208:63;;2164:117;2320:2;2346:53;2391:7;2382:6;2371:9;2367:22;2346:53;:::i;:::-;2336:63;;2291:118;2025:391;;;;;:::o;2422:619::-;2499:6;2507;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2570:79;;:::i;:::-;2532:2;2690:1;2715:53;2760:7;2751:6;2740:9;2736:22;2715:53;:::i;:::-;2705:63;;2661:117;2817:2;2843:53;2888:7;2879:6;2868:9;2864:22;2843:53;:::i;:::-;2833:63;;2788:118;2945:2;2971:53;3016:7;3007:6;2996:9;2992:22;2971:53;:::i;:::-;2961:63;;2916:118;2522:519;;;;;:::o;3047:474::-;3115:6;3123;3172:2;3160:9;3151:7;3147:23;3143:32;3140:2;;;3178:79;;:::i;:::-;3140:2;3298:1;3323:53;3368:7;3359:6;3348:9;3344:22;3323:53;:::i;:::-;3313:63;;3269:117;3425:2;3451:53;3496:7;3487:6;3476:9;3472:22;3451:53;:::i;:::-;3441:63;;3396:118;3130:391;;;;;:::o;3527:345::-;3594:6;3643:2;3631:9;3622:7;3618:23;3614:32;3611:2;;;3649:79;;:::i;:::-;3611:2;3769:1;3794:61;3847:7;3838:6;3827:9;3823:22;3794:61;:::i;:::-;3784:71;;3740:125;3601:271;;;;:::o;3878:329::-;3937:6;3986:2;3974:9;3965:7;3961:23;3957:32;3954:2;;;3992:79;;:::i;:::-;3954:2;4112:1;4137:53;4182:7;4173:6;4162:9;4158:22;4137:53;:::i;:::-;4127:63;;4083:117;3944:263;;;;:::o;4213:663::-;4301:6;4309;4317;4366:2;4354:9;4345:7;4341:23;4337:32;4334:2;;;4372:79;;:::i;:::-;4334:2;4492:1;4517:64;4573:7;4564:6;4553:9;4549:22;4517:64;:::i;:::-;4507:74;;4463:128;4630:2;4656:64;4712:7;4703:6;4692:9;4688:22;4656:64;:::i;:::-;4646:74;;4601:129;4769:2;4795:64;4851:7;4842:6;4831:9;4827:22;4795:64;:::i;:::-;4785:74;;4740:129;4324:552;;;;;:::o;4882:179::-;4951:10;4972:46;5014:3;5006:6;4972:46;:::i;:::-;5050:4;5045:3;5041:14;5027:28;;4962:99;;;;:::o;5067:108::-;5144:24;5162:5;5144:24;:::i;:::-;5139:3;5132:37;5122:53;;:::o;5181:118::-;5268:24;5286:5;5268:24;:::i;:::-;5263:3;5256:37;5246:53;;:::o;5335:732::-;5454:3;5483:54;5531:5;5483:54;:::i;:::-;5553:86;5632:6;5627:3;5553:86;:::i;:::-;5546:93;;5663:56;5713:5;5663:56;:::i;:::-;5742:7;5773:1;5758:284;5783:6;5780:1;5777:13;5758:284;;;5859:6;5853:13;5886:63;5945:3;5930:13;5886:63;:::i;:::-;5879:70;;5972:60;6025:6;5972:60;:::i;:::-;5962:70;;5818:224;5805:1;5802;5798:9;5793:14;;5758:284;;;5762:14;6058:3;6051:10;;5459:608;;;;;;;:::o;6073:109::-;6154:21;6169:5;6154:21;:::i;:::-;6149:3;6142:34;6132:50;;:::o;6188:147::-;6283:45;6322:5;6283:45;:::i;:::-;6278:3;6271:58;6261:74;;:::o;6341:364::-;6429:3;6457:39;6490:5;6457:39;:::i;:::-;6512:71;6576:6;6571:3;6512:71;:::i;:::-;6505:78;;6592:52;6637:6;6632:3;6625:4;6618:5;6614:16;6592:52;:::i;:::-;6669:29;6691:6;6669:29;:::i;:::-;6664:3;6660:39;6653:46;;6433:272;;;;;:::o;6711:366::-;6853:3;6874:67;6938:2;6933:3;6874:67;:::i;:::-;6867:74;;6950:93;7039:3;6950:93;:::i;:::-;7068:2;7063:3;7059:12;7052:19;;6857:220;;;:::o;7083:366::-;7225:3;7246:67;7310:2;7305:3;7246:67;:::i;:::-;7239:74;;7322:93;7411:3;7322:93;:::i;:::-;7440:2;7435:3;7431:12;7424:19;;7229:220;;;:::o;7455:366::-;7597:3;7618:67;7682:2;7677:3;7618:67;:::i;:::-;7611:74;;7694:93;7783:3;7694:93;:::i;:::-;7812:2;7807:3;7803:12;7796:19;;7601:220;;;:::o;7827:366::-;7969:3;7990:67;8054:2;8049:3;7990:67;:::i;:::-;7983:74;;8066:93;8155:3;8066:93;:::i;:::-;8184:2;8179:3;8175:12;8168:19;;7973:220;;;:::o;8199:366::-;8341:3;8362:67;8426:2;8421:3;8362:67;:::i;:::-;8355:74;;8438:93;8527:3;8438:93;:::i;:::-;8556:2;8551:3;8547:12;8540:19;;8345:220;;;:::o;8571:366::-;8713:3;8734:67;8798:2;8793:3;8734:67;:::i;:::-;8727:74;;8810:93;8899:3;8810:93;:::i;:::-;8928:2;8923:3;8919:12;8912:19;;8717:220;;;:::o;8943:366::-;9085:3;9106:67;9170:2;9165:3;9106:67;:::i;:::-;9099:74;;9182:93;9271:3;9182:93;:::i;:::-;9300:2;9295:3;9291:12;9284:19;;9089:220;;;:::o;9315:366::-;9457:3;9478:67;9542:2;9537:3;9478:67;:::i;:::-;9471:74;;9554:93;9643:3;9554:93;:::i;:::-;9672:2;9667:3;9663:12;9656:19;;9461:220;;;:::o;9687:366::-;9829:3;9850:67;9914:2;9909:3;9850:67;:::i;:::-;9843:74;;9926:93;10015:3;9926:93;:::i;:::-;10044:2;10039:3;10035:12;10028:19;;9833:220;;;:::o;10059:366::-;10201:3;10222:67;10286:2;10281:3;10222:67;:::i;:::-;10215:74;;10298:93;10387:3;10298:93;:::i;:::-;10416:2;10411:3;10407:12;10400:19;;10205:220;;;:::o;10431:366::-;10573:3;10594:67;10658:2;10653:3;10594:67;:::i;:::-;10587:74;;10670:93;10759:3;10670:93;:::i;:::-;10788:2;10783:3;10779:12;10772:19;;10577:220;;;:::o;10803:366::-;10945:3;10966:67;11030:2;11025:3;10966:67;:::i;:::-;10959:74;;11042:93;11131:3;11042:93;:::i;:::-;11160:2;11155:3;11151:12;11144:19;;10949:220;;;:::o;11175:118::-;11262:24;11280:5;11262:24;:::i;:::-;11257:3;11250:37;11240:53;;:::o;11299:112::-;11382:22;11398:5;11382:22;:::i;:::-;11377:3;11370:35;11360:51;;:::o;11417:222::-;11510:4;11548:2;11537:9;11533:18;11525:26;;11561:71;11629:1;11618:9;11614:17;11605:6;11561:71;:::i;:::-;11515:124;;;;:::o;11645:332::-;11766:4;11804:2;11793:9;11789:18;11781:26;;11817:71;11885:1;11874:9;11870:17;11861:6;11817:71;:::i;:::-;11898:72;11966:2;11955:9;11951:18;11942:6;11898:72;:::i;:::-;11771:206;;;;;:::o;11983:332::-;12104:4;12142:2;12131:9;12127:18;12119:26;;12155:71;12223:1;12212:9;12208:17;12199:6;12155:71;:::i;:::-;12236:72;12304:2;12293:9;12289:18;12280:6;12236:72;:::i;:::-;12109:206;;;;;:::o;12321:807::-;12570:4;12608:3;12597:9;12593:19;12585:27;;12622:71;12690:1;12679:9;12675:17;12666:6;12622:71;:::i;:::-;12703:72;12771:2;12760:9;12756:18;12747:6;12703:72;:::i;:::-;12785:80;12861:2;12850:9;12846:18;12837:6;12785:80;:::i;:::-;12875;12951:2;12940:9;12936:18;12927:6;12875:80;:::i;:::-;12965:73;13033:3;13022:9;13018:19;13009:6;12965:73;:::i;:::-;13048;13116:3;13105:9;13101:19;13092:6;13048:73;:::i;:::-;12575:553;;;;;;;;;:::o;13134:210::-;13221:4;13259:2;13248:9;13244:18;13236:26;;13272:65;13334:1;13323:9;13319:17;13310:6;13272:65;:::i;:::-;13226:118;;;;:::o;13350:313::-;13463:4;13501:2;13490:9;13486:18;13478:26;;13550:9;13544:4;13540:20;13536:1;13525:9;13521:17;13514:47;13578:78;13651:4;13642:6;13578:78;:::i;:::-;13570:86;;13468:195;;;;:::o;13669:419::-;13835:4;13873:2;13862:9;13858:18;13850:26;;13922:9;13916:4;13912:20;13908:1;13897:9;13893:17;13886:47;13950:131;14076:4;13950:131;:::i;:::-;13942:139;;13840:248;;;:::o;14094:419::-;14260:4;14298:2;14287:9;14283:18;14275:26;;14347:9;14341:4;14337:20;14333:1;14322:9;14318:17;14311:47;14375:131;14501:4;14375:131;:::i;:::-;14367:139;;14265:248;;;:::o;14519:419::-;14685:4;14723:2;14712:9;14708:18;14700:26;;14772:9;14766:4;14762:20;14758:1;14747:9;14743:17;14736:47;14800:131;14926:4;14800:131;:::i;:::-;14792:139;;14690:248;;;:::o;14944:419::-;15110:4;15148:2;15137:9;15133:18;15125:26;;15197:9;15191:4;15187:20;15183:1;15172:9;15168:17;15161:47;15225:131;15351:4;15225:131;:::i;:::-;15217:139;;15115:248;;;:::o;15369:419::-;15535:4;15573:2;15562:9;15558:18;15550:26;;15622:9;15616:4;15612:20;15608:1;15597:9;15593:17;15586:47;15650:131;15776:4;15650:131;:::i;:::-;15642:139;;15540:248;;;:::o;15794:419::-;15960:4;15998:2;15987:9;15983:18;15975:26;;16047:9;16041:4;16037:20;16033:1;16022:9;16018:17;16011:47;16075:131;16201:4;16075:131;:::i;:::-;16067:139;;15965:248;;;:::o;16219:419::-;16385:4;16423:2;16412:9;16408:18;16400:26;;16472:9;16466:4;16462:20;16458:1;16447:9;16443:17;16436:47;16500:131;16626:4;16500:131;:::i;:::-;16492:139;;16390:248;;;:::o;16644:419::-;16810:4;16848:2;16837:9;16833:18;16825:26;;16897:9;16891:4;16887:20;16883:1;16872:9;16868:17;16861:47;16925:131;17051:4;16925:131;:::i;:::-;16917:139;;16815:248;;;:::o;17069:419::-;17235:4;17273:2;17262:9;17258:18;17250:26;;17322:9;17316:4;17312:20;17308:1;17297:9;17293:17;17286:47;17350:131;17476:4;17350:131;:::i;:::-;17342:139;;17240:248;;;:::o;17494:419::-;17660:4;17698:2;17687:9;17683:18;17675:26;;17747:9;17741:4;17737:20;17733:1;17722:9;17718:17;17711:47;17775:131;17901:4;17775:131;:::i;:::-;17767:139;;17665:248;;;:::o;17919:419::-;18085:4;18123:2;18112:9;18108:18;18100:26;;18172:9;18166:4;18162:20;18158:1;18147:9;18143:17;18136:47;18200:131;18326:4;18200:131;:::i;:::-;18192:139;;18090:248;;;:::o;18344:419::-;18510:4;18548:2;18537:9;18533:18;18525:26;;18597:9;18591:4;18587:20;18583:1;18572:9;18568:17;18561:47;18625:131;18751:4;18625:131;:::i;:::-;18617:139;;18515:248;;;:::o;18769:222::-;18862:4;18900:2;18889:9;18885:18;18877:26;;18913:71;18981:1;18970:9;18966:17;18957:6;18913:71;:::i;:::-;18867:124;;;;:::o;18997:831::-;19260:4;19298:3;19287:9;19283:19;19275:27;;19312:71;19380:1;19369:9;19365:17;19356:6;19312:71;:::i;:::-;19393:80;19469:2;19458:9;19454:18;19445:6;19393:80;:::i;:::-;19520:9;19514:4;19510:20;19505:2;19494:9;19490:18;19483:48;19548:108;19651:4;19642:6;19548:108;:::i;:::-;19540:116;;19666:72;19734:2;19723:9;19719:18;19710:6;19666:72;:::i;:::-;19748:73;19816:3;19805:9;19801:19;19792:6;19748:73;:::i;:::-;19265:563;;;;;;;;:::o;19834:214::-;19923:4;19961:2;19950:9;19946:18;19938:26;;19974:67;20038:1;20027:9;20023:17;20014:6;19974:67;:::i;:::-;19928:120;;;;:::o;20135:132::-;20202:4;20225:3;20217:11;;20255:4;20250:3;20246:14;20238:22;;20207:60;;;:::o;20273:114::-;20340:6;20374:5;20368:12;20358:22;;20347:40;;;:::o;20393:99::-;20445:6;20479:5;20473:12;20463:22;;20452:40;;;:::o;20498:113::-;20568:4;20600;20595:3;20591:14;20583:22;;20573:38;;;:::o;20617:184::-;20716:11;20750:6;20745:3;20738:19;20790:4;20785:3;20781:14;20766:29;;20728:73;;;;:::o;20807:169::-;20891:11;20925:6;20920:3;20913:19;20965:4;20960:3;20956:14;20941:29;;20903:73;;;;:::o;20982:305::-;21022:3;21041:20;21059:1;21041:20;:::i;:::-;21036:25;;21075:20;21093:1;21075:20;:::i;:::-;21070:25;;21229:1;21161:66;21157:74;21154:1;21151:81;21148:2;;;21235:18;;:::i;:::-;21148:2;21279:1;21276;21272:9;21265:16;;21026:261;;;;:::o;21293:185::-;21333:1;21350:20;21368:1;21350:20;:::i;:::-;21345:25;;21384:20;21402:1;21384:20;:::i;:::-;21379:25;;21423:1;21413:2;;21428:18;;:::i;:::-;21413:2;21470:1;21467;21463:9;21458:14;;21335:143;;;;:::o;21484:348::-;21524:7;21547:20;21565:1;21547:20;:::i;:::-;21542:25;;21581:20;21599:1;21581:20;:::i;:::-;21576:25;;21769:1;21701:66;21697:74;21694:1;21691:81;21686:1;21679:9;21672:17;21668:105;21665:2;;;21776:18;;:::i;:::-;21665:2;21824:1;21821;21817:9;21806:20;;21532:300;;;;:::o;21838:191::-;21878:4;21898:20;21916:1;21898:20;:::i;:::-;21893:25;;21932:20;21950:1;21932:20;:::i;:::-;21927:25;;21971:1;21968;21965:8;21962:2;;;21976:18;;:::i;:::-;21962:2;22021:1;22018;22014:9;22006:17;;21883:146;;;;:::o;22035:96::-;22072:7;22101:24;22119:5;22101:24;:::i;:::-;22090:35;;22080:51;;;:::o;22137:104::-;22182:7;22211:24;22229:5;22211:24;:::i;:::-;22200:35;;22190:51;;;:::o;22247:90::-;22281:7;22324:5;22317:13;22310:21;22299:32;;22289:48;;;:::o;22343:126::-;22380:7;22420:42;22413:5;22409:54;22398:65;;22388:81;;;:::o;22475:77::-;22512:7;22541:5;22530:16;;22520:32;;;:::o;22558:86::-;22593:7;22633:4;22626:5;22622:16;22611:27;;22601:43;;;:::o;22650:121::-;22708:9;22741:24;22759:5;22741:24;:::i;:::-;22728:37;;22718:53;;;:::o;22777:307::-;22845:1;22855:113;22869:6;22866:1;22863:13;22855:113;;;22954:1;22949:3;22945:11;22939:18;22935:1;22930:3;22926:11;22919:39;22891:2;22888:1;22884:10;22879:15;;22855:113;;;22986:6;22983:1;22980:13;22977:2;;;23066:1;23057:6;23052:3;23048:16;23041:27;22977:2;22826:258;;;;:::o;23090:180::-;23138:77;23135:1;23128:88;23235:4;23232:1;23225:15;23259:4;23256:1;23249:15;23276:180;23324:77;23321:1;23314:88;23421:4;23418:1;23411:15;23445:4;23442:1;23435:15;23462:180;23510:77;23507:1;23500:88;23607:4;23604:1;23597:15;23631:4;23628:1;23621:15;23648:180;23696:77;23693:1;23686:88;23793:4;23790:1;23783:15;23817:4;23814:1;23807:15;23957:117;24066:1;24063;24056:12;24080:102;24121:6;24172:2;24168:7;24163:2;24156:5;24152:14;24148:28;24138:38;;24128:54;;;:::o;24188:222::-;24328:34;24324:1;24316:6;24312:14;24305:58;24397:5;24392:2;24384:6;24380:15;24373:30;24294:116;:::o;24416:172::-;24556:24;24552:1;24544:6;24540:14;24533:48;24522:66;:::o;24594:229::-;24734:34;24730:1;24722:6;24718:14;24711:58;24803:12;24798:2;24790:6;24786:15;24779:37;24700:123;:::o;24829:221::-;24969:34;24965:1;24957:6;24953:14;24946:58;25038:4;25033:2;25025:6;25021:15;25014:29;24935:115;:::o;25056:177::-;25196:29;25192:1;25184:6;25180:14;25173:53;25162:71;:::o;25239:178::-;25379:30;25375:1;25367:6;25363:14;25356:54;25345:72;:::o;25423:220::-;25563:34;25559:1;25551:6;25547:14;25540:58;25632:3;25627:2;25619:6;25615:15;25608:28;25529:114;:::o;25649:182::-;25789:34;25785:1;25777:6;25773:14;25766:58;25755:76;:::o;25837:228::-;25977:34;25973:1;25965:6;25961:14;25954:58;26046:11;26041:2;26033:6;26029:15;26022:36;25943:122;:::o;26071:224::-;26211:34;26207:1;26199:6;26195:14;26188:58;26280:7;26275:2;26267:6;26263:15;26256:32;26177:118;:::o;26301:223::-;26441:34;26437:1;26429:6;26425:14;26418:58;26510:6;26505:2;26497:6;26493:15;26486:31;26407:117;:::o;26530:173::-;26670:25;26666:1;26658:6;26654:14;26647:49;26636:67;:::o;26709:122::-;26782:24;26800:5;26782:24;:::i;:::-;26775:5;26772:35;26762:2;;26821:1;26818;26811:12;26762:2;26752:79;:::o;26837:138::-;26918:32;26944:5;26918:32;:::i;:::-;26911:5;26908:43;26898:2;;26965:1;26962;26955:12;26898:2;26888:87;:::o;26981:116::-;27051:21;27066:5;27051:21;:::i;:::-;27044:5;27041:32;27031:2;;27087:1;27084;27077:12;27031:2;27021:76;:::o;27103:122::-;27176:24;27194:5;27176:24;:::i;:::-;27169:5;27166:35;27156:2;;27215:1;27212;27205:12;27156:2;27146:79;:::o

Swarm Source

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