ETH Price: $3,113.37 (+1.39%)
Gas: 4 Gwei

Token

Kirokugo (KIRO)
 

Overview

Max Total Supply

4,000,000,000 KIRO

Holders

710

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 10 Decimals)

Balance
8,459,385.7726832399 KIRO

Value
$0.00
0xfca323e0548898775149fcc40bc525d014ea4e01
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:
KIRO

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSE

/*
www.kirokugo.com
*/

pragma solidity 0.8.26;


abstract contract Context {
// Abstract contract Context provides a basic implementation of the `_msgSender()` function
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
} 

interface IERC20 {
// Interface for the ERC20 token standard
    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 {
// SafeMath library for safe arithmetic operations
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

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

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

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

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

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

}

contract Ownable is Context {
// Contract for ownership management
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}

interface IUniswapV2Factory {
// Interface for the Uniswap V2 factory
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
// Interface for the Uniswap V2 router
    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 KIRO is Context, IERC20, Ownable {
// Kirokugo contract
    using SafeMath for uint256;

// Mappings for token balances, allowances, and fee exclusions
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

// Treasury wallet address
    address payable private _treasuryWallet;

// Token metadata
    string private constant _name = unicode"Kirokugo";
    string private constant _symbol = unicode"KIRO";

// Treasury bootstrapping fees
    uint256 private _initialBuyTax=21;
    uint256 private _initialSellTax=21;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;

// Tax reduction thresholds
    uint256 private _reduceBuyTaxAt=40;
    uint256 private _reduceSellTaxAt=40;

// Minimum number of transactions before allowing swaps
    uint256 private _preventSwapBeforeTxs=30;

// Anti-MEV fee
    uint256 private _antiMEVfee=25;
    uint256 private _buyCount=0;

// Decimals and transaction restrictions
    uint8 private constant _decimals = 10;
    uint256 private constant _tTotal = 4000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 36000000 * 10**_decimals;
    uint256 public _maxWalletSize = 36000000 * 10**_decimals;
    uint256 public _treasurySwapThreshold= 8000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 36000000 * 10**_decimals;

// Uniswap V2 router and pair addresses
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

// Trading status and swap control flags
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellsOnBlock = 0;
    uint256 private lastSellBlock = 0;

// Events for updating maximum transaction amount and anti-MEV fee
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event AntiMEVUpdated(uint _antiMEVfee);

// Modifier to prevent reentrancy during swaps
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_antiMEVfee).div(100);
            }

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _treasurySwapThreshold && _buyCount > _preventSwapBeforeTxs) {
                if (block.number > lastSellBlock) {
                    sellsOnBlock = 0;
                }
                require(sellsOnBlock < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToTreasury(address(this).balance);
                }
                sellsOnBlock++;
                lastSellBlock = block.number;
            }
        }

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


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

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

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeAntiMEVFee() external onlyOwner{
        _antiMEVfee = 0;
        emit AntiMEVUpdated(0);
    }

    function sendETHToTreasury(uint256 amount) private {
        _treasuryWallet.transfer(amount);
    }

    function withdrawStuckETH() external onlyOwner {
        require(address(this).balance > 0, "No stuck ETH to withdraw");
        
        uint256 amount = address(this).balance;
        payable(owner()).transfer(amount);
    }

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

    function manualSwap() external {
        require(_msgSender()==_treasuryWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToTreasury(ethBalance);
        }
    }

    function manualsend() external {
        require(_msgSender()==_treasuryWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToTreasury(contractETHBalance);
    }

receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_antiMEVfee","type":"uint256"}],"name":"AntiMEVUpdated","type":"event"},{"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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_treasurySwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","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":"removeAntiMEVFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601560055560156006555f6007555f60085560286009556028600a55601e600b556019600c555f600d55600a8061003b91906105b1565b630225510061004a91906105fb565b600e55600a8061005a91906105b1565b630225510061006991906105fb565b600f55600a8061007991906105b1565b627a120061008791906105fb565b601055600a8061009791906105b1565b63022551006100a691906105fb565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015553480156100f0575f80fd5b505f61010061041260201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101aa61041260201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a806101f691906105b1565b63ee6b280061020591906105fb565b60015f61021661041260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61026661041960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061038e61041260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a806103e991906105b1565b63ee6b28006103f891906105fb565b604051610405919061064b565b60405180910390a3610664565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104c25780860481111561049e5761049d610440565b5b60018516156104ad5780820291505b80810290506104bb8561046d565b9450610482565b94509492505050565b5f826104da5760019050610595565b816104e7575f9050610595565b81600181146104fd576002811461050757610536565b6001915050610595565b60ff84111561051957610518610440565b5b8360020a9150848211156105305761052f610440565b5b50610595565b5060208310610133831016604e8410600b841016171561056b5782820a90508381111561056657610565610440565b5b610595565b6105788484846001610479565b9250905081840481111561058f5761058e610440565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105bb8261059c565b91506105c6836105a5565b92506105f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104cb565b905092915050565b5f6106058261059c565b91506106108361059c565b925082820261061e8161059c565b9150828204841483151761063557610634610440565b5b5092915050565b6106458161059c565b82525050565b5f60208201905061065e5f83018461063c565b92915050565b613140806106715f395ff3fe60806040526004361061012d575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb14610394578063b1c0c0b0146103d0578063c9567bf9146103e6578063cf85acd9146103fc578063dd62ed3e14610426578063f5648a4f1461046257610134565b8063751039fc146102d65780637d1db4a5146102ec5780638da5cb5b146103165780638f9a55c01461034057806395d89b411461036a57610134565b8063313ce567116100f1578063313ce5671461022e57806351bc3c85146102585780636fc3eaec1461026e57806370a0823114610284578063715018a6146102c057610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c610478565b60405161015991906121fd565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906122ae565b6104b5565b6040516101959190612306565b60405180910390f35b3480156101a9575f80fd5b506101b26104d2565b6040516101bf919061232e565b60405180910390f35b3480156101d3575f80fd5b506101dc6104d8565b6040516101e9919061232e565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190612347565b6104fa565b6040516102259190612306565b60405180910390f35b348015610239575f80fd5b506102426105ce565b60405161024f91906123b2565b60405180910390f35b348015610263575f80fd5b5061026c6105d6565b005b348015610279575f80fd5b5061028261066d565b005b34801561028f575f80fd5b506102aa60048036038101906102a591906123cb565b6106dc565b6040516102b7919061232e565b60405180910390f35b3480156102cb575f80fd5b506102d4610722565b005b3480156102e1575f80fd5b506102ea610870565b005b3480156102f7575f80fd5b5061030061099c565b60405161030d919061232e565b60405180910390f35b348015610321575f80fd5b5061032a6109a2565b6040516103379190612405565b60405180910390f35b34801561034b575f80fd5b506103546109c9565b604051610361919061232e565b60405180910390f35b348015610375575f80fd5b5061037e6109cf565b60405161038b91906121fd565b60405180910390f35b34801561039f575f80fd5b506103ba60048036038101906103b591906122ae565b610a0c565b6040516103c79190612306565b60405180910390f35b3480156103db575f80fd5b506103e4610a29565b005b3480156103f1575f80fd5b506103fa610afd565b005b348015610407575f80fd5b5061041061101e565b60405161041d919061232e565b60405180910390f35b348015610431575f80fd5b5061044c6004803603810190610447919061241e565b611024565b604051610459919061232e565b60405180910390f35b34801561046d575f80fd5b506104766110a6565b005b60606040518060400160405280600881526020017f4b69726f6b75676f000000000000000000000000000000000000000000000000815250905090565b5f6104c86104c16111ce565b84846111d5565b6001905092915050565b60115481565b5f600a806104e691906125b8565b63ee6b28006104f59190612602565b905090565b5f610506848484611398565b6105c3846105126111ce565b6105be856040518060600160405280602881526020016130e36028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105756111ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c799092919063ffffffff16565b6111d5565b600190509392505050565b5f600a905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106166111ce565b73ffffffffffffffffffffffffffffffffffffffff1614610635575f80fd5b5f61063f306106dc565b90505f8111156106535761065281611cdb565b5b5f4790505f8111156106695761066881611f46565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ad6111ce565b73ffffffffffffffffffffffffffffffffffffffff16146106cc575f80fd5b5f4790506106d981611f46565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61072a6111ce565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ad9061268d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108786111ce565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb9061268d565b60405180910390fd5b600a8061091191906125b8565b63ee6b28006109209190612602565b600e81905550600a8061093391906125b8565b63ee6b28006109429190612602565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600a8061097691906125b8565b63ee6b28006109859190612602565b604051610992919061232e565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f4b49524f00000000000000000000000000000000000000000000000000000000815250905090565b5f610a1f610a186111ce565b8484611398565b6001905092915050565b610a316111ce565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab49061268d565b60405180910390fd5b5f600c819055507fd1eebd1287db1238d5c4d56d11c66e66573bf3e686bf752a42f39cf431ecc1ca5f604051610af391906126ed565b60405180910390a1565b610b056111ce565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b889061268d565b60405180910390fd5b601360149054906101000a900460ff1615610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd890612750565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c7c3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a80610c6891906125b8565b63ee6b2800610c779190612602565b6111d5565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0a9190612782565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db49190612782565b6040518363ffffffff1660e01b8152600401610dd19291906127ad565b6020604051808303815f875af1158015610ded573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e119190612782565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e98306106dc565b5f80610ea26109a2565b426040518863ffffffff1660e01b8152600401610ec4969594939291906127d4565b60606040518083038185885af1158015610ee0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f059190612847565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fa5929190612897565b6020604051808303815f875af1158015610fc1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe591906128e8565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6110ae6111ce565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461113a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111319061268d565b60405180910390fd5b5f471161117c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111739061295d565b60405180910390fd5b5f4790506111886109a2565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156111ca573d5f803e3d5ffd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123a906129eb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890612a79565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161138b919061232e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd90612b07565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146b90612b95565b60405180910390fd5b5f81116114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612c23565b60405180910390fd5b5f6114bf6109a2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561152d57506114fd6109a2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119c9575f600d540361157a576115776064611569600954600d54116115565760055461155a565b6007545b85611fae90919063ffffffff16565b61202590919063ffffffff16565b90505b5f600d5411156115af576115ac606461159e600c5485611fae90919063ffffffff16565b61202590919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611658575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116ab575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117a357600e548211156116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec90612c8b565b60405180910390fd5b600f5482611702856106dc565b61170c9190612ca9565b111561174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174490612d26565b60405180910390fd5b611789606461177b600954600d54116117685760055461176c565b6007545b85611fae90919063ffffffff16565b61202590919063ffffffff16565b9050600d5f81548092919061179d90612d44565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561182b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561186f5761186c606461185e600a54600d541161184b5760065461184f565b6008545b85611fae90919063ffffffff16565b61202590919063ffffffff16565b90505b5f611879306106dc565b9050601360159054906101000a900460ff161580156118e4575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118fc5750601360169054906101000a900460ff165b8015611909575060105481115b80156119185750600b54600d54115b156119c75760155443111561192f575f6014819055505b600360145410611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b90612dd5565b60405180910390fd5b61199161198c846119878460115461206e565b61206e565b611cdb565b5f4790505f8111156119a7576119a647611f46565b5b60145f8154809291906119b990612d44565b919050555043601581905550505b505b5f811115611ac857611a218160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461208690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611abf919061232e565b60405180910390a35b611b188260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120e390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611bbb611b6f82846120e390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461208690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c5e84866120e390919063ffffffff16565b604051611c6b919061232e565b60405180910390a350505050565b5f838311158290611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb791906121fd565b60405180910390fd5b505f8385611cce9190612df3565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d1257611d11612e26565b5b604051908082528060200260200182016040528015611d405781602001602082028036833780820191505090505b50905030815f81518110611d5757611d56612e53565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1f9190612782565b81600181518110611e3357611e32612e53565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e993060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111d5565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611efb959493929190612f37565b5f604051808303815f87803b158015611f12575f80fd5b505af1158015611f24573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611faa573d5f803e3d5ffd5b5050565b5f808303611fbe575f905061201f565b5f8284611fcb9190612602565b9050828482611fda9190612fbc565b1461201a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120119061305c565b60405180910390fd5b809150505b92915050565b5f61206683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061212c565b905092915050565b5f81831161207c578261207e565b815b905092915050565b5f8082846120949190612ca9565b9050838110156120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d0906130c4565b60405180910390fd5b8091505092915050565b5f61212483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c79565b905092915050565b5f8083118290612172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216991906121fd565b60405180910390fd5b505f83856121809190612fbc565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6121cf8261218d565b6121d98185612197565b93506121e98185602086016121a7565b6121f2816121b5565b840191505092915050565b5f6020820190508181035f83015261221581846121c5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61224a82612221565b9050919050565b61225a81612240565b8114612264575f80fd5b50565b5f8135905061227581612251565b92915050565b5f819050919050565b61228d8161227b565b8114612297575f80fd5b50565b5f813590506122a881612284565b92915050565b5f80604083850312156122c4576122c361221d565b5b5f6122d185828601612267565b92505060206122e28582860161229a565b9150509250929050565b5f8115159050919050565b612300816122ec565b82525050565b5f6020820190506123195f8301846122f7565b92915050565b6123288161227b565b82525050565b5f6020820190506123415f83018461231f565b92915050565b5f805f6060848603121561235e5761235d61221d565b5b5f61236b86828701612267565b935050602061237c86828701612267565b925050604061238d8682870161229a565b9150509250925092565b5f60ff82169050919050565b6123ac81612397565b82525050565b5f6020820190506123c55f8301846123a3565b92915050565b5f602082840312156123e0576123df61221d565b5b5f6123ed84828501612267565b91505092915050565b6123ff81612240565b82525050565b5f6020820190506124185f8301846123f6565b92915050565b5f80604083850312156124345761243361221d565b5b5f61244185828601612267565b925050602061245285828601612267565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156124de578086048111156124ba576124b961245c565b5b60018516156124c95780820291505b80810290506124d785612489565b945061249e565b94509492505050565b5f826124f657600190506125b1565b81612503575f90506125b1565b8160018114612519576002811461252357612552565b60019150506125b1565b60ff8411156125355761253461245c565b5b8360020a91508482111561254c5761254b61245c565b5b506125b1565b5060208310610133831016604e8410600b84101617156125875782820a9050838111156125825761258161245c565b5b6125b1565b6125948484846001612495565b925090508184048111156125ab576125aa61245c565b5b81810290505b9392505050565b5f6125c28261227b565b91506125cd83612397565b92506125fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124e7565b905092915050565b5f61260c8261227b565b91506126178361227b565b92508282026126258161227b565b9150828204841483151761263c5761263b61245c565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612677602083612197565b915061268282612643565b602082019050919050565b5f6020820190508181035f8301526126a48161266b565b9050919050565b5f819050919050565b5f819050919050565b5f6126d76126d26126cd846126ab565b6126b4565b61227b565b9050919050565b6126e7816126bd565b82525050565b5f6020820190506127005f8301846126de565b92915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61273a601783612197565b915061274582612706565b602082019050919050565b5f6020820190508181035f8301526127678161272e565b9050919050565b5f8151905061277c81612251565b92915050565b5f602082840312156127975761279661221d565b5b5f6127a48482850161276e565b91505092915050565b5f6040820190506127c05f8301856123f6565b6127cd60208301846123f6565b9392505050565b5f60c0820190506127e75f8301896123f6565b6127f4602083018861231f565b61280160408301876126de565b61280e60608301866126de565b61281b60808301856123f6565b61282860a083018461231f565b979650505050505050565b5f8151905061284181612284565b92915050565b5f805f6060848603121561285e5761285d61221d565b5b5f61286b86828701612833565b935050602061287c86828701612833565b925050604061288d86828701612833565b9150509250925092565b5f6040820190506128aa5f8301856123f6565b6128b7602083018461231f565b9392505050565b6128c7816122ec565b81146128d1575f80fd5b50565b5f815190506128e2816128be565b92915050565b5f602082840312156128fd576128fc61221d565b5b5f61290a848285016128d4565b91505092915050565b7f4e6f20737475636b2045544820746f20776974686472617700000000000000005f82015250565b5f612947601883612197565b915061295282612913565b602082019050919050565b5f6020820190508181035f8301526129748161293b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129d5602483612197565b91506129e08261297b565b604082019050919050565b5f6020820190508181035f830152612a02816129c9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a63602283612197565b9150612a6e82612a09565b604082019050919050565b5f6020820190508181035f830152612a9081612a57565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612af1602583612197565b9150612afc82612a97565b604082019050919050565b5f6020820190508181035f830152612b1e81612ae5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b7f602383612197565b9150612b8a82612b25565b604082019050919050565b5f6020820190508181035f830152612bac81612b73565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c0d602983612197565b9150612c1882612bb3565b604082019050919050565b5f6020820190508181035f830152612c3a81612c01565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c75601983612197565b9150612c8082612c41565b602082019050919050565b5f6020820190508181035f830152612ca281612c69565b9050919050565b5f612cb38261227b565b9150612cbe8361227b565b9250828201905080821115612cd657612cd561245c565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d10601a83612197565b9150612d1b82612cdc565b602082019050919050565b5f6020820190508181035f830152612d3d81612d04565b9050919050565b5f612d4e8261227b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d8057612d7f61245c565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612dbf601783612197565b9150612dca82612d8b565b602082019050919050565b5f6020820190508181035f830152612dec81612db3565b9050919050565b5f612dfd8261227b565b9150612e088361227b565b9250828203905081811115612e2057612e1f61245c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612eb281612240565b82525050565b5f612ec38383612ea9565b60208301905092915050565b5f602082019050919050565b5f612ee582612e80565b612eef8185612e8a565b9350612efa83612e9a565b805f5b83811015612f2a578151612f118882612eb8565b9750612f1c83612ecf565b925050600181019050612efd565b5085935050505092915050565b5f60a082019050612f4a5f83018861231f565b612f5760208301876126de565b8181036040830152612f698186612edb565b9050612f7860608301856123f6565b612f85608083018461231f565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fc68261227b565b9150612fd18361227b565b925082612fe157612fe0612f8f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613046602183612197565b915061305182612fec565b604082019050919050565b5f6020820190508181035f8301526130738161303a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130ae601b83612197565b91506130b98261307a565b602082019050919050565b5f6020820190508181035f8301526130db816130a2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203ca5ef5b80fea4726662b0271c782fb9bc10954cbf9b76cef6177d4a7203143964736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb14610394578063b1c0c0b0146103d0578063c9567bf9146103e6578063cf85acd9146103fc578063dd62ed3e14610426578063f5648a4f1461046257610134565b8063751039fc146102d65780637d1db4a5146102ec5780638da5cb5b146103165780638f9a55c01461034057806395d89b411461036a57610134565b8063313ce567116100f1578063313ce5671461022e57806351bc3c85146102585780636fc3eaec1461026e57806370a0823114610284578063715018a6146102c057610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c610478565b60405161015991906121fd565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906122ae565b6104b5565b6040516101959190612306565b60405180910390f35b3480156101a9575f80fd5b506101b26104d2565b6040516101bf919061232e565b60405180910390f35b3480156101d3575f80fd5b506101dc6104d8565b6040516101e9919061232e565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190612347565b6104fa565b6040516102259190612306565b60405180910390f35b348015610239575f80fd5b506102426105ce565b60405161024f91906123b2565b60405180910390f35b348015610263575f80fd5b5061026c6105d6565b005b348015610279575f80fd5b5061028261066d565b005b34801561028f575f80fd5b506102aa60048036038101906102a591906123cb565b6106dc565b6040516102b7919061232e565b60405180910390f35b3480156102cb575f80fd5b506102d4610722565b005b3480156102e1575f80fd5b506102ea610870565b005b3480156102f7575f80fd5b5061030061099c565b60405161030d919061232e565b60405180910390f35b348015610321575f80fd5b5061032a6109a2565b6040516103379190612405565b60405180910390f35b34801561034b575f80fd5b506103546109c9565b604051610361919061232e565b60405180910390f35b348015610375575f80fd5b5061037e6109cf565b60405161038b91906121fd565b60405180910390f35b34801561039f575f80fd5b506103ba60048036038101906103b591906122ae565b610a0c565b6040516103c79190612306565b60405180910390f35b3480156103db575f80fd5b506103e4610a29565b005b3480156103f1575f80fd5b506103fa610afd565b005b348015610407575f80fd5b5061041061101e565b60405161041d919061232e565b60405180910390f35b348015610431575f80fd5b5061044c6004803603810190610447919061241e565b611024565b604051610459919061232e565b60405180910390f35b34801561046d575f80fd5b506104766110a6565b005b60606040518060400160405280600881526020017f4b69726f6b75676f000000000000000000000000000000000000000000000000815250905090565b5f6104c86104c16111ce565b84846111d5565b6001905092915050565b60115481565b5f600a806104e691906125b8565b63ee6b28006104f59190612602565b905090565b5f610506848484611398565b6105c3846105126111ce565b6105be856040518060600160405280602881526020016130e36028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105756111ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c799092919063ffffffff16565b6111d5565b600190509392505050565b5f600a905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106166111ce565b73ffffffffffffffffffffffffffffffffffffffff1614610635575f80fd5b5f61063f306106dc565b90505f8111156106535761065281611cdb565b5b5f4790505f8111156106695761066881611f46565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ad6111ce565b73ffffffffffffffffffffffffffffffffffffffff16146106cc575f80fd5b5f4790506106d981611f46565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61072a6111ce565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ad9061268d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108786111ce565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb9061268d565b60405180910390fd5b600a8061091191906125b8565b63ee6b28006109209190612602565b600e81905550600a8061093391906125b8565b63ee6b28006109429190612602565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600a8061097691906125b8565b63ee6b28006109859190612602565b604051610992919061232e565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f4b49524f00000000000000000000000000000000000000000000000000000000815250905090565b5f610a1f610a186111ce565b8484611398565b6001905092915050565b610a316111ce565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab49061268d565b60405180910390fd5b5f600c819055507fd1eebd1287db1238d5c4d56d11c66e66573bf3e686bf752a42f39cf431ecc1ca5f604051610af391906126ed565b60405180910390a1565b610b056111ce565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b889061268d565b60405180910390fd5b601360149054906101000a900460ff1615610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd890612750565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c7c3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a80610c6891906125b8565b63ee6b2800610c779190612602565b6111d5565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0a9190612782565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db49190612782565b6040518363ffffffff1660e01b8152600401610dd19291906127ad565b6020604051808303815f875af1158015610ded573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e119190612782565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e98306106dc565b5f80610ea26109a2565b426040518863ffffffff1660e01b8152600401610ec4969594939291906127d4565b60606040518083038185885af1158015610ee0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f059190612847565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fa5929190612897565b6020604051808303815f875af1158015610fc1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe591906128e8565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6110ae6111ce565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461113a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111319061268d565b60405180910390fd5b5f471161117c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111739061295d565b60405180910390fd5b5f4790506111886109a2565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156111ca573d5f803e3d5ffd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123a906129eb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890612a79565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161138b919061232e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd90612b07565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146b90612b95565b60405180910390fd5b5f81116114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612c23565b60405180910390fd5b5f6114bf6109a2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561152d57506114fd6109a2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119c9575f600d540361157a576115776064611569600954600d54116115565760055461155a565b6007545b85611fae90919063ffffffff16565b61202590919063ffffffff16565b90505b5f600d5411156115af576115ac606461159e600c5485611fae90919063ffffffff16565b61202590919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611658575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116ab575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117a357600e548211156116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec90612c8b565b60405180910390fd5b600f5482611702856106dc565b61170c9190612ca9565b111561174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174490612d26565b60405180910390fd5b611789606461177b600954600d54116117685760055461176c565b6007545b85611fae90919063ffffffff16565b61202590919063ffffffff16565b9050600d5f81548092919061179d90612d44565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561182b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561186f5761186c606461185e600a54600d541161184b5760065461184f565b6008545b85611fae90919063ffffffff16565b61202590919063ffffffff16565b90505b5f611879306106dc565b9050601360159054906101000a900460ff161580156118e4575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118fc5750601360169054906101000a900460ff165b8015611909575060105481115b80156119185750600b54600d54115b156119c75760155443111561192f575f6014819055505b600360145410611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b90612dd5565b60405180910390fd5b61199161198c846119878460115461206e565b61206e565b611cdb565b5f4790505f8111156119a7576119a647611f46565b5b60145f8154809291906119b990612d44565b919050555043601581905550505b505b5f811115611ac857611a218160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461208690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611abf919061232e565b60405180910390a35b611b188260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120e390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611bbb611b6f82846120e390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461208690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c5e84866120e390919063ffffffff16565b604051611c6b919061232e565b60405180910390a350505050565b5f838311158290611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb791906121fd565b60405180910390fd5b505f8385611cce9190612df3565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d1257611d11612e26565b5b604051908082528060200260200182016040528015611d405781602001602082028036833780820191505090505b50905030815f81518110611d5757611d56612e53565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1f9190612782565b81600181518110611e3357611e32612e53565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e993060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111d5565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611efb959493929190612f37565b5f604051808303815f87803b158015611f12575f80fd5b505af1158015611f24573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611faa573d5f803e3d5ffd5b5050565b5f808303611fbe575f905061201f565b5f8284611fcb9190612602565b9050828482611fda9190612fbc565b1461201a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120119061305c565b60405180910390fd5b809150505b92915050565b5f61206683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061212c565b905092915050565b5f81831161207c578261207e565b815b905092915050565b5f8082846120949190612ca9565b9050838110156120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d0906130c4565b60405180910390fd5b8091505092915050565b5f61212483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c79565b905092915050565b5f8083118290612172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216991906121fd565b60405180910390fd5b505f83856121809190612fbc565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6121cf8261218d565b6121d98185612197565b93506121e98185602086016121a7565b6121f2816121b5565b840191505092915050565b5f6020820190508181035f83015261221581846121c5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61224a82612221565b9050919050565b61225a81612240565b8114612264575f80fd5b50565b5f8135905061227581612251565b92915050565b5f819050919050565b61228d8161227b565b8114612297575f80fd5b50565b5f813590506122a881612284565b92915050565b5f80604083850312156122c4576122c361221d565b5b5f6122d185828601612267565b92505060206122e28582860161229a565b9150509250929050565b5f8115159050919050565b612300816122ec565b82525050565b5f6020820190506123195f8301846122f7565b92915050565b6123288161227b565b82525050565b5f6020820190506123415f83018461231f565b92915050565b5f805f6060848603121561235e5761235d61221d565b5b5f61236b86828701612267565b935050602061237c86828701612267565b925050604061238d8682870161229a565b9150509250925092565b5f60ff82169050919050565b6123ac81612397565b82525050565b5f6020820190506123c55f8301846123a3565b92915050565b5f602082840312156123e0576123df61221d565b5b5f6123ed84828501612267565b91505092915050565b6123ff81612240565b82525050565b5f6020820190506124185f8301846123f6565b92915050565b5f80604083850312156124345761243361221d565b5b5f61244185828601612267565b925050602061245285828601612267565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156124de578086048111156124ba576124b961245c565b5b60018516156124c95780820291505b80810290506124d785612489565b945061249e565b94509492505050565b5f826124f657600190506125b1565b81612503575f90506125b1565b8160018114612519576002811461252357612552565b60019150506125b1565b60ff8411156125355761253461245c565b5b8360020a91508482111561254c5761254b61245c565b5b506125b1565b5060208310610133831016604e8410600b84101617156125875782820a9050838111156125825761258161245c565b5b6125b1565b6125948484846001612495565b925090508184048111156125ab576125aa61245c565b5b81810290505b9392505050565b5f6125c28261227b565b91506125cd83612397565b92506125fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124e7565b905092915050565b5f61260c8261227b565b91506126178361227b565b92508282026126258161227b565b9150828204841483151761263c5761263b61245c565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612677602083612197565b915061268282612643565b602082019050919050565b5f6020820190508181035f8301526126a48161266b565b9050919050565b5f819050919050565b5f819050919050565b5f6126d76126d26126cd846126ab565b6126b4565b61227b565b9050919050565b6126e7816126bd565b82525050565b5f6020820190506127005f8301846126de565b92915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61273a601783612197565b915061274582612706565b602082019050919050565b5f6020820190508181035f8301526127678161272e565b9050919050565b5f8151905061277c81612251565b92915050565b5f602082840312156127975761279661221d565b5b5f6127a48482850161276e565b91505092915050565b5f6040820190506127c05f8301856123f6565b6127cd60208301846123f6565b9392505050565b5f60c0820190506127e75f8301896123f6565b6127f4602083018861231f565b61280160408301876126de565b61280e60608301866126de565b61281b60808301856123f6565b61282860a083018461231f565b979650505050505050565b5f8151905061284181612284565b92915050565b5f805f6060848603121561285e5761285d61221d565b5b5f61286b86828701612833565b935050602061287c86828701612833565b925050604061288d86828701612833565b9150509250925092565b5f6040820190506128aa5f8301856123f6565b6128b7602083018461231f565b9392505050565b6128c7816122ec565b81146128d1575f80fd5b50565b5f815190506128e2816128be565b92915050565b5f602082840312156128fd576128fc61221d565b5b5f61290a848285016128d4565b91505092915050565b7f4e6f20737475636b2045544820746f20776974686472617700000000000000005f82015250565b5f612947601883612197565b915061295282612913565b602082019050919050565b5f6020820190508181035f8301526129748161293b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129d5602483612197565b91506129e08261297b565b604082019050919050565b5f6020820190508181035f830152612a02816129c9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a63602283612197565b9150612a6e82612a09565b604082019050919050565b5f6020820190508181035f830152612a9081612a57565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612af1602583612197565b9150612afc82612a97565b604082019050919050565b5f6020820190508181035f830152612b1e81612ae5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b7f602383612197565b9150612b8a82612b25565b604082019050919050565b5f6020820190508181035f830152612bac81612b73565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c0d602983612197565b9150612c1882612bb3565b604082019050919050565b5f6020820190508181035f830152612c3a81612c01565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c75601983612197565b9150612c8082612c41565b602082019050919050565b5f6020820190508181035f830152612ca281612c69565b9050919050565b5f612cb38261227b565b9150612cbe8361227b565b9250828201905080821115612cd657612cd561245c565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d10601a83612197565b9150612d1b82612cdc565b602082019050919050565b5f6020820190508181035f830152612d3d81612d04565b9050919050565b5f612d4e8261227b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d8057612d7f61245c565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612dbf601783612197565b9150612dca82612d8b565b602082019050919050565b5f6020820190508181035f830152612dec81612db3565b9050919050565b5f612dfd8261227b565b9150612e088361227b565b9250828203905081811115612e2057612e1f61245c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612eb281612240565b82525050565b5f612ec38383612ea9565b60208301905092915050565b5f602082019050919050565b5f612ee582612e80565b612eef8185612e8a565b9350612efa83612e9a565b805f5b83811015612f2a578151612f118882612eb8565b9750612f1c83612ecf565b925050600181019050612efd565b5085935050505092915050565b5f60a082019050612f4a5f83018861231f565b612f5760208301876126de565b8181036040830152612f698186612edb565b9050612f7860608301856123f6565b612f85608083018461231f565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fc68261227b565b9150612fd18361227b565b925082612fe157612fe0612f8f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613046602183612197565b915061305182612fec565b604082019050919050565b5f6020820190508181035f8301526130738161303a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130ae601b83612197565b91506130b98261307a565b602082019050919050565b5f6020820190508181035f8301526130db816130a2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203ca5ef5b80fea4726662b0271c782fb9bc10954cbf9b76cef6177d4a7203143964736f6c634300081a0033

Deployed Bytecode Sourcemap

3817:9085:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6293:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7126:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5231:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6570:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7295:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6479:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12301:358;;;;;;;;;;;;;:::i;:::-;;12667:197;;;;;;;;;;;;;:::i;:::-;;6673:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2817:148;;;;;;;;;;;;;:::i;:::-;;10985:159;;;;;;;;;;;;;:::i;:::-;;5038:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2603:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5099:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6384:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6800:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11152:113;;;;;;;;;;;;;:::i;:::-;;11622:671;;;;;;;;;;;;;:::i;:::-;;5162:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6975:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11383:231;;;;;;;;;;;;;:::i;:::-;;6293:83;6330:13;6363:5;;;;;;;;;;;;;;;;;6356:12;;6293:83;:::o;7126:161::-;7201:4;7218:39;7227:12;:10;:12::i;:::-;7241:7;7250:6;7218:8;:39::i;:::-;7275:4;7268:11;;7126:161;;;;:::o;5231:52::-;;;;:::o;6570:95::-;6623:7;4961:2;5018;:13;;;;:::i;:::-;5005:10;:26;;;;:::i;:::-;6643:14;;6570:95;:::o;7295:313::-;7393:4;7410:36;7420:6;7428:9;7439:6;7410:9;:36::i;:::-;7457:121;7466:6;7474:12;:10;:12::i;:::-;7488:89;7526:6;7488:89;;;;;;;;;;;;;;;;;:11;:19;7500:6;7488:19;;;;;;;;;;;;;;;:33;7508:12;:10;:12::i;:::-;7488:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7457:8;:121::i;:::-;7596:4;7589:11;;7295:313;;;;;:::o;6479:83::-;6520:5;4961:2;6538:16;;6479:83;:::o;12301:358::-;12365:15;;;;;;;;;;;12351:29;;:12;:10;:12::i;:::-;:29;;;12343:38;;;;;;12392:20;12413:24;12431:4;12413:9;:24::i;:::-;12392:45;;12464:1;12451:12;:14;12448:73;;;12479:30;12496:12;12479:16;:30::i;:::-;12448:73;12531:18;12550:21;12531:40;;12596:1;12585:10;:12;12582:70;;;12611:29;12629:10;12611:17;:29::i;:::-;12582:70;12332:327;;12301:358::o;12667:197::-;12731:15;;;;;;;;;;;12717:29;;:12;:10;:12::i;:::-;:29;;;12709:38;;;;;;12758:26;12787:21;12758:50;;12819:37;12837:18;12819:17;:37::i;:::-;12698:166;12667:197::o;6673:119::-;6739:7;6766:9;:18;6776:7;6766:18;;;;;;;;;;;;;;;;6759:25;;6673:119;;;:::o;2817:148::-;2740:12;:10;:12::i;:::-;2730:22;;:6;;;;;;;;;;:22;;;2722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2924:1:::1;2887:40;;2908:6;::::0;::::1;;;;;;;;2887:40;;;;;;;;;;;;2955:1;2938:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2817:148::o:0;10985:159::-;2740:12;:10;:12::i;:::-;2730:22;;:6;;;;;;;;;;:22;;;2722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4961:2:::1;5018::::0;:13:::1;;;;:::i;:::-;5005:10;:26;;;;:::i;:::-;11038:12;:22;;;;4961:2;5018::::0;:13:::1;;;;:::i;:::-;5005:10;:26;;;;:::i;:::-;11071:14;:22;;;;11109:27;4961:2;5018::::0;:13:::1;;;;:::i;:::-;5005:10;:26;;;;:::i;:::-;11109:27;;;;;;:::i;:::-;;;;;;;;10985:159::o:0;5038:54::-;;;;:::o;2603:79::-;2641:7;2668:6;;;;;;;;;;;2661:13;;2603:79;:::o;5099:56::-;;;;:::o;6384:87::-;6423:13;6456:7;;;;;;;;;;;;;;;;;6449:14;;6384:87;:::o;6800:167::-;6878:4;6895:42;6905:12;:10;:12::i;:::-;6919:9;6930:6;6895:9;:42::i;:::-;6955:4;6948:11;;6800:167;;;;:::o;11152:113::-;2740:12;:10;:12::i;:::-;2730:22;;:6;;;;;;;;;;:22;;;2722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11223:1:::1;11209:11;:15;;;;11240:17;11255:1;11240:17;;;;;;:::i;:::-;;;;;;;;11152:113::o:0;11622:671::-;2740:12;:10;:12::i;:::-;2730:22;;:6;;;;;;;;;;:22;;;2722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11686:11:::1;;;;;;;;;;;11685:12;11677:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11772:42;11735:15;;:80;;;;;;;;;;;;;;;;;;11826:58;11843:4;11858:15;;;;;;;;;;;4961:2;5018::::0;:13:::1;;;;:::i;:::-;5005:10;:26;;;;:::i;:::-;11826:8;:58::i;:::-;11929:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11911:55;;;11975:4;11982:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11911:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11895:13;;:110;;;;;;;;;;;;;;;;;;12016:15;;;;;;;;;;;:31;;;12055:21;12086:4;12092:24;12110:4;12092:9;:24::i;:::-;12117:1;12119::::0;12121:7:::1;:5;:7::i;:::-;12129:15;12016:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12163:13;;;;;;;;;;;12156:29;;;12194:15;;;;;;;;;;;12212:14;12156:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12252:4;12238:11;;:18;;;;;;;;;;;;;;;;;;12281:4;12267:11;;:18;;;;;;;;;;;;;;;;;;11622:671::o:0;5162:62::-;;;;:::o;6975:143::-;7056:7;7083:11;:18;7095:5;7083:18;;;;;;;;;;;;;;;:27;7102:7;7083:27;;;;;;;;;;;;;;;;7076:34;;6975:143;;;;:::o;11383:231::-;2740:12;:10;:12::i;:::-;2730:22;;:6;;;;;;;;;;:22;;;2722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11473:1:::1;11449:21;:25;11441:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;11524:14;11541:21;11524:38;;11581:7;:5;:7::i;:::-;11573:25;;:33;11599:6;11573:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11430:184;11383:231::o:0;224:98::-;277:7;304:10;297:17;;224:98;:::o;7616:335::-;7726:1;7709:19;;:5;:19;;;7701:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7807:1;7788:21;;:7;:21;;;7780:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7889:6;7859:11;:18;7871:5;7859:18;;;;;;;;;;;;;;;:27;7878:7;7859:27;;;;;;;;;;;;;;;:36;;;;7927:7;7911:32;;7920:5;7911:32;;;7936:6;7911:32;;;;;;:::i;:::-;;;;;;;;7616:335;;;:::o;7959:2419::-;8063:1;8047:18;;:4;:18;;;8039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8140:1;8126:16;;:2;:16;;;8118:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8210:1;8201:6;:10;8193:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8268:17;8310:7;:5;:7::i;:::-;8302:15;;:4;:15;;;;:32;;;;;8327:7;:5;:7::i;:::-;8321:13;;:2;:13;;;;8302:32;8298:1724;;;8365:1;8354:9;;:12;8351:139;;8398:76;8470:3;8398:67;8420:15;;8410:9;;:25;8409:55;;8450:14;;8409:55;;;8437:12;;8409:55;8398:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8386:88;;8351:139;8517:1;8507:9;;:11;8504:94;;;8550:32;8578:3;8550:23;8561:11;;8550:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;8538:44;;8504:94;8626:13;;;;;;;;;;;8618:21;;:4;:21;;;:55;;;;;8657:15;;;;;;;;;;;8643:30;;:2;:30;;;;8618:55;:83;;;;;8679:18;:22;8698:2;8679:22;;;;;;;;;;;;;;;;;;;;;;;;;8677:24;8618:83;8614:420;;;8741:12;;8731:6;:22;;8723:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8836:14;;8826:6;8810:13;8820:2;8810:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8802:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8912:76;8984:3;8912:67;8934:15;;8924:9;;:25;8923:55;;8964:14;;8923:55;;;8951:12;;8923:55;8912:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8900:88;;9007:9;;:11;;;;;;;;;:::i;:::-;;;;;;8614:420;9059:13;;;;;;;;;;;9053:19;;:2;:19;;;:43;;;;;9091:4;9076:20;;:4;:20;;;;9053:43;9050:174;;;9129:79;9204:3;9129:70;9151:16;;9141:9;;:26;9140:58;;9183:15;;9140:58;;;9169:13;;9140:58;9129:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9117:91;;9050:174;9240:28;9271:24;9289:4;9271:9;:24::i;:::-;9240:55;;9315:6;;;;;;;;;;;9314:7;:30;;;;;9331:13;;;;;;;;;;;9325:19;;:2;:19;;;9314:30;:45;;;;;9348:11;;;;;;;;;;;9314:45;:94;;;;;9386:22;;9363:20;:45;9314:94;:131;;;;;9424:21;;9412:9;;:33;9314:131;9310:701;;;9485:13;;9470:12;:28;9466:93;;;9538:1;9523:12;:16;;;;9466:93;9600:1;9585:12;;:16;9577:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;9648:69;9665:51;9669:6;9677:38;9681:20;9703:11;;9677:3;:38::i;:::-;9665:3;:51::i;:::-;9648:16;:69::i;:::-;9736:26;9765:21;9736:50;;9830:1;9809:18;:22;9805:111;;;9856:40;9874:21;9856:17;:40::i;:::-;9805:111;9934:12;;:14;;;;;;;;;:::i;:::-;;;;;;9983:12;9967:13;:28;;;;9447:564;9310:701;8336:1686;8298:1724;10047:1;10037:9;:11;10034:161;;;10087:39;10116:9;10087;:24;10105:4;10087:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10062:9;:24;10080:4;10062:24;;;;;;;;;;;;;;;:64;;;;10167:4;10144:39;;10153:4;10144:39;;;10173:9;10144:39;;;;;;:::i;:::-;;;;;;;;10034:161;10221:27;10241:6;10221:9;:15;10231:4;10221:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10205:9;:15;10215:4;10205:15;;;;;;;;;;;;;;;:43;;;;10273:40;10291:21;10302:9;10291:6;:10;;:21;;;;:::i;:::-;10273:9;:13;10283:2;10273:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10259:9;:13;10269:2;10259:13;;;;;;;;;;;;;;;:54;;;;10344:2;10329:41;;10338:4;10329:41;;;10348:21;10359:9;10348:6;:10;;:21;;;;:::i;:::-;10329:41;;;;;;:::i;:::-;;;;;;;;8028:2350;7959:2419;;;:::o;1457:190::-;1543:7;1576:1;1571;:6;;1579:12;1563:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1603:9;1619:1;1615;:5;;;;:::i;:::-;1603:17;;1638:1;1631:8;;;1457:190;;;;;:::o;10494:483::-;5901:4;5892:6;;:13;;;;;;;;;;;;;;;;;;10572:21:::1;10610:1;10596:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10572:40;;10641:4;10623;10628:1;10623:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10667:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10657:4;10662:1;10657:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10700:62;10717:4;10732:15;;;;;;;;;;;10750:11;10700:8;:62::i;:::-;10773:15;;;;;;;;;;;:66;;;10854:11;10880:1;10896:4;10923;10943:15;10773:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10561:416;5937:5:::0;5928:6;;:14;;;;;;;;;;;;;;;;;;10494:483;:::o;11273:102::-;11335:15;;;;;;;;;;;:24;;:32;11360:6;11335:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11273:102;:::o;1655:246::-;1713:7;1742:1;1737;:6;1733:47;;1767:1;1760:8;;;;1733:47;1790:9;1806:1;1802;:5;;;;:::i;:::-;1790:17;;1835:1;1830;1826;:5;;;;:::i;:::-;:10;1818:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1892:1;1885:8;;;1655:246;;;;;:::o;1909:132::-;1967:7;1994:39;1998:1;2001;1994:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1987:46;;1909:132;;;;:::o;10388:98::-;10445:7;10472:1;10470;:3;10469:9;;10477:1;10469:9;;;10475:1;10469:9;10462:16;;10388:98;;;;:::o;1126:179::-;1184:7;1204:9;1220:1;1216;:5;;;;:::i;:::-;1204:17;;1245:1;1240;:6;;1232:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1296:1;1289:8;;;1126:179;;;;:::o;1313:136::-;1371:7;1398:43;1402:1;1405;1398:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1391:50;;1313:136;;;;:::o;2049:189::-;2135:7;2167:1;2163;:5;2170:12;2155:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2194:9;2210:1;2206;:5;;;;:::i;:::-;2194:17;;2229:1;2222:8;;;2049:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:180::-;5961:77;5958:1;5951:88;6058:4;6055:1;6048:15;6082:4;6079:1;6072:15;6099:102;6141:8;6188:5;6185:1;6181:13;6160:34;;6099:102;;;:::o;6207:848::-;6268:5;6275:4;6299:6;6290:15;;6323:5;6314:14;;6337:712;6358:1;6348:8;6345:15;6337:712;;;6453:4;6448:3;6444:14;6438:4;6435:24;6432:50;;;6462:18;;:::i;:::-;6432:50;6512:1;6502:8;6498:16;6495:451;;;6927:4;6920:5;6916:16;6907:25;;6495:451;6977:4;6971;6967:15;6959:23;;7007:32;7030:8;7007:32;:::i;:::-;6995:44;;6337:712;;;6207:848;;;;;;;:::o;7061:1073::-;7115:5;7306:8;7296:40;;7327:1;7318:10;;7329:5;;7296:40;7355:4;7345:36;;7372:1;7363:10;;7374:5;;7345:36;7441:4;7489:1;7484:27;;;;7525:1;7520:191;;;;7434:277;;7484:27;7502:1;7493:10;;7504:5;;;7520:191;7565:3;7555:8;7552:17;7549:43;;;7572:18;;:::i;:::-;7549:43;7621:8;7618:1;7614:16;7605:25;;7656:3;7649:5;7646:14;7643:40;;;7663:18;;:::i;:::-;7643:40;7696:5;;;7434:277;;7820:2;7810:8;7807:16;7801:3;7795:4;7792:13;7788:36;7770:2;7760:8;7757:16;7752:2;7746:4;7743:12;7739:35;7723:111;7720:246;;;7876:8;7870:4;7866:19;7857:28;;7911:3;7904:5;7901:14;7898:40;;;7918:18;;:::i;:::-;7898:40;7951:5;;7720:246;7991:42;8029:3;8019:8;8013:4;8010:1;7991:42;:::i;:::-;7976:57;;;;8065:4;8060:3;8056:14;8049:5;8046:25;8043:51;;;8074:18;;:::i;:::-;8043:51;8123:4;8116:5;8112:16;8103:25;;7061:1073;;;;;;:::o;8140:281::-;8198:5;8222:23;8240:4;8222:23;:::i;:::-;8214:31;;8266:25;8282:8;8266:25;:::i;:::-;8254:37;;8310:104;8347:66;8337:8;8331:4;8310:104;:::i;:::-;8301:113;;8140:281;;;;:::o;8427:410::-;8467:7;8490:20;8508:1;8490:20;:::i;:::-;8485:25;;8524:20;8542:1;8524:20;:::i;:::-;8519:25;;8579:1;8576;8572:9;8601:30;8619:11;8601:30;:::i;:::-;8590:41;;8780:1;8771:7;8767:15;8764:1;8761:22;8741:1;8734:9;8714:83;8691:139;;8810:18;;:::i;:::-;8691:139;8475:362;8427:410;;;;:::o;8843:182::-;8983:34;8979:1;8971:6;8967:14;8960:58;8843:182;:::o;9031:366::-;9173:3;9194:67;9258:2;9253:3;9194:67;:::i;:::-;9187:74;;9270:93;9359:3;9270:93;:::i;:::-;9388:2;9383:3;9379:12;9372:19;;9031:366;;;:::o;9403:419::-;9569:4;9607:2;9596:9;9592:18;9584:26;;9656:9;9650:4;9646:20;9642:1;9631:9;9627:17;9620:47;9684:131;9810:4;9684:131;:::i;:::-;9676:139;;9403:419;;;:::o;9828:85::-;9873:7;9902:5;9891:16;;9828:85;;;:::o;9919:60::-;9947:3;9968:5;9961:12;;9919:60;;;:::o;9985:158::-;10043:9;10076:61;10094:42;10103:32;10129:5;10103:32;:::i;:::-;10094:42;:::i;:::-;10076:61;:::i;:::-;10063:74;;9985:158;;;:::o;10149:147::-;10244:45;10283:5;10244:45;:::i;:::-;10239:3;10232:58;10149:147;;:::o;10302:238::-;10403:4;10441:2;10430:9;10426:18;10418:26;;10454:79;10530:1;10519:9;10515:17;10506:6;10454:79;:::i;:::-;10302:238;;;;:::o;10546:173::-;10686:25;10682:1;10674:6;10670:14;10663:49;10546:173;:::o;10725:366::-;10867:3;10888:67;10952:2;10947:3;10888:67;:::i;:::-;10881:74;;10964:93;11053:3;10964:93;:::i;:::-;11082:2;11077:3;11073:12;11066:19;;10725:366;;;:::o;11097:419::-;11263:4;11301:2;11290:9;11286:18;11278:26;;11350:9;11344:4;11340:20;11336:1;11325:9;11321:17;11314:47;11378:131;11504:4;11378:131;:::i;:::-;11370:139;;11097:419;;;:::o;11522:143::-;11579:5;11610:6;11604:13;11595:22;;11626:33;11653:5;11626:33;:::i;:::-;11522:143;;;;:::o;11671:351::-;11741:6;11790:2;11778:9;11769:7;11765:23;11761:32;11758:119;;;11796:79;;:::i;:::-;11758:119;11916:1;11941:64;11997:7;11988:6;11977:9;11973:22;11941:64;:::i;:::-;11931:74;;11887:128;11671:351;;;;:::o;12028:332::-;12149:4;12187:2;12176:9;12172:18;12164:26;;12200:71;12268:1;12257:9;12253:17;12244:6;12200:71;:::i;:::-;12281:72;12349:2;12338:9;12334:18;12325:6;12281:72;:::i;:::-;12028:332;;;;;:::o;12366:807::-;12615:4;12653:3;12642:9;12638:19;12630:27;;12667:71;12735:1;12724:9;12720:17;12711:6;12667:71;:::i;:::-;12748:72;12816:2;12805:9;12801:18;12792:6;12748:72;:::i;:::-;12830:80;12906:2;12895:9;12891:18;12882:6;12830:80;:::i;:::-;12920;12996:2;12985:9;12981:18;12972:6;12920:80;:::i;:::-;13010:73;13078:3;13067:9;13063:19;13054:6;13010:73;:::i;:::-;13093;13161:3;13150:9;13146:19;13137:6;13093:73;:::i;:::-;12366:807;;;;;;;;;:::o;13179:143::-;13236:5;13267:6;13261:13;13252:22;;13283:33;13310:5;13283:33;:::i;:::-;13179:143;;;;:::o;13328:663::-;13416:6;13424;13432;13481:2;13469:9;13460:7;13456:23;13452:32;13449:119;;;13487:79;;:::i;:::-;13449:119;13607:1;13632:64;13688:7;13679:6;13668:9;13664:22;13632:64;:::i;:::-;13622:74;;13578:128;13745:2;13771:64;13827:7;13818:6;13807:9;13803:22;13771:64;:::i;:::-;13761:74;;13716:129;13884:2;13910:64;13966:7;13957:6;13946:9;13942:22;13910:64;:::i;:::-;13900:74;;13855:129;13328:663;;;;;:::o;13997:332::-;14118:4;14156:2;14145:9;14141:18;14133:26;;14169:71;14237:1;14226:9;14222:17;14213:6;14169:71;:::i;:::-;14250:72;14318:2;14307:9;14303:18;14294:6;14250:72;:::i;:::-;13997:332;;;;;:::o;14335:116::-;14405:21;14420:5;14405:21;:::i;:::-;14398:5;14395:32;14385:60;;14441:1;14438;14431:12;14385:60;14335:116;:::o;14457:137::-;14511:5;14542:6;14536:13;14527:22;;14558:30;14582:5;14558:30;:::i;:::-;14457:137;;;;:::o;14600:345::-;14667:6;14716:2;14704:9;14695:7;14691:23;14687:32;14684:119;;;14722:79;;:::i;:::-;14684:119;14842:1;14867:61;14920:7;14911:6;14900:9;14896:22;14867:61;:::i;:::-;14857:71;;14813:125;14600:345;;;;:::o;14951:174::-;15091:26;15087:1;15079:6;15075:14;15068:50;14951:174;:::o;15131:366::-;15273:3;15294:67;15358:2;15353:3;15294:67;:::i;:::-;15287:74;;15370:93;15459:3;15370:93;:::i;:::-;15488:2;15483:3;15479:12;15472:19;;15131:366;;;:::o;15503:419::-;15669:4;15707:2;15696:9;15692:18;15684:26;;15756:9;15750:4;15746:20;15742:1;15731:9;15727:17;15720:47;15784:131;15910:4;15784:131;:::i;:::-;15776:139;;15503:419;;;:::o;15928:223::-;16068:34;16064:1;16056:6;16052:14;16045:58;16137:6;16132:2;16124:6;16120:15;16113:31;15928:223;:::o;16157:366::-;16299:3;16320:67;16384:2;16379:3;16320:67;:::i;:::-;16313:74;;16396:93;16485:3;16396:93;:::i;:::-;16514:2;16509:3;16505:12;16498:19;;16157:366;;;:::o;16529:419::-;16695:4;16733:2;16722:9;16718:18;16710:26;;16782:9;16776:4;16772:20;16768:1;16757:9;16753:17;16746:47;16810:131;16936:4;16810:131;:::i;:::-;16802:139;;16529:419;;;:::o;16954:221::-;17094:34;17090:1;17082:6;17078:14;17071:58;17163:4;17158:2;17150:6;17146:15;17139:29;16954:221;:::o;17181:366::-;17323:3;17344:67;17408:2;17403:3;17344:67;:::i;:::-;17337:74;;17420:93;17509:3;17420:93;:::i;:::-;17538:2;17533:3;17529:12;17522:19;;17181:366;;;:::o;17553:419::-;17719:4;17757:2;17746:9;17742:18;17734:26;;17806:9;17800:4;17796:20;17792:1;17781:9;17777:17;17770:47;17834:131;17960:4;17834:131;:::i;:::-;17826:139;;17553:419;;;:::o;17978:224::-;18118:34;18114:1;18106:6;18102:14;18095:58;18187:7;18182:2;18174:6;18170:15;18163:32;17978:224;:::o;18208:366::-;18350:3;18371:67;18435:2;18430:3;18371:67;:::i;:::-;18364:74;;18447:93;18536:3;18447:93;:::i;:::-;18565:2;18560:3;18556:12;18549:19;;18208:366;;;:::o;18580:419::-;18746:4;18784:2;18773:9;18769:18;18761:26;;18833:9;18827:4;18823:20;18819:1;18808:9;18804:17;18797:47;18861:131;18987:4;18861:131;:::i;:::-;18853:139;;18580:419;;;:::o;19005:222::-;19145:34;19141:1;19133:6;19129:14;19122:58;19214:5;19209:2;19201:6;19197:15;19190:30;19005:222;:::o;19233:366::-;19375:3;19396:67;19460:2;19455:3;19396:67;:::i;:::-;19389:74;;19472:93;19561:3;19472:93;:::i;:::-;19590:2;19585:3;19581:12;19574:19;;19233:366;;;:::o;19605:419::-;19771:4;19809:2;19798:9;19794:18;19786:26;;19858:9;19852:4;19848:20;19844:1;19833:9;19829:17;19822:47;19886:131;20012:4;19886:131;:::i;:::-;19878:139;;19605:419;;;:::o;20030:228::-;20170:34;20166:1;20158:6;20154:14;20147:58;20239:11;20234:2;20226:6;20222:15;20215:36;20030:228;:::o;20264:366::-;20406:3;20427:67;20491:2;20486:3;20427:67;:::i;:::-;20420:74;;20503:93;20592:3;20503:93;:::i;:::-;20621:2;20616:3;20612:12;20605:19;;20264:366;;;:::o;20636:419::-;20802:4;20840:2;20829:9;20825:18;20817:26;;20889:9;20883:4;20879:20;20875:1;20864:9;20860:17;20853:47;20917:131;21043:4;20917:131;:::i;:::-;20909:139;;20636:419;;;:::o;21061:175::-;21201:27;21197:1;21189:6;21185:14;21178:51;21061:175;:::o;21242:366::-;21384:3;21405:67;21469:2;21464:3;21405:67;:::i;:::-;21398:74;;21481:93;21570:3;21481:93;:::i;:::-;21599:2;21594:3;21590:12;21583:19;;21242:366;;;:::o;21614:419::-;21780:4;21818:2;21807:9;21803:18;21795:26;;21867:9;21861:4;21857:20;21853:1;21842:9;21838:17;21831:47;21895:131;22021:4;21895:131;:::i;:::-;21887:139;;21614:419;;;:::o;22039:191::-;22079:3;22098:20;22116:1;22098:20;:::i;:::-;22093:25;;22132:20;22150:1;22132:20;:::i;:::-;22127:25;;22175:1;22172;22168:9;22161:16;;22196:3;22193:1;22190:10;22187:36;;;22203:18;;:::i;:::-;22187:36;22039:191;;;;:::o;22236:176::-;22376:28;22372:1;22364:6;22360:14;22353:52;22236:176;:::o;22418:366::-;22560:3;22581:67;22645:2;22640:3;22581:67;:::i;:::-;22574:74;;22657:93;22746:3;22657:93;:::i;:::-;22775:2;22770:3;22766:12;22759:19;;22418:366;;;:::o;22790:419::-;22956:4;22994:2;22983:9;22979:18;22971:26;;23043:9;23037:4;23033:20;23029:1;23018:9;23014:17;23007:47;23071:131;23197:4;23071:131;:::i;:::-;23063:139;;22790:419;;;:::o;23215:233::-;23254:3;23277:24;23295:5;23277:24;:::i;:::-;23268:33;;23323:66;23316:5;23313:77;23310:103;;23393:18;;:::i;:::-;23310:103;23440:1;23433:5;23429:13;23422:20;;23215:233;;;:::o;23454:173::-;23594:25;23590:1;23582:6;23578:14;23571:49;23454:173;:::o;23633:366::-;23775:3;23796:67;23860:2;23855:3;23796:67;:::i;:::-;23789:74;;23872:93;23961:3;23872:93;:::i;:::-;23990:2;23985:3;23981:12;23974:19;;23633:366;;;:::o;24005:419::-;24171:4;24209:2;24198:9;24194:18;24186:26;;24258:9;24252:4;24248:20;24244:1;24233:9;24229:17;24222:47;24286:131;24412:4;24286:131;:::i;:::-;24278:139;;24005:419;;;:::o;24430:194::-;24470:4;24490:20;24508:1;24490:20;:::i;:::-;24485:25;;24524:20;24542:1;24524:20;:::i;:::-;24519:25;;24568:1;24565;24561:9;24553:17;;24592:1;24586:4;24583:11;24580:37;;;24597:18;;:::i;:::-;24580:37;24430:194;;;;:::o;24630:180::-;24678:77;24675:1;24668:88;24775:4;24772:1;24765:15;24799:4;24796:1;24789:15;24816:180;24864:77;24861:1;24854:88;24961:4;24958:1;24951:15;24985:4;24982:1;24975:15;25002:114;25069:6;25103:5;25097:12;25087:22;;25002:114;;;:::o;25122:184::-;25221:11;25255:6;25250:3;25243:19;25295:4;25290:3;25286:14;25271:29;;25122:184;;;;:::o;25312:132::-;25379:4;25402:3;25394:11;;25432:4;25427:3;25423:14;25415:22;;25312:132;;;:::o;25450:108::-;25527:24;25545:5;25527:24;:::i;:::-;25522:3;25515:37;25450:108;;:::o;25564:179::-;25633:10;25654:46;25696:3;25688:6;25654:46;:::i;:::-;25732:4;25727:3;25723:14;25709:28;;25564:179;;;;:::o;25749:113::-;25819:4;25851;25846:3;25842:14;25834:22;;25749:113;;;:::o;25898:732::-;26017:3;26046:54;26094:5;26046:54;:::i;:::-;26116:86;26195:6;26190:3;26116:86;:::i;:::-;26109:93;;26226:56;26276:5;26226:56;:::i;:::-;26305:7;26336:1;26321:284;26346:6;26343:1;26340:13;26321:284;;;26422:6;26416:13;26449:63;26508:3;26493:13;26449:63;:::i;:::-;26442:70;;26535:60;26588:6;26535:60;:::i;:::-;26525:70;;26381:224;26368:1;26365;26361:9;26356:14;;26321:284;;;26325:14;26621:3;26614:10;;26022:608;;;25898:732;;;;:::o;26636:831::-;26899:4;26937:3;26926:9;26922:19;26914:27;;26951:71;27019:1;27008:9;27004:17;26995:6;26951:71;:::i;:::-;27032:80;27108:2;27097:9;27093:18;27084:6;27032:80;:::i;:::-;27159:9;27153:4;27149:20;27144:2;27133:9;27129:18;27122:48;27187:108;27290:4;27281:6;27187:108;:::i;:::-;27179:116;;27305:72;27373:2;27362:9;27358:18;27349:6;27305:72;:::i;:::-;27387:73;27455:3;27444:9;27440:19;27431:6;27387:73;:::i;:::-;26636:831;;;;;;;;:::o;27473:180::-;27521:77;27518:1;27511:88;27618:4;27615:1;27608:15;27642:4;27639:1;27632:15;27659:185;27699:1;27716:20;27734:1;27716:20;:::i;:::-;27711:25;;27750:20;27768:1;27750:20;:::i;:::-;27745:25;;27789:1;27779:35;;27794:18;;:::i;:::-;27779:35;27836:1;27833;27829:9;27824:14;;27659:185;;;;:::o;27850:220::-;27990:34;27986:1;27978:6;27974:14;27967:58;28059:3;28054:2;28046:6;28042:15;28035:28;27850:220;:::o;28076:366::-;28218:3;28239:67;28303:2;28298:3;28239:67;:::i;:::-;28232:74;;28315:93;28404:3;28315:93;:::i;:::-;28433:2;28428:3;28424:12;28417:19;;28076:366;;;:::o;28448:419::-;28614:4;28652:2;28641:9;28637:18;28629:26;;28701:9;28695:4;28691:20;28687:1;28676:9;28672:17;28665:47;28729:131;28855:4;28729:131;:::i;:::-;28721:139;;28448:419;;;:::o;28873:177::-;29013:29;29009:1;29001:6;28997:14;28990:53;28873:177;:::o;29056:366::-;29198:3;29219:67;29283:2;29278:3;29219:67;:::i;:::-;29212:74;;29295:93;29384:3;29295:93;:::i;:::-;29413:2;29408:3;29404:12;29397:19;;29056:366;;;:::o;29428:419::-;29594:4;29632:2;29621:9;29617:18;29609:26;;29681:9;29675:4;29671:20;29667:1;29656:9;29652:17;29645:47;29709:131;29835:4;29709:131;:::i;:::-;29701:139;;29428:419;;;:::o

Swarm Source

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