ETH Price: $3,414.22 (+4.78%)

Token

AZUKI PEPE (AZUKIPEPE)
 

Overview

Max Total Supply

1,000,000,000 AZUKIPEPE

Holders

984

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
idonotknowwhatimdoing.eth
Balance
1,032 AZUKIPEPE

Value
$0.00
0xbaaba861464f25f52c2ee10cc3ac024f4f77812a
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:
AZUKIPEPE

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

/**
 *  Twitter: https://twitter.com/azukipepe
 */

pragma solidity 0.8.13;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}


contract AZUKIPEPE is IERC20, Auth {
    using SafeMath for uint256;

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    string private constant  _name = "AZUKI PEPE";
    string private constant _symbol = "AZUKIPEPE";
    uint8 private constant _decimals = 18;

    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private isFeeExempt;
            
    uint256 public buyFeeRate = 5;
    uint256 public sellFeeRate = 5;

    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0xb8F6524fbc4D6c0f41B4D5D2b204a79570ec07Df);

    IDEXRouter public router;
    address public pair;

    bool private tradingOpen;

    uint256 public numTokensSellToAddToLiquidity = _totalSupply * 3 / 10000; // 0.03%
    
    bool private inSwap;

    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingWallet] = true;

        _balances[msg.sender] = _totalSupply;
    
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(!authorizations[sender] && !authorizations[recipient]){ 
            require(tradingOpen, "Trading not yet enabled.");
        }

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(numTokensSellToAddToLiquidity); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 transferFeeRate = recipient == pair ? sellFeeRate : buyFeeRate;
        uint256 feeAmount;
        feeAmount = amount.mul(transferFeeRate).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

    function swapBack(uint256 amount) internal swapping {
        swapTokensForEth(amount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            marketingWallet,
            block.timestamp
        );
    }

    function swapTokenManual() public onlyOwner {
        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ 
            swapTokensForEth(numTokensSellToAddToLiquidity);
        }
    }

    function openTrading() external onlyOwner {
        tradingOpen = true;
    }    
    
    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFee (uint256 _sellFeeRate, uint256 _buyFeeRate) external onlyOwner {
        require (_buyFeeRate <= 5, "Fee can't exceed 5%");
        require (_sellFeeRate <= 5, "Fee can't exceed 5%");
        sellFeeRate = _sellFeeRate;
        buyFeeRate = _buyFeeRate;
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    } 
    
    function setSwapThresholdAmount (uint256 amount) external onlyOwner {
        require (amount <= _totalSupply.div(100), "can't exceed 1%");
        numTokensSellToAddToLiquidity = amount * 10 ** 18;
    } 

    function clearStuckBalance(uint256 amountPercentage, address adr) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(adr).transfer(
            (amountETH * amountPercentage) / 100
        );
    }

    function rescueToken(address tokenAddress, uint256 tokens)
        public
        onlyOwner
        returns (bool success)
    {
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"buyFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFeeRate","type":"uint256"},{"internalType":"uint256","name":"_buyFeeRate","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokenManual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000099919062000861565b633b9aca00620000aa9190620008b2565b60055560056009556005600a556064600b5573b8f6524fbc4d6c0f41b4d5d2b204a79570ec07df600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506127106003600554620001259190620008b2565b62000131919062000942565b600f553480156200014157600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c49190620009e4565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000372573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003989190620009e4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620003f692919062000a27565b6020604051808303816000875af115801562000416573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043c9190620009e4565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620006b9919062000a65565b60405180910390a362000a82565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000755578086048111156200072d576200072c620006c7565b5b60018516156200073d5780820291505b80810290506200074d85620006f6565b94506200070d565b94509492505050565b60008262000770576001905062000843565b8162000780576000905062000843565b8160018114620007995760028114620007a457620007da565b600191505062000843565b60ff841115620007b957620007b8620006c7565b5b8360020a915084821115620007d357620007d2620006c7565b5b5062000843565b5060208310610133831016604e8410600b8410161715620008145782820a9050838111156200080e576200080d620006c7565b5b62000843565b62000823848484600162000703565b925090508184048111156200083d576200083c620006c7565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200086e826200084a565b91506200087b8362000854565b9250620008aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200075e565b905092915050565b6000620008bf826200084a565b9150620008cc836200084a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009085762000907620006c7565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200094f826200084a565b91506200095c836200084a565b9250826200096f576200096e62000913565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009ac826200097f565b9050919050565b620009be816200099f565b8114620009ca57600080fd5b50565b600081519050620009de81620009b3565b92915050565b600060208284031215620009fd57620009fc6200097a565b5b600062000a0d84828501620009cd565b91505092915050565b62000a21816200099f565b82525050565b600060408201905062000a3e600083018562000a16565b62000a4d602083018462000a16565b9392505050565b62000a5f816200084a565b82525050565b600060208201905062000a7c600083018462000a54565b92915050565b612d9f8062000a926000396000f3fe6080604052600436106101d15760003560e01c806370a08231116100f7578063c9567bf911610095578063f0b37c0411610064578063f0b37c0414610697578063f2fde38b146106c0578063f887ea40146106e9578063fe9fbb8014610714576101d8565b8063c9567bf914610601578063d12a768814610618578063dd62ed3e14610643578063e78221b014610680576101d8565b806395d89b41116100d157806395d89b4114610545578063a8aa1b3114610570578063a9059cbb1461059b578063b6a5d7de146105d8576101d8565b806370a08231146104b257806375f0a874146104ef578063893d20e81461051a576101d8565b806333f3d6281161016f5780635b149feb1161013e5780635b149feb1461040a5780635d098b3814610435578063658d4b7f1461045e5780636b1b498714610487576101d8565b806333f3d6281461033e57806352f7c9881461037b57806356a227f2146103a4578063571ac8b0146103cd576101d8565b806323b872dd116101ab57806323b872dd1461027057806329e04b4a146102ad5780632f54bf6e146102d6578063313ce56714610313576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610751565b6040516101ff919061224c565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612307565b61078e565b60405161023c9190612362565b60405180910390f35b34801561025157600080fd5b5061025a610880565b604051610267919061238c565b60405180910390f35b34801561027c57600080fd5b50610297600480360381019061029291906123a7565b61088a565b6040516102a49190612362565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf91906123fa565b610a8a565b005b3480156102e257600080fd5b506102fd60048036038101906102f89190612427565b610b47565b60405161030a9190612362565b60405180910390f35b34801561031f57600080fd5b50610328610ba0565b6040516103359190612470565b60405180910390f35b34801561034a57600080fd5b5061036560048036038101906103609190612307565b610ba9565b6040516103729190612362565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d919061248b565b610c79565b005b3480156103b057600080fd5b506103cb60048036038101906103c691906124cb565b610d5b565b005b3480156103d957600080fd5b506103f460048036038101906103ef9190612427565b610e0b565b6040516104019190612362565b60405180910390f35b34801561041657600080fd5b5061041f610e3e565b60405161042c919061238c565b60405180910390f35b34801561044157600080fd5b5061045c60048036038101906104579190612427565b610e44565b005b34801561046a57600080fd5b5061048560048036038101906104809190612537565b610ed0565b005b34801561049357600080fd5b5061049c610f73565b6040516104a9919061238c565b60405180910390f35b3480156104be57600080fd5b506104d960048036038101906104d49190612427565b610f79565b6040516104e6919061238c565b60405180910390f35b3480156104fb57600080fd5b50610504610fc2565b6040516105119190612598565b60405180910390f35b34801561052657600080fd5b5061052f610fe8565b60405161053c91906125c2565b60405180910390f35b34801561055157600080fd5b5061055a611011565b604051610567919061224c565b60405180910390f35b34801561057c57600080fd5b5061058561104e565b60405161059291906125c2565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190612307565b611074565b6040516105cf9190612362565b60405180910390f35b3480156105e457600080fd5b506105ff60048036038101906105fa9190612427565b611089565b005b34801561060d57600080fd5b5061061661112b565b005b34801561062457600080fd5b5061062d611190565b60405161063a919061238c565b60405180910390f35b34801561064f57600080fd5b5061066a600480360381019061066591906125dd565b611196565b604051610677919061238c565b60405180910390f35b34801561068c57600080fd5b5061069561121d565b005b3480156106a357600080fd5b506106be60048036038101906106b99190612427565b6112ac565b005b3480156106cc57600080fd5b506106e760048036038101906106e29190612649565b61134f565b005b3480156106f557600080fd5b506106fe611468565b60405161070b91906126d5565b60405180910390f35b34801561072057600080fd5b5061073b60048036038101906107369190612427565b61148e565b6040516107489190612362565b60405180910390f35b60606040518060400160405280600a81526020017f415a554b49205045504500000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161086e919061238c565b60405180910390a36001905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610a76576109f5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e49092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610a81848484611548565b90509392505050565b610a9333610b47565b610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac99061273c565b60405180910390fd5b610ae860646005546118ff90919063ffffffff16565b811115610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b21906127a8565b60405180910390fd5b670de0b6b3a764000081610b3e91906127f7565b600f8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6000610bb433610b47565b610bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bea9061273c565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610c2e929190612851565b6020604051808303816000875af1158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c71919061288f565b905092915050565b610c8233610b47565b610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb89061273c565b60405180910390fd5b6005811115610d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfc90612908565b60405180910390fd5b6005821115610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4090612908565b60405180910390fd5b81600a81905550806009819055505050565b610d6433610b47565b610da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9a9061273c565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc60648584610dd091906127f7565b610dda9190612957565b9081150290604051600060405180830381858888f19350505050158015610e05573d6000803e3d6000fd5b50505050565b6000610e37827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61078e565b9050919050565b600a5481565b610e4d33610b47565b610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e839061273c565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ed933610b47565b610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f9061273c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60095481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f415a554b49504550450000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611081338484611548565b905092915050565b61109233610b47565b6110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c89061273c565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61113433610b47565b611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a9061273c565b60405180910390fd5b6001600e60146101000a81548160ff021916908315150217905550565b600f5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61122633610b47565b611265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125c9061273c565b60405180910390fd5b600061127030610f79565b90506000600f54821015905060008180156112935750600061129130610f79565b115b905080156112a7576112a6600f54611949565b5b505050565b6112b533610b47565b6112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb9061273c565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61135833610b47565b611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e9061273c565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161145d91906129a9565b60405180910390a150565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600083831115829061152c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611523919061224c565b60405180910390fd5b506000838561153b91906129c4565b9050809150509392505050565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115ee5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561164357600e60149054906101000a900460ff16611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163990612a44565b60405180910390fd5b5b601060009054906101000a900460ff161561166a57611663848484611b13565b90506118f8565b600061167530610f79565b90506000600f54821015905060008180156116dd5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80156116f1575060006116ef30610f79565b115b9050801561170557611704600f54611ce6565b5b61178e856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e49092919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006117dd8888611d28565b6117e757856117f3565b6117f2888888611e85565b5b905061184781600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202e90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118e7919061238c565b60405180910390a360019450505050505b9392505050565b600061194183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061208c565b905092915050565b6000600267ffffffffffffffff81111561196657611965612a64565b5b6040519080825280602002602001820160405280156119945781602001602082028036833780820191505090505b50905030816000815181106119ac576119ab612a93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110611a1d57611a1c612a93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611add959493929190612bbb565b600060405180830381600087803b158015611af757600080fd5b505af1158015611b0b573d6000803e3d6000fd5b505050505050565b6000611b9e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e49092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c3382600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202e90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cd3919061238c565b60405180910390a3600190509392505050565b6001601060006101000a81548160ff021916908315150217905550611d0a81611949565b6000601060006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dcb5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b158015611e7d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611e7c5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611ee557600954611ee9565b600a545b90506000611f14600b54611f0684876120ef90919063ffffffff16565b6118ff90919063ffffffff16565b9050611f6881600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202e90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612008919061238c565b60405180910390a3612023818561216990919063ffffffff16565b925050509392505050565b600080828461203d9190612c15565b905083811015612082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207990612cb7565b60405180910390fd5b8091505092915050565b600080831182906120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca919061224c565b60405180910390fd5b50600083856120e29190612957565b9050809150509392505050565b60008083036121015760009050612163565b6000828461210f91906127f7565b905082848261211e9190612957565b1461215e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215590612d49565b60405180910390fd5b809150505b92915050565b60006121ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114e4565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121ed5780820151818401526020810190506121d2565b838111156121fc576000848401525b50505050565b6000601f19601f8301169050919050565b600061221e826121b3565b61222881856121be565b93506122388185602086016121cf565b61224181612202565b840191505092915050565b600060208201905081810360008301526122668184612213565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061229e82612273565b9050919050565b6122ae81612293565b81146122b957600080fd5b50565b6000813590506122cb816122a5565b92915050565b6000819050919050565b6122e4816122d1565b81146122ef57600080fd5b50565b600081359050612301816122db565b92915050565b6000806040838503121561231e5761231d61226e565b5b600061232c858286016122bc565b925050602061233d858286016122f2565b9150509250929050565b60008115159050919050565b61235c81612347565b82525050565b60006020820190506123776000830184612353565b92915050565b612386816122d1565b82525050565b60006020820190506123a1600083018461237d565b92915050565b6000806000606084860312156123c0576123bf61226e565b5b60006123ce868287016122bc565b93505060206123df868287016122bc565b92505060406123f0868287016122f2565b9150509250925092565b6000602082840312156124105761240f61226e565b5b600061241e848285016122f2565b91505092915050565b60006020828403121561243d5761243c61226e565b5b600061244b848285016122bc565b91505092915050565b600060ff82169050919050565b61246a81612454565b82525050565b60006020820190506124856000830184612461565b92915050565b600080604083850312156124a2576124a161226e565b5b60006124b0858286016122f2565b92505060206124c1858286016122f2565b9150509250929050565b600080604083850312156124e2576124e161226e565b5b60006124f0858286016122f2565b9250506020612501858286016122bc565b9150509250929050565b61251481612347565b811461251f57600080fd5b50565b6000813590506125318161250b565b92915050565b6000806040838503121561254e5761254d61226e565b5b600061255c858286016122bc565b925050602061256d85828601612522565b9150509250929050565b600061258282612273565b9050919050565b61259281612577565b82525050565b60006020820190506125ad6000830184612589565b92915050565b6125bc81612293565b82525050565b60006020820190506125d760008301846125b3565b92915050565b600080604083850312156125f4576125f361226e565b5b6000612602858286016122bc565b9250506020612613858286016122bc565b9150509250929050565b61262681612577565b811461263157600080fd5b50565b6000813590506126438161261d565b92915050565b60006020828403121561265f5761265e61226e565b5b600061266d84828501612634565b91505092915050565b6000819050919050565b600061269b61269661269184612273565b612676565b612273565b9050919050565b60006126ad82612680565b9050919050565b60006126bf826126a2565b9050919050565b6126cf816126b4565b82525050565b60006020820190506126ea60008301846126c6565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006127266006836121be565b9150612731826126f0565b602082019050919050565b6000602082019050818103600083015261275581612719565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b6000612792600f836121be565b915061279d8261275c565b602082019050919050565b600060208201905081810360008301526127c181612785565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612802826122d1565b915061280d836122d1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612846576128456127c8565b5b828202905092915050565b600060408201905061286660008301856125b3565b612873602083018461237d565b9392505050565b6000815190506128898161250b565b92915050565b6000602082840312156128a5576128a461226e565b5b60006128b38482850161287a565b91505092915050565b7f4665652063616e27742065786365656420352500000000000000000000000000600082015250565b60006128f26013836121be565b91506128fd826128bc565b602082019050919050565b60006020820190508181036000830152612921816128e5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612962826122d1565b915061296d836122d1565b92508261297d5761297c612928565b5b828204905092915050565b6000612993826126a2565b9050919050565b6129a381612988565b82525050565b60006020820190506129be600083018461299a565b92915050565b60006129cf826122d1565b91506129da836122d1565b9250828210156129ed576129ec6127c8565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000612a2e6018836121be565b9150612a39826129f8565b602082019050919050565b60006020820190508181036000830152612a5d81612a21565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000612ae7612ae2612add84612ac2565b612676565b6122d1565b9050919050565b612af781612acc565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b3281612293565b82525050565b6000612b448383612b29565b60208301905092915050565b6000602082019050919050565b6000612b6882612afd565b612b728185612b08565b9350612b7d83612b19565b8060005b83811015612bae578151612b958882612b38565b9750612ba083612b50565b925050600181019050612b81565b5085935050505092915050565b600060a082019050612bd0600083018861237d565b612bdd6020830187612aee565b8181036040830152612bef8186612b5d565b9050612bfe606083018561299a565b612c0b608083018461237d565b9695505050505050565b6000612c20826122d1565b9150612c2b836122d1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c6057612c5f6127c8565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ca1601b836121be565b9150612cac82612c6b565b602082019050919050565b60006020820190508181036000830152612cd081612c94565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d336021836121be565b9150612d3e82612cd7565b604082019050919050565b60006020820190508181036000830152612d6281612d26565b905091905056fea2646970667358221220d724cb705c0b278d19f1e30b0415768106631a4237e4187486eeab54aa40e9b464736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c806370a08231116100f7578063c9567bf911610095578063f0b37c0411610064578063f0b37c0414610697578063f2fde38b146106c0578063f887ea40146106e9578063fe9fbb8014610714576101d8565b8063c9567bf914610601578063d12a768814610618578063dd62ed3e14610643578063e78221b014610680576101d8565b806395d89b41116100d157806395d89b4114610545578063a8aa1b3114610570578063a9059cbb1461059b578063b6a5d7de146105d8576101d8565b806370a08231146104b257806375f0a874146104ef578063893d20e81461051a576101d8565b806333f3d6281161016f5780635b149feb1161013e5780635b149feb1461040a5780635d098b3814610435578063658d4b7f1461045e5780636b1b498714610487576101d8565b806333f3d6281461033e57806352f7c9881461037b57806356a227f2146103a4578063571ac8b0146103cd576101d8565b806323b872dd116101ab57806323b872dd1461027057806329e04b4a146102ad5780632f54bf6e146102d6578063313ce56714610313576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610751565b6040516101ff919061224c565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612307565b61078e565b60405161023c9190612362565b60405180910390f35b34801561025157600080fd5b5061025a610880565b604051610267919061238c565b60405180910390f35b34801561027c57600080fd5b50610297600480360381019061029291906123a7565b61088a565b6040516102a49190612362565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf91906123fa565b610a8a565b005b3480156102e257600080fd5b506102fd60048036038101906102f89190612427565b610b47565b60405161030a9190612362565b60405180910390f35b34801561031f57600080fd5b50610328610ba0565b6040516103359190612470565b60405180910390f35b34801561034a57600080fd5b5061036560048036038101906103609190612307565b610ba9565b6040516103729190612362565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d919061248b565b610c79565b005b3480156103b057600080fd5b506103cb60048036038101906103c691906124cb565b610d5b565b005b3480156103d957600080fd5b506103f460048036038101906103ef9190612427565b610e0b565b6040516104019190612362565b60405180910390f35b34801561041657600080fd5b5061041f610e3e565b60405161042c919061238c565b60405180910390f35b34801561044157600080fd5b5061045c60048036038101906104579190612427565b610e44565b005b34801561046a57600080fd5b5061048560048036038101906104809190612537565b610ed0565b005b34801561049357600080fd5b5061049c610f73565b6040516104a9919061238c565b60405180910390f35b3480156104be57600080fd5b506104d960048036038101906104d49190612427565b610f79565b6040516104e6919061238c565b60405180910390f35b3480156104fb57600080fd5b50610504610fc2565b6040516105119190612598565b60405180910390f35b34801561052657600080fd5b5061052f610fe8565b60405161053c91906125c2565b60405180910390f35b34801561055157600080fd5b5061055a611011565b604051610567919061224c565b60405180910390f35b34801561057c57600080fd5b5061058561104e565b60405161059291906125c2565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190612307565b611074565b6040516105cf9190612362565b60405180910390f35b3480156105e457600080fd5b506105ff60048036038101906105fa9190612427565b611089565b005b34801561060d57600080fd5b5061061661112b565b005b34801561062457600080fd5b5061062d611190565b60405161063a919061238c565b60405180910390f35b34801561064f57600080fd5b5061066a600480360381019061066591906125dd565b611196565b604051610677919061238c565b60405180910390f35b34801561068c57600080fd5b5061069561121d565b005b3480156106a357600080fd5b506106be60048036038101906106b99190612427565b6112ac565b005b3480156106cc57600080fd5b506106e760048036038101906106e29190612649565b61134f565b005b3480156106f557600080fd5b506106fe611468565b60405161070b91906126d5565b60405180910390f35b34801561072057600080fd5b5061073b60048036038101906107369190612427565b61148e565b6040516107489190612362565b60405180910390f35b60606040518060400160405280600a81526020017f415a554b49205045504500000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161086e919061238c565b60405180910390a36001905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610a76576109f5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e49092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610a81848484611548565b90509392505050565b610a9333610b47565b610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac99061273c565b60405180910390fd5b610ae860646005546118ff90919063ffffffff16565b811115610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b21906127a8565b60405180910390fd5b670de0b6b3a764000081610b3e91906127f7565b600f8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6000610bb433610b47565b610bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bea9061273c565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610c2e929190612851565b6020604051808303816000875af1158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c71919061288f565b905092915050565b610c8233610b47565b610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb89061273c565b60405180910390fd5b6005811115610d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfc90612908565b60405180910390fd5b6005821115610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4090612908565b60405180910390fd5b81600a81905550806009819055505050565b610d6433610b47565b610da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9a9061273c565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc60648584610dd091906127f7565b610dda9190612957565b9081150290604051600060405180830381858888f19350505050158015610e05573d6000803e3d6000fd5b50505050565b6000610e37827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61078e565b9050919050565b600a5481565b610e4d33610b47565b610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e839061273c565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ed933610b47565b610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f9061273c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60095481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f415a554b49504550450000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611081338484611548565b905092915050565b61109233610b47565b6110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c89061273c565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61113433610b47565b611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a9061273c565b60405180910390fd5b6001600e60146101000a81548160ff021916908315150217905550565b600f5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61122633610b47565b611265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125c9061273c565b60405180910390fd5b600061127030610f79565b90506000600f54821015905060008180156112935750600061129130610f79565b115b905080156112a7576112a6600f54611949565b5b505050565b6112b533610b47565b6112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb9061273c565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61135833610b47565b611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e9061273c565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161145d91906129a9565b60405180910390a150565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600083831115829061152c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611523919061224c565b60405180910390fd5b506000838561153b91906129c4565b9050809150509392505050565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115ee5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561164357600e60149054906101000a900460ff16611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163990612a44565b60405180910390fd5b5b601060009054906101000a900460ff161561166a57611663848484611b13565b90506118f8565b600061167530610f79565b90506000600f54821015905060008180156116dd5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80156116f1575060006116ef30610f79565b115b9050801561170557611704600f54611ce6565b5b61178e856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e49092919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006117dd8888611d28565b6117e757856117f3565b6117f2888888611e85565b5b905061184781600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202e90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118e7919061238c565b60405180910390a360019450505050505b9392505050565b600061194183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061208c565b905092915050565b6000600267ffffffffffffffff81111561196657611965612a64565b5b6040519080825280602002602001820160405280156119945781602001602082028036833780820191505090505b50905030816000815181106119ac576119ab612a93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110611a1d57611a1c612a93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611add959493929190612bbb565b600060405180830381600087803b158015611af757600080fd5b505af1158015611b0b573d6000803e3d6000fd5b505050505050565b6000611b9e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e49092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c3382600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202e90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cd3919061238c565b60405180910390a3600190509392505050565b6001601060006101000a81548160ff021916908315150217905550611d0a81611949565b6000601060006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dcb5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b158015611e7d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611e7c5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611ee557600954611ee9565b600a545b90506000611f14600b54611f0684876120ef90919063ffffffff16565b6118ff90919063ffffffff16565b9050611f6881600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202e90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612008919061238c565b60405180910390a3612023818561216990919063ffffffff16565b925050509392505050565b600080828461203d9190612c15565b905083811015612082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207990612cb7565b60405180910390fd5b8091505092915050565b600080831182906120d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ca919061224c565b60405180910390fd5b50600083856120e29190612957565b9050809150509392505050565b60008083036121015760009050612163565b6000828461210f91906127f7565b905082848261211e9190612957565b1461215e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215590612d49565b60405180910390fd5b809150505b92915050565b60006121ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114e4565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121ed5780820151818401526020810190506121d2565b838111156121fc576000848401525b50505050565b6000601f19601f8301169050919050565b600061221e826121b3565b61222881856121be565b93506122388185602086016121cf565b61224181612202565b840191505092915050565b600060208201905081810360008301526122668184612213565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061229e82612273565b9050919050565b6122ae81612293565b81146122b957600080fd5b50565b6000813590506122cb816122a5565b92915050565b6000819050919050565b6122e4816122d1565b81146122ef57600080fd5b50565b600081359050612301816122db565b92915050565b6000806040838503121561231e5761231d61226e565b5b600061232c858286016122bc565b925050602061233d858286016122f2565b9150509250929050565b60008115159050919050565b61235c81612347565b82525050565b60006020820190506123776000830184612353565b92915050565b612386816122d1565b82525050565b60006020820190506123a1600083018461237d565b92915050565b6000806000606084860312156123c0576123bf61226e565b5b60006123ce868287016122bc565b93505060206123df868287016122bc565b92505060406123f0868287016122f2565b9150509250925092565b6000602082840312156124105761240f61226e565b5b600061241e848285016122f2565b91505092915050565b60006020828403121561243d5761243c61226e565b5b600061244b848285016122bc565b91505092915050565b600060ff82169050919050565b61246a81612454565b82525050565b60006020820190506124856000830184612461565b92915050565b600080604083850312156124a2576124a161226e565b5b60006124b0858286016122f2565b92505060206124c1858286016122f2565b9150509250929050565b600080604083850312156124e2576124e161226e565b5b60006124f0858286016122f2565b9250506020612501858286016122bc565b9150509250929050565b61251481612347565b811461251f57600080fd5b50565b6000813590506125318161250b565b92915050565b6000806040838503121561254e5761254d61226e565b5b600061255c858286016122bc565b925050602061256d85828601612522565b9150509250929050565b600061258282612273565b9050919050565b61259281612577565b82525050565b60006020820190506125ad6000830184612589565b92915050565b6125bc81612293565b82525050565b60006020820190506125d760008301846125b3565b92915050565b600080604083850312156125f4576125f361226e565b5b6000612602858286016122bc565b9250506020612613858286016122bc565b9150509250929050565b61262681612577565b811461263157600080fd5b50565b6000813590506126438161261d565b92915050565b60006020828403121561265f5761265e61226e565b5b600061266d84828501612634565b91505092915050565b6000819050919050565b600061269b61269661269184612273565b612676565b612273565b9050919050565b60006126ad82612680565b9050919050565b60006126bf826126a2565b9050919050565b6126cf816126b4565b82525050565b60006020820190506126ea60008301846126c6565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006127266006836121be565b9150612731826126f0565b602082019050919050565b6000602082019050818103600083015261275581612719565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b6000612792600f836121be565b915061279d8261275c565b602082019050919050565b600060208201905081810360008301526127c181612785565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612802826122d1565b915061280d836122d1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612846576128456127c8565b5b828202905092915050565b600060408201905061286660008301856125b3565b612873602083018461237d565b9392505050565b6000815190506128898161250b565b92915050565b6000602082840312156128a5576128a461226e565b5b60006128b38482850161287a565b91505092915050565b7f4665652063616e27742065786365656420352500000000000000000000000000600082015250565b60006128f26013836121be565b91506128fd826128bc565b602082019050919050565b60006020820190508181036000830152612921816128e5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612962826122d1565b915061296d836122d1565b92508261297d5761297c612928565b5b828204905092915050565b6000612993826126a2565b9050919050565b6129a381612988565b82525050565b60006020820190506129be600083018461299a565b92915050565b60006129cf826122d1565b91506129da836122d1565b9250828210156129ed576129ec6127c8565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000612a2e6018836121be565b9150612a39826129f8565b602082019050919050565b60006020820190508181036000830152612a5d81612a21565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000612ae7612ae2612add84612ac2565b612676565b6122d1565b9050919050565b612af781612acc565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b3281612293565b82525050565b6000612b448383612b29565b60208301905092915050565b6000602082019050919050565b6000612b6882612afd565b612b728185612b08565b9350612b7d83612b19565b8060005b83811015612bae578151612b958882612b38565b9750612ba083612b50565b925050600181019050612b81565b5085935050505092915050565b600060a082019050612bd0600083018861237d565b612bdd6020830187612aee565b8181036040830152612bef8186612b5d565b9050612bfe606083018561299a565b612c0b608083018461237d565b9695505050505050565b6000612c20826122d1565b9150612c2b836122d1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c6057612c5f6127c8565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ca1601b836121be565b9150612cac82612c6b565b602082019050919050565b60006020820190508181036000830152612cd081612c94565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d336021836121be565b9150612d3e82612cd7565b604082019050919050565b60006020820190508181036000830152612d6281612d26565b905091905056fea2646970667358221220d724cb705c0b278d19f1e30b0415768106631a4237e4187486eeab54aa40e9b464736f6c634300080d0033

Deployed Bytecode Sourcemap

5597:7763:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7617:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8039:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7347:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8557:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12688:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3490:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7441:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13151:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12252:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12904:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8263:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6300:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12540:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12125:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6264:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7787:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6384:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7703:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7527:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6516:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8393:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3163:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12030:79;;;;;;;;;;;;;:::i;:::-;;6577:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7898:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11616:406;;;;;;;;;;;;;:::i;:::-;;3333:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3890:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6485:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3664:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7617:80;7665:13;7689:5;;;;;;;;;;;;;;;;;7682:12;;7617:80;:::o;8039:216::-;8114:4;8166:6;8131:11;:23;8143:10;8131:23;;;;;;;;;;;;;;;:32;8155:7;8131:32;;;;;;;;;;;;;;;:41;;;;8209:7;8188:37;;8197:10;8188:37;;;8218:6;8188:37;;;;;;:::i;:::-;;;;;;;;8243:4;8236:11;;8039:216;;;;:::o;7347:88::-;7402:7;7420:12;;7413:19;;7347:88;:::o;8557:370::-;8657:4;8712:17;8677:11;:19;8689:6;8677:19;;;;;;;;;;;;;;;:31;8697:10;8677:31;;;;;;;;;;;;;;;;:52;8674:186;;8779:69;8815:6;8779:69;;;;;;;;;;;;;;;;;:11;:19;8791:6;8779:19;;;;;;;;;;;;;;;:31;8799:10;8779:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8745:11;:19;8757:6;8745:19;;;;;;;;;;;;;;;:31;8765:10;8745:31;;;;;;;;;;;;;;;:103;;;;8674:186;8879:40;8893:6;8901:9;8912:6;8879:13;:40::i;:::-;8872:47;;8557:370;;;;;:::o;12688:207::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12786:21:::1;12803:3;12786:12;;:16;;:21;;;;:::i;:::-;12776:6;:31;;12767:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12879:8;12870:6;:17;;;;:::i;:::-;12838:29;:49;;;;12688:207:::0;:::o;3490:103::-;3545:4;3580:5;;;;;;;;;;;3569:16;;:7;:16;;;3562:23;;3490:103;;;:::o;7441:80::-;7493:5;5986:2;7502:16;;7441:80;:::o;13151:206::-;13263:12;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13307:12:::1;13300:29;;;13330:10;13342:6;13300:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13293:56;;13151:206:::0;;;;:::o;12252:280::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12366:1:::1;12351:11;:16;;12342:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12427:1;12411:12;:17;;12402:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12477:12;12463:11;:26;;;;12513:11;12500:10;:24;;;;12252:280:::0;;:::o;12904:239::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13000:17:::1;13020:21;13000:41;;13060:3;13052:21;;:83;13121:3;13101:16;13089:9;:28;;;;:::i;:::-;13088:36;;;;:::i;:::-;13052:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12989:154;12904:239:::0;;:::o;8263:122::-;8318:4;8342:35;8350:7;8359:17;8342:7;:35::i;:::-;8335:42;;8263:122;;;:::o;6300:30::-;;;;:::o;12540:135::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12650:16:::1;12624:15;;:43;;;;;;;;;;;;;;;;;;12540:135:::0;:::o;12125:119::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12230:6:::1;12208:11;:19;12220:6;12208:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;12125:119:::0;;:::o;6264:29::-;;;;:::o;7787:105::-;7853:7;7871:9;:18;7881:7;7871:18;;;;;;;;;;;;;;;;7864:25;;7787:105;;;:::o;6384:92::-;;;;;;;;;;;;;:::o;7703:78::-;7755:7;7773:5;;;;;;;;;;;7766:12;;7703:78;:::o;7527:84::-;7577:13;7601:7;;;;;;;;;;;;;;;;;7594:14;;7527:84;:::o;6516:19::-;;;;;;;;;;;;;:::o;8393:156::-;8473:4;8497:44;8511:10;8523:9;8534:6;8497:13;:44::i;:::-;8490:51;;8393:156;;;;:::o;3163:94::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3245:4:::1;3223:14:::0;:19:::1;3238:3;3223:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3163:94:::0;:::o;12030:79::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12097:4:::1;12083:11;;:18;;;;;;;;;;;;;;;;;;12030:79::o:0;6577:71::-;;;;:::o;7898:133::-;7982:7;8000:11;:19;8012:6;8000:19;;;;;;;;;;;;;;;:28;8020:7;8000:28;;;;;;;;;;;;;;;;7993:35;;7898:133;;;;:::o;11616:406::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11671:28:::1;11702:24;11720:4;11702:9;:24::i;:::-;11671:55;;11739:24;11790:29;;11766:20;:53;;11739:80;;11836:19;11859;:51;;;;;11909:1;11882:24;11900:4;11882:9;:24::i;:::-;:28;11859:51;11836:75;;11925:14;11922:93;;;11956:47;11973:29;;11956:16;:47::i;:::-;11922:93;11660:362;;;11616:406::o:0;3333:97::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3417:5:::1;3395:14;:19;3410:3;3395:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3333:97:::0;:::o;3890:173::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3974:3:::1;3966:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4010:4;3988:14:::0;:19:::1;4003:3;3988:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4030:25;4051:3;4030:25;;;;;;:::i;:::-;;;;;;;;3890:173:::0;:::o;6485:24::-;;;;;;;;;;;;;:::o;3664:107::-;3720:4;3744:14;:19;3759:3;3744:19;;;;;;;;;;;;;;;;;;;;;;;;;3737:26;;3664:107;;;:::o;549:192::-;635:7;668:1;663;:6;;671:12;655:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;695:9;711:1;707;:5;;;;:::i;:::-;695:17;;732:1;725:8;;;549:192;;;;;:::o;8935:1043::-;9027:4;9048:14;:22;9063:6;9048:22;;;;;;;;;;;;;;;;;;;;;;;;;9047:23;:53;;;;;9075:14;:25;9090:9;9075:25;;;;;;;;;;;;;;;;;;;;;;;;;9074:26;9047:53;9044:133;;;9125:11;;;;;;;;;;;9117:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9044:133;9192:6;;;;;;;;;;;9189:63;;;9208:41;9223:6;9231:9;9242:6;9208:14;:41::i;:::-;9201:48;;;;9189:63;9270:28;9301:24;9319:4;9301:9;:24::i;:::-;9270:55;;9338:24;9389:29;;9365:20;:53;;9338:80;;9435:19;9458;:38;;;;;9492:4;;;;;;;;;;;9481:15;;:9;:15;;;9458:38;:70;;;;;9527:1;9500:24;9518:4;9500:9;:24::i;:::-;:28;9458:70;9435:94;;9543:14;9540:62;;;9560:39;9569:29;;9560:8;:39::i;:::-;9540:62;9634:53;9656:6;9634:53;;;;;;;;;;;;;;;;;:9;:17;9644:6;9634:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9614:9;:17;9624:6;9614:17;;;;;;;;;;;;;;;:73;;;;9700:22;9725:32;9739:6;9747:9;9725:13;:32::i;:::-;:78;;9797:6;9725:78;;;9760:34;9768:6;9776:9;9787:6;9760:7;:34::i;:::-;9725:78;9700:103;;9847:40;9872:14;9847:9;:20;9857:9;9847:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9824:9;:20;9834:9;9824:20;;;;;;;;;;;;;;;:63;;;;9922:9;9905:43;;9914:6;9905:43;;;9933:14;9905:43;;;;;;:::i;:::-;;;;;;;;9966:4;9959:11;;;;;;8935:1043;;;;;;:::o;1003:132::-;1061:7;1088:39;1092:1;1095;1088:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1081:46;;1003:132;;;;:::o;11119:489::-;11245:21;11283:1;11269:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11245:40;;11314:4;11296;11301:1;11296:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11340:4;;;;;;;;;;;11330;11335:1;11330:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;11383:6;;;;;;;;;;;:57;;;11455:11;11481:1;11525:4;11544:15;;;;;;;;;;;11574;11383:217;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11174:434;11119:489;:::o;9990:330::-;10083:4;10120:53;10142:6;10120:53;;;;;;;;;;;;;;;;;:9;:17;10130:6;10120:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10100:9;:17;10110:6;10100:17;;;;;;;;;;;;;;;:73;;;;10207:32;10232:6;10207:9;:20;10217:9;10207:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10184:9;:20;10194:9;10184:20;;;;;;;;;;;;;;;:55;;;;10272:9;10255:35;;10264:6;10255:35;;;10283:6;10255:35;;;;;;:::i;:::-;;;;;;;;10308:4;10301:11;;9990:330;;;;;:::o;11012:95::-;6729:4;6720:6;;:13;;;;;;;;;;;;;;;;;;11075:24:::1;11092:6;11075:16;:24::i;:::-;6747:5:::0;6738:6;;:14;;;;;;;;;;;;;;;;;;11012:95;:::o;10328:207::-;10409:4;10437:11;:19;10449:6;10437:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;10460:11;:22;10472:9;10460:22;;;;;;;;;;;;;;;;;;;;;;;;;10437:45;10435:48;:90;;;;;10499:4;;;;;;;;;;;10489:14;;:6;:14;;;:35;;;;10520:4;;;;;;;;;;;10507:17;;:9;:17;;;10489:35;10435:90;10426:101;;10328:207;;;;:::o;10543:461::-;10629:7;10649:23;10688:4;;;;;;;;;;;10675:17;;:9;:17;;;:44;;10709:10;;10675:44;;;10695:11;;10675:44;10649:70;;10730:17;10770:47;10802:14;;10770:27;10781:15;10770:6;:10;;:27;;;;:::i;:::-;:31;;:47;;;;:::i;:::-;10758:59;;10855:39;10884:9;10855;:24;10873:4;10855:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10828:9;:24;10846:4;10828:24;;;;;;;;;;;;;;;:66;;;;10935:4;10910:42;;10919:6;10910:42;;;10942:9;10910:42;;;;;;:::i;:::-;;;;;;;;10975:21;10986:9;10975:6;:10;;:21;;;;:::i;:::-;10968:28;;;;10543:461;;;;;:::o;220:181::-;278:7;298:9;314:1;310;:5;;;;:::i;:::-;298:17;;339:1;334;:6;;326:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;392:1;385:8;;;220:181;;;;:::o;1141:345::-;1227:7;1326:1;1322;:5;1329:12;1314:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1353:9;1369:1;1365;:5;;;;:::i;:::-;1353:17;;1477:1;1470:8;;;1141:345;;;;;:::o;747:250::-;805:7;834:1;829;:6;825:47;;859:1;852:8;;;;825:47;884:9;900:1;896;:5;;;;:::i;:::-;884:17;;929:1;924;920;:5;;;;:::i;:::-;:10;912:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;988:1;981:8;;;747:250;;;;;:::o;407:136::-;465:7;492:43;496:1;499;492:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;485:50;;407:136;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:::-;4865:6;4914:2;4902:9;4893:7;4889:23;4885:32;4882:119;;;4920:79;;:::i;:::-;4882:119;5040:1;5065:53;5110:7;5101:6;5090:9;5086:22;5065:53;:::i;:::-;5055:63;;5011:117;4806:329;;;;:::o;5141:86::-;5176:7;5216:4;5209:5;5205:16;5194:27;;5141:86;;;:::o;5233:112::-;5316:22;5332:5;5316:22;:::i;:::-;5311:3;5304:35;5233:112;;:::o;5351:214::-;5440:4;5478:2;5467:9;5463:18;5455:26;;5491:67;5555:1;5544:9;5540:17;5531:6;5491:67;:::i;:::-;5351:214;;;;:::o;5571:474::-;5639:6;5647;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5949:2;5975:53;6020:7;6011:6;6000:9;5996:22;5975:53;:::i;:::-;5965:63;;5920:118;5571:474;;;;;:::o;6051:::-;6119:6;6127;6176:2;6164:9;6155:7;6151:23;6147:32;6144:119;;;6182:79;;:::i;:::-;6144:119;6302:1;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6273:117;6429:2;6455:53;6500:7;6491:6;6480:9;6476:22;6455:53;:::i;:::-;6445:63;;6400:118;6051:474;;;;;:::o;6531:116::-;6601:21;6616:5;6601:21;:::i;:::-;6594:5;6591:32;6581:60;;6637:1;6634;6627:12;6581:60;6531:116;:::o;6653:133::-;6696:5;6734:6;6721:20;6712:29;;6750:30;6774:5;6750:30;:::i;:::-;6653:133;;;;:::o;6792:468::-;6857:6;6865;6914:2;6902:9;6893:7;6889:23;6885:32;6882:119;;;6920:79;;:::i;:::-;6882:119;7040:1;7065:53;7110:7;7101:6;7090:9;7086:22;7065:53;:::i;:::-;7055:63;;7011:117;7167:2;7193:50;7235:7;7226:6;7215:9;7211:22;7193:50;:::i;:::-;7183:60;;7138:115;6792:468;;;;;:::o;7266:104::-;7311:7;7340:24;7358:5;7340:24;:::i;:::-;7329:35;;7266:104;;;:::o;7376:142::-;7479:32;7505:5;7479:32;:::i;:::-;7474:3;7467:45;7376:142;;:::o;7524:254::-;7633:4;7671:2;7660:9;7656:18;7648:26;;7684:87;7768:1;7757:9;7753:17;7744:6;7684:87;:::i;:::-;7524:254;;;;:::o;7784:118::-;7871:24;7889:5;7871:24;:::i;:::-;7866:3;7859:37;7784:118;;:::o;7908:222::-;8001:4;8039:2;8028:9;8024:18;8016:26;;8052:71;8120:1;8109:9;8105:17;8096:6;8052:71;:::i;:::-;7908:222;;;;:::o;8136:474::-;8204:6;8212;8261:2;8249:9;8240:7;8236:23;8232:32;8229:119;;;8267:79;;:::i;:::-;8229:119;8387:1;8412:53;8457:7;8448:6;8437:9;8433:22;8412:53;:::i;:::-;8402:63;;8358:117;8514:2;8540:53;8585:7;8576:6;8565:9;8561:22;8540:53;:::i;:::-;8530:63;;8485:118;8136:474;;;;;:::o;8616:138::-;8697:32;8723:5;8697:32;:::i;:::-;8690:5;8687:43;8677:71;;8744:1;8741;8734:12;8677:71;8616:138;:::o;8760:155::-;8814:5;8852:6;8839:20;8830:29;;8868:41;8903:5;8868:41;:::i;:::-;8760:155;;;;:::o;8921:345::-;8988:6;9037:2;9025:9;9016:7;9012:23;9008:32;9005:119;;;9043:79;;:::i;:::-;9005:119;9163:1;9188:61;9241:7;9232:6;9221:9;9217:22;9188:61;:::i;:::-;9178:71;;9134:125;8921:345;;;;:::o;9272:60::-;9300:3;9321:5;9314:12;;9272:60;;;:::o;9338:142::-;9388:9;9421:53;9439:34;9448:24;9466:5;9448:24;:::i;:::-;9439:34;:::i;:::-;9421:53;:::i;:::-;9408:66;;9338:142;;;:::o;9486:126::-;9536:9;9569:37;9600:5;9569:37;:::i;:::-;9556:50;;9486:126;;;:::o;9618:144::-;9686:9;9719:37;9750:5;9719:37;:::i;:::-;9706:50;;9618:144;;;:::o;9768:167::-;9873:55;9922:5;9873:55;:::i;:::-;9868:3;9861:68;9768:167;;:::o;9941:258::-;10052:4;10090:2;10079:9;10075:18;10067:26;;10103:89;10189:1;10178:9;10174:17;10165:6;10103:89;:::i;:::-;9941:258;;;;:::o;10205:156::-;10345:8;10341:1;10333:6;10329:14;10322:32;10205:156;:::o;10367:365::-;10509:3;10530:66;10594:1;10589:3;10530:66;:::i;:::-;10523:73;;10605:93;10694:3;10605:93;:::i;:::-;10723:2;10718:3;10714:12;10707:19;;10367:365;;;:::o;10738:419::-;10904:4;10942:2;10931:9;10927:18;10919:26;;10991:9;10985:4;10981:20;10977:1;10966:9;10962:17;10955:47;11019:131;11145:4;11019:131;:::i;:::-;11011:139;;10738:419;;;:::o;11163:165::-;11303:17;11299:1;11291:6;11287:14;11280:41;11163:165;:::o;11334:366::-;11476:3;11497:67;11561:2;11556:3;11497:67;:::i;:::-;11490:74;;11573:93;11662:3;11573:93;:::i;:::-;11691:2;11686:3;11682:12;11675:19;;11334:366;;;:::o;11706:419::-;11872:4;11910:2;11899:9;11895:18;11887:26;;11959:9;11953:4;11949:20;11945:1;11934:9;11930:17;11923:47;11987:131;12113:4;11987:131;:::i;:::-;11979:139;;11706:419;;;:::o;12131:180::-;12179:77;12176:1;12169:88;12276:4;12273:1;12266:15;12300:4;12297:1;12290:15;12317:348;12357:7;12380:20;12398:1;12380:20;:::i;:::-;12375:25;;12414:20;12432:1;12414:20;:::i;:::-;12409:25;;12602:1;12534:66;12530:74;12527:1;12524:81;12519:1;12512:9;12505:17;12501:105;12498:131;;;12609:18;;:::i;:::-;12498:131;12657:1;12654;12650:9;12639:20;;12317:348;;;;:::o;12671:332::-;12792:4;12830:2;12819:9;12815:18;12807:26;;12843:71;12911:1;12900:9;12896:17;12887:6;12843:71;:::i;:::-;12924:72;12992:2;12981:9;12977:18;12968:6;12924:72;:::i;:::-;12671:332;;;;;:::o;13009:137::-;13063:5;13094:6;13088:13;13079:22;;13110:30;13134:5;13110:30;:::i;:::-;13009:137;;;;:::o;13152:345::-;13219:6;13268:2;13256:9;13247:7;13243:23;13239:32;13236:119;;;13274:79;;:::i;:::-;13236:119;13394:1;13419:61;13472:7;13463:6;13452:9;13448:22;13419:61;:::i;:::-;13409:71;;13365:125;13152:345;;;;:::o;13503:169::-;13643:21;13639:1;13631:6;13627:14;13620:45;13503:169;:::o;13678:366::-;13820:3;13841:67;13905:2;13900:3;13841:67;:::i;:::-;13834:74;;13917:93;14006:3;13917:93;:::i;:::-;14035:2;14030:3;14026:12;14019:19;;13678:366;;;:::o;14050:419::-;14216:4;14254:2;14243:9;14239:18;14231:26;;14303:9;14297:4;14293:20;14289:1;14278:9;14274:17;14267:47;14331:131;14457:4;14331:131;:::i;:::-;14323:139;;14050:419;;;:::o;14475:180::-;14523:77;14520:1;14513:88;14620:4;14617:1;14610:15;14644:4;14641:1;14634:15;14661:185;14701:1;14718:20;14736:1;14718:20;:::i;:::-;14713:25;;14752:20;14770:1;14752:20;:::i;:::-;14747:25;;14791:1;14781:35;;14796:18;;:::i;:::-;14781:35;14838:1;14835;14831:9;14826:14;;14661:185;;;;:::o;14852:134::-;14910:9;14943:37;14974:5;14943:37;:::i;:::-;14930:50;;14852:134;;;:::o;14992:147::-;15087:45;15126:5;15087:45;:::i;:::-;15082:3;15075:58;14992:147;;:::o;15145:238::-;15246:4;15284:2;15273:9;15269:18;15261:26;;15297:79;15373:1;15362:9;15358:17;15349:6;15297:79;:::i;:::-;15145:238;;;;:::o;15389:191::-;15429:4;15449:20;15467:1;15449:20;:::i;:::-;15444:25;;15483:20;15501:1;15483:20;:::i;:::-;15478:25;;15522:1;15519;15516:8;15513:34;;;15527:18;;:::i;:::-;15513:34;15572:1;15569;15565:9;15557:17;;15389:191;;;;:::o;15586:174::-;15726:26;15722:1;15714:6;15710:14;15703:50;15586:174;:::o;15766:366::-;15908:3;15929:67;15993:2;15988:3;15929:67;:::i;:::-;15922:74;;16005:93;16094:3;16005:93;:::i;:::-;16123:2;16118:3;16114:12;16107:19;;15766:366;;;:::o;16138:419::-;16304:4;16342:2;16331:9;16327:18;16319:26;;16391:9;16385:4;16381:20;16377:1;16366:9;16362:17;16355:47;16419:131;16545:4;16419:131;:::i;:::-;16411:139;;16138:419;;;:::o;16563:180::-;16611:77;16608:1;16601:88;16708:4;16705:1;16698:15;16732:4;16729:1;16722:15;16749:180;16797:77;16794:1;16787:88;16894:4;16891:1;16884:15;16918:4;16915:1;16908:15;16935:85;16980:7;17009:5;16998:16;;16935:85;;;:::o;17026:158::-;17084:9;17117:61;17135:42;17144:32;17170:5;17144:32;:::i;:::-;17135:42;:::i;:::-;17117:61;:::i;:::-;17104:74;;17026:158;;;:::o;17190:147::-;17285:45;17324:5;17285:45;:::i;:::-;17280:3;17273:58;17190:147;;:::o;17343:114::-;17410:6;17444:5;17438:12;17428:22;;17343:114;;;:::o;17463:184::-;17562:11;17596:6;17591:3;17584:19;17636:4;17631:3;17627:14;17612:29;;17463:184;;;;:::o;17653:132::-;17720:4;17743:3;17735:11;;17773:4;17768:3;17764:14;17756:22;;17653:132;;;:::o;17791:108::-;17868:24;17886:5;17868:24;:::i;:::-;17863:3;17856:37;17791:108;;:::o;17905:179::-;17974:10;17995:46;18037:3;18029:6;17995:46;:::i;:::-;18073:4;18068:3;18064:14;18050:28;;17905:179;;;;:::o;18090:113::-;18160:4;18192;18187:3;18183:14;18175:22;;18090:113;;;:::o;18239:732::-;18358:3;18387:54;18435:5;18387:54;:::i;:::-;18457:86;18536:6;18531:3;18457:86;:::i;:::-;18450:93;;18567:56;18617:5;18567:56;:::i;:::-;18646:7;18677:1;18662:284;18687:6;18684:1;18681:13;18662:284;;;18763:6;18757:13;18790:63;18849:3;18834:13;18790:63;:::i;:::-;18783:70;;18876:60;18929:6;18876:60;:::i;:::-;18866:70;;18722:224;18709:1;18706;18702:9;18697:14;;18662:284;;;18666:14;18962:3;18955:10;;18363:608;;;18239:732;;;;:::o;18977:847::-;19248:4;19286:3;19275:9;19271:19;19263:27;;19300:71;19368:1;19357:9;19353:17;19344:6;19300:71;:::i;:::-;19381:80;19457:2;19446:9;19442:18;19433:6;19381:80;:::i;:::-;19508:9;19502:4;19498:20;19493:2;19482:9;19478:18;19471:48;19536:108;19639:4;19630:6;19536:108;:::i;:::-;19528:116;;19654:80;19730:2;19719:9;19715:18;19706:6;19654:80;:::i;:::-;19744:73;19812:3;19801:9;19797:19;19788:6;19744:73;:::i;:::-;18977:847;;;;;;;;:::o;19830:305::-;19870:3;19889:20;19907:1;19889:20;:::i;:::-;19884:25;;19923:20;19941:1;19923:20;:::i;:::-;19918:25;;20077:1;20009:66;20005:74;20002:1;19999:81;19996:107;;;20083:18;;:::i;:::-;19996:107;20127:1;20124;20120:9;20113:16;;19830:305;;;;:::o;20141:177::-;20281:29;20277:1;20269:6;20265:14;20258:53;20141:177;:::o;20324:366::-;20466:3;20487:67;20551:2;20546:3;20487:67;:::i;:::-;20480:74;;20563:93;20652:3;20563:93;:::i;:::-;20681:2;20676:3;20672:12;20665:19;;20324:366;;;:::o;20696:419::-;20862:4;20900:2;20889:9;20885:18;20877:26;;20949:9;20943:4;20939:20;20935:1;20924:9;20920:17;20913:47;20977:131;21103:4;20977:131;:::i;:::-;20969:139;;20696:419;;;:::o;21121:220::-;21261:34;21257:1;21249:6;21245:14;21238:58;21330:3;21325:2;21317:6;21313:15;21306:28;21121:220;:::o;21347:366::-;21489:3;21510:67;21574:2;21569:3;21510:67;:::i;:::-;21503:74;;21586:93;21675:3;21586:93;:::i;:::-;21704:2;21699:3;21695:12;21688:19;;21347:366;;;:::o;21719:419::-;21885:4;21923:2;21912:9;21908:18;21900:26;;21972:9;21966:4;21962:20;21958:1;21947:9;21943:17;21936:47;22000:131;22126:4;22000:131;:::i;:::-;21992:139;;21719:419;;;:::o

Swarm Source

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