ETH Price: $3,340.06 (-1.30%)
Gas: 11 Gwei

Token

CYBER BEER (CBEER)
 

Overview

Max Total Supply

6,900,000,000 CBEER

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
52,088,362.500154562136778998 CBEER

Value
$0.00
0x21142fa926e20083f2b64a8d7a47f5af808fb3c8
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:
CBEER

Compiler Version
v0.8.20+commit.a1b79de6

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-21
*/

/**
 *CYBER BEER
*/


// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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);
}

contract CBEER is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _marWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=24;
    uint256 private _initialSellTax=24;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=19;
    uint256 private _reduceSellTaxAt=29;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 6900000000 * 10**_decimals;
    string private constant _name = unicode"CYBER BEER";
    string private constant _symbol = unicode"CBEER";
    uint256 public _maxTxAmount = 138000000 * 10**_decimals;
    uint256 public _maxWalletSize = 138000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 69000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 69000000 * 10**_decimals;

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

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

    constructor () {

        _marWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

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

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!swapping && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    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 isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

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

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function updateReduceBuySellTax(uint256 _newBuy,uint256 _newSell) public onlyOwner {
        _reduceBuyTaxAt = _newBuy;
        _reduceSellTaxAt = _newSell;
    }

    function updateInitialBuySellTax(uint256 _newBuy,uint256 _newSell) public onlyOwner {
        _initialBuyTax = _newBuy;
        _initialSellTax = _newSell;
    }

    function updatePreventSwapBefore(uint256 _preventSwap) public onlyOwner {
        _preventSwapBefore = _preventSwap;
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"_newBuy","type":"uint256"},{"internalType":"uint256","name":"_newSell","type":"uint256"}],"name":"updateInitialBuySellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_preventSwap","type":"uint256"}],"name":"updatePreventSwapBefore","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuy","type":"uint256"},{"internalType":"uint256","name":"_newSell","type":"uint256"}],"name":"updateReduceBuySellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601860075560186008555f6009555f600a556013600b55601d600c556014600d555f600e556012600a620000399190620005f4565b630839b6806200004a919062000644565b600f556012600a6200005d9190620005f4565b630839b6806200006e919062000644565b6010556012600a620000819190620005f4565b63041cdb4062000092919062000644565b6011556012600a620000a59190620005f4565b63041cdb40620000b6919062000644565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550348015620000f9575f80fd5b505f6200010b6200043460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001b76200043460201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620002069190620005f4565b64019b45a50062000218919062000644565b60015f6200022b6200043460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200027d6200043b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003a76200043460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620004059190620005f4565b64019b45a50062000417919062000644565b6040516200042691906200069f565b60405180910390a3620006ba565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004ec57808604811115620004c457620004c362000462565b5b6001851615620004d45780820291505b8081029050620004e4856200048f565b9450620004a4565b94509492505050565b5f82620005065760019050620005d8565b8162000515575f9050620005d8565b81600181146200052e576002811462000539576200056f565b6001915050620005d8565b60ff8411156200054e576200054d62000462565b5b8360020a91508482111562000568576200056762000462565b5b50620005d8565b5060208310610133831016604e8410600b8410161715620005a95782820a905083811115620005a357620005a262000462565b5b620005d8565b620005b884848460016200049b565b92509050818404811115620005d257620005d162000462565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060082620005df565b91506200060d83620005e8565b92506200063c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004f5565b905092915050565b5f6200065082620005df565b91506200065d83620005df565b92508282026200066d81620005df565b9150828204841483151762000687576200068662000462565b5b5092915050565b6200069981620005df565b82525050565b5f602082019050620006b45f8301846200068e565b92915050565b61301780620006c85f395ff3fe608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610432578063bb6bd6c01461046e578063bf474bed14610496578063c9567bf9146104c0578063d34628cc146104d6578063dd62ed3e146104fe5761014a565b8063715018a61461035e578063751039fc146103745780637d1db4a51461038a5780638da5cb5b146103b45780638f9a55c0146103de57806395d89b41146104085761014a565b8063313ce56711610107578063313ce5671461024457806331c2d8471461026e5780633bbac579146102965780633ec05c39146102d25780634458200a146102fa57806370a08231146103225761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261053a565b60405161016f9190612153565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612211565b610577565b6040516101ab9190612269565b60405180910390f35b3480156101bf575f80fd5b506101c8610594565b6040516101d59190612291565b60405180910390f35b3480156101e9575f80fd5b506101f261059a565b6040516101ff9190612291565b60405180910390f35b348015610213575f80fd5b5061022e600480360381019061022991906122aa565b6105be565b60405161023b9190612269565b60405180910390f35b34801561024f575f80fd5b50610258610692565b6040516102659190612315565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f919061246e565b61069a565b005b3480156102a1575f80fd5b506102bc60048036038101906102b791906124b5565b6107be565b6040516102c99190612269565b60405180910390f35b3480156102dd575f80fd5b506102f860048036038101906102f391906124e0565b610810565b005b348015610305575f80fd5b50610320600480360381019061031b919061251e565b6108b6565b005b34801561032d575f80fd5b50610348600480360381019061034391906124b5565b610954565b6040516103559190612291565b60405180910390f35b348015610369575f80fd5b5061037261099a565b005b34801561037f575f80fd5b50610388610ae8565b005b348015610395575f80fd5b5061039e610c1a565b6040516103ab9190612291565b60405180910390f35b3480156103bf575f80fd5b506103c8610c20565b6040516103d59190612558565b60405180910390f35b3480156103e9575f80fd5b506103f2610c47565b6040516103ff9190612291565b60405180910390f35b348015610413575f80fd5b5061041c610c4d565b6040516104299190612153565b60405180910390f35b34801561043d575f80fd5b5061045860048036038101906104539190612211565b610c8a565b6040516104659190612269565b60405180910390f35b348015610479575f80fd5b50610494600480360381019061048f91906124e0565b610ca7565b005b3480156104a1575f80fd5b506104aa610d4d565b6040516104b79190612291565b60405180910390f35b3480156104cb575f80fd5b506104d4610d53565b005b3480156104e1575f80fd5b506104fc60048036038101906104f7919061246e565b610e73565b005b348015610509575f80fd5b50610524600480360381019061051f9190612571565b610f98565b6040516105319190612291565b60405180910390f35b60606040518060400160405280600a81526020017f4359424552204245455200000000000000000000000000000000000000000000815250905090565b5f61058a61058361101a565b8484611021565b6001905092915050565b60125481565b5f6012600a6105a9919061270b565b64019b45a5006105b99190612755565b905090565b5f6105ca8484846111e4565b610687846105d661101a565b61068285604051806060016040528060288152602001612fba6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61063961101a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ba49092919063ffffffff16565b611021565b600190509392505050565b5f6012905090565b6106a261101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461072e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610725906127e0565b60405180910390fd5b5f5b81518110156107ba575f60045f8484815181106107505761074f6127fe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806107b29061282b565b915050610730565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b61081861101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b906127e0565b60405180910390fd5b81600781905550806008819055505050565b6108be61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610941906127e0565b60405180910390fd5b80600d8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109a261101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a25906127e0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610af061101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b73906127e0565b60405180910390fd5b6012600a610b8a919061270b565b64019b45a500610b9a9190612755565b600f819055506012600a610bae919061270b565b64019b45a500610bbe9190612755565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610bf3919061270b565b64019b45a500610c039190612755565b604051610c109190612291565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f4342454552000000000000000000000000000000000000000000000000000000815250905090565b5f610c9d610c9661101a565b84846111e4565b6001905092915050565b610caf61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d32906127e0565b60405180910390fd5b81600b8190555080600c819055505050565b60115481565b610d5b61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde906127e0565b60405180910390fd5b60148054906101000a900460ff1615610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c906128bc565b60405180910390fd5b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600681905550565b610e7b61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe906127e0565b60405180910390fd5b5f5b8151811015610f9457600160045f848481518110610f2a57610f296127fe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610f8c9061282b565b915050610f09565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361108f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110869061294a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f4906129d8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111d79190612291565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124990612a66565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b790612af4565b60405180910390fd5b5f8111611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f990612b82565b60405180910390fd5b5f61130b610c20565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113795750611349610c20565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118f45760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561141c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611424575f80fd5b6114606064611452600b54600e541161143f57600754611443565b6009545b85611c0690919063ffffffff16565b611c7d90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561150b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561155e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561164157600f548211156115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159f90612bea565b60405180910390fd5b601054826115b585610954565b6115bf9190612c08565b1115611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790612c85565b60405180910390fd5b4360036006546116109190612c08565b11156116295761161f83611cc6565b15611628575f80fd5b5b600e5f81548092919061163b9061282b565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116e5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561174357601054826116f785610954565b6117019190612c08565b1115611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990612c85565b60405180910390fd5b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117cb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561180f5761180c60646117fe600c54600e54116117eb576008546117ef565b600a545b85611c0690919063ffffffff16565b611c7d90919063ffffffff16565b90505b5f61181930610954565b9050601460159054906101000a900460ff16158015611884575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561189c5750601460169054906101000a900460ff165b80156118a9575060115481115b80156118b85750600d54600e54115b156118f2576118da6118d5846118d084601254611cd7565b611cd7565b611cef565b5f4790505f8111156118f0576118ef47611f5a565b5b505b505b5f8111156119f35761194c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ea9190612291565b60405180910390a35b611a438260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ae6611a9a828461201f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b89848661201f90919063ffffffff16565b604051611b969190612291565b60405180910390a350505050565b5f838311158290611beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be29190612153565b60405180910390fd5b505f8385611bf99190612ca3565b9050809150509392505050565b5f808303611c16575f9050611c77565b5f8284611c239190612755565b9050828482611c329190612d03565b14611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6990612da3565b60405180910390fd5b809150505b92915050565b5f611cbe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612068565b905092915050565b5f80823b90505f8111915050919050565b5f818311611ce55782611ce7565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d2657611d25612332565b5b604051908082528060200260200182016040528015611d545781602001602082028036833780820191505090505b50905030815f81518110611d6b57611d6a6127fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e339190612dd5565b81600181518110611e4757611e466127fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ead3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611021565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f0f959493929190612ef9565b5f604051808303815f87803b158015611f26575f80fd5b505af1158015611f38573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611fbe573d5f803e3d5ffd5b5050565b5f808284611fd09190612c08565b905083811015612015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200c90612f9b565b60405180910390fd5b8091505092915050565b5f61206083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ba4565b905092915050565b5f80831182906120ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a59190612153565b60405180910390fd5b505f83856120bc9190612d03565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121005780820151818401526020810190506120e5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612125826120c9565b61212f81856120d3565b935061213f8185602086016120e3565b6121488161210b565b840191505092915050565b5f6020820190508181035f83015261216b818461211b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121ad82612184565b9050919050565b6121bd816121a3565b81146121c7575f80fd5b50565b5f813590506121d8816121b4565b92915050565b5f819050919050565b6121f0816121de565b81146121fa575f80fd5b50565b5f8135905061220b816121e7565b92915050565b5f80604083850312156122275761222661217c565b5b5f612234858286016121ca565b9250506020612245858286016121fd565b9150509250929050565b5f8115159050919050565b6122638161224f565b82525050565b5f60208201905061227c5f83018461225a565b92915050565b61228b816121de565b82525050565b5f6020820190506122a45f830184612282565b92915050565b5f805f606084860312156122c1576122c061217c565b5b5f6122ce868287016121ca565b93505060206122df868287016121ca565b92505060406122f0868287016121fd565b9150509250925092565b5f60ff82169050919050565b61230f816122fa565b82525050565b5f6020820190506123285f830184612306565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6123688261210b565b810181811067ffffffffffffffff8211171561238757612386612332565b5b80604052505050565b5f612399612173565b90506123a5828261235f565b919050565b5f67ffffffffffffffff8211156123c4576123c3612332565b5b602082029050602081019050919050565b5f80fd5b5f6123eb6123e6846123aa565b612390565b9050808382526020820190506020840283018581111561240e5761240d6123d5565b5b835b81811015612437578061242388826121ca565b845260208401935050602081019050612410565b5050509392505050565b5f82601f8301126124555761245461232e565b5b81356124658482602086016123d9565b91505092915050565b5f602082840312156124835761248261217c565b5b5f82013567ffffffffffffffff8111156124a05761249f612180565b5b6124ac84828501612441565b91505092915050565b5f602082840312156124ca576124c961217c565b5b5f6124d7848285016121ca565b91505092915050565b5f80604083850312156124f6576124f561217c565b5b5f612503858286016121fd565b9250506020612514858286016121fd565b9150509250929050565b5f602082840312156125335761253261217c565b5b5f612540848285016121fd565b91505092915050565b612552816121a3565b82525050565b5f60208201905061256b5f830184612549565b92915050565b5f80604083850312156125875761258661217c565b5b5f612594858286016121ca565b92505060206125a5858286016121ca565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126315780860481111561260d5761260c6125af565b5b600185161561261c5780820291505b808102905061262a856125dc565b94506125f1565b94509492505050565b5f826126495760019050612704565b81612656575f9050612704565b816001811461266c5760028114612676576126a5565b6001915050612704565b60ff841115612688576126876125af565b5b8360020a91508482111561269f5761269e6125af565b5b50612704565b5060208310610133831016604e8410600b84101617156126da5782820a9050838111156126d5576126d46125af565b5b612704565b6126e784848460016125e8565b925090508184048111156126fe576126fd6125af565b5b81810290505b9392505050565b5f612715826121de565b9150612720836122fa565b925061274d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461263a565b905092915050565b5f61275f826121de565b915061276a836121de565b9250828202612778816121de565b9150828204841483151761278f5761278e6125af565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127ca6020836120d3565b91506127d582612796565b602082019050919050565b5f6020820190508181035f8301526127f7816127be565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612835826121de565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612867576128666125af565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128a66017836120d3565b91506128b182612872565b602082019050919050565b5f6020820190508181035f8301526128d38161289a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129346024836120d3565b915061293f826128da565b604082019050919050565b5f6020820190508181035f83015261296181612928565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129c26022836120d3565b91506129cd82612968565b604082019050919050565b5f6020820190508181035f8301526129ef816129b6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a506025836120d3565b9150612a5b826129f6565b604082019050919050565b5f6020820190508181035f830152612a7d81612a44565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ade6023836120d3565b9150612ae982612a84565b604082019050919050565b5f6020820190508181035f830152612b0b81612ad2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b6c6029836120d3565b9150612b7782612b12565b604082019050919050565b5f6020820190508181035f830152612b9981612b60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612bd46019836120d3565b9150612bdf82612ba0565b602082019050919050565b5f6020820190508181035f830152612c0181612bc8565b9050919050565b5f612c12826121de565b9150612c1d836121de565b9250828201905080821115612c3557612c346125af565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c6f601a836120d3565b9150612c7a82612c3b565b602082019050919050565b5f6020820190508181035f830152612c9c81612c63565b9050919050565b5f612cad826121de565b9150612cb8836121de565b9250828203905081811115612cd057612ccf6125af565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d0d826121de565b9150612d18836121de565b925082612d2857612d27612cd6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d8d6021836120d3565b9150612d9882612d33565b604082019050919050565b5f6020820190508181035f830152612dba81612d81565b9050919050565b5f81519050612dcf816121b4565b92915050565b5f60208284031215612dea57612de961217c565b5b5f612df784828501612dc1565b91505092915050565b5f819050919050565b5f819050919050565b5f612e2c612e27612e2284612e00565b612e09565b6121de565b9050919050565b612e3c81612e12565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e74816121a3565b82525050565b5f612e858383612e6b565b60208301905092915050565b5f602082019050919050565b5f612ea782612e42565b612eb18185612e4c565b9350612ebc83612e5c565b805f5b83811015612eec578151612ed38882612e7a565b9750612ede83612e91565b925050600181019050612ebf565b5085935050505092915050565b5f60a082019050612f0c5f830188612282565b612f196020830187612e33565b8181036040830152612f2b8186612e9d565b9050612f3a6060830185612549565b612f476080830184612282565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f85601b836120d3565b9150612f9082612f51565b602082019050919050565b5f6020820190508181035f830152612fb281612f79565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209fb6584fc6102b147b10c93863b414c482e35f574ae614bd5b5bd0235b37c80964736f6c63430008140033

Deployed Bytecode

0x608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610432578063bb6bd6c01461046e578063bf474bed14610496578063c9567bf9146104c0578063d34628cc146104d6578063dd62ed3e146104fe5761014a565b8063715018a61461035e578063751039fc146103745780637d1db4a51461038a5780638da5cb5b146103b45780638f9a55c0146103de57806395d89b41146104085761014a565b8063313ce56711610107578063313ce5671461024457806331c2d8471461026e5780633bbac579146102965780633ec05c39146102d25780634458200a146102fa57806370a08231146103225761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261053a565b60405161016f9190612153565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612211565b610577565b6040516101ab9190612269565b60405180910390f35b3480156101bf575f80fd5b506101c8610594565b6040516101d59190612291565b60405180910390f35b3480156101e9575f80fd5b506101f261059a565b6040516101ff9190612291565b60405180910390f35b348015610213575f80fd5b5061022e600480360381019061022991906122aa565b6105be565b60405161023b9190612269565b60405180910390f35b34801561024f575f80fd5b50610258610692565b6040516102659190612315565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f919061246e565b61069a565b005b3480156102a1575f80fd5b506102bc60048036038101906102b791906124b5565b6107be565b6040516102c99190612269565b60405180910390f35b3480156102dd575f80fd5b506102f860048036038101906102f391906124e0565b610810565b005b348015610305575f80fd5b50610320600480360381019061031b919061251e565b6108b6565b005b34801561032d575f80fd5b50610348600480360381019061034391906124b5565b610954565b6040516103559190612291565b60405180910390f35b348015610369575f80fd5b5061037261099a565b005b34801561037f575f80fd5b50610388610ae8565b005b348015610395575f80fd5b5061039e610c1a565b6040516103ab9190612291565b60405180910390f35b3480156103bf575f80fd5b506103c8610c20565b6040516103d59190612558565b60405180910390f35b3480156103e9575f80fd5b506103f2610c47565b6040516103ff9190612291565b60405180910390f35b348015610413575f80fd5b5061041c610c4d565b6040516104299190612153565b60405180910390f35b34801561043d575f80fd5b5061045860048036038101906104539190612211565b610c8a565b6040516104659190612269565b60405180910390f35b348015610479575f80fd5b50610494600480360381019061048f91906124e0565b610ca7565b005b3480156104a1575f80fd5b506104aa610d4d565b6040516104b79190612291565b60405180910390f35b3480156104cb575f80fd5b506104d4610d53565b005b3480156104e1575f80fd5b506104fc60048036038101906104f7919061246e565b610e73565b005b348015610509575f80fd5b50610524600480360381019061051f9190612571565b610f98565b6040516105319190612291565b60405180910390f35b60606040518060400160405280600a81526020017f4359424552204245455200000000000000000000000000000000000000000000815250905090565b5f61058a61058361101a565b8484611021565b6001905092915050565b60125481565b5f6012600a6105a9919061270b565b64019b45a5006105b99190612755565b905090565b5f6105ca8484846111e4565b610687846105d661101a565b61068285604051806060016040528060288152602001612fba6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61063961101a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ba49092919063ffffffff16565b611021565b600190509392505050565b5f6012905090565b6106a261101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461072e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610725906127e0565b60405180910390fd5b5f5b81518110156107ba575f60045f8484815181106107505761074f6127fe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806107b29061282b565b915050610730565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b61081861101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b906127e0565b60405180910390fd5b81600781905550806008819055505050565b6108be61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610941906127e0565b60405180910390fd5b80600d8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109a261101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a25906127e0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610af061101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b73906127e0565b60405180910390fd5b6012600a610b8a919061270b565b64019b45a500610b9a9190612755565b600f819055506012600a610bae919061270b565b64019b45a500610bbe9190612755565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610bf3919061270b565b64019b45a500610c039190612755565b604051610c109190612291565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f4342454552000000000000000000000000000000000000000000000000000000815250905090565b5f610c9d610c9661101a565b84846111e4565b6001905092915050565b610caf61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d32906127e0565b60405180910390fd5b81600b8190555080600c819055505050565b60115481565b610d5b61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde906127e0565b60405180910390fd5b60148054906101000a900460ff1615610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c906128bc565b60405180910390fd5b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600681905550565b610e7b61101a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe906127e0565b60405180910390fd5b5f5b8151811015610f9457600160045f848481518110610f2a57610f296127fe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610f8c9061282b565b915050610f09565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361108f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110869061294a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f4906129d8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111d79190612291565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124990612a66565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b790612af4565b60405180910390fd5b5f8111611302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f990612b82565b60405180910390fd5b5f61130b610c20565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113795750611349610c20565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118f45760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561141c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611424575f80fd5b6114606064611452600b54600e541161143f57600754611443565b6009545b85611c0690919063ffffffff16565b611c7d90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561150b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561155e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561164157600f548211156115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159f90612bea565b60405180910390fd5b601054826115b585610954565b6115bf9190612c08565b1115611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790612c85565b60405180910390fd5b4360036006546116109190612c08565b11156116295761161f83611cc6565b15611628575f80fd5b5b600e5f81548092919061163b9061282b565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116e5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561174357601054826116f785610954565b6117019190612c08565b1115611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990612c85565b60405180910390fd5b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117cb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561180f5761180c60646117fe600c54600e54116117eb576008546117ef565b600a545b85611c0690919063ffffffff16565b611c7d90919063ffffffff16565b90505b5f61181930610954565b9050601460159054906101000a900460ff16158015611884575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561189c5750601460169054906101000a900460ff165b80156118a9575060115481115b80156118b85750600d54600e54115b156118f2576118da6118d5846118d084601254611cd7565b611cd7565b611cef565b5f4790505f8111156118f0576118ef47611f5a565b5b505b505b5f8111156119f35761194c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ea9190612291565b60405180910390a35b611a438260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ae6611a9a828461201f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b89848661201f90919063ffffffff16565b604051611b969190612291565b60405180910390a350505050565b5f838311158290611beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be29190612153565b60405180910390fd5b505f8385611bf99190612ca3565b9050809150509392505050565b5f808303611c16575f9050611c77565b5f8284611c239190612755565b9050828482611c329190612d03565b14611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6990612da3565b60405180910390fd5b809150505b92915050565b5f611cbe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612068565b905092915050565b5f80823b90505f8111915050919050565b5f818311611ce55782611ce7565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d2657611d25612332565b5b604051908082528060200260200182016040528015611d545781602001602082028036833780820191505090505b50905030815f81518110611d6b57611d6a6127fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e339190612dd5565b81600181518110611e4757611e466127fe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ead3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611021565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f0f959493929190612ef9565b5f604051808303815f87803b158015611f26575f80fd5b505af1158015611f38573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611fbe573d5f803e3d5ffd5b5050565b5f808284611fd09190612c08565b905083811015612015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200c90612f9b565b60405180910390fd5b8091505092915050565b5f61206083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ba4565b905092915050565b5f80831182906120ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a59190612153565b60405180910390fd5b505f83856120bc9190612d03565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121005780820151818401526020810190506120e5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612125826120c9565b61212f81856120d3565b935061213f8185602086016120e3565b6121488161210b565b840191505092915050565b5f6020820190508181035f83015261216b818461211b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121ad82612184565b9050919050565b6121bd816121a3565b81146121c7575f80fd5b50565b5f813590506121d8816121b4565b92915050565b5f819050919050565b6121f0816121de565b81146121fa575f80fd5b50565b5f8135905061220b816121e7565b92915050565b5f80604083850312156122275761222661217c565b5b5f612234858286016121ca565b9250506020612245858286016121fd565b9150509250929050565b5f8115159050919050565b6122638161224f565b82525050565b5f60208201905061227c5f83018461225a565b92915050565b61228b816121de565b82525050565b5f6020820190506122a45f830184612282565b92915050565b5f805f606084860312156122c1576122c061217c565b5b5f6122ce868287016121ca565b93505060206122df868287016121ca565b92505060406122f0868287016121fd565b9150509250925092565b5f60ff82169050919050565b61230f816122fa565b82525050565b5f6020820190506123285f830184612306565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6123688261210b565b810181811067ffffffffffffffff8211171561238757612386612332565b5b80604052505050565b5f612399612173565b90506123a5828261235f565b919050565b5f67ffffffffffffffff8211156123c4576123c3612332565b5b602082029050602081019050919050565b5f80fd5b5f6123eb6123e6846123aa565b612390565b9050808382526020820190506020840283018581111561240e5761240d6123d5565b5b835b81811015612437578061242388826121ca565b845260208401935050602081019050612410565b5050509392505050565b5f82601f8301126124555761245461232e565b5b81356124658482602086016123d9565b91505092915050565b5f602082840312156124835761248261217c565b5b5f82013567ffffffffffffffff8111156124a05761249f612180565b5b6124ac84828501612441565b91505092915050565b5f602082840312156124ca576124c961217c565b5b5f6124d7848285016121ca565b91505092915050565b5f80604083850312156124f6576124f561217c565b5b5f612503858286016121fd565b9250506020612514858286016121fd565b9150509250929050565b5f602082840312156125335761253261217c565b5b5f612540848285016121fd565b91505092915050565b612552816121a3565b82525050565b5f60208201905061256b5f830184612549565b92915050565b5f80604083850312156125875761258661217c565b5b5f612594858286016121ca565b92505060206125a5858286016121ca565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126315780860481111561260d5761260c6125af565b5b600185161561261c5780820291505b808102905061262a856125dc565b94506125f1565b94509492505050565b5f826126495760019050612704565b81612656575f9050612704565b816001811461266c5760028114612676576126a5565b6001915050612704565b60ff841115612688576126876125af565b5b8360020a91508482111561269f5761269e6125af565b5b50612704565b5060208310610133831016604e8410600b84101617156126da5782820a9050838111156126d5576126d46125af565b5b612704565b6126e784848460016125e8565b925090508184048111156126fe576126fd6125af565b5b81810290505b9392505050565b5f612715826121de565b9150612720836122fa565b925061274d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461263a565b905092915050565b5f61275f826121de565b915061276a836121de565b9250828202612778816121de565b9150828204841483151761278f5761278e6125af565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127ca6020836120d3565b91506127d582612796565b602082019050919050565b5f6020820190508181035f8301526127f7816127be565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612835826121de565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612867576128666125af565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128a66017836120d3565b91506128b182612872565b602082019050919050565b5f6020820190508181035f8301526128d38161289a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129346024836120d3565b915061293f826128da565b604082019050919050565b5f6020820190508181035f83015261296181612928565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129c26022836120d3565b91506129cd82612968565b604082019050919050565b5f6020820190508181035f8301526129ef816129b6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a506025836120d3565b9150612a5b826129f6565b604082019050919050565b5f6020820190508181035f830152612a7d81612a44565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ade6023836120d3565b9150612ae982612a84565b604082019050919050565b5f6020820190508181035f830152612b0b81612ad2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b6c6029836120d3565b9150612b7782612b12565b604082019050919050565b5f6020820190508181035f830152612b9981612b60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612bd46019836120d3565b9150612bdf82612ba0565b602082019050919050565b5f6020820190508181035f830152612c0181612bc8565b9050919050565b5f612c12826121de565b9150612c1d836121de565b9250828201905080821115612c3557612c346125af565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c6f601a836120d3565b9150612c7a82612c3b565b602082019050919050565b5f6020820190508181035f830152612c9c81612c63565b9050919050565b5f612cad826121de565b9150612cb8836121de565b9250828203905081811115612cd057612ccf6125af565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d0d826121de565b9150612d18836121de565b925082612d2857612d27612cd6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d8d6021836120d3565b9150612d9882612d33565b604082019050919050565b5f6020820190508181035f830152612dba81612d81565b9050919050565b5f81519050612dcf816121b4565b92915050565b5f60208284031215612dea57612de961217c565b5b5f612df784828501612dc1565b91505092915050565b5f819050919050565b5f819050919050565b5f612e2c612e27612e2284612e00565b612e09565b6121de565b9050919050565b612e3c81612e12565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e74816121a3565b82525050565b5f612e858383612e6b565b60208301905092915050565b5f602082019050919050565b5f612ea782612e42565b612eb18185612e4c565b9350612ebc83612e5c565b805f5b83811015612eec578151612ed38882612e7a565b9750612ede83612e91565b925050600181019050612ebf565b5085935050505092915050565b5f60a082019050612f0c5f830188612282565b612f196020830187612e33565b8181036040830152612f2b8186612e9d565b9050612f3a6060830185612549565b612f476080830184612282565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f85601b836120d3565b9150612f9082612f51565b602082019050919050565b5f6020820190508181035f830152612fb281612f79565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209fb6584fc6102b147b10c93863b414c482e35f574ae614bd5b5bd0235b37c80964736f6c63430008140033

Deployed Bytecode Sourcemap

3226:7981:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5078:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5911:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4345:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5355:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6080:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5264:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10223:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10870:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10566:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10738:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5458:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2582:148;;;;;;;;;;;;;:::i;:::-;;9784:159;;;;;;;;;;;;;:::i;:::-;;4154:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2368:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4216:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5169:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5585:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10393:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4280:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10961:204;;;;;;;;;;;;;:::i;:::-;;10051:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5760:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5078:83;5115:13;5148:5;;;;;;;;;;;;;;;;;5141:12;;5078:83;:::o;5911:161::-;5986:4;6003:39;6012:12;:10;:12::i;:::-;6026:7;6035:6;6003:8;:39::i;:::-;6060:4;6053:11;;5911:161;;;;:::o;4345:52::-;;;;:::o;5355:95::-;5408:7;3964:2;4021;:13;;;;:::i;:::-;4008:10;:26;;;;:::i;:::-;5428:14;;5355:95;:::o;6080:313::-;6178:4;6195:36;6205:6;6213:9;6224:6;6195:9;:36::i;:::-;6242:121;6251:6;6259:12;:10;:12::i;:::-;6273:89;6311:6;6273:89;;;;;;;;;;;;;;;;;:11;:19;6285:6;6273:19;;;;;;;;;;;;;;;:33;6293:12;:10;:12::i;:::-;6273:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6242:8;:121::i;:::-;6381:4;6374:11;;6080:313;;;;;:::o;5264:83::-;5305:5;3964:2;5323:16;;5264:83;:::o;10223:162::-;2505:12;:10;:12::i;:::-;2495:22;;:6;;;;;;;;;;:22;;;2487:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10296:6:::1;10291:87;10312:6;:13;10308:1;:17;10291:87;;;10363:5;10345:4;:15;10350:6;10357:1;10350:9;;;;;;;;:::i;:::-;;;;;;;;10345:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10327:3;;;;;:::i;:::-;;;;10291:87;;;;10223:162:::0;:::o;10870:83::-;10917:4;10938;:7;10943:1;10938:7;;;;;;;;;;;;;;;;;;;;;;;;;10931:14;;10870:83;;;:::o;10566:164::-;2505:12;:10;:12::i;:::-;2495:22;;:6;;;;;;;;;;:22;;;2487:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10678:7:::1;10661:14;:24;;;;10714:8;10696:15;:26;;;;10566:164:::0;;:::o;10738:124::-;2505:12;:10;:12::i;:::-;2495:22;;:6;;;;;;;;;;:22;;;2487:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10842:12:::1;10821:18;:33;;;;10738:124:::0;:::o;5458:119::-;5524:7;5551:9;:18;5561:7;5551:18;;;;;;;;;;;;;;;;5544:25;;5458:119;;;:::o;2582:148::-;2505:12;:10;:12::i;:::-;2495:22;;:6;;;;;;;;;;:22;;;2487:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2689:1:::1;2652:40;;2673:6;::::0;::::1;;;;;;;;2652:40;;;;;;;;;;;;2720:1;2703:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2582:148::o:0;9784:159::-;2505:12;:10;:12::i;:::-;2495:22;;:6;;;;;;;;;;:22;;;2487:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3964:2:::1;4021;:13;;;;:::i;:::-;4008:10;:26;;;;:::i;:::-;9837:12;:22;;;;3964:2;4021;:13;;;;:::i;:::-;4008:10;:26;;;;:::i;:::-;9870:14;:22;;;;9908:27;3964:2;4021;:13;;;;:::i;:::-;4008:10;:26;;;;:::i;:::-;9908:27;;;;;;:::i;:::-;;;;;;;;9784:159::o:0;4154:55::-;;;;:::o;2368:79::-;2406:7;2433:6;;;;;;;;;;;2426:13;;2368:79;:::o;4216:57::-;;;;:::o;5169:87::-;5208:13;5241:7;;;;;;;;;;;;;;;;;5234:14;;5169:87;:::o;5585:167::-;5663:4;5680:42;5690:12;:10;:12::i;:::-;5704:9;5715:6;5680:9;:42::i;:::-;5740:4;5733:11;;5585:167;;;;:::o;10393:165::-;2505:12;:10;:12::i;:::-;2495:22;;:6;;;;;;;;;;:22;;;2487:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10505:7:::1;10487:15;:25;;;;10542:8;10523:16;:27;;;;10393:165:::0;;:::o;4280:58::-;;;;:::o;10961:204::-;2505:12;:10;:12::i;:::-;2495:22;;:6;;;;;;;;;;:22;;;2487:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11025:11:::1;::::0;::::1;;;;;;;;11024:12;11016:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11088:4;11074:11;;:18;;;;;;;;;;;;;;;;;;11117:4;11103:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11145:12;11132:10;:25;;;;10961:204::o:0;10051:164::-;2505:12;:10;:12::i;:::-;2495:22;;:6;;;;;;;;;;:22;;;2487:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10125:6:::1;10120:88;10141:5;:12;10137:1;:16;10120:88;;;10192:4;10175;:14;10180:5;10186:1;10180:8;;;;;;;;:::i;:::-;;;;;;;;10175:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10155:3;;;;;:::i;:::-;;;;10120:88;;;;10051:164:::0;:::o;5760:143::-;5841:7;5868:11;:18;5880:5;5868:18;;;;;;;;;;;;;;;:27;5887:7;5868:27;;;;;;;;;;;;;;;;5861:34;;5760:143;;;;:::o;122:98::-;175:7;202:10;195:17;;122:98;:::o;6401:335::-;6511:1;6494:19;;:5;:19;;;6486:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6592:1;6573:21;;:7;:21;;;6565:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6674:6;6644:11;:18;6656:5;6644:18;;;;;;;;;;;;;;;:27;6663:7;6644:27;;;;;;;;;;;;;;;:36;;;;6712:7;6696:32;;6705:5;6696:32;;;6721:6;6696:32;;;;;;:::i;:::-;;;;;;;;6401:335;;;:::o;6744:2230::-;6848:1;6832:18;;:4;:18;;;6824:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6925:1;6911:16;;:2;:16;;;6903:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6995:1;6986:6;:10;6978:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7053:17;7095:7;:5;:7::i;:::-;7087:15;;:4;:15;;;;:32;;;;;7112:7;:5;:7::i;:::-;7106:13;;:2;:13;;;;7087:32;7083:1535;;;7145:4;:10;7150:4;7145:10;;;;;;;;;;;;;;;;;;;;;;;;;7144:11;:24;;;;;7160:4;:8;7165:2;7160:8;;;;;;;;;;;;;;;;;;;;;;;;;7159:9;7144:24;7136:33;;;;;;7196:76;7268:3;7196:67;7218:15;;7208:9;;:25;7207:55;;7248:14;;7207:55;;;7235:12;;7207:55;7196:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7184:88;;7301:13;;;;;;;;;;;7293:21;;:4;:21;;;:55;;;;;7332:15;;;;;;;;;;;7318:30;;:2;:30;;;;7293:55;:83;;;;;7354:18;:22;7373:2;7354:22;;;;;;;;;;;;;;;;;;;;;;;;;7352:24;7293:83;7289:436;;;7416:12;;7406:6;:22;;7398:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7511:14;;7501:6;7485:13;7495:2;7485:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7477:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7599:12;7594:1;7581:10;;:14;;;;:::i;:::-;:30;7577:103;;;7645:14;7656:2;7645:10;:14::i;:::-;7644:15;7636:24;;;;;;7577:103;7698:9;;:11;;;;;;;;;:::i;:::-;;;;;;7289:436;7751:13;;;;;;;;;;;7745:19;;:2;:19;;;;:47;;;;;7770:18;:22;7789:2;7770:22;;;;;;;;;;;;;;;;;;;;;;;;;7768:24;7745:47;7741:167;;;7847:14;;7837:6;7821:13;7831:2;7821:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7813:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7741:167;7933:13;;;;;;;;;;;7927:19;;:2;:19;;;:43;;;;;7965:4;7950:20;;:4;:20;;;;7927:43;7924:174;;;8003:79;8078:3;8003:70;8025:16;;8015:9;;:26;8014:58;;8057:15;;8014:58;;;8043:13;;8014:58;8003:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;7991:91;;7924:174;8114:28;8145:24;8163:4;8145:9;:24::i;:::-;8114:55;;8189:8;;;;;;;;;;;8188:9;:34;;;;;8209:13;;;;;;;;;;;8201:21;;:2;:21;;;8188:34;:49;;;;;8226:11;;;;;;;;;;;8188:49;:91;;;;;8262:17;;8241:20;:38;8188:91;:123;;;;;8293:18;;8283:9;;:28;8188:123;8184:423;;;8332:67;8349:49;8353:6;8360:37;8364:20;8385:11;;8360:3;:37::i;:::-;8349:3;:49::i;:::-;8332:16;:67::i;:::-;8418:26;8447:21;8418:50;;8511:1;8490:18;:22;8487:105;;;8537:35;8550:21;8537:12;:35::i;:::-;8487:105;8313:294;8184:423;7121:1497;7083:1535;8643:1;8633:9;:11;8630:161;;;8683:39;8712:9;8683;:24;8701:4;8683:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8658:9;:24;8676:4;8658:24;;;;;;;;;;;;;;;:64;;;;8763:4;8740:39;;8749:4;8740:39;;;8769:9;8740:39;;;;;;:::i;:::-;;;;;;;;8630:161;8817:27;8837:6;8817:9;:15;8827:4;8817:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8801:9;:15;8811:4;8801:15;;;;;;;;;;;;;;;:43;;;;8869:40;8887:21;8898:9;8887:6;:10;;:21;;;;:::i;:::-;8869:9;:13;8879:2;8869:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8855:9;:13;8865:2;8855:13;;;;;;;;;;;;;;;:54;;;;8940:2;8925:41;;8934:4;8925:41;;;8944:21;8955:9;8944:6;:10;;:21;;;;:::i;:::-;8925:41;;;;;;:::i;:::-;;;;;;;;6813:2161;6744:2230;;;:::o;1260:190::-;1346:7;1379:1;1374;:6;;1382:12;1366:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1406:9;1422:1;1418;:5;;;;:::i;:::-;1406:17;;1441:1;1434:8;;;1260:190;;;;;:::o;1458:246::-;1516:7;1545:1;1540;:6;1536:47;;1570:1;1563:8;;;;1536:47;1593:9;1609:1;1605;:5;;;;:::i;:::-;1593:17;;1638:1;1633;1629;:5;;;;:::i;:::-;:10;1621:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1695:1;1688:8;;;1458:246;;;;;:::o;1712:132::-;1770:7;1797:39;1801:1;1804;1797:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1790:46;;1712:132;;;;:::o;9090:195::-;9149:4;9166:12;9233:7;9221:20;9213:28;;9276:1;9269:4;:8;9262:15;;;9090:195;;;:::o;8984:98::-;9041:7;9068:1;9066;:3;9065:9;;9073:1;9065:9;;;9071:1;9065:9;9058:16;;8984:98;;;;:::o;9293:483::-;4692:4;4681:8;;:15;;;;;;;;;;;;;;;;;;9371:21:::1;9409:1;9395:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9371:40;;9440:4;9422;9427:1;9422:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9466:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9456:4;9461:1;9456:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9499:62;9516:4;9531:15;;;;;;;;;;;9549:11;9499:8;:62::i;:::-;9572:15;;;;;;;;;;;:66;;;9653:11;9679:1;9695:4;9722;9742:15;9572:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9360:416;4730:5:::0;4719:8;;:16;;;;;;;;;;;;;;;;;;9293:483;:::o;9951:92::-;10008:10;;;;;;;;;;;:19;;:27;10028:6;10008:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9951:92;:::o;929:179::-;987:7;1007:9;1023:1;1019;:5;;;;:::i;:::-;1007:17;;1048:1;1043;:6;;1035:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1099:1;1092:8;;;929:179;;;;:::o;1116:136::-;1174:7;1201:43;1205:1;1208;1201:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1194:50;;1116:136;;;;:::o;1852:189::-;1938:7;1970:1;1966;:5;1973:12;1958:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1997:9;2013:1;2009;:5;;;;:::i;:::-;1997:17;;2032:1;2025:8;;;1852: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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:474::-;8098:6;8106;8155:2;8143:9;8134:7;8130:23;8126:32;8123:119;;;8161:79;;:::i;:::-;8123:119;8281:1;8306:53;8351:7;8342:6;8331:9;8327:22;8306:53;:::i;:::-;8296:63;;8252:117;8408:2;8434:53;8479:7;8470:6;8459:9;8455:22;8434:53;:::i;:::-;8424:63;;8379:118;8030:474;;;;;:::o;8510:329::-;8569:6;8618:2;8606:9;8597:7;8593:23;8589:32;8586:119;;;8624:79;;:::i;:::-;8586:119;8744:1;8769:53;8814:7;8805:6;8794:9;8790:22;8769:53;:::i;:::-;8759:63;;8715:117;8510:329;;;;:::o;8845:118::-;8932:24;8950:5;8932:24;:::i;:::-;8927:3;8920:37;8845:118;;:::o;8969:222::-;9062:4;9100:2;9089:9;9085:18;9077:26;;9113:71;9181:1;9170:9;9166:17;9157:6;9113:71;:::i;:::-;8969:222;;;;:::o;9197:474::-;9265:6;9273;9322:2;9310:9;9301:7;9297:23;9293:32;9290:119;;;9328:79;;:::i;:::-;9290:119;9448:1;9473:53;9518:7;9509:6;9498:9;9494:22;9473:53;:::i;:::-;9463:63;;9419:117;9575:2;9601:53;9646:7;9637:6;9626:9;9622:22;9601:53;:::i;:::-;9591:63;;9546:118;9197:474;;;;;:::o;9677:180::-;9725:77;9722:1;9715:88;9822:4;9819:1;9812:15;9846:4;9843:1;9836:15;9863:102;9905:8;9952:5;9949:1;9945:13;9924:34;;9863:102;;;:::o;9971:848::-;10032:5;10039:4;10063:6;10054:15;;10087:5;10078:14;;10101:712;10122:1;10112:8;10109:15;10101:712;;;10217:4;10212:3;10208:14;10202:4;10199:24;10196:50;;;10226:18;;:::i;:::-;10196:50;10276:1;10266:8;10262:16;10259:451;;;10691:4;10684:5;10680:16;10671:25;;10259:451;10741:4;10735;10731:15;10723:23;;10771:32;10794:8;10771:32;:::i;:::-;10759:44;;10101:712;;;9971:848;;;;;;;:::o;10825:1073::-;10879:5;11070:8;11060:40;;11091:1;11082:10;;11093:5;;11060:40;11119:4;11109:36;;11136:1;11127:10;;11138:5;;11109:36;11205:4;11253:1;11248:27;;;;11289:1;11284:191;;;;11198:277;;11248:27;11266:1;11257:10;;11268:5;;;11284:191;11329:3;11319:8;11316:17;11313:43;;;11336:18;;:::i;:::-;11313:43;11385:8;11382:1;11378:16;11369:25;;11420:3;11413:5;11410:14;11407:40;;;11427:18;;:::i;:::-;11407:40;11460:5;;;11198:277;;11584:2;11574:8;11571:16;11565:3;11559:4;11556:13;11552:36;11534:2;11524:8;11521:16;11516:2;11510:4;11507:12;11503:35;11487:111;11484:246;;;11640:8;11634:4;11630:19;11621:28;;11675:3;11668:5;11665:14;11662:40;;;11682:18;;:::i;:::-;11662:40;11715:5;;11484:246;11755:42;11793:3;11783:8;11777:4;11774:1;11755:42;:::i;:::-;11740:57;;;;11829:4;11824:3;11820:14;11813:5;11810:25;11807:51;;;11838:18;;:::i;:::-;11807:51;11887:4;11880:5;11876:16;11867:25;;10825:1073;;;;;;:::o;11904:281::-;11962:5;11986:23;12004:4;11986:23;:::i;:::-;11978:31;;12030:25;12046:8;12030:25;:::i;:::-;12018:37;;12074:104;12111:66;12101:8;12095:4;12074:104;:::i;:::-;12065:113;;11904:281;;;;:::o;12191:410::-;12231:7;12254:20;12272:1;12254:20;:::i;:::-;12249:25;;12288:20;12306:1;12288:20;:::i;:::-;12283:25;;12343:1;12340;12336:9;12365:30;12383:11;12365:30;:::i;:::-;12354:41;;12544:1;12535:7;12531:15;12528:1;12525:22;12505:1;12498:9;12478:83;12455:139;;12574:18;;:::i;:::-;12455:139;12239:362;12191:410;;;;:::o;12607:182::-;12747:34;12743:1;12735:6;12731:14;12724:58;12607:182;:::o;12795:366::-;12937:3;12958:67;13022:2;13017:3;12958:67;:::i;:::-;12951:74;;13034:93;13123:3;13034:93;:::i;:::-;13152:2;13147:3;13143:12;13136:19;;12795:366;;;:::o;13167:419::-;13333:4;13371:2;13360:9;13356:18;13348:26;;13420:9;13414:4;13410:20;13406:1;13395:9;13391:17;13384:47;13448:131;13574:4;13448:131;:::i;:::-;13440:139;;13167:419;;;:::o;13592:180::-;13640:77;13637:1;13630:88;13737:4;13734:1;13727:15;13761:4;13758:1;13751:15;13778:233;13817:3;13840:24;13858:5;13840:24;:::i;:::-;13831:33;;13886:66;13879:5;13876:77;13873:103;;13956:18;;:::i;:::-;13873:103;14003:1;13996:5;13992:13;13985:20;;13778:233;;;:::o;14017:173::-;14157:25;14153:1;14145:6;14141:14;14134:49;14017:173;:::o;14196:366::-;14338:3;14359:67;14423:2;14418:3;14359:67;:::i;:::-;14352:74;;14435:93;14524:3;14435:93;:::i;:::-;14553:2;14548:3;14544:12;14537:19;;14196:366;;;:::o;14568:419::-;14734:4;14772:2;14761:9;14757:18;14749:26;;14821:9;14815:4;14811:20;14807:1;14796:9;14792:17;14785:47;14849:131;14975:4;14849:131;:::i;:::-;14841:139;;14568:419;;;:::o;14993:223::-;15133:34;15129:1;15121:6;15117:14;15110:58;15202:6;15197:2;15189:6;15185:15;15178:31;14993:223;:::o;15222:366::-;15364:3;15385:67;15449:2;15444:3;15385:67;:::i;:::-;15378:74;;15461:93;15550:3;15461:93;:::i;:::-;15579:2;15574:3;15570:12;15563:19;;15222:366;;;:::o;15594:419::-;15760:4;15798:2;15787:9;15783:18;15775:26;;15847:9;15841:4;15837:20;15833:1;15822:9;15818:17;15811:47;15875:131;16001:4;15875:131;:::i;:::-;15867:139;;15594:419;;;:::o;16019:221::-;16159:34;16155:1;16147:6;16143:14;16136:58;16228:4;16223:2;16215:6;16211:15;16204:29;16019:221;:::o;16246:366::-;16388:3;16409:67;16473:2;16468:3;16409:67;:::i;:::-;16402:74;;16485:93;16574:3;16485:93;:::i;:::-;16603:2;16598:3;16594:12;16587:19;;16246:366;;;:::o;16618:419::-;16784:4;16822:2;16811:9;16807:18;16799:26;;16871:9;16865:4;16861:20;16857:1;16846:9;16842:17;16835:47;16899:131;17025:4;16899:131;:::i;:::-;16891:139;;16618:419;;;:::o;17043:224::-;17183:34;17179:1;17171:6;17167:14;17160:58;17252:7;17247:2;17239:6;17235:15;17228:32;17043:224;:::o;17273:366::-;17415:3;17436:67;17500:2;17495:3;17436:67;:::i;:::-;17429:74;;17512:93;17601:3;17512:93;:::i;:::-;17630:2;17625:3;17621:12;17614:19;;17273:366;;;:::o;17645:419::-;17811:4;17849:2;17838:9;17834:18;17826:26;;17898:9;17892:4;17888:20;17884:1;17873:9;17869:17;17862:47;17926:131;18052:4;17926:131;:::i;:::-;17918:139;;17645:419;;;:::o;18070:222::-;18210:34;18206:1;18198:6;18194:14;18187:58;18279:5;18274:2;18266:6;18262:15;18255:30;18070:222;:::o;18298:366::-;18440:3;18461:67;18525:2;18520:3;18461:67;:::i;:::-;18454:74;;18537:93;18626:3;18537:93;:::i;:::-;18655:2;18650:3;18646:12;18639:19;;18298:366;;;:::o;18670:419::-;18836:4;18874:2;18863:9;18859:18;18851:26;;18923:9;18917:4;18913:20;18909:1;18898:9;18894:17;18887:47;18951:131;19077:4;18951:131;:::i;:::-;18943:139;;18670:419;;;:::o;19095:228::-;19235:34;19231:1;19223:6;19219:14;19212:58;19304:11;19299:2;19291:6;19287:15;19280:36;19095:228;:::o;19329:366::-;19471:3;19492:67;19556:2;19551:3;19492:67;:::i;:::-;19485:74;;19568:93;19657:3;19568:93;:::i;:::-;19686:2;19681:3;19677:12;19670:19;;19329:366;;;:::o;19701:419::-;19867:4;19905:2;19894:9;19890:18;19882:26;;19954:9;19948:4;19944:20;19940:1;19929:9;19925:17;19918:47;19982:131;20108:4;19982:131;:::i;:::-;19974:139;;19701:419;;;:::o;20126:175::-;20266:27;20262:1;20254:6;20250:14;20243:51;20126:175;:::o;20307:366::-;20449:3;20470:67;20534:2;20529:3;20470:67;:::i;:::-;20463:74;;20546:93;20635:3;20546:93;:::i;:::-;20664:2;20659:3;20655:12;20648:19;;20307:366;;;:::o;20679:419::-;20845:4;20883:2;20872:9;20868:18;20860:26;;20932:9;20926:4;20922:20;20918:1;20907:9;20903:17;20896:47;20960:131;21086:4;20960:131;:::i;:::-;20952:139;;20679:419;;;:::o;21104:191::-;21144:3;21163:20;21181:1;21163:20;:::i;:::-;21158:25;;21197:20;21215:1;21197:20;:::i;:::-;21192:25;;21240:1;21237;21233:9;21226:16;;21261:3;21258:1;21255:10;21252:36;;;21268:18;;:::i;:::-;21252:36;21104:191;;;;:::o;21301:176::-;21441:28;21437:1;21429:6;21425:14;21418:52;21301:176;:::o;21483:366::-;21625:3;21646:67;21710:2;21705:3;21646:67;:::i;:::-;21639:74;;21722:93;21811:3;21722:93;:::i;:::-;21840:2;21835:3;21831:12;21824:19;;21483:366;;;:::o;21855:419::-;22021:4;22059:2;22048:9;22044:18;22036:26;;22108:9;22102:4;22098:20;22094:1;22083:9;22079:17;22072:47;22136:131;22262:4;22136:131;:::i;:::-;22128:139;;21855:419;;;:::o;22280:194::-;22320:4;22340:20;22358:1;22340:20;:::i;:::-;22335:25;;22374:20;22392:1;22374:20;:::i;:::-;22369:25;;22418:1;22415;22411:9;22403:17;;22442:1;22436:4;22433:11;22430:37;;;22447:18;;:::i;:::-;22430:37;22280:194;;;;:::o;22480:180::-;22528:77;22525:1;22518:88;22625:4;22622:1;22615:15;22649:4;22646:1;22639:15;22666:185;22706:1;22723:20;22741:1;22723:20;:::i;:::-;22718:25;;22757:20;22775:1;22757:20;:::i;:::-;22752:25;;22796:1;22786:35;;22801:18;;:::i;:::-;22786:35;22843:1;22840;22836:9;22831:14;;22666:185;;;;:::o;22857:220::-;22997:34;22993:1;22985:6;22981:14;22974:58;23066:3;23061:2;23053:6;23049:15;23042:28;22857:220;:::o;23083:366::-;23225:3;23246:67;23310:2;23305:3;23246:67;:::i;:::-;23239:74;;23322:93;23411:3;23322:93;:::i;:::-;23440:2;23435:3;23431:12;23424:19;;23083:366;;;:::o;23455:419::-;23621:4;23659:2;23648:9;23644:18;23636:26;;23708:9;23702:4;23698:20;23694:1;23683:9;23679:17;23672:47;23736:131;23862:4;23736:131;:::i;:::-;23728:139;;23455:419;;;:::o;23880:143::-;23937:5;23968:6;23962:13;23953:22;;23984:33;24011:5;23984:33;:::i;:::-;23880:143;;;;:::o;24029:351::-;24099:6;24148:2;24136:9;24127:7;24123:23;24119:32;24116:119;;;24154:79;;:::i;:::-;24116:119;24274:1;24299:64;24355:7;24346:6;24335:9;24331:22;24299:64;:::i;:::-;24289:74;;24245:128;24029:351;;;;:::o;24386:85::-;24431:7;24460:5;24449:16;;24386:85;;;:::o;24477:60::-;24505:3;24526:5;24519:12;;24477:60;;;:::o;24543:158::-;24601:9;24634:61;24652:42;24661:32;24687:5;24661:32;:::i;:::-;24652:42;:::i;:::-;24634:61;:::i;:::-;24621:74;;24543:158;;;:::o;24707:147::-;24802:45;24841:5;24802:45;:::i;:::-;24797:3;24790:58;24707:147;;:::o;24860:114::-;24927:6;24961:5;24955:12;24945:22;;24860:114;;;:::o;24980:184::-;25079:11;25113:6;25108:3;25101:19;25153:4;25148:3;25144:14;25129:29;;24980:184;;;;:::o;25170:132::-;25237:4;25260:3;25252:11;;25290:4;25285:3;25281:14;25273:22;;25170:132;;;:::o;25308:108::-;25385:24;25403:5;25385:24;:::i;:::-;25380:3;25373:37;25308:108;;:::o;25422:179::-;25491:10;25512:46;25554:3;25546:6;25512:46;:::i;:::-;25590:4;25585:3;25581:14;25567:28;;25422:179;;;;:::o;25607:113::-;25677:4;25709;25704:3;25700:14;25692:22;;25607:113;;;:::o;25756:732::-;25875:3;25904:54;25952:5;25904:54;:::i;:::-;25974:86;26053:6;26048:3;25974:86;:::i;:::-;25967:93;;26084:56;26134:5;26084:56;:::i;:::-;26163:7;26194:1;26179:284;26204:6;26201:1;26198:13;26179:284;;;26280:6;26274:13;26307:63;26366:3;26351:13;26307:63;:::i;:::-;26300:70;;26393:60;26446:6;26393:60;:::i;:::-;26383:70;;26239:224;26226:1;26223;26219:9;26214:14;;26179:284;;;26183:14;26479:3;26472:10;;25880:608;;;25756:732;;;;:::o;26494:831::-;26757:4;26795:3;26784:9;26780:19;26772:27;;26809:71;26877:1;26866:9;26862:17;26853:6;26809:71;:::i;:::-;26890:80;26966:2;26955:9;26951:18;26942:6;26890:80;:::i;:::-;27017:9;27011:4;27007:20;27002:2;26991:9;26987:18;26980:48;27045:108;27148:4;27139:6;27045:108;:::i;:::-;27037:116;;27163:72;27231:2;27220:9;27216:18;27207:6;27163:72;:::i;:::-;27245:73;27313:3;27302:9;27298:19;27289:6;27245:73;:::i;:::-;26494:831;;;;;;;;:::o;27331:177::-;27471:29;27467:1;27459:6;27455:14;27448:53;27331:177;:::o;27514:366::-;27656:3;27677:67;27741:2;27736:3;27677:67;:::i;:::-;27670:74;;27753:93;27842:3;27753:93;:::i;:::-;27871:2;27866:3;27862:12;27855:19;;27514:366;;;:::o;27886:419::-;28052:4;28090:2;28079:9;28075:18;28067:26;;28139:9;28133:4;28129:20;28125:1;28114:9;28110:17;28103:47;28167:131;28293:4;28167:131;:::i;:::-;28159:139;;27886:419;;;:::o

Swarm Source

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