ETH Price: $2,807.23 (+7.16%)
 

Overview

Max Total Supply

100,000,000 bSIM

Holders

301

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000004 bSIM

Value
$0.00
0x807184f5aeb04e6cb967260d34c0442d49c53c8a
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:
BloxSIM

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-05
*/

// SPDX-License-Identifier: MIT

/*

Decentralized eSIM,unlimited possibilities
 ____  _            _____ _____ __  __ 
|  _ \| |          / ____|_   _|  \/  |
| |_) | | _____  _| (___   | | | \  / |
|  _ <| |/ _ \ \/ /\___ \  | | | |\/| |
| |_) | | (_) >  < ____) |_| |_| |  | |
|____/|_|\___/_/\_\_____/|_____|_|  |_|

 Click the link below for more details! 👇

『 Website : https://bloxsim.net 』
『 X : https://x.com/BloxSIMNet 』
『 Docs : https://docs.bloxsim.net 』
『 Portal : https://t.me/BloxSIM 』

*/

pragma solidity ^0.8.19;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    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 BloxSIM is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyFee=20;
    uint256 private _initialSellFee=25;
    uint256 private _finalBuyFee=10;
    uint256 private _finalSellFee=25;
    uint256 private _reduceBuyFeeAt=19;
    uint256 private _reduceSellFeeAt=25;
    uint256 private _restrictSwapBefore=30;
    uint256 private _caTax=0;
    uint256 private _contractsCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100_000_000 * 10**_decimals;
    string private constant _name = unicode"BloxSIM";
    string private constant _symbol = unicode"bSIM";
    uint256 public _maxTxAmount =  1 * (_tTotal/100);
    uint256 public _maxWalletSize =  1 * (_tTotal/100);
    uint256 public _taxSwapThreshold=  1 * (_tTotal/1000);
    uint256 public _maxTaxSwap= 1 * (_tTotal/100);
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private txCount = 0;
    uint256 private afterSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0x71ECAf3dca7f85B8739f0E9B8e9A99e55d82e70E);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        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 _balances[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 _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

            if(_contractsCount==0){
                taxAmount = amount.mul((_contractsCount>_reduceBuyFeeAt)?_finalBuyFee:_initialBuyFee).div(100);
            }
            if(_contractsCount>0){
                taxAmount = amount.mul(_caTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_contractsCount>_reduceBuyFeeAt)?_finalBuyFee:_initialBuyFee).div(100);
                _contractsCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_contractsCount>_reduceSellFeeAt)?_finalSellFee:_initialSellFee).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _contractsCount > _restrictSwapBefore) {
                if (block.number > afterSellBlock) {
                    txCount = 0;
                }
                require(txCount < 4, "Only 4 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                txCount++;
                afterSellBlock = block.number;
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    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 unlockLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function rescueEther() external {
        require(_msgSender() == _taxWallet);
        payable(_taxWallet).transfer(address(this).balance);
    }

    function rescueERC20(address _tokenAddr, uint _amount) external {
        require(_msgSender() == _taxWallet);
        IERC20(_tokenAddr).transfer(_taxWallet, _amount);
    }


    function startTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
    }
    
    function setFeeTx (uint256 _value) external onlyOwner returns (bool) {
        _finalBuyFee = _value;
        _finalSellFee = _value;
        require(_value <= 5,"Tax cannot exceed 5");
        return true;
    }

    receive() external payable {}

    function clearStuckBalance() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function clearStuckEther() external {
        require(_msgSender()==_taxWallet);
        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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setFeeTx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlockLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260146006556019600755600a60085560196009556013600a556019600b55601e600c556000600d556000600e5560646009600a620000439190620009bf565b6305f5e10062000054919062000a10565b62000060919062000a8a565b60016200006e919062000a10565b600f5560646009600a620000839190620009bf565b6305f5e10062000094919062000a10565b620000a0919062000a8a565b6001620000ae919062000a10565b6010556103e86009600a620000c49190620009bf565b6305f5e100620000d5919062000a10565b620000e1919062000a8a565b6001620000ef919062000a10565b60115560646009600a620001049190620009bf565b6305f5e10062000115919062000a10565b62000121919062000a8a565b60016200012f919062000a10565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff021916908315150217905550600060155560006016553480156200017f57600080fd5b50600062000192620007f460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507371ecaf3dca7f85b8739f0e9b8e9a99e55d82e70e600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002959190620009bf565b6305f5e100620002a6919062000a10565b60016000620002ba620007f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200030e620007fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200051a919062000b2c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ca919062000b2c565b6040518363ffffffff1660e01b8152600401620005e992919062000b6f565b6020604051808303816000875af115801562000609573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200062f919062000b2c565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200071092919062000bad565b6020604051808303816000875af115801562000730573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000756919062000c17565b5062000767620007f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620007c69190620009bf565b6305f5e100620007d7919062000a10565b604051620007e6919062000c49565b60405180910390a362000c66565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008b3578086048111156200088b576200088a62000825565b5b60018516156200089b5780820291505b8081029050620008ab8562000854565b94506200086b565b94509492505050565b600082620008ce5760019050620009a1565b81620008de5760009050620009a1565b8160018114620008f75760028114620009025762000938565b6001915050620009a1565b60ff84111562000917576200091662000825565b5b8360020a91508482111562000931576200093062000825565b5b50620009a1565b5060208310610133831016604e8410600b8410161715620009725782820a9050838111156200096c576200096b62000825565b5b620009a1565b62000981848484600162000861565b925090508184048111156200099b576200099a62000825565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009cc82620009a8565b9150620009d983620009b2565b925062000a087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008bc565b905092915050565b600062000a1d82620009a8565b915062000a2a83620009a8565b925082820262000a3a81620009a8565b9150828204841483151762000a545762000a5362000825565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a9782620009a8565b915062000aa483620009a8565b92508262000ab75762000ab662000a5b565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000af48262000ac7565b9050919050565b62000b068162000ae7565b811462000b1257600080fd5b50565b60008151905062000b268162000afb565b92915050565b60006020828403121562000b455762000b4462000ac2565b5b600062000b558482850162000b15565b91505092915050565b62000b698162000ae7565b82525050565b600060408201905062000b86600083018562000b5e565b62000b95602083018462000b5e565b9392505050565b62000ba781620009a8565b82525050565b600060408201905062000bc4600083018562000b5e565b62000bd3602083018462000b9c565b9392505050565b60008115159050919050565b62000bf18162000bda565b811462000bfd57600080fd5b50565b60008151905062000c118162000be6565b92915050565b60006020828403121562000c305762000c2f62000ac2565b5b600062000c408482850162000c00565b91505092915050565b600060208201905062000c60600083018462000b9c565b92915050565b61316e8062000c766000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab5780638f9a55c01161006f5780638f9a55c0146103d757806395d89b4114610402578063a9059cbb1461042d578063bf474bed1461046a578063ca38b2d914610495578063dd62ed3e146104ac57610140565b806370a0823114610304578063715018a6146103415780637d1db4a5146103585780638cd4426d146103835780638da5cb5b146103ac57610140565b806323b872dd116100fd57806323b872dd1461021a578063293230b814610257578063313ce5671461026e578063364333f41461029957806349d92bf4146102b057806353af3de3146102c757610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806320969d071461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e9565b604051610167919061216b565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612226565b610526565b6040516101a49190612281565b60405180910390f35b3480156101b957600080fd5b506101c2610544565b6040516101cf91906122ab565b60405180910390f35b3480156101e457600080fd5b506101ed61054a565b6040516101fa91906122ab565b60405180910390f35b34801561020f57600080fd5b5061021861056e565b005b34801561022657600080fd5b50610241600480360381019061023c91906122c6565b61063a565b60405161024e9190612281565b60405180910390f35b34801561026357600080fd5b5061026c610713565b005b34801561027a57600080fd5b50610283610932565b6040516102909190612335565b60405180910390f35b3480156102a557600080fd5b506102ae61093b565b005b3480156102bc57600080fd5b506102c56109d8565b005b3480156102d357600080fd5b506102ee60048036038101906102e99190612350565b610b08565b6040516102fb9190612281565b60405180910390f35b34801561031057600080fd5b5061032b6004803603810190610326919061237d565b610bfa565b60405161033891906122ab565b60405180910390f35b34801561034d57600080fd5b50610356610c43565b005b34801561036457600080fd5b5061036d610d96565b60405161037a91906122ab565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a59190612226565b610d9c565b005b3480156103b857600080fd5b506103c1610ea2565b6040516103ce91906123b9565b60405180910390f35b3480156103e357600080fd5b506103ec610ecb565b6040516103f991906122ab565b60405180910390f35b34801561040e57600080fd5b50610417610ed1565b604051610424919061216b565b60405180910390f35b34801561043957600080fd5b50610454600480360381019061044f9190612226565b610f0e565b6040516104619190612281565b60405180910390f35b34801561047657600080fd5b5061047f610f2c565b60405161048c91906122ab565b60405180910390f35b3480156104a157600080fd5b506104aa610f32565b005b3480156104b857600080fd5b506104d360048036038101906104ce91906123d4565b610fa4565b6040516104e091906122ab565b60405180910390f35b60606040518060400160405280600781526020017f426c6f7853494d00000000000000000000000000000000000000000000000000815250905090565b600061053a61053361102b565b8484611033565b6001905092915050565b60125481565b60006009600a61055a9190612576565b6305f5e10061056991906125c1565b905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105af61102b565b73ffffffffffffffffffffffffffffffffffffffff16146105cf57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610637573d6000803e3d6000fd5b50565b60006106478484846111fc565b6107088461065361102b565b6107038560405180606001604052806028815260200161311160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106b961102b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611baa9092919063ffffffff16565b611033565b600190509392505050565b61071b61102b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079f9061264f565b60405180910390fd5b60148054906101000a900460ff16156107f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ed906126bb565b60405180910390fd5b61083f30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61082b9190612576565b6305f5e10061083a91906125c1565b611033565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061088830610bfa565b600080610893610ea2565b426040518863ffffffff1660e01b81526004016108b596959493929190612720565b60606040518083038185885af11580156108d3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108f89190612796565b5050506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b60006009905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661097c61102b565b73ffffffffffffffffffffffffffffffffffffffff161461099c57600080fd5b60006109a730610bfa565b905060008111156109bc576109bb81611c0e565b5b600047905060008111156109d4576109d381611e87565b5b5050565b6109e061102b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a649061264f565b60405180910390fd5b6009600a610a7b9190612576565b6305f5e100610a8a91906125c1565b600f819055506009600a610a9e9190612576565b6305f5e100610aad91906125c1565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ae29190612576565b6305f5e100610af191906125c1565b604051610afe91906122ab565b60405180910390a1565b6000610b1261102b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b969061264f565b60405180910390fd5b81600881905550816009819055506005821115610bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be890612835565b60405180910390fd5b60019050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c4b61102b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccf9061264f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ddd61102b565b73ffffffffffffffffffffffffffffffffffffffff1614610dfd57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610e5a9291906128aa565b6020604051808303816000875af1158015610e79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9d91906128ff565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f6253494d00000000000000000000000000000000000000000000000000000000815250905090565b6000610f22610f1b61102b565b84846111fc565b6001905092915050565b60115481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f7361102b565b73ffffffffffffffffffffffffffffffffffffffff1614610f9357600080fd5b6000479050610fa181611e87565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110999061299e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890612a30565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111ef91906122ab565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361126b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126290612ac2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190612b54565b60405180910390fd5b6000811161131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612be6565b60405180910390fd5b6000611327610ea2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113955750611365610ea2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118ed57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561143e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144757600080fd5b6000600e54036114905761148d606461147f600a54600e541161146c57600654611470565b6008545b85611ef390919063ffffffff16565b611f6d90919063ffffffff16565b90505b6000600e5411156114c6576114c360646114b5600d5485611ef390919063ffffffff16565b611f6d90919063ffffffff16565b90505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115715750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115c75750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116c057600f54821115611611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160890612c52565b60405180910390fd5b6010548261161e85610bfa565b6116289190612c72565b1115611669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166090612cf2565b60405180910390fd5b6116a56064611697600a54600e541161168457600654611688565b6008545b85611ef390919063ffffffff16565b611f6d90919063ffffffff16565b9050600e60008154809291906116ba90612d12565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561174957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561178d5761178a606461177c600b54600e54116117695760075461176d565b6009545b85611ef390919063ffffffff16565b611f6d90919063ffffffff16565b90505b600061179830610bfa565b9050601460159054906101000a900460ff161580156118045750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561181c5750601460169054906101000a900460ff165b8015611829575060115481115b80156118385750600c54600e54115b156118eb576016544311156118505760006015819055505b600460155410611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c90612da6565b60405180910390fd5b6118b26118ad846118a884601254611fb7565b611fb7565b611c0e565b600047905060008111156118ca576118c947611e87565b5b601560008154809291906118dd90612d12565b919050555043601681905550505b505b60008111156119f15761194881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd090919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119e891906122ab565b60405180910390a35b611a4382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aea611a9c828461202e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b8f848661202e90919063ffffffff16565b604051611b9c91906122ab565b60405180910390a350505050565b6000838311158290611bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be9919061216b565b60405180910390fd5b5060008385611c019190612dc6565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c4657611c45612dfa565b5b604051908082528060200260200182016040528015611c745781602001602082028036833780820191505090505b5090503081600081518110611c8c57611c8b612e29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d579190612e6d565b81600181518110611d6b57611d6a612e29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dd230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611033565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e36959493929190612f58565b600060405180830381600087803b158015611e5057600080fd5b505af1158015611e64573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611eef573d6000803e3d6000fd5b5050565b6000808303611f055760009050611f67565b60008284611f1391906125c1565b9050828482611f229190612fe1565b14611f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5990613084565b60405180910390fd5b809150505b92915050565b6000611faf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612078565b905092915050565b6000818311611fc65782611fc8565b815b905092915050565b6000808284611fdf9190612c72565b905083811015612024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201b906130f0565b60405180910390fd5b8091505092915050565b600061207083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611baa565b905092915050565b600080831182906120bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b6919061216b565b60405180910390fd5b50600083856120ce9190612fe1565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121155780820151818401526020810190506120fa565b60008484015250505050565b6000601f19601f8301169050919050565b600061213d826120db565b61214781856120e6565b93506121578185602086016120f7565b61216081612121565b840191505092915050565b600060208201905081810360008301526121858184612132565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121bd82612192565b9050919050565b6121cd816121b2565b81146121d857600080fd5b50565b6000813590506121ea816121c4565b92915050565b6000819050919050565b612203816121f0565b811461220e57600080fd5b50565b600081359050612220816121fa565b92915050565b6000806040838503121561223d5761223c61218d565b5b600061224b858286016121db565b925050602061225c85828601612211565b9150509250929050565b60008115159050919050565b61227b81612266565b82525050565b60006020820190506122966000830184612272565b92915050565b6122a5816121f0565b82525050565b60006020820190506122c0600083018461229c565b92915050565b6000806000606084860312156122df576122de61218d565b5b60006122ed868287016121db565b93505060206122fe868287016121db565b925050604061230f86828701612211565b9150509250925092565b600060ff82169050919050565b61232f81612319565b82525050565b600060208201905061234a6000830184612326565b92915050565b6000602082840312156123665761236561218d565b5b600061237484828501612211565b91505092915050565b6000602082840312156123935761239261218d565b5b60006123a1848285016121db565b91505092915050565b6123b3816121b2565b82525050565b60006020820190506123ce60008301846123aa565b92915050565b600080604083850312156123eb576123ea61218d565b5b60006123f9858286016121db565b925050602061240a858286016121db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561249a5780860481111561247657612475612414565b5b60018516156124855780820291505b808102905061249385612443565b945061245a565b94509492505050565b6000826124b3576001905061256f565b816124c1576000905061256f565b81600181146124d757600281146124e157612510565b600191505061256f565b60ff8411156124f3576124f2612414565b5b8360020a91508482111561250a57612509612414565b5b5061256f565b5060208310610133831016604e8410600b84101617156125455782820a9050838111156125405761253f612414565b5b61256f565b6125528484846001612450565b9250905081840481111561256957612568612414565b5b81810290505b9392505050565b6000612581826121f0565b915061258c83612319565b92506125b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124a3565b905092915050565b60006125cc826121f0565b91506125d7836121f0565b92508282026125e5816121f0565b915082820484148315176125fc576125fb612414565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126396020836120e6565b915061264482612603565b602082019050919050565b600060208201905081810360008301526126688161262c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006126a56017836120e6565b91506126b08261266f565b602082019050919050565b600060208201905081810360008301526126d481612698565b9050919050565b6000819050919050565b6000819050919050565b600061270a612705612700846126db565b6126e5565b6121f0565b9050919050565b61271a816126ef565b82525050565b600060c08201905061273560008301896123aa565b612742602083018861229c565b61274f6040830187612711565b61275c6060830186612711565b61276960808301856123aa565b61277660a083018461229c565b979650505050505050565b600081519050612790816121fa565b92915050565b6000806000606084860312156127af576127ae61218d565b5b60006127bd86828701612781565b93505060206127ce86828701612781565b92505060406127df86828701612781565b9150509250925092565b7f5461782063616e6e6f7420657863656564203500000000000000000000000000600082015250565b600061281f6013836120e6565b915061282a826127e9565b602082019050919050565b6000602082019050818103600083015261284e81612812565b9050919050565b600061287061286b61286684612192565b6126e5565b612192565b9050919050565b600061288282612855565b9050919050565b600061289482612877565b9050919050565b6128a481612889565b82525050565b60006040820190506128bf600083018561289b565b6128cc602083018461229c565b9392505050565b6128dc81612266565b81146128e757600080fd5b50565b6000815190506128f9816128d3565b92915050565b6000602082840312156129155761291461218d565b5b6000612923848285016128ea565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129886024836120e6565b91506129938261292c565b604082019050919050565b600060208201905081810360008301526129b78161297b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a1a6022836120e6565b9150612a25826129be565b604082019050919050565b60006020820190508181036000830152612a4981612a0d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612aac6025836120e6565b9150612ab782612a50565b604082019050919050565b60006020820190508181036000830152612adb81612a9f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b3e6023836120e6565b9150612b4982612ae2565b604082019050919050565b60006020820190508181036000830152612b6d81612b31565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612bd06029836120e6565b9150612bdb82612b74565b604082019050919050565b60006020820190508181036000830152612bff81612bc3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612c3c6019836120e6565b9150612c4782612c06565b602082019050919050565b60006020820190508181036000830152612c6b81612c2f565b9050919050565b6000612c7d826121f0565b9150612c88836121f0565b9250828201905080821115612ca057612c9f612414565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612cdc601a836120e6565b9150612ce782612ca6565b602082019050919050565b60006020820190508181036000830152612d0b81612ccf565b9050919050565b6000612d1d826121f0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d4f57612d4e612414565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b21000000000000000000600082015250565b6000612d906017836120e6565b9150612d9b82612d5a565b602082019050919050565b60006020820190508181036000830152612dbf81612d83565b9050919050565b6000612dd1826121f0565b9150612ddc836121f0565b9250828203905081811115612df457612df3612414565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612e67816121c4565b92915050565b600060208284031215612e8357612e8261218d565b5b6000612e9184828501612e58565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ecf816121b2565b82525050565b6000612ee18383612ec6565b60208301905092915050565b6000602082019050919050565b6000612f0582612e9a565b612f0f8185612ea5565b9350612f1a83612eb6565b8060005b83811015612f4b578151612f328882612ed5565b9750612f3d83612eed565b925050600181019050612f1e565b5085935050505092915050565b600060a082019050612f6d600083018861229c565b612f7a6020830187612711565b8181036040830152612f8c8186612efa565b9050612f9b60608301856123aa565b612fa8608083018461229c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fec826121f0565b9150612ff7836121f0565b92508261300757613006612fb2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061306e6021836120e6565b915061307982613012565b604082019050919050565b6000602082019050818103600083015261309d81613061565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006130da601b836120e6565b91506130e5826130a4565b602082019050919050565b60006020820190508181036000830152613109816130cd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122051cec46800d0602c43879ff275002458cef736c18b80ae9334287c40aa6e8d6e64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab5780638f9a55c01161006f5780638f9a55c0146103d757806395d89b4114610402578063a9059cbb1461042d578063bf474bed1461046a578063ca38b2d914610495578063dd62ed3e146104ac57610140565b806370a0823114610304578063715018a6146103415780637d1db4a5146103585780638cd4426d146103835780638da5cb5b146103ac57610140565b806323b872dd116100fd57806323b872dd1461021a578063293230b814610257578063313ce5671461026e578063364333f41461029957806349d92bf4146102b057806353af3de3146102c757610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806320969d071461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e9565b604051610167919061216b565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612226565b610526565b6040516101a49190612281565b60405180910390f35b3480156101b957600080fd5b506101c2610544565b6040516101cf91906122ab565b60405180910390f35b3480156101e457600080fd5b506101ed61054a565b6040516101fa91906122ab565b60405180910390f35b34801561020f57600080fd5b5061021861056e565b005b34801561022657600080fd5b50610241600480360381019061023c91906122c6565b61063a565b60405161024e9190612281565b60405180910390f35b34801561026357600080fd5b5061026c610713565b005b34801561027a57600080fd5b50610283610932565b6040516102909190612335565b60405180910390f35b3480156102a557600080fd5b506102ae61093b565b005b3480156102bc57600080fd5b506102c56109d8565b005b3480156102d357600080fd5b506102ee60048036038101906102e99190612350565b610b08565b6040516102fb9190612281565b60405180910390f35b34801561031057600080fd5b5061032b6004803603810190610326919061237d565b610bfa565b60405161033891906122ab565b60405180910390f35b34801561034d57600080fd5b50610356610c43565b005b34801561036457600080fd5b5061036d610d96565b60405161037a91906122ab565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a59190612226565b610d9c565b005b3480156103b857600080fd5b506103c1610ea2565b6040516103ce91906123b9565b60405180910390f35b3480156103e357600080fd5b506103ec610ecb565b6040516103f991906122ab565b60405180910390f35b34801561040e57600080fd5b50610417610ed1565b604051610424919061216b565b60405180910390f35b34801561043957600080fd5b50610454600480360381019061044f9190612226565b610f0e565b6040516104619190612281565b60405180910390f35b34801561047657600080fd5b5061047f610f2c565b60405161048c91906122ab565b60405180910390f35b3480156104a157600080fd5b506104aa610f32565b005b3480156104b857600080fd5b506104d360048036038101906104ce91906123d4565b610fa4565b6040516104e091906122ab565b60405180910390f35b60606040518060400160405280600781526020017f426c6f7853494d00000000000000000000000000000000000000000000000000815250905090565b600061053a61053361102b565b8484611033565b6001905092915050565b60125481565b60006009600a61055a9190612576565b6305f5e10061056991906125c1565b905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105af61102b565b73ffffffffffffffffffffffffffffffffffffffff16146105cf57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610637573d6000803e3d6000fd5b50565b60006106478484846111fc565b6107088461065361102b565b6107038560405180606001604052806028815260200161311160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106b961102b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611baa9092919063ffffffff16565b611033565b600190509392505050565b61071b61102b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079f9061264f565b60405180910390fd5b60148054906101000a900460ff16156107f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ed906126bb565b60405180910390fd5b61083f30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61082b9190612576565b6305f5e10061083a91906125c1565b611033565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061088830610bfa565b600080610893610ea2565b426040518863ffffffff1660e01b81526004016108b596959493929190612720565b60606040518083038185885af11580156108d3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108f89190612796565b5050506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b60006009905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661097c61102b565b73ffffffffffffffffffffffffffffffffffffffff161461099c57600080fd5b60006109a730610bfa565b905060008111156109bc576109bb81611c0e565b5b600047905060008111156109d4576109d381611e87565b5b5050565b6109e061102b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a649061264f565b60405180910390fd5b6009600a610a7b9190612576565b6305f5e100610a8a91906125c1565b600f819055506009600a610a9e9190612576565b6305f5e100610aad91906125c1565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ae29190612576565b6305f5e100610af191906125c1565b604051610afe91906122ab565b60405180910390a1565b6000610b1261102b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b969061264f565b60405180910390fd5b81600881905550816009819055506005821115610bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be890612835565b60405180910390fd5b60019050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c4b61102b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccf9061264f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ddd61102b565b73ffffffffffffffffffffffffffffffffffffffff1614610dfd57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610e5a9291906128aa565b6020604051808303816000875af1158015610e79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9d91906128ff565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f6253494d00000000000000000000000000000000000000000000000000000000815250905090565b6000610f22610f1b61102b565b84846111fc565b6001905092915050565b60115481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f7361102b565b73ffffffffffffffffffffffffffffffffffffffff1614610f9357600080fd5b6000479050610fa181611e87565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110999061299e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890612a30565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111ef91906122ab565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361126b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126290612ac2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190612b54565b60405180910390fd5b6000811161131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612be6565b60405180910390fd5b6000611327610ea2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113955750611365610ea2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118ed57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561143e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144757600080fd5b6000600e54036114905761148d606461147f600a54600e541161146c57600654611470565b6008545b85611ef390919063ffffffff16565b611f6d90919063ffffffff16565b90505b6000600e5411156114c6576114c360646114b5600d5485611ef390919063ffffffff16565b611f6d90919063ffffffff16565b90505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115715750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115c75750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116c057600f54821115611611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160890612c52565b60405180910390fd5b6010548261161e85610bfa565b6116289190612c72565b1115611669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166090612cf2565b60405180910390fd5b6116a56064611697600a54600e541161168457600654611688565b6008545b85611ef390919063ffffffff16565b611f6d90919063ffffffff16565b9050600e60008154809291906116ba90612d12565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561174957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561178d5761178a606461177c600b54600e54116117695760075461176d565b6009545b85611ef390919063ffffffff16565b611f6d90919063ffffffff16565b90505b600061179830610bfa565b9050601460159054906101000a900460ff161580156118045750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561181c5750601460169054906101000a900460ff165b8015611829575060115481115b80156118385750600c54600e54115b156118eb576016544311156118505760006015819055505b600460155410611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c90612da6565b60405180910390fd5b6118b26118ad846118a884601254611fb7565b611fb7565b611c0e565b600047905060008111156118ca576118c947611e87565b5b601560008154809291906118dd90612d12565b919050555043601681905550505b505b60008111156119f15761194881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd090919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119e891906122ab565b60405180910390a35b611a4382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aea611a9c828461202e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b8f848661202e90919063ffffffff16565b604051611b9c91906122ab565b60405180910390a350505050565b6000838311158290611bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be9919061216b565b60405180910390fd5b5060008385611c019190612dc6565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c4657611c45612dfa565b5b604051908082528060200260200182016040528015611c745781602001602082028036833780820191505090505b5090503081600081518110611c8c57611c8b612e29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d579190612e6d565b81600181518110611d6b57611d6a612e29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dd230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611033565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e36959493929190612f58565b600060405180830381600087803b158015611e5057600080fd5b505af1158015611e64573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611eef573d6000803e3d6000fd5b5050565b6000808303611f055760009050611f67565b60008284611f1391906125c1565b9050828482611f229190612fe1565b14611f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5990613084565b60405180910390fd5b809150505b92915050565b6000611faf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612078565b905092915050565b6000818311611fc65782611fc8565b815b905092915050565b6000808284611fdf9190612c72565b905083811015612024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201b906130f0565b60405180910390fd5b8091505092915050565b600061207083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611baa565b905092915050565b600080831182906120bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b6919061216b565b60405180910390fd5b50600083856120ce9190612fe1565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121155780820151818401526020810190506120fa565b60008484015250505050565b6000601f19601f8301169050919050565b600061213d826120db565b61214781856120e6565b93506121578185602086016120f7565b61216081612121565b840191505092915050565b600060208201905081810360008301526121858184612132565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121bd82612192565b9050919050565b6121cd816121b2565b81146121d857600080fd5b50565b6000813590506121ea816121c4565b92915050565b6000819050919050565b612203816121f0565b811461220e57600080fd5b50565b600081359050612220816121fa565b92915050565b6000806040838503121561223d5761223c61218d565b5b600061224b858286016121db565b925050602061225c85828601612211565b9150509250929050565b60008115159050919050565b61227b81612266565b82525050565b60006020820190506122966000830184612272565b92915050565b6122a5816121f0565b82525050565b60006020820190506122c0600083018461229c565b92915050565b6000806000606084860312156122df576122de61218d565b5b60006122ed868287016121db565b93505060206122fe868287016121db565b925050604061230f86828701612211565b9150509250925092565b600060ff82169050919050565b61232f81612319565b82525050565b600060208201905061234a6000830184612326565b92915050565b6000602082840312156123665761236561218d565b5b600061237484828501612211565b91505092915050565b6000602082840312156123935761239261218d565b5b60006123a1848285016121db565b91505092915050565b6123b3816121b2565b82525050565b60006020820190506123ce60008301846123aa565b92915050565b600080604083850312156123eb576123ea61218d565b5b60006123f9858286016121db565b925050602061240a858286016121db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561249a5780860481111561247657612475612414565b5b60018516156124855780820291505b808102905061249385612443565b945061245a565b94509492505050565b6000826124b3576001905061256f565b816124c1576000905061256f565b81600181146124d757600281146124e157612510565b600191505061256f565b60ff8411156124f3576124f2612414565b5b8360020a91508482111561250a57612509612414565b5b5061256f565b5060208310610133831016604e8410600b84101617156125455782820a9050838111156125405761253f612414565b5b61256f565b6125528484846001612450565b9250905081840481111561256957612568612414565b5b81810290505b9392505050565b6000612581826121f0565b915061258c83612319565b92506125b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124a3565b905092915050565b60006125cc826121f0565b91506125d7836121f0565b92508282026125e5816121f0565b915082820484148315176125fc576125fb612414565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126396020836120e6565b915061264482612603565b602082019050919050565b600060208201905081810360008301526126688161262c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006126a56017836120e6565b91506126b08261266f565b602082019050919050565b600060208201905081810360008301526126d481612698565b9050919050565b6000819050919050565b6000819050919050565b600061270a612705612700846126db565b6126e5565b6121f0565b9050919050565b61271a816126ef565b82525050565b600060c08201905061273560008301896123aa565b612742602083018861229c565b61274f6040830187612711565b61275c6060830186612711565b61276960808301856123aa565b61277660a083018461229c565b979650505050505050565b600081519050612790816121fa565b92915050565b6000806000606084860312156127af576127ae61218d565b5b60006127bd86828701612781565b93505060206127ce86828701612781565b92505060406127df86828701612781565b9150509250925092565b7f5461782063616e6e6f7420657863656564203500000000000000000000000000600082015250565b600061281f6013836120e6565b915061282a826127e9565b602082019050919050565b6000602082019050818103600083015261284e81612812565b9050919050565b600061287061286b61286684612192565b6126e5565b612192565b9050919050565b600061288282612855565b9050919050565b600061289482612877565b9050919050565b6128a481612889565b82525050565b60006040820190506128bf600083018561289b565b6128cc602083018461229c565b9392505050565b6128dc81612266565b81146128e757600080fd5b50565b6000815190506128f9816128d3565b92915050565b6000602082840312156129155761291461218d565b5b6000612923848285016128ea565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129886024836120e6565b91506129938261292c565b604082019050919050565b600060208201905081810360008301526129b78161297b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a1a6022836120e6565b9150612a25826129be565b604082019050919050565b60006020820190508181036000830152612a4981612a0d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612aac6025836120e6565b9150612ab782612a50565b604082019050919050565b60006020820190508181036000830152612adb81612a9f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b3e6023836120e6565b9150612b4982612ae2565b604082019050919050565b60006020820190508181036000830152612b6d81612b31565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612bd06029836120e6565b9150612bdb82612b74565b604082019050919050565b60006020820190508181036000830152612bff81612bc3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612c3c6019836120e6565b9150612c4782612c06565b602082019050919050565b60006020820190508181036000830152612c6b81612c2f565b9050919050565b6000612c7d826121f0565b9150612c88836121f0565b9250828201905080821115612ca057612c9f612414565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612cdc601a836120e6565b9150612ce782612ca6565b602082019050919050565b60006020820190508181036000830152612d0b81612ccf565b9050919050565b6000612d1d826121f0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d4f57612d4e612414565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b21000000000000000000600082015250565b6000612d906017836120e6565b9150612d9b82612d5a565b602082019050919050565b60006020820190508181036000830152612dbf81612d83565b9050919050565b6000612dd1826121f0565b9150612ddc836121f0565b9250828203905081811115612df457612df3612414565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612e67816121c4565b92915050565b600060208284031215612e8357612e8261218d565b5b6000612e9184828501612e58565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ecf816121b2565b82525050565b6000612ee18383612ec6565b60208301905092915050565b6000602082019050919050565b6000612f0582612e9a565b612f0f8185612ea5565b9350612f1a83612eb6565b8060005b83811015612f4b578151612f328882612ed5565b9750612f3d83612eed565b925050600181019050612f1e565b5085935050505092915050565b600060a082019050612f6d600083018861229c565b612f7a6020830187612711565b8181036040830152612f8c8186612efa565b9050612f9b60608301856123aa565b612fa8608083018461229c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fec826121f0565b9150612ff7836121f0565b92508261300757613006612fb2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061306e6021836120e6565b915061307982613012565b604082019050919050565b6000602082019050818103600083015261309d81613061565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006130da601b836120e6565b91506130e5826130a4565b602082019050919050565b60006020820190508181036000830152613109816130cd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122051cec46800d0602c43879ff275002458cef736c18b80ae9334287c40aa6e8d6e64736f6c63430008130033

Deployed Bytecode Sourcemap

3985:8850:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6261:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7094:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5098:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6538:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11282:148;;;;;;;;;;;;;:::i;:::-;;7263:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11625:378;;;;;;;;;;;;;:::i;:::-;;6447:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12277:355;;;;;;;;;;;;;:::i;:::-;;11015:159;;;;;;;;;;;;;:::i;:::-;;12015:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6641:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3066:148;;;;;;;;;;;;;:::i;:::-;;4926:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11438:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2852:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4981:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6352:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6768:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5038:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12640:192;;;;;;;;;;;;;:::i;:::-;;6943:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6261:83;6298:13;6331:5;;;;;;;;;;;;;;;;;6324:12;;6261:83;:::o;7094:161::-;7169:4;7186:39;7195:12;:10;:12::i;:::-;7209:7;7218:6;7186:8;:39::i;:::-;7243:4;7236:11;;7094:161;;;;:::o;5098:45::-;;;;:::o;6538:95::-;6591:7;4740:1;4797:2;:13;;;;:::i;:::-;4783:11;:27;;;;:::i;:::-;6611:14;;6538:95;:::o;11282:148::-;11349:10;;;;;;;;;;;11333:26;;:12;:10;:12::i;:::-;:26;;;11325:35;;;;;;11379:10;;;;;;;;;;;11371:28;;:51;11400:21;11371:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11282:148::o;7263:313::-;7361:4;7378:36;7388:6;7396:9;7407:6;7378:9;:36::i;:::-;7425:121;7434:6;7442:12;:10;:12::i;:::-;7456:89;7494:6;7456:89;;;;;;;;;;;;;;;;;:11;:19;7468:6;7456:19;;;;;;;;;;;;;;;:33;7476:12;:10;:12::i;:::-;7456:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7425:8;:121::i;:::-;7564:4;7557:11;;7263:313;;;;;:::o;11625:378::-;2989:12;:10;:12::i;:::-;2979:22;;:6;;;;;;;;;;:22;;;2971:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11690:11:::1;::::0;::::1;;;;;;;;11689:12;11681:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11739:58;11756:4;11771:15;;;;;;;;;;;4740:1;4797:2;:13;;;;:::i;:::-;4783:11;:27;;;;:::i;:::-;11739:8;:58::i;:::-;11808:15;;;;;;;;;;;:31;;;11847:21;11878:4;11884:24;11902:4;11884:9;:24::i;:::-;11909:1;11911::::0;11913:7:::1;:5;:7::i;:::-;11921:15;11808:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11962:4;11948:11;;:18;;;;;;;;;;;;;;;;;;11991:4;11977:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11625:378::o:0;6447:83::-;6488:5;4740:1;6506:16;;6447:83;:::o;12277:355::-;12348:10;;;;;;;;;;;12334:24;;:12;:10;:12::i;:::-;:24;;;12326:33;;;;;;12370:20;12391:24;12409:4;12391:9;:24::i;:::-;12370:45;;12442:1;12429:12;:14;12426:73;;;12457:30;12474:12;12457:16;:30::i;:::-;12426:73;12509:18;12528:21;12509:40;;12574:1;12563:10;:12;12560:65;;;12589:24;12602:10;12589:12;:24::i;:::-;12560:65;12315:317;;12277:355::o;11015:159::-;2989:12;:10;:12::i;:::-;2979:22;;:6;;;;;;;;;;:22;;;2971:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4740:1:::1;4797:2;:13;;;;:::i;:::-;4783:11;:27;;;;:::i;:::-;11068:12;:22;;;;4740:1;4797:2;:13;;;;:::i;:::-;4783:11;:27;;;;:::i;:::-;11101:14;:22;;;;11139:27;4740:1;4797:2;:13;;;;:::i;:::-;4783:11;:27;;;;:::i;:::-;11139;;;;;;:::i;:::-;;;;;;;;11015:159::o:0;12015:217::-;12078:4;2989:12;:10;:12::i;:::-;2979:22;;:6;;;;;;;;;;:22;;;2971:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12110:6:::1;12095:12;:21;;;;12143:6;12127:13;:22;;;;12178:1;12168:6;:11;;12160:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;12220:4;12213:11;;12015:217:::0;;;:::o;6641:119::-;6707:7;6734:9;:18;6744:7;6734:18;;;;;;;;;;;;;;;;6727:25;;6641:119;;;:::o;3066:148::-;2989:12;:10;:12::i;:::-;2979:22;;:6;;;;;;;;;;:22;;;2971:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3173:1:::1;3136:40;;3157:6;::::0;::::1;;;;;;;;3136:40;;;;;;;;;;;;3204:1;3187:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3066:148::o:0;4926:48::-;;;;:::o;11438:177::-;11537:10;;;;;;;;;;;11521:26;;:12;:10;:12::i;:::-;:26;;;11513:35;;;;;;11566:10;11559:27;;;11587:10;;;;;;;;;;;11599:7;11559:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11438:177;;:::o;2852:79::-;2890:7;2917:6;;;;;;;;;;;2910:13;;2852:79;:::o;4981:50::-;;;;:::o;6352:87::-;6391:13;6424:7;;;;;;;;;;;;;;;;;6417:14;;6352:87;:::o;6768:167::-;6846:4;6863:42;6873:12;:10;:12::i;:::-;6887:9;6898:6;6863:9;:42::i;:::-;6923:4;6916:11;;6768:167;;;;:::o;5038:53::-;;;;:::o;12640:192::-;12709:10;;;;;;;;;;;12695:24;;:12;:10;:12::i;:::-;:24;;;12687:33;;;;;;12731:26;12760:21;12731:50;;12792:32;12805:18;12792:12;:32::i;:::-;12676:156;12640:192::o;6943:143::-;7024:7;7051:11;:18;7063:5;7051:18;;;;;;;;;;;;;;;:27;7070:7;7051:27;;;;;;;;;;;;;;;;7044:34;;6943:143;;;;:::o;607:98::-;660:7;687:10;680:17;;607:98;:::o;7584:335::-;7694:1;7677:19;;:5;:19;;;7669:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7775:1;7756:21;;:7;:21;;;7748:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7857:6;7827:11;:18;7839:5;7827:18;;;;;;;;;;;;;;;:27;7846:7;7827:27;;;;;;;;;;;;;;;:36;;;;7895:7;7879:32;;7888:5;7879:32;;;7904:6;7879:32;;;;;;:::i;:::-;;;;;;;;7584:335;;;:::o;7927:2481::-;8031:1;8015:18;;:4;:18;;;8007:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8108:1;8094:16;;:2;:16;;;8086:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8178:1;8169:6;:10;8161:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8236:17;8278:7;:5;:7::i;:::-;8270:15;;:4;:15;;;;:32;;;;;8295:7;:5;:7::i;:::-;8289:13;;:2;:13;;;;8270:32;8266:1786;;;8328:4;:10;8333:4;8328:10;;;;;;;;;;;;;;;;;;;;;;;;;8327:11;:24;;;;;8343:4;:8;8348:2;8343:8;;;;;;;;;;;;;;;;;;;;;;;;;8342:9;8327:24;8319:33;;;;;;8389:1;8372:15;;:18;8369:151;;8422:82;8500:3;8422:73;8450:15;;8434;;:31;8433:61;;8480:14;;8433:61;;;8467:12;;8433:61;8422:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;8410:94;;8369:151;8553:1;8537:15;;:17;8534:95;;;8586:27;8609:3;8586:18;8597:6;;8586;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;8574:39;;8534:95;8657:13;;;;;;;;;;;8649:21;;:4;:21;;;:55;;;;;8688:15;;;;;;;;;;;8674:30;;:2;:30;;;;8649:55;:83;;;;;8710:18;:22;8729:2;8710:22;;;;;;;;;;;;;;;;;;;;;;;;;8708:24;8649:83;8645:432;;;8772:12;;8762:6;:22;;8754:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8867:14;;8857:6;8841:13;8851:2;8841:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8833:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8943:82;9021:3;8943:73;8971:15;;8955;;:31;8954:61;;9001:14;;8954:61;;;8988:12;;8954:61;8943:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;8931:94;;9044:15;;:17;;;;;;;;;:::i;:::-;;;;;;8645:432;9102:13;;;;;;;;;;;9096:19;;:2;:19;;;:43;;;;;9134:4;9119:20;;:4;:20;;;;9096:43;9093:180;;;9172:85;9253:3;9172:76;9200:16;;9184:15;;:32;9183:64;;9232:15;;9183:64;;;9218:13;;9183:64;9172:6;:10;;:76;;;;:::i;:::-;:80;;:85;;;;:::i;:::-;9160:97;;9093:180;9289:28;9320:24;9338:4;9320:9;:24::i;:::-;9289:55;;9364:6;;;;;;;;;;;9363:7;:30;;;;;9380:13;;;;;;;;;;;9374:19;;:2;:19;;;9363:30;:45;;;;;9397:11;;;;;;;;;;;9363:45;:89;;;;;9435:17;;9412:20;:40;9363:89;:130;;;;;9474:19;;9456:15;;:37;9363:130;9359:682;;;9533:14;;9518:12;:29;9514:89;;;9582:1;9572:7;:11;;;;9514:89;9639:1;9629:7;;:11;9621:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9687:69;9704:51;9708:6;9716:38;9720:20;9742:11;;9716:3;:38::i;:::-;9704:3;:51::i;:::-;9687:16;:69::i;:::-;9775:26;9804:21;9775:50;;9869:1;9848:18;:22;9844:106;;;9895:35;9908:21;9895:12;:35::i;:::-;9844:106;9968:7;;:9;;;;;;;;;:::i;:::-;;;;;;10013:12;9996:14;:29;;;;9495:546;9359:682;8304:1748;8266:1786;10077:1;10067:9;:11;10064:161;;;10117:39;10146:9;10117;:24;10135:4;10117:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10092:9;:24;10110:4;10092:24;;;;;;;;;;;;;;;:64;;;;10197:4;10174:39;;10183:4;10174:39;;;10203:9;10174:39;;;;;;:::i;:::-;;;;;;;;10064:161;10251:27;10271:6;10251:9;:15;10261:4;10251:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10235:9;:15;10245:4;10235:15;;;;;;;;;;;;;;;:43;;;;10303:40;10321:21;10332:9;10321:6;:10;;:21;;;;:::i;:::-;10303:9;:13;10313:2;10303:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10289:9;:13;10299:2;10289:13;;;;;;;;;;;;;;;:54;;;;10374:2;10359:41;;10368:4;10359:41;;;10378:21;10389:9;10378:6;:10;;:21;;;;:::i;:::-;10359:41;;;;;;:::i;:::-;;;;;;;;7996:2412;7927:2481;;;:::o;1744:190::-;1830:7;1863:1;1858;:6;;1866:12;1850:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1890:9;1906:1;1902;:5;;;;:::i;:::-;1890:17;;1925:1;1918:8;;;1744:190;;;;;:::o;10524:483::-;5553:4;5544:6;;:13;;;;;;;;;;;;;;;;;;10602:21:::1;10640:1;10626:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10602:40;;10671:4;10653;10658:1;10653:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10697:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10687:4;10692:1;10687:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10730:62;10747:4;10762:15;;;;;;;;;;;10780:11;10730:8;:62::i;:::-;10803:15;;;;;;;;;;;:66;;;10884:11;10910:1;10926:4;10953;10973:15;10803:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10591:416;5589:5:::0;5580:6;;:14;;;;;;;;;;;;;;;;;;10524:483;:::o;11182:92::-;11239:10;;;;;;;;;;;:19;;:27;11259:6;11239:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11182:92;:::o;1942:246::-;2000:7;2029:1;2024;:6;2020:47;;2054:1;2047:8;;;;2020:47;2077:9;2093:1;2089;:5;;;;:::i;:::-;2077:17;;2122:1;2117;2113;:5;;;;:::i;:::-;:10;2105:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2179:1;2172:8;;;1942:246;;;;;:::o;2196:132::-;2254:7;2281:39;2285:1;2288;2281:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2274:46;;2196:132;;;;:::o;10418:98::-;10475:7;10502:1;10500;:3;10499:9;;10507:1;10499:9;;;10505:1;10499:9;10492:16;;10418:98;;;;:::o;1413:179::-;1471:7;1491:9;1507:1;1503;:5;;;;:::i;:::-;1491:17;;1532:1;1527;:6;;1519:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1583:1;1576:8;;;1413:179;;;;:::o;1600:136::-;1658:7;1685:43;1689:1;1692;1685:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1678:50;;1600:136;;;;:::o;2336:189::-;2422:7;2454:1;2450;:5;2457:12;2442:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2481:9;2497:1;2493;:5;;;;:::i;:::-;2481:17;;2516:1;2509:8;;;2336:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:102;6583:8;6630:5;6627:1;6623:13;6602:34;;6541:102;;;:::o;6649:848::-;6710:5;6717:4;6741:6;6732:15;;6765:5;6756:14;;6779:712;6800:1;6790:8;6787:15;6779:712;;;6895:4;6890:3;6886:14;6880:4;6877:24;6874:50;;;6904:18;;:::i;:::-;6874:50;6954:1;6944:8;6940:16;6937:451;;;7369:4;7362:5;7358:16;7349:25;;6937:451;7419:4;7413;7409:15;7401:23;;7449:32;7472:8;7449:32;:::i;:::-;7437:44;;6779:712;;;6649:848;;;;;;;:::o;7503:1073::-;7557:5;7748:8;7738:40;;7769:1;7760:10;;7771:5;;7738:40;7797:4;7787:36;;7814:1;7805:10;;7816:5;;7787:36;7883:4;7931:1;7926:27;;;;7967:1;7962:191;;;;7876:277;;7926:27;7944:1;7935:10;;7946:5;;;7962:191;8007:3;7997:8;7994:17;7991:43;;;8014:18;;:::i;:::-;7991:43;8063:8;8060:1;8056:16;8047:25;;8098:3;8091:5;8088:14;8085:40;;;8105:18;;:::i;:::-;8085:40;8138:5;;;7876:277;;8262:2;8252:8;8249:16;8243:3;8237:4;8234:13;8230:36;8212:2;8202:8;8199:16;8194:2;8188:4;8185:12;8181:35;8165:111;8162:246;;;8318:8;8312:4;8308:19;8299:28;;8353:3;8346:5;8343:14;8340:40;;;8360:18;;:::i;:::-;8340:40;8393:5;;8162:246;8433:42;8471:3;8461:8;8455:4;8452:1;8433:42;:::i;:::-;8418:57;;;;8507:4;8502:3;8498:14;8491:5;8488:25;8485:51;;;8516:18;;:::i;:::-;8485:51;8565:4;8558:5;8554:16;8545:25;;7503:1073;;;;;;:::o;8582:281::-;8640:5;8664:23;8682:4;8664:23;:::i;:::-;8656:31;;8708:25;8724:8;8708:25;:::i;:::-;8696:37;;8752:104;8789:66;8779:8;8773:4;8752:104;:::i;:::-;8743:113;;8582:281;;;;:::o;8869:410::-;8909:7;8932:20;8950:1;8932:20;:::i;:::-;8927:25;;8966:20;8984:1;8966:20;:::i;:::-;8961:25;;9021:1;9018;9014:9;9043:30;9061:11;9043:30;:::i;:::-;9032:41;;9222:1;9213:7;9209:15;9206:1;9203:22;9183:1;9176:9;9156:83;9133:139;;9252:18;;:::i;:::-;9133:139;8917:362;8869:410;;;;:::o;9285:182::-;9425:34;9421:1;9413:6;9409:14;9402:58;9285:182;:::o;9473:366::-;9615:3;9636:67;9700:2;9695:3;9636:67;:::i;:::-;9629:74;;9712:93;9801:3;9712:93;:::i;:::-;9830:2;9825:3;9821:12;9814:19;;9473:366;;;:::o;9845:419::-;10011:4;10049:2;10038:9;10034:18;10026:26;;10098:9;10092:4;10088:20;10084:1;10073:9;10069:17;10062:47;10126:131;10252:4;10126:131;:::i;:::-;10118:139;;9845:419;;;:::o;10270:173::-;10410:25;10406:1;10398:6;10394:14;10387:49;10270:173;:::o;10449:366::-;10591:3;10612:67;10676:2;10671:3;10612:67;:::i;:::-;10605:74;;10688:93;10777:3;10688:93;:::i;:::-;10806:2;10801:3;10797:12;10790:19;;10449:366;;;:::o;10821:419::-;10987:4;11025:2;11014:9;11010:18;11002:26;;11074:9;11068:4;11064:20;11060:1;11049:9;11045:17;11038:47;11102:131;11228:4;11102:131;:::i;:::-;11094:139;;10821:419;;;:::o;11246:85::-;11291:7;11320:5;11309:16;;11246:85;;;:::o;11337:60::-;11365:3;11386:5;11379:12;;11337:60;;;:::o;11403:158::-;11461:9;11494:61;11512:42;11521:32;11547:5;11521:32;:::i;:::-;11512:42;:::i;:::-;11494:61;:::i;:::-;11481:74;;11403:158;;;:::o;11567:147::-;11662:45;11701:5;11662:45;:::i;:::-;11657:3;11650:58;11567:147;;:::o;11720:807::-;11969:4;12007:3;11996:9;11992:19;11984:27;;12021:71;12089:1;12078:9;12074:17;12065:6;12021:71;:::i;:::-;12102:72;12170:2;12159:9;12155:18;12146:6;12102:72;:::i;:::-;12184:80;12260:2;12249:9;12245:18;12236:6;12184:80;:::i;:::-;12274;12350:2;12339:9;12335:18;12326:6;12274:80;:::i;:::-;12364:73;12432:3;12421:9;12417:19;12408:6;12364:73;:::i;:::-;12447;12515:3;12504:9;12500:19;12491:6;12447:73;:::i;:::-;11720:807;;;;;;;;;:::o;12533:143::-;12590:5;12621:6;12615:13;12606:22;;12637:33;12664:5;12637:33;:::i;:::-;12533:143;;;;:::o;12682:663::-;12770:6;12778;12786;12835:2;12823:9;12814:7;12810:23;12806:32;12803:119;;;12841:79;;:::i;:::-;12803:119;12961:1;12986:64;13042:7;13033:6;13022:9;13018:22;12986:64;:::i;:::-;12976:74;;12932:128;13099:2;13125:64;13181:7;13172:6;13161:9;13157:22;13125:64;:::i;:::-;13115:74;;13070:129;13238:2;13264:64;13320:7;13311:6;13300:9;13296:22;13264:64;:::i;:::-;13254:74;;13209:129;12682:663;;;;;:::o;13351:169::-;13491:21;13487:1;13479:6;13475:14;13468:45;13351:169;:::o;13526:366::-;13668:3;13689:67;13753:2;13748:3;13689:67;:::i;:::-;13682:74;;13765:93;13854:3;13765:93;:::i;:::-;13883:2;13878:3;13874:12;13867:19;;13526:366;;;:::o;13898:419::-;14064:4;14102:2;14091:9;14087:18;14079:26;;14151:9;14145:4;14141:20;14137:1;14126:9;14122:17;14115:47;14179:131;14305:4;14179:131;:::i;:::-;14171:139;;13898:419;;;:::o;14323:142::-;14373:9;14406:53;14424:34;14433:24;14451:5;14433:24;:::i;:::-;14424:34;:::i;:::-;14406:53;:::i;:::-;14393:66;;14323:142;;;:::o;14471:126::-;14521:9;14554:37;14585:5;14554:37;:::i;:::-;14541:50;;14471:126;;;:::o;14603:134::-;14661:9;14694:37;14725:5;14694:37;:::i;:::-;14681:50;;14603:134;;;:::o;14743:147::-;14838:45;14877:5;14838:45;:::i;:::-;14833:3;14826:58;14743:147;;:::o;14896:348::-;15025:4;15063:2;15052:9;15048:18;15040:26;;15076:79;15152:1;15141:9;15137:17;15128:6;15076:79;:::i;:::-;15165:72;15233:2;15222:9;15218:18;15209:6;15165:72;:::i;:::-;14896:348;;;;;:::o;15250:116::-;15320:21;15335:5;15320:21;:::i;:::-;15313:5;15310:32;15300:60;;15356:1;15353;15346:12;15300:60;15250:116;:::o;15372:137::-;15426:5;15457:6;15451:13;15442:22;;15473:30;15497:5;15473:30;:::i;:::-;15372:137;;;;:::o;15515:345::-;15582:6;15631:2;15619:9;15610:7;15606:23;15602:32;15599:119;;;15637:79;;:::i;:::-;15599:119;15757:1;15782:61;15835:7;15826:6;15815:9;15811:22;15782:61;:::i;:::-;15772:71;;15728:125;15515:345;;;;:::o;15866:223::-;16006:34;16002:1;15994:6;15990:14;15983:58;16075:6;16070:2;16062:6;16058:15;16051:31;15866:223;:::o;16095:366::-;16237:3;16258:67;16322:2;16317:3;16258:67;:::i;:::-;16251:74;;16334:93;16423:3;16334:93;:::i;:::-;16452:2;16447:3;16443:12;16436:19;;16095:366;;;:::o;16467:419::-;16633:4;16671:2;16660:9;16656:18;16648:26;;16720:9;16714:4;16710:20;16706:1;16695:9;16691:17;16684:47;16748:131;16874:4;16748:131;:::i;:::-;16740:139;;16467:419;;;:::o;16892:221::-;17032:34;17028:1;17020:6;17016:14;17009:58;17101:4;17096:2;17088:6;17084:15;17077:29;16892:221;:::o;17119:366::-;17261:3;17282:67;17346:2;17341:3;17282:67;:::i;:::-;17275:74;;17358:93;17447:3;17358:93;:::i;:::-;17476:2;17471:3;17467:12;17460:19;;17119:366;;;:::o;17491:419::-;17657:4;17695:2;17684:9;17680:18;17672:26;;17744:9;17738:4;17734:20;17730:1;17719:9;17715:17;17708:47;17772:131;17898:4;17772:131;:::i;:::-;17764:139;;17491:419;;;:::o;17916:224::-;18056:34;18052:1;18044:6;18040:14;18033:58;18125:7;18120:2;18112:6;18108:15;18101:32;17916:224;:::o;18146:366::-;18288:3;18309:67;18373:2;18368:3;18309:67;:::i;:::-;18302:74;;18385:93;18474:3;18385:93;:::i;:::-;18503:2;18498:3;18494:12;18487:19;;18146:366;;;:::o;18518:419::-;18684:4;18722:2;18711:9;18707:18;18699:26;;18771:9;18765:4;18761:20;18757:1;18746:9;18742:17;18735:47;18799:131;18925:4;18799:131;:::i;:::-;18791:139;;18518:419;;;:::o;18943:222::-;19083:34;19079:1;19071:6;19067:14;19060:58;19152:5;19147:2;19139:6;19135:15;19128:30;18943:222;:::o;19171:366::-;19313:3;19334:67;19398:2;19393:3;19334:67;:::i;:::-;19327:74;;19410:93;19499:3;19410:93;:::i;:::-;19528:2;19523:3;19519:12;19512:19;;19171:366;;;:::o;19543:419::-;19709:4;19747:2;19736:9;19732:18;19724:26;;19796:9;19790:4;19786:20;19782:1;19771:9;19767:17;19760:47;19824:131;19950:4;19824:131;:::i;:::-;19816:139;;19543:419;;;:::o;19968:228::-;20108:34;20104:1;20096:6;20092:14;20085:58;20177:11;20172:2;20164:6;20160:15;20153:36;19968:228;:::o;20202:366::-;20344:3;20365:67;20429:2;20424:3;20365:67;:::i;:::-;20358:74;;20441:93;20530:3;20441:93;:::i;:::-;20559:2;20554:3;20550:12;20543:19;;20202:366;;;:::o;20574:419::-;20740:4;20778:2;20767:9;20763:18;20755:26;;20827:9;20821:4;20817:20;20813:1;20802:9;20798:17;20791:47;20855:131;20981:4;20855:131;:::i;:::-;20847:139;;20574:419;;;:::o;20999:175::-;21139:27;21135:1;21127:6;21123:14;21116:51;20999:175;:::o;21180:366::-;21322:3;21343:67;21407:2;21402:3;21343:67;:::i;:::-;21336:74;;21419:93;21508:3;21419:93;:::i;:::-;21537:2;21532:3;21528:12;21521:19;;21180:366;;;:::o;21552:419::-;21718:4;21756:2;21745:9;21741:18;21733:26;;21805:9;21799:4;21795:20;21791:1;21780:9;21776:17;21769:47;21833:131;21959:4;21833:131;:::i;:::-;21825:139;;21552:419;;;:::o;21977:191::-;22017:3;22036:20;22054:1;22036:20;:::i;:::-;22031:25;;22070:20;22088:1;22070:20;:::i;:::-;22065:25;;22113:1;22110;22106:9;22099:16;;22134:3;22131:1;22128:10;22125:36;;;22141:18;;:::i;:::-;22125:36;21977:191;;;;:::o;22174:176::-;22314:28;22310:1;22302:6;22298:14;22291:52;22174:176;:::o;22356:366::-;22498:3;22519:67;22583:2;22578:3;22519:67;:::i;:::-;22512:74;;22595:93;22684:3;22595:93;:::i;:::-;22713:2;22708:3;22704:12;22697:19;;22356:366;;;:::o;22728:419::-;22894:4;22932:2;22921:9;22917:18;22909:26;;22981:9;22975:4;22971:20;22967:1;22956:9;22952:17;22945:47;23009:131;23135:4;23009:131;:::i;:::-;23001:139;;22728:419;;;:::o;23153:233::-;23192:3;23215:24;23233:5;23215:24;:::i;:::-;23206:33;;23261:66;23254:5;23251:77;23248:103;;23331:18;;:::i;:::-;23248:103;23378:1;23371:5;23367:13;23360:20;;23153:233;;;:::o;23392:173::-;23532:25;23528:1;23520:6;23516:14;23509:49;23392:173;:::o;23571:366::-;23713:3;23734:67;23798:2;23793:3;23734:67;:::i;:::-;23727:74;;23810:93;23899:3;23810:93;:::i;:::-;23928:2;23923:3;23919:12;23912:19;;23571:366;;;:::o;23943:419::-;24109:4;24147:2;24136:9;24132:18;24124:26;;24196:9;24190:4;24186:20;24182:1;24171:9;24167:17;24160:47;24224:131;24350:4;24224:131;:::i;:::-;24216:139;;23943:419;;;:::o;24368:194::-;24408:4;24428:20;24446:1;24428:20;:::i;:::-;24423:25;;24462:20;24480:1;24462:20;:::i;:::-;24457:25;;24506:1;24503;24499:9;24491:17;;24530:1;24524:4;24521:11;24518:37;;;24535:18;;:::i;:::-;24518:37;24368:194;;;;:::o;24568:180::-;24616:77;24613:1;24606:88;24713:4;24710:1;24703:15;24737:4;24734:1;24727:15;24754:180;24802:77;24799:1;24792:88;24899:4;24896:1;24889:15;24923:4;24920:1;24913:15;24940:143;24997:5;25028:6;25022:13;25013:22;;25044:33;25071:5;25044:33;:::i;:::-;24940:143;;;;:::o;25089:351::-;25159:6;25208:2;25196:9;25187:7;25183:23;25179:32;25176:119;;;25214:79;;:::i;:::-;25176:119;25334:1;25359:64;25415:7;25406:6;25395:9;25391:22;25359:64;:::i;:::-;25349:74;;25305:128;25089:351;;;;:::o;25446:114::-;25513:6;25547:5;25541:12;25531:22;;25446:114;;;:::o;25566:184::-;25665:11;25699:6;25694:3;25687:19;25739:4;25734:3;25730:14;25715:29;;25566:184;;;;:::o;25756:132::-;25823:4;25846:3;25838:11;;25876:4;25871:3;25867:14;25859:22;;25756:132;;;:::o;25894:108::-;25971:24;25989:5;25971:24;:::i;:::-;25966:3;25959:37;25894:108;;:::o;26008:179::-;26077:10;26098:46;26140:3;26132:6;26098:46;:::i;:::-;26176:4;26171:3;26167:14;26153:28;;26008:179;;;;:::o;26193:113::-;26263:4;26295;26290:3;26286:14;26278:22;;26193:113;;;:::o;26342:732::-;26461:3;26490:54;26538:5;26490:54;:::i;:::-;26560:86;26639:6;26634:3;26560:86;:::i;:::-;26553:93;;26670:56;26720:5;26670:56;:::i;:::-;26749:7;26780:1;26765:284;26790:6;26787:1;26784:13;26765:284;;;26866:6;26860:13;26893:63;26952:3;26937:13;26893:63;:::i;:::-;26886:70;;26979:60;27032:6;26979:60;:::i;:::-;26969:70;;26825:224;26812:1;26809;26805:9;26800:14;;26765:284;;;26769:14;27065:3;27058:10;;26466:608;;;26342:732;;;;:::o;27080:831::-;27343:4;27381:3;27370:9;27366:19;27358:27;;27395:71;27463:1;27452:9;27448:17;27439:6;27395:71;:::i;:::-;27476:80;27552:2;27541:9;27537:18;27528:6;27476:80;:::i;:::-;27603:9;27597:4;27593:20;27588:2;27577:9;27573:18;27566:48;27631:108;27734:4;27725:6;27631:108;:::i;:::-;27623:116;;27749:72;27817:2;27806:9;27802:18;27793:6;27749:72;:::i;:::-;27831:73;27899:3;27888:9;27884:19;27875:6;27831:73;:::i;:::-;27080:831;;;;;;;;:::o;27917:180::-;27965:77;27962:1;27955:88;28062:4;28059:1;28052:15;28086:4;28083:1;28076:15;28103:185;28143:1;28160:20;28178:1;28160:20;:::i;:::-;28155:25;;28194:20;28212:1;28194:20;:::i;:::-;28189:25;;28233:1;28223:35;;28238:18;;:::i;:::-;28223:35;28280:1;28277;28273:9;28268:14;;28103:185;;;;:::o;28294:220::-;28434:34;28430:1;28422:6;28418:14;28411:58;28503:3;28498:2;28490:6;28486:15;28479:28;28294:220;:::o;28520:366::-;28662:3;28683:67;28747:2;28742:3;28683:67;:::i;:::-;28676:74;;28759:93;28848:3;28759:93;:::i;:::-;28877:2;28872:3;28868:12;28861:19;;28520:366;;;:::o;28892:419::-;29058:4;29096:2;29085:9;29081:18;29073:26;;29145:9;29139:4;29135:20;29131:1;29120:9;29116:17;29109:47;29173:131;29299:4;29173:131;:::i;:::-;29165:139;;28892:419;;;:::o;29317:177::-;29457:29;29453:1;29445:6;29441:14;29434:53;29317:177;:::o;29500:366::-;29642:3;29663:67;29727:2;29722:3;29663:67;:::i;:::-;29656:74;;29739:93;29828:3;29739:93;:::i;:::-;29857:2;29852:3;29848:12;29841:19;;29500:366;;;:::o;29872:419::-;30038:4;30076:2;30065:9;30061:18;30053:26;;30125:9;30119:4;30115:20;30111:1;30100:9;30096:17;30089:47;30153:131;30279:4;30153:131;:::i;:::-;30145:139;;29872:419;;;:::o

Swarm Source

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