ETH Price: $2,511.54 (+0.17%)

Token

DJPEPE ($DJPEPE)
 

Overview

Max Total Supply

1,000,000,000 $DJPEPE

Holders

34

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
DJPEPE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-03
*/

/**
▄▄███▄▄·██████╗      ██╗    ██████╗ ███████╗██████╗ ███████╗
██╔════╝██╔══██╗     ██║    ██╔══██╗██╔════╝██╔══██╗██╔════╝
███████╗██║  ██║     ██║    ██████╔╝█████╗  ██████╔╝█████╗  
╚════██║██║  ██║██   ██║    ██╔═══╝ ██╔══╝  ██╔═══╝ ██╔══╝  
███████║██████╔╝╚█████╔╝    ██║     ███████╗██║     ███████╗
╚═▀▀▀══╝╚═════╝  ╚════╝     ╚═╝     ╚══════╝╚═╝     ╚══════╝
                                                            
*/

// Website: https://dj-pepe.club/
// Twitter: https://twitter.com/djpepe_coin
// Telegram: https://t.me/djpepe_eth

// Enter the world of DJ PEPE, where an AI DJ Mixer app lets you be the life of the party while trading the funkiest token on the block – $DJPEPE. 
// No rugs pulled here; we’re all about the beats with 1 ETH of liquidity permanently burned in the groove. 
// Get ready to jam with the base currency of the coolest community in crypto.

// SPDX-License-Identifier: MIT


pragma solidity 0.8.19;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract DJPEPE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _blacklist;
    address payable private _taxWallet;
    event StuckEthersCleared();
    event TransferForeignToken(address token, uint256 amount);
    event MaxWalletAmountUpdated();


    uint256 private _initialBuyTax;
    uint256 private _initialSellTax;
    uint256 private _finalBuyTax;
    uint256 private _finalSellTax;
    uint256 private _reduceBuyTaxAt;
    uint256 private _reduceSellTaxAt;
    uint256 private _preventSwapBefore;
    uint256 private _buyCount;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"DJPEPE";
    string private constant _symbol = unicode"$DJPEPE";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 14000001 * 10**_decimals;
    uint256 public _maxTaxSwap= 14000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!_blacklist[to] && !_blacklist[from], "You have been blacklisted from transfering tokens");

        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 10000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


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

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

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        _initialBuyTax=_finalBuyTax;
        _initialSellTax=_finalSellTax;
        emit MaxTxAmountUpdated(_tTotal);
    }

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


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

    receive() external payable {}

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

    function blacklistAccount (address account, bool isBlacklisted) public onlyOwner() {
        _blacklist[account] = isBlacklisted;
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        require(amount >= 5000000, "Cannot set maxWallet lower than 0.5%");
        _maxWalletSize = amount * (10**9);
        emit MaxWalletAmountUpdated();
    }

    function clearStuckEthers(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer((amountETH * amountPercentage) / 100);
        emit StuckEthersCleared();
    }

    function withdrawStuckTokens(address _token, address _to) external onlyOwner returns (bool _sent) {
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        _sent = IERC20(_token).transfer(_to, _contractBalance);
        emit TransferForeignToken(_token, _contractBalance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"StuckEthersCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"blacklistAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckEthers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawStuckTokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a620000149190620005ea565b6301312d006200002591906200063b565b600e556009600a620000389190620005ea565b6301312d006200004991906200063b565b600f556009600a6200005c9190620005ea565b62d59f816200006c91906200063b565b6010556009600a6200007f9190620005ea565b62d59f806200008f91906200063b565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff021916908315150217905550348015620000d557600080fd5b506000620000e86200041f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001966200041f60201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620001e69190620005ea565b633b9aca00620001f791906200063b565b600160006200020b6200041f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200025f6200042760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003926200041f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620003f19190620005ea565b633b9aca006200040291906200063b565b60405162000411919062000697565b60405180910390a3620006b4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620004de57808604811115620004b657620004b562000450565b5b6001851615620004c65780820291505b8081029050620004d6856200047f565b945062000496565b94509492505050565b600082620004f95760019050620005cc565b81620005095760009050620005cc565b81600181146200052257600281146200052d5762000563565b6001915050620005cc565b60ff84111562000542576200054162000450565b5b8360020a9150848211156200055c576200055b62000450565b5b50620005cc565b5060208310610133831016604e8410600b84101617156200059d5782820a90508381111562000597576200059662000450565b5b620005cc565b620005ac84848460016200048c565b92509050818404811115620005c657620005c562000450565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005f782620005d3565b91506200060483620005dd565b9250620006337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004e7565b905092915050565b60006200064882620005d3565b91506200065583620005d3565b92508282026200066581620005d3565b915082820484148315176200067f576200067e62000450565b5b5092915050565b6200069181620005d3565b82525050565b6000602082019050620006ae600083018462000686565b92915050565b6136b480620006c46000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab5780639aed73701161006f5780639aed7370146103ff578063a9059cbb14610428578063bf474bed14610465578063c18bc19514610490578063c9567bf9146104b9578063dd62ed3e146104d057610140565b8063751039fc1461033c5780637d1db4a5146103535780638da5cb5b1461037e5780638f9a55c0146103a957806395d89b41146103d457610140565b806325b86edf116100fd57806325b86edf146102405780632d5a5d341461027d578063313ce567146102a657806351bc3c85146102d157806370a08231146102e8578063715018a61461032557610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61050d565b604051610167919061260f565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906126ca565b61054a565b6040516101a49190612725565b60405180910390f35b3480156101b957600080fd5b506101c2610568565b6040516101cf919061274f565b60405180910390f35b3480156101e457600080fd5b506101ed61056e565b6040516101fa919061274f565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061276a565b610592565b6040516102379190612725565b60405180910390f35b34801561024c57600080fd5b50610267600480360381019061026291906127bd565b61066b565b6040516102749190612725565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190612829565b610840565b005b3480156102b257600080fd5b506102bb610930565b6040516102c89190612885565b60405180910390f35b3480156102dd57600080fd5b506102e6610939565b005b3480156102f457600080fd5b5061030f600480360381019061030a91906128a0565b6109d6565b60405161031c919061274f565b60405180910390f35b34801561033157600080fd5b5061033a610a1f565b005b34801561034857600080fd5b50610351610b72565b005b34801561035f57600080fd5b50610368610cb4565b604051610375919061274f565b60405180910390f35b34801561038a57600080fd5b50610393610cba565b6040516103a091906128dc565b60405180910390f35b3480156103b557600080fd5b506103be610ce3565b6040516103cb919061274f565b60405180910390f35b3480156103e057600080fd5b506103e9610ce9565b6040516103f6919061260f565b60405180910390f35b34801561040b57600080fd5b50610426600480360381019061042191906128f7565b610d26565b005b34801561043457600080fd5b5061044f600480360381019061044a91906126ca565b610e4e565b60405161045c9190612725565b60405180910390f35b34801561047157600080fd5b5061047a610e6c565b604051610487919061274f565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b291906128f7565b610e72565b005b3480156104c557600080fd5b506104ce610f92565b005b3480156104dc57600080fd5b506104f760048036038101906104f291906127bd565b611502565b604051610504919061274f565b60405180910390f35b60606040518060400160405280600681526020017f444a504550450000000000000000000000000000000000000000000000000000815250905090565b600061055e610557611589565b8484611591565b6001905092915050565b60115481565b60006009600a61057e9190612a86565b633b9aca0061058d9190612ad1565b905090565b600061059f84848461175a565b610660846105ab611589565b61065b8560405180606001604052806028815260200161365760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610611611589565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204e9092919063ffffffff16565b611591565b600190509392505050565b6000610675611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f990612b5f565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161073d91906128dc565b602060405180830381865afa15801561075a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077e9190612b94565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b81526004016107bb929190612bc1565b6020604051808303816000875af11580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe9190612bff565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388482604051610831929190612bc1565b60405180910390a15092915050565b610848611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cc90612b5f565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006009905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661097a611589565b73ffffffffffffffffffffffffffffffffffffffff161461099a57600080fd5b60006109a5306109d6565b905060008111156109ba576109b9816120b2565b5b600047905060008111156109d2576109d18161232b565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a27611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab90612b5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b7a611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe90612b5f565b60405180910390fd5b6009600a610c159190612a86565b633b9aca00610c249190612ad1565b600e819055506009600a610c389190612a86565b633b9aca00610c479190612ad1565b600f819055506008546006819055506009546007819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c8e9190612a86565b633b9aca00610c9d9190612ad1565b604051610caa919061274f565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600781526020017f24444a5045504500000000000000000000000000000000000000000000000000815250905090565b610d2e611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db290612b5f565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc60648484610de89190612ad1565b610df29190612c5b565b9081150290604051600060405180830381858888f19350505050158015610e1d573d6000803e3d6000fd5b507ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf960405160405180910390a15050565b6000610e62610e5b611589565b848461175a565b6001905092915050565b60105481565b610e7a611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90612b5f565b60405180910390fd5b624c4b40811015610f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4490612cfe565b60405180910390fd5b633b9aca0081610f5d9190612ad1565b600f819055507f49b5ebe6b6bd29b732eb93789df6cb9d7d384e64ab8600b8ab879f82a4fb1dec60405160405180910390a150565b610f9a611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90612b5f565b60405180910390fd5b601360149054906101000a900460ff1615611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e90612d6a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061111530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6111019190612a86565b633b9aca006111109190612ad1565b611591565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a69190612d9f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112539190612d9f565b6040518363ffffffff1660e01b8152600401611270929190612dcc565b6020604051808303816000875af115801561128f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b39190612d9f565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061133c306109d6565b600080611347610cba565b426040518863ffffffff1660e01b815260040161136996959493929190612e3a565b60606040518083038185885af1158015611387573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113ac9190612e9b565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161144e929190612bc1565b6020604051808303816000875af115801561146d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114919190612bff565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555060036006819055506003600781905550600360088190555060036009819055506001600a819055506001600b819055506005600c81905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790612f60565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690612ff2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161174d919061274f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c090613084565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90613116565b60405180910390fd5b6000811161187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906131a8565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561191f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61195e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119559061323a565b60405180910390fd5b6000611968610cba565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119d657506119a6610cba565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d9157611a176064611a09600a54600d54116119f6576006546119fa565b6008545b8561239790919063ffffffff16565b61241190919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ac45750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b1a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bd557600e54821115611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b906132a6565b60405180910390fd5b600f5482611b71856109d6565b611b7b91906132c6565b1115611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb390613346565b60405180910390fd5b600d6000815480929190611bcf90613366565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c5e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ca257611c9f6064611c91600b54600d5411611c7e57600754611c82565b6009545b8561239790919063ffffffff16565b61241190919063ffffffff16565b90505b6000611cad306109d6565b9050601360159054906101000a900460ff16158015611d195750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d315750601360169054906101000a900460ff165b8015611d3e575060105481115b8015611d4d5750600c54600d54115b15611d8f57611d6f611d6a84611d658460115461245b565b61245b565b6120b2565b6000479050662386f26fc10000811115611d8d57611d8c4761232b565b5b505b505b6000811115611e9557611dec81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e8c919061274f565b60405180910390a35b611ee782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124d290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f8e611f4082846124d290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61203384866124d290919063ffffffff16565b604051612040919061274f565b60405180910390a350505050565b6000838311158290612096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208d919061260f565b60405180910390fd5b50600083856120a591906133ae565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120ea576120e96133e2565b5b6040519080825280602002602001820160405280156121185781602001602082028036833780820191505090505b50905030816000815181106121305761212f613411565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121fb9190612d9f565b8160018151811061220f5761220e613411565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611591565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122da9594939291906134fe565b600060405180830381600087803b1580156122f457600080fd5b505af1158015612308573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612393573d6000803e3d6000fd5b5050565b60008083036123a9576000905061240b565b600082846123b79190612ad1565b90508284826123c69190612c5b565b14612406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fd906135ca565b60405180910390fd5b809150505b92915050565b600061245383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061251c565b905092915050565b600081831161246a578261246c565b815b905092915050565b600080828461248391906132c6565b9050838110156124c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bf90613636565b60405180910390fd5b8091505092915050565b600061251483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061204e565b905092915050565b60008083118290612563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255a919061260f565b60405180910390fd5b50600083856125729190612c5b565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125b957808201518184015260208101905061259e565b60008484015250505050565b6000601f19601f8301169050919050565b60006125e18261257f565b6125eb818561258a565b93506125fb81856020860161259b565b612604816125c5565b840191505092915050565b6000602082019050818103600083015261262981846125d6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061266182612636565b9050919050565b61267181612656565b811461267c57600080fd5b50565b60008135905061268e81612668565b92915050565b6000819050919050565b6126a781612694565b81146126b257600080fd5b50565b6000813590506126c48161269e565b92915050565b600080604083850312156126e1576126e0612631565b5b60006126ef8582860161267f565b9250506020612700858286016126b5565b9150509250929050565b60008115159050919050565b61271f8161270a565b82525050565b600060208201905061273a6000830184612716565b92915050565b61274981612694565b82525050565b60006020820190506127646000830184612740565b92915050565b60008060006060848603121561278357612782612631565b5b60006127918682870161267f565b93505060206127a28682870161267f565b92505060406127b3868287016126b5565b9150509250925092565b600080604083850312156127d4576127d3612631565b5b60006127e28582860161267f565b92505060206127f38582860161267f565b9150509250929050565b6128068161270a565b811461281157600080fd5b50565b600081359050612823816127fd565b92915050565b600080604083850312156128405761283f612631565b5b600061284e8582860161267f565b925050602061285f85828601612814565b9150509250929050565b600060ff82169050919050565b61287f81612869565b82525050565b600060208201905061289a6000830184612876565b92915050565b6000602082840312156128b6576128b5612631565b5b60006128c48482850161267f565b91505092915050565b6128d681612656565b82525050565b60006020820190506128f160008301846128cd565b92915050565b60006020828403121561290d5761290c612631565b5b600061291b848285016126b5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156129aa5780860481111561298657612985612924565b5b60018516156129955780820291505b80810290506129a385612953565b945061296a565b94509492505050565b6000826129c35760019050612a7f565b816129d15760009050612a7f565b81600181146129e757600281146129f157612a20565b6001915050612a7f565b60ff841115612a0357612a02612924565b5b8360020a915084821115612a1a57612a19612924565b5b50612a7f565b5060208310610133831016604e8410600b8410161715612a555782820a905083811115612a5057612a4f612924565b5b612a7f565b612a628484846001612960565b92509050818404811115612a7957612a78612924565b5b81810290505b9392505050565b6000612a9182612694565b9150612a9c83612869565b9250612ac97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b3565b905092915050565b6000612adc82612694565b9150612ae783612694565b9250828202612af581612694565b91508282048414831517612b0c57612b0b612924565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b4960208361258a565b9150612b5482612b13565b602082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b600081519050612b8e8161269e565b92915050565b600060208284031215612baa57612ba9612631565b5b6000612bb884828501612b7f565b91505092915050565b6000604082019050612bd660008301856128cd565b612be36020830184612740565b9392505050565b600081519050612bf9816127fd565b92915050565b600060208284031215612c1557612c14612631565b5b6000612c2384828501612bea565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c6682612694565b9150612c7183612694565b925082612c8157612c80612c2c565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000612ce860248361258a565b9150612cf382612c8c565b604082019050919050565b60006020820190508181036000830152612d1781612cdb565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612d5460178361258a565b9150612d5f82612d1e565b602082019050919050565b60006020820190508181036000830152612d8381612d47565b9050919050565b600081519050612d9981612668565b92915050565b600060208284031215612db557612db4612631565b5b6000612dc384828501612d8a565b91505092915050565b6000604082019050612de160008301856128cd565b612dee60208301846128cd565b9392505050565b6000819050919050565b6000819050919050565b6000612e24612e1f612e1a84612df5565b612dff565b612694565b9050919050565b612e3481612e09565b82525050565b600060c082019050612e4f60008301896128cd565b612e5c6020830188612740565b612e696040830187612e2b565b612e766060830186612e2b565b612e8360808301856128cd565b612e9060a0830184612740565b979650505050505050565b600080600060608486031215612eb457612eb3612631565b5b6000612ec286828701612b7f565b9350506020612ed386828701612b7f565b9250506040612ee486828701612b7f565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f4a60248361258a565b9150612f5582612eee565b604082019050919050565b60006020820190508181036000830152612f7981612f3d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fdc60228361258a565b9150612fe782612f80565b604082019050919050565b6000602082019050818103600083015261300b81612fcf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061306e60258361258a565b915061307982613012565b604082019050919050565b6000602082019050818103600083015261309d81613061565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061310060238361258a565b915061310b826130a4565b604082019050919050565b6000602082019050818103600083015261312f816130f3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061319260298361258a565b915061319d82613136565b604082019050919050565b600060208201905081810360008301526131c181613185565b9050919050565b7f596f752068617665206265656e20626c61636b6c69737465642066726f6d207460008201527f72616e73666572696e6720746f6b656e73000000000000000000000000000000602082015250565b600061322460318361258a565b915061322f826131c8565b604082019050919050565b6000602082019050818103600083015261325381613217565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061329060198361258a565b915061329b8261325a565b602082019050919050565b600060208201905081810360008301526132bf81613283565b9050919050565b60006132d182612694565b91506132dc83612694565b92508282019050808211156132f4576132f3612924565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613330601a8361258a565b915061333b826132fa565b602082019050919050565b6000602082019050818103600083015261335f81613323565b9050919050565b600061337182612694565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133a3576133a2612924565b5b600182019050919050565b60006133b982612694565b91506133c483612694565b92508282039050818111156133dc576133db612924565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61347581612656565b82525050565b6000613487838361346c565b60208301905092915050565b6000602082019050919050565b60006134ab82613440565b6134b5818561344b565b93506134c08361345c565b8060005b838110156134f15781516134d8888261347b565b97506134e383613493565b9250506001810190506134c4565b5085935050505092915050565b600060a0820190506135136000830188612740565b6135206020830187612e2b565b818103604083015261353281866134a0565b905061354160608301856128cd565b61354e6080830184612740565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135b460218361258a565b91506135bf82613558565b604082019050919050565b600060208201905081810360008301526135e3816135a7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613620601b8361258a565b915061362b826135ea565b602082019050919050565b6000602082019050818103600083015261364f81613613565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122020477a8cd84e0410bf009398ef11e509185c2b7e7a67b70ce78c5ab8db5bb27f64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab5780639aed73701161006f5780639aed7370146103ff578063a9059cbb14610428578063bf474bed14610465578063c18bc19514610490578063c9567bf9146104b9578063dd62ed3e146104d057610140565b8063751039fc1461033c5780637d1db4a5146103535780638da5cb5b1461037e5780638f9a55c0146103a957806395d89b41146103d457610140565b806325b86edf116100fd57806325b86edf146102405780632d5a5d341461027d578063313ce567146102a657806351bc3c85146102d157806370a08231146102e8578063715018a61461032557610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61050d565b604051610167919061260f565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906126ca565b61054a565b6040516101a49190612725565b60405180910390f35b3480156101b957600080fd5b506101c2610568565b6040516101cf919061274f565b60405180910390f35b3480156101e457600080fd5b506101ed61056e565b6040516101fa919061274f565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061276a565b610592565b6040516102379190612725565b60405180910390f35b34801561024c57600080fd5b50610267600480360381019061026291906127bd565b61066b565b6040516102749190612725565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190612829565b610840565b005b3480156102b257600080fd5b506102bb610930565b6040516102c89190612885565b60405180910390f35b3480156102dd57600080fd5b506102e6610939565b005b3480156102f457600080fd5b5061030f600480360381019061030a91906128a0565b6109d6565b60405161031c919061274f565b60405180910390f35b34801561033157600080fd5b5061033a610a1f565b005b34801561034857600080fd5b50610351610b72565b005b34801561035f57600080fd5b50610368610cb4565b604051610375919061274f565b60405180910390f35b34801561038a57600080fd5b50610393610cba565b6040516103a091906128dc565b60405180910390f35b3480156103b557600080fd5b506103be610ce3565b6040516103cb919061274f565b60405180910390f35b3480156103e057600080fd5b506103e9610ce9565b6040516103f6919061260f565b60405180910390f35b34801561040b57600080fd5b50610426600480360381019061042191906128f7565b610d26565b005b34801561043457600080fd5b5061044f600480360381019061044a91906126ca565b610e4e565b60405161045c9190612725565b60405180910390f35b34801561047157600080fd5b5061047a610e6c565b604051610487919061274f565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b291906128f7565b610e72565b005b3480156104c557600080fd5b506104ce610f92565b005b3480156104dc57600080fd5b506104f760048036038101906104f291906127bd565b611502565b604051610504919061274f565b60405180910390f35b60606040518060400160405280600681526020017f444a504550450000000000000000000000000000000000000000000000000000815250905090565b600061055e610557611589565b8484611591565b6001905092915050565b60115481565b60006009600a61057e9190612a86565b633b9aca0061058d9190612ad1565b905090565b600061059f84848461175a565b610660846105ab611589565b61065b8560405180606001604052806028815260200161365760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610611611589565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204e9092919063ffffffff16565b611591565b600190509392505050565b6000610675611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f990612b5f565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161073d91906128dc565b602060405180830381865afa15801561075a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077e9190612b94565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b81526004016107bb929190612bc1565b6020604051808303816000875af11580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe9190612bff565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388482604051610831929190612bc1565b60405180910390a15092915050565b610848611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cc90612b5f565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006009905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661097a611589565b73ffffffffffffffffffffffffffffffffffffffff161461099a57600080fd5b60006109a5306109d6565b905060008111156109ba576109b9816120b2565b5b600047905060008111156109d2576109d18161232b565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a27611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab90612b5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b7a611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe90612b5f565b60405180910390fd5b6009600a610c159190612a86565b633b9aca00610c249190612ad1565b600e819055506009600a610c389190612a86565b633b9aca00610c479190612ad1565b600f819055506008546006819055506009546007819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c8e9190612a86565b633b9aca00610c9d9190612ad1565b604051610caa919061274f565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600781526020017f24444a5045504500000000000000000000000000000000000000000000000000815250905090565b610d2e611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db290612b5f565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc60648484610de89190612ad1565b610df29190612c5b565b9081150290604051600060405180830381858888f19350505050158015610e1d573d6000803e3d6000fd5b507ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf960405160405180910390a15050565b6000610e62610e5b611589565b848461175a565b6001905092915050565b60105481565b610e7a611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90612b5f565b60405180910390fd5b624c4b40811015610f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4490612cfe565b60405180910390fd5b633b9aca0081610f5d9190612ad1565b600f819055507f49b5ebe6b6bd29b732eb93789df6cb9d7d384e64ab8600b8ab879f82a4fb1dec60405160405180910390a150565b610f9a611589565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90612b5f565b60405180910390fd5b601360149054906101000a900460ff1615611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e90612d6a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061111530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6111019190612a86565b633b9aca006111109190612ad1565b611591565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a69190612d9f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112539190612d9f565b6040518363ffffffff1660e01b8152600401611270929190612dcc565b6020604051808303816000875af115801561128f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b39190612d9f565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061133c306109d6565b600080611347610cba565b426040518863ffffffff1660e01b815260040161136996959493929190612e3a565b60606040518083038185885af1158015611387573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113ac9190612e9b565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161144e929190612bc1565b6020604051808303816000875af115801561146d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114919190612bff565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555060036006819055506003600781905550600360088190555060036009819055506001600a819055506001600b819055506005600c81905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790612f60565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361166f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166690612ff2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161174d919061274f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c090613084565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f90613116565b60405180910390fd5b6000811161187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906131a8565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561191f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61195e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119559061323a565b60405180910390fd5b6000611968610cba565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119d657506119a6610cba565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d9157611a176064611a09600a54600d54116119f6576006546119fa565b6008545b8561239790919063ffffffff16565b61241190919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ac45750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b1a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bd557600e54821115611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b906132a6565b60405180910390fd5b600f5482611b71856109d6565b611b7b91906132c6565b1115611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb390613346565b60405180910390fd5b600d6000815480929190611bcf90613366565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c5e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ca257611c9f6064611c91600b54600d5411611c7e57600754611c82565b6009545b8561239790919063ffffffff16565b61241190919063ffffffff16565b90505b6000611cad306109d6565b9050601360159054906101000a900460ff16158015611d195750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d315750601360169054906101000a900460ff165b8015611d3e575060105481115b8015611d4d5750600c54600d54115b15611d8f57611d6f611d6a84611d658460115461245b565b61245b565b6120b2565b6000479050662386f26fc10000811115611d8d57611d8c4761232b565b5b505b505b6000811115611e9557611dec81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e8c919061274f565b60405180910390a35b611ee782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124d290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f8e611f4082846124d290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61203384866124d290919063ffffffff16565b604051612040919061274f565b60405180910390a350505050565b6000838311158290612096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208d919061260f565b60405180910390fd5b50600083856120a591906133ae565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120ea576120e96133e2565b5b6040519080825280602002602001820160405280156121185781602001602082028036833780820191505090505b50905030816000815181106121305761212f613411565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121fb9190612d9f565b8160018151811061220f5761220e613411565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611591565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122da9594939291906134fe565b600060405180830381600087803b1580156122f457600080fd5b505af1158015612308573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612393573d6000803e3d6000fd5b5050565b60008083036123a9576000905061240b565b600082846123b79190612ad1565b90508284826123c69190612c5b565b14612406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fd906135ca565b60405180910390fd5b809150505b92915050565b600061245383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061251c565b905092915050565b600081831161246a578261246c565b815b905092915050565b600080828461248391906132c6565b9050838110156124c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bf90613636565b60405180910390fd5b8091505092915050565b600061251483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061204e565b905092915050565b60008083118290612563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255a919061260f565b60405180910390fd5b50600083856125729190612c5b565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125b957808201518184015260208101905061259e565b60008484015250505050565b6000601f19601f8301169050919050565b60006125e18261257f565b6125eb818561258a565b93506125fb81856020860161259b565b612604816125c5565b840191505092915050565b6000602082019050818103600083015261262981846125d6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061266182612636565b9050919050565b61267181612656565b811461267c57600080fd5b50565b60008135905061268e81612668565b92915050565b6000819050919050565b6126a781612694565b81146126b257600080fd5b50565b6000813590506126c48161269e565b92915050565b600080604083850312156126e1576126e0612631565b5b60006126ef8582860161267f565b9250506020612700858286016126b5565b9150509250929050565b60008115159050919050565b61271f8161270a565b82525050565b600060208201905061273a6000830184612716565b92915050565b61274981612694565b82525050565b60006020820190506127646000830184612740565b92915050565b60008060006060848603121561278357612782612631565b5b60006127918682870161267f565b93505060206127a28682870161267f565b92505060406127b3868287016126b5565b9150509250925092565b600080604083850312156127d4576127d3612631565b5b60006127e28582860161267f565b92505060206127f38582860161267f565b9150509250929050565b6128068161270a565b811461281157600080fd5b50565b600081359050612823816127fd565b92915050565b600080604083850312156128405761283f612631565b5b600061284e8582860161267f565b925050602061285f85828601612814565b9150509250929050565b600060ff82169050919050565b61287f81612869565b82525050565b600060208201905061289a6000830184612876565b92915050565b6000602082840312156128b6576128b5612631565b5b60006128c48482850161267f565b91505092915050565b6128d681612656565b82525050565b60006020820190506128f160008301846128cd565b92915050565b60006020828403121561290d5761290c612631565b5b600061291b848285016126b5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156129aa5780860481111561298657612985612924565b5b60018516156129955780820291505b80810290506129a385612953565b945061296a565b94509492505050565b6000826129c35760019050612a7f565b816129d15760009050612a7f565b81600181146129e757600281146129f157612a20565b6001915050612a7f565b60ff841115612a0357612a02612924565b5b8360020a915084821115612a1a57612a19612924565b5b50612a7f565b5060208310610133831016604e8410600b8410161715612a555782820a905083811115612a5057612a4f612924565b5b612a7f565b612a628484846001612960565b92509050818404811115612a7957612a78612924565b5b81810290505b9392505050565b6000612a9182612694565b9150612a9c83612869565b9250612ac97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b3565b905092915050565b6000612adc82612694565b9150612ae783612694565b9250828202612af581612694565b91508282048414831517612b0c57612b0b612924565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b4960208361258a565b9150612b5482612b13565b602082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b600081519050612b8e8161269e565b92915050565b600060208284031215612baa57612ba9612631565b5b6000612bb884828501612b7f565b91505092915050565b6000604082019050612bd660008301856128cd565b612be36020830184612740565b9392505050565b600081519050612bf9816127fd565b92915050565b600060208284031215612c1557612c14612631565b5b6000612c2384828501612bea565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c6682612694565b9150612c7183612694565b925082612c8157612c80612c2c565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000612ce860248361258a565b9150612cf382612c8c565b604082019050919050565b60006020820190508181036000830152612d1781612cdb565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612d5460178361258a565b9150612d5f82612d1e565b602082019050919050565b60006020820190508181036000830152612d8381612d47565b9050919050565b600081519050612d9981612668565b92915050565b600060208284031215612db557612db4612631565b5b6000612dc384828501612d8a565b91505092915050565b6000604082019050612de160008301856128cd565b612dee60208301846128cd565b9392505050565b6000819050919050565b6000819050919050565b6000612e24612e1f612e1a84612df5565b612dff565b612694565b9050919050565b612e3481612e09565b82525050565b600060c082019050612e4f60008301896128cd565b612e5c6020830188612740565b612e696040830187612e2b565b612e766060830186612e2b565b612e8360808301856128cd565b612e9060a0830184612740565b979650505050505050565b600080600060608486031215612eb457612eb3612631565b5b6000612ec286828701612b7f565b9350506020612ed386828701612b7f565b9250506040612ee486828701612b7f565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f4a60248361258a565b9150612f5582612eee565b604082019050919050565b60006020820190508181036000830152612f7981612f3d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fdc60228361258a565b9150612fe782612f80565b604082019050919050565b6000602082019050818103600083015261300b81612fcf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061306e60258361258a565b915061307982613012565b604082019050919050565b6000602082019050818103600083015261309d81613061565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061310060238361258a565b915061310b826130a4565b604082019050919050565b6000602082019050818103600083015261312f816130f3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061319260298361258a565b915061319d82613136565b604082019050919050565b600060208201905081810360008301526131c181613185565b9050919050565b7f596f752068617665206265656e20626c61636b6c69737465642066726f6d207460008201527f72616e73666572696e6720746f6b656e73000000000000000000000000000000602082015250565b600061322460318361258a565b915061322f826131c8565b604082019050919050565b6000602082019050818103600083015261325381613217565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061329060198361258a565b915061329b8261325a565b602082019050919050565b600060208201905081810360008301526132bf81613283565b9050919050565b60006132d182612694565b91506132dc83612694565b92508282019050808211156132f4576132f3612924565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613330601a8361258a565b915061333b826132fa565b602082019050919050565b6000602082019050818103600083015261335f81613323565b9050919050565b600061337182612694565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133a3576133a2612924565b5b600182019050919050565b60006133b982612694565b91506133c483612694565b92508282039050818111156133dc576133db612924565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61347581612656565b82525050565b6000613487838361346c565b60208301905092915050565b6000602082019050919050565b60006134ab82613440565b6134b5818561344b565b93506134c08361345c565b8060005b838110156134f15781516134d8888261347b565b97506134e383613493565b9250506001810190506134c4565b5085935050505092915050565b600060a0820190506135136000830188612740565b6135206020830187612e2b565b818103604083015261353281866134a0565b905061354160608301856128cd565b61354e6080830184612740565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135b460218361258a565b91506135bf82613558565b604082019050919050565b600060208201905081810360008301526135e3816135a7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613620601b8361258a565b915061362b826135ea565b602082019050919050565b6000602082019050818103600083015261364f81613613565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122020477a8cd84e0410bf009398ef11e509185c2b7e7a67b70ce78c5ab8db5bb27f64736f6c63430008130033

Deployed Bytecode Sourcemap

4940:8795:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6876:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7709:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6151:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7153:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7878:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13422:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12779:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7062:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12423:348;;;;;;;;;;;;;:::i;:::-;;7256:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4021:148;;;;;;;;;;;;;:::i;:::-;;11166:237;;;;;;;;;;;;;:::i;:::-;;5962:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3807:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6023:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6967:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13170:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7383:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6086:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12928:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11513:865;;;;;;;;;;;;;:::i;:::-;;7558:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6876:83;6913:13;6946:5;;;;;;;;;;;;;;;;;6939:12;;6876:83;:::o;7709:161::-;7784:4;7801:39;7810:12;:10;:12::i;:::-;7824:7;7833:6;7801:8;:39::i;:::-;7858:4;7851:11;;7709:161;;;;:::o;6151:52::-;;;;:::o;7153:95::-;7206:7;5775:1;5831:2;:13;;;;:::i;:::-;5818:10;:26;;;;:::i;:::-;7226:14;;7153:95;:::o;7878:313::-;7976:4;7993:36;8003:6;8011:9;8022:6;7993:9;:36::i;:::-;8040:121;8049:6;8057:12;:10;:12::i;:::-;8071:89;8109:6;8071:89;;;;;;;;;;;;;;;;;:11;:19;8083:6;8071:19;;;;;;;;;;;;;;;:33;8091:12;:10;:12::i;:::-;8071:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8040:8;:121::i;:::-;8179:4;8172:11;;7878:313;;;;;:::o;13422:310::-;13508:10;3944:12;:10;:12::i;:::-;3934:22;;:6;;;;;;;;;;:22;;;3926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13531:24:::1;13565:6;13558:24;;;13591:4;13558:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13531:66;;13623:6;13616:23;;;13640:3;13645:16;13616:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13608:54;;13678:46;13699:6;13707:16;13678:46;;;;;;;:::i;:::-;;;;;;;;13520:212;13422:310:::0;;;;:::o;12779:137::-;3944:12;:10;:12::i;:::-;3934:22;;:6;;;;;;;;;;:22;;;3926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12895:13:::1;12873:10;:19;12884:7;12873:19;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12779:137:::0;;:::o;7062:83::-;7103:5;5775:1;7121:16;;7062:83;:::o;12423:348::-;12487:10;;;;;;;;;;;12473:24;;:12;:10;:12::i;:::-;:24;;;12465:33;;;;;;12509:20;12530:24;12548:4;12530:9;:24::i;:::-;12509:45;;12581:1;12568:12;:14;12565:73;;;12596:30;12613:12;12596:16;:30::i;:::-;12565:73;12648:18;12667:21;12648:40;;12713:1;12702:10;:12;12699:65;;;12728:24;12741:10;12728:12;:24::i;:::-;12699:65;12454:317;;12423:348::o;7256:119::-;7322:7;7349:9;:18;7359:7;7349:18;;;;;;;;;;;;;;;;7342:25;;7256:119;;;:::o;4021:148::-;3944:12;:10;:12::i;:::-;3934:22;;:6;;;;;;;;;;:22;;;3926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4128:1:::1;4091:40;;4112:6;::::0;::::1;;;;;;;;4091:40;;;;;;;;;;;;4159:1;4142:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4021:148::o:0;11166:237::-;3944:12;:10;:12::i;:::-;3934:22;;:6;;;;;;;;;;:22;;;3926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5775:1:::1;5831:2;:13;;;;:::i;:::-;5818:10;:26;;;;:::i;:::-;11219:12;:22;;;;5775:1;5831:2;:13;;;;:::i;:::-;5818:10;:26;;;;:::i;:::-;11252:14;:22;;;;11300:12;;11285:14;:27;;;;11339:13;;11323:15;:29;;;;11368:27;5775:1;5831:2;:13;;;;:::i;:::-;5818:10;:26;;;;:::i;:::-;11368:27;;;;;;:::i;:::-;;;;;;;;11166:237::o:0;5962:54::-;;;;:::o;3807:79::-;3845:7;3872:6;;;;;;;;;;;3865:13;;3807:79;:::o;6023:56::-;;;;:::o;6967:87::-;7006:13;7039:7;;;;;;;;;;;;;;;;;7032:14;;6967:87;:::o;13170:244::-;3944:12;:10;:12::i;:::-;3934:22;;:6;;;;;;;;;;:22;;;3926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13252:17:::1;13272:21;13252:41;;13312:10;13304:28;;:66;13366:3;13346:16;13334:9;:28;;;;:::i;:::-;13333:36;;;;:::i;:::-;13304:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13386:20;;;;;;;;;;13241:173;13170:244:::0;:::o;7383:167::-;7461:4;7478:42;7488:12;:10;:12::i;:::-;7502:9;7513:6;7478:9;:42::i;:::-;7538:4;7531:11;;7383:167;;;;:::o;6086:58::-;;;;:::o;12928:234::-;3944:12;:10;:12::i;:::-;3934:22;;:6;;;;;;;;;;:22;;;3926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13022:7:::1;13012:6;:17;;13004:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13108:5;13098:6;:16;;;;:::i;:::-;13081:14;:33;;;;13130:24;;;;;;;;;;12928:234:::0;:::o;11513:865::-;3944:12;:10;:12::i;:::-;3934:22;;:6;;;;;;;;;;:22;;;3926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11577:11:::1;;;;;;;;;;;11576:12;11568:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11663:42;11626:15;;:80;;;;;;;;;;;;;;;;;;11717:58;11734:4;11749:15;;;;;;;;;;;5775:1;5831:2;:13;;;;:::i;:::-;5818:10;:26;;;;:::i;:::-;11717:8;:58::i;:::-;11820:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11802:55;;;11866:4;11873:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11802:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11786:13;;:110;;;;;;;;;;;;;;;;;;11907:15;;;;;;;;;;;:31;;;11946:21;11977:4;11983:24;12001:4;11983:9;:24::i;:::-;12008:1;12010::::0;12012:7:::1;:5;:7::i;:::-;12020:15;11907:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12054:13;;;;;;;;;;;12047:29;;;12085:15;;;;;;;;;;;12103:14;12047:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12143:4;12129:11;;:18;;;;;;;;;;;;;;;;;;12172:4;12158:11;;:18;;;;;;;;;;;;;;;;;;12202:1;12187:14;:16;;;;12230:1;12214:15;:17;;;;12255:1;12242:12;:14;;;;12281:1;12267:13;:15;;;;12309:1;12293:15;:17;;;;12338:1;12321:16;:18;;;;12369:1;12350:18;:20;;;;11513:865::o:0;7558:143::-;7639:7;7666:11;:18;7678:5;7666:18;;;;;;;;;;;;;;;:27;7685:7;7666:27;;;;;;;;;;;;;;;;7659:34;;7558:143;;;;:::o;1562:98::-;1615:7;1642:10;1635:17;;1562:98;:::o;8199:335::-;8309:1;8292:19;;:5;:19;;;8284:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8390:1;8371:21;;:7;:21;;;8363:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8472:6;8442:11;:18;8454:5;8442:18;;;;;;;;;;;;;;;:27;8461:7;8442:27;;;;;;;;;;;;;;;:36;;;;8510:7;8494:32;;8503:5;8494:32;;;8519:6;8494:32;;;;;;:::i;:::-;;;;;;;;8199:335;;;:::o;8542:2017::-;8646:1;8630:18;;:4;:18;;;8622:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8723:1;8709:16;;:2;:16;;;8701:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8793:1;8784:6;:10;8776:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8860:10;:14;8871:2;8860:14;;;;;;;;;;;;;;;;;;;;;;;;;8859:15;:36;;;;;8879:10;:16;8890:4;8879:16;;;;;;;;;;;;;;;;;;;;;;;;;8878:17;8859:36;8851:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;8962:17;9004:7;:5;:7::i;:::-;8996:15;;:4;:15;;;;:32;;;;;9021:7;:5;:7::i;:::-;9015:13;;:2;:13;;;;8996:32;8992:1211;;;9057:76;9129:3;9057:67;9079:15;;9069:9;;:25;9068:55;;9109:14;;9068:55;;;9096:12;;9068:55;9057:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9045:88;;9178:13;;;;;;;;;;;9170:21;;:4;:21;;;:55;;;;;9209:15;;;;;;;;;;;9195:30;;:2;:30;;;;9170:55;:83;;;;;9231:18;:22;9250:2;9231:22;;;;;;;;;;;;;;;;;;;;;;;;;9229:24;9170:83;9166:313;;;9293:12;;9283:6;:22;;9275:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9388:14;;9378:6;9362:13;9372:2;9362:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9354:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9452:9;;:11;;;;;;;;;:::i;:::-;;;;;;9166:313;9504:13;;;;;;;;;;;9498:19;;:2;:19;;;:43;;;;;9536:4;9521:20;;:4;:20;;;;9498:43;9495:174;;;9574:79;9649:3;9574:70;9596:16;;9586:9;;:26;9585:58;;9628:15;;9585:58;;;9614:13;;9585:58;9574:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9562:91;;9495:174;9685:28;9716:24;9734:4;9716:9;:24::i;:::-;9685:55;;9760:6;;;;;;;;;;;9759:7;:32;;;;;9778:13;;;;;;;;;;;9770:21;;:2;:21;;;9759:32;:47;;;;;9795:11;;;;;;;;;;;9759:47;:89;;;;;9831:17;;9810:20;:38;9759:89;:121;;;;;9862:18;;9852:9;;:28;9759:121;9755:437;;;9901:67;9918:49;9922:6;9929:37;9933:20;9954:11;;9929:3;:37::i;:::-;9918:3;:49::i;:::-;9901:16;:67::i;:::-;9987:26;10016:21;9987:50;;10080:17;10059:18;:38;10056:121;;;10122:35;10135:21;10122:12;:35::i;:::-;10056:121;9882:310;9755:437;9030:1173;8992:1211;10228:1;10218:9;:11;10215:161;;;10268:39;10297:9;10268;:24;10286:4;10268:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10243:9;:24;10261:4;10243:24;;;;;;;;;;;;;;;:64;;;;10348:4;10325:39;;10334:4;10325:39;;;10354:9;10325:39;;;;;;:::i;:::-;;;;;;;;10215:161;10402:27;10422:6;10402:9;:15;10412:4;10402:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10386:9;:15;10396:4;10386:15;;;;;;;;;;;;;;;:43;;;;10454:40;10472:21;10483:9;10472:6;:10;;:21;;;;:::i;:::-;10454:9;:13;10464:2;10454:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10440:9;:13;10450:2;10440:13;;;;;;;;;;;;;;;:54;;;;10525:2;10510:41;;10519:4;10510:41;;;10529:21;10540:9;10529:6;:10;;:21;;;;:::i;:::-;10510:41;;;;;;:::i;:::-;;;;;;;;8611:1948;8542:2017;;;:::o;2699:190::-;2785:7;2818:1;2813;:6;;2821:12;2805:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2845:9;2861:1;2857;:5;;;;:::i;:::-;2845:17;;2880:1;2873:8;;;2699:190;;;;;:::o;10675:483::-;6494:4;6485:6;;:13;;;;;;;;;;;;;;;;;;10753:21:::1;10791:1;10777:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10753:40;;10822:4;10804;10809:1;10804:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10848:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10838:4;10843:1;10838:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10881:62;10898:4;10913:15;;;;;;;;;;;10931:11;10881:8;:62::i;:::-;10954:15;;;;;;;;;;;:66;;;11035:11;11061:1;11077:4;11104;11124:15;10954:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10742:416;6530:5:::0;6521:6;;:14;;;;;;;;;;;;;;;;;;10675:483;:::o;11411:92::-;11468:10;;;;;;;;;;;:19;;:27;11488:6;11468:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11411:92;:::o;2897:246::-;2955:7;2984:1;2979;:6;2975:47;;3009:1;3002:8;;;;2975:47;3032:9;3048:1;3044;:5;;;;:::i;:::-;3032:17;;3077:1;3072;3068;:5;;;;:::i;:::-;:10;3060:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3134:1;3127:8;;;2897:246;;;;;:::o;3151:132::-;3209:7;3236:39;3240:1;3243;3236:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3229:46;;3151:132;;;;:::o;10569:98::-;10626:7;10653:1;10651;:3;10650:9;;10658:1;10650:9;;;10656:1;10650:9;10643:16;;10569:98;;;;:::o;2368:179::-;2426:7;2446:9;2462:1;2458;:5;;;;:::i;:::-;2446:17;;2487:1;2482;:6;;2474:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2538:1;2531:8;;;2368:179;;;;:::o;2555:136::-;2613:7;2640:43;2644:1;2647;2640:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2633:50;;2555:136;;;;:::o;3291:189::-;3377:7;3409:1;3405;:5;3412:12;3397:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3436:9;3452:1;3448;:5;;;;:::i;:::-;3436:17;;3471:1;3464:8;;;3291:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:474::-;4491:6;4499;4548:2;4536:9;4527:7;4523:23;4519:32;4516:119;;;4554:79;;:::i;:::-;4516:119;4674:1;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4645:117;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4423:474;;;;;:::o;4903:116::-;4973:21;4988:5;4973:21;:::i;:::-;4966:5;4963:32;4953:60;;5009:1;5006;4999:12;4953:60;4903:116;:::o;5025:133::-;5068:5;5106:6;5093:20;5084:29;;5122:30;5146:5;5122:30;:::i;:::-;5025:133;;;;:::o;5164:468::-;5229:6;5237;5286:2;5274:9;5265:7;5261:23;5257:32;5254:119;;;5292:79;;:::i;:::-;5254:119;5412:1;5437:53;5482:7;5473:6;5462:9;5458:22;5437:53;:::i;:::-;5427:63;;5383:117;5539:2;5565:50;5607:7;5598:6;5587:9;5583:22;5565:50;:::i;:::-;5555:60;;5510:115;5164:468;;;;;:::o;5638:86::-;5673:7;5713:4;5706:5;5702:16;5691:27;;5638:86;;;:::o;5730:112::-;5813:22;5829:5;5813:22;:::i;:::-;5808:3;5801:35;5730:112;;:::o;5848:214::-;5937:4;5975:2;5964:9;5960:18;5952:26;;5988:67;6052:1;6041:9;6037:17;6028:6;5988:67;:::i;:::-;5848:214;;;;:::o;6068:329::-;6127:6;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;6068:329;;;;:::o;6403:118::-;6490:24;6508:5;6490:24;:::i;:::-;6485:3;6478:37;6403:118;;:::o;6527:222::-;6620:4;6658:2;6647:9;6643:18;6635:26;;6671:71;6739:1;6728:9;6724:17;6715:6;6671:71;:::i;:::-;6527:222;;;;:::o;6755:329::-;6814:6;6863:2;6851:9;6842:7;6838:23;6834:32;6831:119;;;6869:79;;:::i;:::-;6831:119;6989:1;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6960:117;6755:329;;;;:::o;7090:180::-;7138:77;7135:1;7128:88;7235:4;7232:1;7225:15;7259:4;7256:1;7249:15;7276:102;7318:8;7365:5;7362:1;7358:13;7337:34;;7276:102;;;:::o;7384:848::-;7445:5;7452:4;7476:6;7467:15;;7500:5;7491:14;;7514:712;7535:1;7525:8;7522:15;7514:712;;;7630:4;7625:3;7621:14;7615:4;7612:24;7609:50;;;7639:18;;:::i;:::-;7609:50;7689:1;7679:8;7675:16;7672:451;;;8104:4;8097:5;8093:16;8084:25;;7672:451;8154:4;8148;8144:15;8136:23;;8184:32;8207:8;8184:32;:::i;:::-;8172:44;;7514:712;;;7384:848;;;;;;;:::o;8238:1073::-;8292:5;8483:8;8473:40;;8504:1;8495:10;;8506:5;;8473:40;8532:4;8522:36;;8549:1;8540:10;;8551:5;;8522:36;8618:4;8666:1;8661:27;;;;8702:1;8697:191;;;;8611:277;;8661:27;8679:1;8670:10;;8681:5;;;8697:191;8742:3;8732:8;8729:17;8726:43;;;8749:18;;:::i;:::-;8726:43;8798:8;8795:1;8791:16;8782:25;;8833:3;8826:5;8823:14;8820:40;;;8840:18;;:::i;:::-;8820:40;8873:5;;;8611:277;;8997:2;8987:8;8984:16;8978:3;8972:4;8969:13;8965:36;8947:2;8937:8;8934:16;8929:2;8923:4;8920:12;8916:35;8900:111;8897:246;;;9053:8;9047:4;9043:19;9034:28;;9088:3;9081:5;9078:14;9075:40;;;9095:18;;:::i;:::-;9075:40;9128:5;;8897:246;9168:42;9206:3;9196:8;9190:4;9187:1;9168:42;:::i;:::-;9153:57;;;;9242:4;9237:3;9233:14;9226:5;9223:25;9220:51;;;9251:18;;:::i;:::-;9220:51;9300:4;9293:5;9289:16;9280:25;;8238:1073;;;;;;:::o;9317:281::-;9375:5;9399:23;9417:4;9399:23;:::i;:::-;9391:31;;9443:25;9459:8;9443:25;:::i;:::-;9431:37;;9487:104;9524:66;9514:8;9508:4;9487:104;:::i;:::-;9478:113;;9317:281;;;;:::o;9604:410::-;9644:7;9667:20;9685:1;9667:20;:::i;:::-;9662:25;;9701:20;9719:1;9701:20;:::i;:::-;9696:25;;9756:1;9753;9749:9;9778:30;9796:11;9778:30;:::i;:::-;9767:41;;9957:1;9948:7;9944:15;9941:1;9938:22;9918:1;9911:9;9891:83;9868:139;;9987:18;;:::i;:::-;9868:139;9652:362;9604:410;;;;:::o;10020:182::-;10160:34;10156:1;10148:6;10144:14;10137:58;10020:182;:::o;10208:366::-;10350:3;10371:67;10435:2;10430:3;10371:67;:::i;:::-;10364:74;;10447:93;10536:3;10447:93;:::i;:::-;10565:2;10560:3;10556:12;10549:19;;10208:366;;;:::o;10580:419::-;10746:4;10784:2;10773:9;10769:18;10761:26;;10833:9;10827:4;10823:20;10819:1;10808:9;10804:17;10797:47;10861:131;10987:4;10861:131;:::i;:::-;10853:139;;10580:419;;;:::o;11005:143::-;11062:5;11093:6;11087:13;11078:22;;11109:33;11136:5;11109:33;:::i;:::-;11005:143;;;;:::o;11154:351::-;11224:6;11273:2;11261:9;11252:7;11248:23;11244:32;11241:119;;;11279:79;;:::i;:::-;11241:119;11399:1;11424:64;11480:7;11471:6;11460:9;11456:22;11424:64;:::i;:::-;11414:74;;11370:128;11154:351;;;;:::o;11511:332::-;11632:4;11670:2;11659:9;11655:18;11647:26;;11683:71;11751:1;11740:9;11736:17;11727:6;11683:71;:::i;:::-;11764:72;11832:2;11821:9;11817:18;11808:6;11764:72;:::i;:::-;11511:332;;;;;:::o;11849:137::-;11903:5;11934:6;11928:13;11919:22;;11950:30;11974:5;11950:30;:::i;:::-;11849:137;;;;:::o;11992:345::-;12059:6;12108:2;12096:9;12087:7;12083:23;12079:32;12076:119;;;12114:79;;:::i;:::-;12076:119;12234:1;12259:61;12312:7;12303:6;12292:9;12288:22;12259:61;:::i;:::-;12249:71;;12205:125;11992:345;;;;:::o;12343:180::-;12391:77;12388:1;12381:88;12488:4;12485:1;12478:15;12512:4;12509:1;12502:15;12529:185;12569:1;12586:20;12604:1;12586:20;:::i;:::-;12581:25;;12620:20;12638:1;12620:20;:::i;:::-;12615:25;;12659:1;12649:35;;12664:18;;:::i;:::-;12649:35;12706:1;12703;12699:9;12694:14;;12529:185;;;;:::o;12720:223::-;12860:34;12856:1;12848:6;12844:14;12837:58;12929:6;12924:2;12916:6;12912:15;12905:31;12720:223;:::o;12949:366::-;13091:3;13112:67;13176:2;13171:3;13112:67;:::i;:::-;13105:74;;13188:93;13277:3;13188:93;:::i;:::-;13306:2;13301:3;13297:12;13290:19;;12949:366;;;:::o;13321:419::-;13487:4;13525:2;13514:9;13510:18;13502:26;;13574:9;13568:4;13564:20;13560:1;13549:9;13545:17;13538:47;13602:131;13728:4;13602:131;:::i;:::-;13594:139;;13321:419;;;:::o;13746:173::-;13886:25;13882:1;13874:6;13870:14;13863:49;13746:173;:::o;13925:366::-;14067:3;14088:67;14152:2;14147:3;14088:67;:::i;:::-;14081:74;;14164:93;14253:3;14164:93;:::i;:::-;14282:2;14277:3;14273:12;14266:19;;13925:366;;;:::o;14297:419::-;14463:4;14501:2;14490:9;14486:18;14478:26;;14550:9;14544:4;14540:20;14536:1;14525:9;14521:17;14514:47;14578:131;14704:4;14578:131;:::i;:::-;14570:139;;14297:419;;;:::o;14722:143::-;14779:5;14810:6;14804:13;14795:22;;14826:33;14853:5;14826:33;:::i;:::-;14722:143;;;;:::o;14871:351::-;14941:6;14990:2;14978:9;14969:7;14965:23;14961:32;14958:119;;;14996:79;;:::i;:::-;14958:119;15116:1;15141:64;15197:7;15188:6;15177:9;15173:22;15141:64;:::i;:::-;15131:74;;15087:128;14871:351;;;;:::o;15228:332::-;15349:4;15387:2;15376:9;15372:18;15364:26;;15400:71;15468:1;15457:9;15453:17;15444:6;15400:71;:::i;:::-;15481:72;15549:2;15538:9;15534:18;15525:6;15481:72;:::i;:::-;15228:332;;;;;:::o;15566:85::-;15611:7;15640:5;15629:16;;15566:85;;;:::o;15657:60::-;15685:3;15706:5;15699:12;;15657:60;;;:::o;15723:158::-;15781:9;15814:61;15832:42;15841:32;15867:5;15841:32;:::i;:::-;15832:42;:::i;:::-;15814:61;:::i;:::-;15801:74;;15723:158;;;:::o;15887:147::-;15982:45;16021:5;15982:45;:::i;:::-;15977:3;15970:58;15887:147;;:::o;16040:807::-;16289:4;16327:3;16316:9;16312:19;16304:27;;16341:71;16409:1;16398:9;16394:17;16385:6;16341:71;:::i;:::-;16422:72;16490:2;16479:9;16475:18;16466:6;16422:72;:::i;:::-;16504:80;16580:2;16569:9;16565:18;16556:6;16504:80;:::i;:::-;16594;16670:2;16659:9;16655:18;16646:6;16594:80;:::i;:::-;16684:73;16752:3;16741:9;16737:19;16728:6;16684:73;:::i;:::-;16767;16835:3;16824:9;16820:19;16811:6;16767:73;:::i;:::-;16040:807;;;;;;;;;:::o;16853:663::-;16941:6;16949;16957;17006:2;16994:9;16985:7;16981:23;16977:32;16974:119;;;17012:79;;:::i;:::-;16974:119;17132:1;17157:64;17213:7;17204:6;17193:9;17189:22;17157:64;:::i;:::-;17147:74;;17103:128;17270:2;17296:64;17352:7;17343:6;17332:9;17328:22;17296:64;:::i;:::-;17286:74;;17241:129;17409:2;17435:64;17491:7;17482:6;17471:9;17467:22;17435:64;:::i;:::-;17425:74;;17380:129;16853:663;;;;;:::o;17522:223::-;17662:34;17658:1;17650:6;17646:14;17639:58;17731:6;17726:2;17718:6;17714:15;17707:31;17522:223;:::o;17751:366::-;17893:3;17914:67;17978:2;17973:3;17914:67;:::i;:::-;17907:74;;17990:93;18079:3;17990:93;:::i;:::-;18108:2;18103:3;18099:12;18092:19;;17751:366;;;:::o;18123:419::-;18289:4;18327:2;18316:9;18312:18;18304:26;;18376:9;18370:4;18366:20;18362:1;18351:9;18347:17;18340:47;18404:131;18530:4;18404:131;:::i;:::-;18396:139;;18123:419;;;:::o;18548:221::-;18688:34;18684:1;18676:6;18672:14;18665:58;18757:4;18752:2;18744:6;18740:15;18733:29;18548:221;:::o;18775:366::-;18917:3;18938:67;19002:2;18997:3;18938:67;:::i;:::-;18931:74;;19014:93;19103:3;19014:93;:::i;:::-;19132:2;19127:3;19123:12;19116:19;;18775:366;;;:::o;19147:419::-;19313:4;19351:2;19340:9;19336:18;19328:26;;19400:9;19394:4;19390:20;19386:1;19375:9;19371:17;19364:47;19428:131;19554:4;19428:131;:::i;:::-;19420:139;;19147:419;;;:::o;19572:224::-;19712:34;19708:1;19700:6;19696:14;19689:58;19781:7;19776:2;19768:6;19764:15;19757:32;19572:224;:::o;19802:366::-;19944:3;19965:67;20029:2;20024:3;19965:67;:::i;:::-;19958:74;;20041:93;20130:3;20041:93;:::i;:::-;20159:2;20154:3;20150:12;20143:19;;19802:366;;;:::o;20174:419::-;20340:4;20378:2;20367:9;20363:18;20355:26;;20427:9;20421:4;20417:20;20413:1;20402:9;20398:17;20391:47;20455:131;20581:4;20455:131;:::i;:::-;20447:139;;20174:419;;;:::o;20599:222::-;20739:34;20735:1;20727:6;20723:14;20716:58;20808:5;20803:2;20795:6;20791:15;20784:30;20599:222;:::o;20827:366::-;20969:3;20990:67;21054:2;21049:3;20990:67;:::i;:::-;20983:74;;21066:93;21155:3;21066:93;:::i;:::-;21184:2;21179:3;21175:12;21168:19;;20827:366;;;:::o;21199:419::-;21365:4;21403:2;21392:9;21388:18;21380:26;;21452:9;21446:4;21442:20;21438:1;21427:9;21423:17;21416:47;21480:131;21606:4;21480:131;:::i;:::-;21472:139;;21199:419;;;:::o;21624:228::-;21764:34;21760:1;21752:6;21748:14;21741:58;21833:11;21828:2;21820:6;21816:15;21809:36;21624:228;:::o;21858:366::-;22000:3;22021:67;22085:2;22080:3;22021:67;:::i;:::-;22014:74;;22097:93;22186:3;22097:93;:::i;:::-;22215:2;22210:3;22206:12;22199:19;;21858:366;;;:::o;22230:419::-;22396:4;22434:2;22423:9;22419:18;22411:26;;22483:9;22477:4;22473:20;22469:1;22458:9;22454:17;22447:47;22511:131;22637:4;22511:131;:::i;:::-;22503:139;;22230:419;;;:::o;22655:236::-;22795:34;22791:1;22783:6;22779:14;22772:58;22864:19;22859:2;22851:6;22847:15;22840:44;22655:236;:::o;22897:366::-;23039:3;23060:67;23124:2;23119:3;23060:67;:::i;:::-;23053:74;;23136:93;23225:3;23136:93;:::i;:::-;23254:2;23249:3;23245:12;23238:19;;22897:366;;;:::o;23269:419::-;23435:4;23473:2;23462:9;23458:18;23450:26;;23522:9;23516:4;23512:20;23508:1;23497:9;23493:17;23486:47;23550:131;23676:4;23550:131;:::i;:::-;23542:139;;23269:419;;;:::o;23694:175::-;23834:27;23830:1;23822:6;23818:14;23811:51;23694:175;:::o;23875:366::-;24017:3;24038:67;24102:2;24097:3;24038:67;:::i;:::-;24031:74;;24114:93;24203:3;24114:93;:::i;:::-;24232:2;24227:3;24223:12;24216:19;;23875:366;;;:::o;24247:419::-;24413:4;24451:2;24440:9;24436:18;24428:26;;24500:9;24494:4;24490:20;24486:1;24475:9;24471:17;24464:47;24528:131;24654:4;24528:131;:::i;:::-;24520:139;;24247:419;;;:::o;24672:191::-;24712:3;24731:20;24749:1;24731:20;:::i;:::-;24726:25;;24765:20;24783:1;24765:20;:::i;:::-;24760:25;;24808:1;24805;24801:9;24794:16;;24829:3;24826:1;24823:10;24820:36;;;24836:18;;:::i;:::-;24820:36;24672:191;;;;:::o;24869:176::-;25009:28;25005:1;24997:6;24993:14;24986:52;24869:176;:::o;25051:366::-;25193:3;25214:67;25278:2;25273:3;25214:67;:::i;:::-;25207:74;;25290:93;25379:3;25290:93;:::i;:::-;25408:2;25403:3;25399:12;25392:19;;25051:366;;;:::o;25423:419::-;25589:4;25627:2;25616:9;25612:18;25604:26;;25676:9;25670:4;25666:20;25662:1;25651:9;25647:17;25640:47;25704:131;25830:4;25704:131;:::i;:::-;25696:139;;25423:419;;;:::o;25848:233::-;25887:3;25910:24;25928:5;25910:24;:::i;:::-;25901:33;;25956:66;25949:5;25946:77;25943:103;;26026:18;;:::i;:::-;25943:103;26073:1;26066:5;26062:13;26055:20;;25848:233;;;:::o;26087:194::-;26127:4;26147:20;26165:1;26147:20;:::i;:::-;26142:25;;26181:20;26199:1;26181:20;:::i;:::-;26176:25;;26225:1;26222;26218:9;26210:17;;26249:1;26243:4;26240:11;26237:37;;;26254:18;;:::i;:::-;26237:37;26087:194;;;;:::o;26287:180::-;26335:77;26332:1;26325:88;26432:4;26429:1;26422:15;26456:4;26453:1;26446:15;26473:180;26521:77;26518:1;26511:88;26618:4;26615:1;26608:15;26642:4;26639:1;26632:15;26659:114;26726:6;26760:5;26754:12;26744:22;;26659:114;;;:::o;26779:184::-;26878:11;26912:6;26907:3;26900:19;26952:4;26947:3;26943:14;26928:29;;26779:184;;;;:::o;26969:132::-;27036:4;27059:3;27051:11;;27089:4;27084:3;27080:14;27072:22;;26969:132;;;:::o;27107:108::-;27184:24;27202:5;27184:24;:::i;:::-;27179:3;27172:37;27107:108;;:::o;27221:179::-;27290:10;27311:46;27353:3;27345:6;27311:46;:::i;:::-;27389:4;27384:3;27380:14;27366:28;;27221:179;;;;:::o;27406:113::-;27476:4;27508;27503:3;27499:14;27491:22;;27406:113;;;:::o;27555:732::-;27674:3;27703:54;27751:5;27703:54;:::i;:::-;27773:86;27852:6;27847:3;27773:86;:::i;:::-;27766:93;;27883:56;27933:5;27883:56;:::i;:::-;27962:7;27993:1;27978:284;28003:6;28000:1;27997:13;27978:284;;;28079:6;28073:13;28106:63;28165:3;28150:13;28106:63;:::i;:::-;28099:70;;28192:60;28245:6;28192:60;:::i;:::-;28182:70;;28038:224;28025:1;28022;28018:9;28013:14;;27978:284;;;27982:14;28278:3;28271:10;;27679:608;;;27555:732;;;;:::o;28293:831::-;28556:4;28594:3;28583:9;28579:19;28571:27;;28608:71;28676:1;28665:9;28661:17;28652:6;28608:71;:::i;:::-;28689:80;28765:2;28754:9;28750:18;28741:6;28689:80;:::i;:::-;28816:9;28810:4;28806:20;28801:2;28790:9;28786:18;28779:48;28844:108;28947:4;28938:6;28844:108;:::i;:::-;28836:116;;28962:72;29030:2;29019:9;29015:18;29006:6;28962:72;:::i;:::-;29044:73;29112:3;29101:9;29097:19;29088:6;29044:73;:::i;:::-;28293:831;;;;;;;;:::o;29130:220::-;29270:34;29266:1;29258:6;29254:14;29247:58;29339:3;29334:2;29326:6;29322:15;29315:28;29130:220;:::o;29356:366::-;29498:3;29519:67;29583:2;29578:3;29519:67;:::i;:::-;29512:74;;29595:93;29684:3;29595:93;:::i;:::-;29713:2;29708:3;29704:12;29697:19;;29356:366;;;:::o;29728:419::-;29894:4;29932:2;29921:9;29917:18;29909:26;;29981:9;29975:4;29971:20;29967:1;29956:9;29952:17;29945:47;30009:131;30135:4;30009:131;:::i;:::-;30001:139;;29728:419;;;:::o;30153:177::-;30293:29;30289:1;30281:6;30277:14;30270:53;30153:177;:::o;30336:366::-;30478:3;30499:67;30563:2;30558:3;30499:67;:::i;:::-;30492:74;;30575:93;30664:3;30575:93;:::i;:::-;30693:2;30688:3;30684:12;30677:19;;30336:366;;;:::o;30708:419::-;30874:4;30912:2;30901:9;30897:18;30889:26;;30961:9;30955:4;30951:20;30947:1;30936:9;30932:17;30925:47;30989:131;31115:4;30989:131;:::i;:::-;30981:139;;30708:419;;;:::o

Swarm Source

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