ETH Price: $2,947.23 (-3.84%)
Gas: 2 Gwei

Token

Captain Trump (CTRUMP)
 

Overview

Max Total Supply

420,690,000,000 CTRUMP

Holders

93

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000009 CTRUMP

Value
$0.00
0x836304AB103Bb8d9733fE783c899fc081512edC4
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:
CTRUMP

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
Website : https://captaintrump.io/
X (Twitter) : https://x.com/ctrumptoken
TG : https://t.me/ctrumptoken
**/

pragma solidity 0.8.6;
// SPDX-License-Identifier: MIT

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract CTRUMP 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 => uint256) private _holderLastTransferTimestamp;

    bool public transferDelayEnabled = false;
    address payable private _taxWallet;
    address private constant deadAddress = address(0xdead);

    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=35;
    uint256 private _preventSwapBefore=25;
    uint256 private _buyCount=0;

    string private constant _name = unicode"Captain Trump";
    string private constant _symbol = unicode"CTRUMP";
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;

    uint256 public _maxTxAmount = 4206900000 * 10**_decimals;
    uint256 public _maxWalletSize = 4206900000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 0 * 10**_decimals;
    uint256 public _maxTaxSwap= 2103450000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;    
    bool private swapEnabled = false;

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap && 
                to == uniswapV2Pair && 
                swapEnabled && 
                contractTokenBalance > _taxSwapThreshold && 
                _buyCount>_preventSwapBefore
            ) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 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 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;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

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

    receive() external payable {}

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

    function clearStuckETH() external onlyOwner() {
        uint256 ethBalance=address(this).balance;
        sendETHToFee(ethBalance);
    }
}

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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"changeTaxToFinal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526000600560006101000a81548160ff021916908315150217905550600f6006556014600755600060085560006009556001600a556023600b556019600c556000600d556009600a62000057919062000577565b63fac03320620000689190620006b4565b600e556009600a6200007b919062000577565b63fac033206200008c9190620006b4565b600f556009600a6200009f919062000577565b6000620000ad9190620006b4565b6010556009600a620000c0919062000577565b637d601990620000d19190620006b4565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200011757600080fd5b5060006200012a620004bd60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d8620004bd60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000228919062000577565b6461f313f8806200023a9190620006b4565b600160006200024e620004bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a2620004c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200042f620004bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200048e919062000577565b6461f313f880620004a09190620006b4565b604051620004af9190620004ff565b60405180910390a362000768565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004f98162000715565b82525050565b6000602082019050620005166000830184620004ee565b92915050565b6000808291508390505b60018511156200056e578086048111156200054657620005456200072c565b5b6001851615620005565780820291505b808102905062000566856200075b565b945062000526565b94509492505050565b6000620005848262000715565b915062000591836200071f565b9250620005c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005c8565b905092915050565b600082620005da5760019050620006ad565b81620005ea5760009050620006ad565b81600181146200060357600281146200060e5762000644565b6001915050620006ad565b60ff8411156200062357620006226200072c565b5b8360020a9150848211156200063d576200063c6200072c565b5b50620006ad565b5060208310610133831016604e8410600b84101617156200067e5782820a9050838111156200067857620006776200072c565b5b620006ad565b6200068d84848460016200051c565b92509050818404811115620006a757620006a66200072c565b5b81810290505b9392505050565b6000620006c18262000715565b9150620006ce8362000715565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200070a57620007096200072c565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b61344480620007786000396000f3fe60806040526004361061012e5760003560e01c80637d1db4a5116100ab578063bf474bed1161006f578063bf474bed146103cb578063c876d0b9146103f6578063c9567bf914610421578063dd62ed3e14610438578063e6927f6f14610475578063f88de0c31461049e57610135565b80637d1db4a5146102e25780638da5cb5b1461030d5780638f9a55c01461033857806395d89b4114610363578063a9059cbb1461038e57610135565b8063313ce567116100f2578063313ce5671461023557806351bc3c851461026057806370a0823114610277578063715018a6146102b4578063751039fc146102cb57610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104b5565b60405161015c919061296d565b60405180910390f35b34801561017157600080fd5b5061018c600480360381019061018791906124b4565b6104f2565b6040516101999190612952565b60405180910390f35b3480156101ae57600080fd5b506101b7610510565b6040516101c49190612b2f565b60405180910390f35b3480156101d957600080fd5b506101e2610516565b6040516101ef9190612b2f565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190612461565b61053b565b60405161022c9190612952565b60405180910390f35b34801561024157600080fd5b5061024a610614565b6040516102579190612ba4565b60405180910390f35b34801561026c57600080fd5b5061027561061d565b005b34801561028357600080fd5b5061029e600480360381019061029991906123c7565b6106ba565b6040516102ab9190612b2f565b60405180910390f35b3480156102c057600080fd5b506102c9610703565b005b3480156102d757600080fd5b506102e0610856565b005b3480156102ee57600080fd5b506102f76109a4565b6040516103049190612b2f565b60405180910390f35b34801561031957600080fd5b506103226109aa565b60405161032f9190612884565b60405180910390f35b34801561034457600080fd5b5061034d6109d3565b60405161035a9190612b2f565b60405180910390f35b34801561036f57600080fd5b506103786109d9565b604051610385919061296d565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b091906124b4565b610a16565b6040516103c29190612952565b60405180910390f35b3480156103d757600080fd5b506103e0610a34565b6040516103ed9190612b2f565b60405180910390f35b34801561040257600080fd5b5061040b610a3a565b6040516104189190612952565b60405180910390f35b34801561042d57600080fd5b50610436610a4d565b005b34801561044457600080fd5b5061045f600480360381019061045a9190612421565b610fd1565b60405161046c9190612b2f565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612521565b611058565b005b3480156104aa57600080fd5b506104b3611176565b005b60606040518060400160405280600d81526020017f4361707461696e205472756d7000000000000000000000000000000000000000815250905090565b60006105066104ff61121c565b8484611224565b6001905092915050565b60115481565b60006009600a6105269190612cee565b6461f313f8806105369190612e0c565b905090565b60006105488484846113ef565b6106098461055461121c565b610604856040518060600160405280602881526020016133e760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ba61121c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1d9092919063ffffffff16565b611224565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661065e61121c565b73ffffffffffffffffffffffffffffffffffffffff161461067e57600080fd5b6000610689306106ba565b9050600081111561069e5761069d81611e81565b5b600047905060008111156106b6576106b581612109565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61070b61121c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f90612a6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61085e61121c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e290612a6f565b60405180910390fd5b6009600a6108f99190612cee565b6461f313f8806109099190612e0c565b600e819055506009600a61091d9190612cee565b6461f313f88061092d9190612e0c565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61097d9190612cee565b6461f313f88061098d9190612e0c565b60405161099a9190612b2f565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f435452554d500000000000000000000000000000000000000000000000000000815250905090565b6000610a2a610a2361121c565b84846113ef565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610a5561121c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad990612a6f565b60405180910390fd5b601360149054906101000a900460ff1615610b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2990612b0f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bd130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610bbc9190612cee565b6461f313f880610bcc9190612e0c565b611224565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3957600080fd5b505afa158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7191906123f4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf557600080fd5b505afa158015610d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2d91906123f4565b6040518363ffffffff1660e01b8152600401610d4a92919061289f565b602060405180830381600087803b158015610d6457600080fd5b505af1158015610d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9c91906123f4565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e25306106ba565b600080610e306109aa565b426040518863ffffffff1660e01b8152600401610e52969594939291906128f1565b6060604051808303818588803b158015610e6b57600080fd5b505af1158015610e7f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ea49190612561565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f469291906128c8565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9891906124f4565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61106061121c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e490612a6f565b60405180910390fd5b600082111580156110ff575060008111155b80156111175750601360149054906101000a900460ff165b611156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114d90612a0f565b60405180910390fd5b816006819055508060078190555081600881905550806009819055505050565b61117e61121c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612a6f565b60405180910390fd5b600047905061121981612109565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b90612aef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb906129cf565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e29190612b2f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612aaf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c69061298f565b60405180910390fd5b60008111611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150990612a8f565b60405180910390fd5b600061151c6109aa565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561158a575061155a6109aa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b6057600560009054906101000a900460ff161561171c57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116505750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561171b5743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90612a2f565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117c75750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561181d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118d857600e54821115611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185e906129af565b60405180910390fd5b600f5482611874856106ba565b61187e9190612c14565b11156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b690612acf565b60405180910390fd5b600d60008154809291906118d290612f34565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561196157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119a9576119a26064611994600b54600d541161198157600754611985565b6009545b8561217590919063ffffffff16565b6121f090919063ffffffff16565b9050611a77565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a3257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a7657611a736064611a65600a54600d5411611a5257600654611a56565b6008545b8561217590919063ffffffff16565b6121f090919063ffffffff16565b90505b5b6000611a82306106ba565b9050601360159054906101000a900460ff16158015611aee5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b065750601360169054906101000a900460ff165b8015611b13575060105481115b8015611b225750600c54600d54115b15611b5e57611b44611b3f84611b3a8460115461223a565b61223a565b611e81565b60004790506000811115611b5c57611b5b47612109565b5b505b505b6000811115611c6457611bbb81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5b9190612b2f565b60405180910390a35b611cb682600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d5d611d0f82846122b190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e0284866122b190919063ffffffff16565b604051611e0f9190612b2f565b60405180910390a350505050565b6000838311158290611e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5c919061296d565b60405180910390fd5b5060008385611e749190612e66565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611eb957611eb861300a565b5b604051908082528060200260200182016040528015611ee75781602001602082028036833780820191505090505b5090503081600081518110611eff57611efe612fdb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611fa157600080fd5b505afa158015611fb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd991906123f4565b81600181518110611fed57611fec612fdb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061205430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611224565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120b8959493929190612b4a565b600060405180830381600087803b1580156120d257600080fd5b505af11580156120e6573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612171573d6000803e3d6000fd5b5050565b60008083141561218857600090506121ea565b600082846121969190612e0c565b90508284826121a59190612c6a565b146121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc90612a4f565b60405180910390fd5b809150505b92915050565b600061223283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122fb565b905092915050565b6000818311612249578261224b565b815b905092915050565b60008082846122629190612c14565b9050838110156122a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229e906129ef565b60405180910390fd5b8091505092915050565b60006122f383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e1d565b905092915050565b60008083118290612342576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612339919061296d565b60405180910390fd5b50600083856123519190612c6a565b9050809150509392505050565b60008135905061236d816133a1565b92915050565b600081519050612382816133a1565b92915050565b600081519050612397816133b8565b92915050565b6000813590506123ac816133cf565b92915050565b6000815190506123c1816133cf565b92915050565b6000602082840312156123dd576123dc613039565b5b60006123eb8482850161235e565b91505092915050565b60006020828403121561240a57612409613039565b5b600061241884828501612373565b91505092915050565b6000806040838503121561243857612437613039565b5b60006124468582860161235e565b92505060206124578582860161235e565b9150509250929050565b60008060006060848603121561247a57612479613039565b5b60006124888682870161235e565b93505060206124998682870161235e565b92505060406124aa8682870161239d565b9150509250925092565b600080604083850312156124cb576124ca613039565b5b60006124d98582860161235e565b92505060206124ea8582860161239d565b9150509250929050565b60006020828403121561250a57612509613039565b5b600061251884828501612388565b91505092915050565b6000806040838503121561253857612537613039565b5b60006125468582860161239d565b92505060206125578582860161239d565b9150509250929050565b60008060006060848603121561257a57612579613039565b5b6000612588868287016123b2565b9350506020612599868287016123b2565b92505060406125aa868287016123b2565b9150509250925092565b60006125c083836125cc565b60208301905092915050565b6125d581612e9a565b82525050565b6125e481612e9a565b82525050565b60006125f582612bcf565b6125ff8185612bf2565b935061260a83612bbf565b8060005b8381101561263b57815161262288826125b4565b975061262d83612be5565b92505060018101905061260e565b5085935050505092915050565b61265181612eac565b82525050565b61266081612eef565b82525050565b600061267182612bda565b61267b8185612c03565b935061268b818560208601612f01565b6126948161303e565b840191505092915050565b60006126ac602383612c03565b91506126b78261305c565b604082019050919050565b60006126cf601983612c03565b91506126da826130ab565b602082019050919050565b60006126f2602283612c03565b91506126fd826130d4565b604082019050919050565b6000612715601b83612c03565b915061272082613123565b602082019050919050565b6000612738600d83612c03565b91506127438261314c565b602082019050919050565b600061275b604983612c03565b915061276682613175565b606082019050919050565b600061277e602183612c03565b9150612789826131ea565b604082019050919050565b60006127a1602083612c03565b91506127ac82613239565b602082019050919050565b60006127c4602983612c03565b91506127cf82613262565b604082019050919050565b60006127e7602583612c03565b91506127f2826132b1565b604082019050919050565b600061280a601a83612c03565b915061281582613300565b602082019050919050565b600061282d602483612c03565b915061283882613329565b604082019050919050565b6000612850601783612c03565b915061285b82613378565b602082019050919050565b61286f81612ed8565b82525050565b61287e81612ee2565b82525050565b600060208201905061289960008301846125db565b92915050565b60006040820190506128b460008301856125db565b6128c160208301846125db565b9392505050565b60006040820190506128dd60008301856125db565b6128ea6020830184612866565b9392505050565b600060c08201905061290660008301896125db565b6129136020830188612866565b6129206040830187612657565b61292d6060830186612657565b61293a60808301856125db565b61294760a0830184612866565b979650505050505050565b60006020820190506129676000830184612648565b92915050565b600060208201905081810360008301526129878184612666565b905092915050565b600060208201905081810360008301526129a88161269f565b9050919050565b600060208201905081810360008301526129c8816126c2565b9050919050565b600060208201905081810360008301526129e8816126e5565b9050919050565b60006020820190508181036000830152612a0881612708565b9050919050565b60006020820190508181036000830152612a288161272b565b9050919050565b60006020820190508181036000830152612a488161274e565b9050919050565b60006020820190508181036000830152612a6881612771565b9050919050565b60006020820190508181036000830152612a8881612794565b9050919050565b60006020820190508181036000830152612aa8816127b7565b9050919050565b60006020820190508181036000830152612ac8816127da565b9050919050565b60006020820190508181036000830152612ae8816127fd565b9050919050565b60006020820190508181036000830152612b0881612820565b9050919050565b60006020820190508181036000830152612b2881612843565b9050919050565b6000602082019050612b446000830184612866565b92915050565b600060a082019050612b5f6000830188612866565b612b6c6020830187612657565b8181036040830152612b7e81866125ea565b9050612b8d60608301856125db565b612b9a6080830184612866565b9695505050505050565b6000602082019050612bb96000830184612875565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612c1f82612ed8565b9150612c2a83612ed8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c5f57612c5e612f7d565b5b828201905092915050565b6000612c7582612ed8565b9150612c8083612ed8565b925082612c9057612c8f612fac565b5b828204905092915050565b6000808291508390505b6001851115612ce557808604811115612cc157612cc0612f7d565b5b6001851615612cd05780820291505b8081029050612cde8561304f565b9450612ca5565b94509492505050565b6000612cf982612ed8565b9150612d0483612ee2565b9250612d317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d39565b905092915050565b600082612d495760019050612e05565b81612d575760009050612e05565b8160018114612d6d5760028114612d7757612da6565b6001915050612e05565b60ff841115612d8957612d88612f7d565b5b8360020a915084821115612da057612d9f612f7d565b5b50612e05565b5060208310610133831016604e8410600b8410161715612ddb5782820a905083811115612dd657612dd5612f7d565b5b612e05565b612de88484846001612c9b565b92509050818404811115612dff57612dfe612f7d565b5b81810290505b9392505050565b6000612e1782612ed8565b9150612e2283612ed8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e5b57612e5a612f7d565b5b828202905092915050565b6000612e7182612ed8565b9150612e7c83612ed8565b925082821015612e8f57612e8e612f7d565b5b828203905092915050565b6000612ea582612eb8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612efa82612ed8565b9050919050565b60005b83811015612f1f578082015181840152602081019050612f04565b83811115612f2e576000848401525b50505050565b6000612f3f82612ed8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f7257612f71612f7d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6133aa81612e9a565b81146133b557600080fd5b50565b6133c181612eac565b81146133cc57600080fd5b50565b6133d881612ed8565b81146133e357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220956405abbe1dff2bd9e9ae4ad1f3407fa3a35a378f15205a565a9e6f1a211eaa64736f6c63430008060033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80637d1db4a5116100ab578063bf474bed1161006f578063bf474bed146103cb578063c876d0b9146103f6578063c9567bf914610421578063dd62ed3e14610438578063e6927f6f14610475578063f88de0c31461049e57610135565b80637d1db4a5146102e25780638da5cb5b1461030d5780638f9a55c01461033857806395d89b4114610363578063a9059cbb1461038e57610135565b8063313ce567116100f2578063313ce5671461023557806351bc3c851461026057806370a0823114610277578063715018a6146102b4578063751039fc146102cb57610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104b5565b60405161015c919061296d565b60405180910390f35b34801561017157600080fd5b5061018c600480360381019061018791906124b4565b6104f2565b6040516101999190612952565b60405180910390f35b3480156101ae57600080fd5b506101b7610510565b6040516101c49190612b2f565b60405180910390f35b3480156101d957600080fd5b506101e2610516565b6040516101ef9190612b2f565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190612461565b61053b565b60405161022c9190612952565b60405180910390f35b34801561024157600080fd5b5061024a610614565b6040516102579190612ba4565b60405180910390f35b34801561026c57600080fd5b5061027561061d565b005b34801561028357600080fd5b5061029e600480360381019061029991906123c7565b6106ba565b6040516102ab9190612b2f565b60405180910390f35b3480156102c057600080fd5b506102c9610703565b005b3480156102d757600080fd5b506102e0610856565b005b3480156102ee57600080fd5b506102f76109a4565b6040516103049190612b2f565b60405180910390f35b34801561031957600080fd5b506103226109aa565b60405161032f9190612884565b60405180910390f35b34801561034457600080fd5b5061034d6109d3565b60405161035a9190612b2f565b60405180910390f35b34801561036f57600080fd5b506103786109d9565b604051610385919061296d565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b091906124b4565b610a16565b6040516103c29190612952565b60405180910390f35b3480156103d757600080fd5b506103e0610a34565b6040516103ed9190612b2f565b60405180910390f35b34801561040257600080fd5b5061040b610a3a565b6040516104189190612952565b60405180910390f35b34801561042d57600080fd5b50610436610a4d565b005b34801561044457600080fd5b5061045f600480360381019061045a9190612421565b610fd1565b60405161046c9190612b2f565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612521565b611058565b005b3480156104aa57600080fd5b506104b3611176565b005b60606040518060400160405280600d81526020017f4361707461696e205472756d7000000000000000000000000000000000000000815250905090565b60006105066104ff61121c565b8484611224565b6001905092915050565b60115481565b60006009600a6105269190612cee565b6461f313f8806105369190612e0c565b905090565b60006105488484846113ef565b6106098461055461121c565b610604856040518060600160405280602881526020016133e760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ba61121c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1d9092919063ffffffff16565b611224565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661065e61121c565b73ffffffffffffffffffffffffffffffffffffffff161461067e57600080fd5b6000610689306106ba565b9050600081111561069e5761069d81611e81565b5b600047905060008111156106b6576106b581612109565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61070b61121c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f90612a6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61085e61121c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e290612a6f565b60405180910390fd5b6009600a6108f99190612cee565b6461f313f8806109099190612e0c565b600e819055506009600a61091d9190612cee565b6461f313f88061092d9190612e0c565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61097d9190612cee565b6461f313f88061098d9190612e0c565b60405161099a9190612b2f565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f435452554d500000000000000000000000000000000000000000000000000000815250905090565b6000610a2a610a2361121c565b84846113ef565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610a5561121c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad990612a6f565b60405180910390fd5b601360149054906101000a900460ff1615610b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2990612b0f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bd130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610bbc9190612cee565b6461f313f880610bcc9190612e0c565b611224565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3957600080fd5b505afa158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7191906123f4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf557600080fd5b505afa158015610d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2d91906123f4565b6040518363ffffffff1660e01b8152600401610d4a92919061289f565b602060405180830381600087803b158015610d6457600080fd5b505af1158015610d78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9c91906123f4565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e25306106ba565b600080610e306109aa565b426040518863ffffffff1660e01b8152600401610e52969594939291906128f1565b6060604051808303818588803b158015610e6b57600080fd5b505af1158015610e7f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ea49190612561565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f469291906128c8565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9891906124f4565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61106061121c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e490612a6f565b60405180910390fd5b600082111580156110ff575060008111155b80156111175750601360149054906101000a900460ff165b611156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114d90612a0f565b60405180910390fd5b816006819055508060078190555081600881905550806009819055505050565b61117e61121c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612a6f565b60405180910390fd5b600047905061121981612109565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b90612aef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb906129cf565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e29190612b2f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612aaf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c69061298f565b60405180910390fd5b60008111611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150990612a8f565b60405180910390fd5b600061151c6109aa565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561158a575061155a6109aa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b6057600560009054906101000a900460ff161561171c57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116505750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561171b5743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90612a2f565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117c75750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561181d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118d857600e54821115611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185e906129af565b60405180910390fd5b600f5482611874856106ba565b61187e9190612c14565b11156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b690612acf565b60405180910390fd5b600d60008154809291906118d290612f34565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561196157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119a9576119a26064611994600b54600d541161198157600754611985565b6009545b8561217590919063ffffffff16565b6121f090919063ffffffff16565b9050611a77565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a3257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a7657611a736064611a65600a54600d5411611a5257600654611a56565b6008545b8561217590919063ffffffff16565b6121f090919063ffffffff16565b90505b5b6000611a82306106ba565b9050601360159054906101000a900460ff16158015611aee5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b065750601360169054906101000a900460ff165b8015611b13575060105481115b8015611b225750600c54600d54115b15611b5e57611b44611b3f84611b3a8460115461223a565b61223a565b611e81565b60004790506000811115611b5c57611b5b47612109565b5b505b505b6000811115611c6457611bbb81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5b9190612b2f565b60405180910390a35b611cb682600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d5d611d0f82846122b190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225390919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e0284866122b190919063ffffffff16565b604051611e0f9190612b2f565b60405180910390a350505050565b6000838311158290611e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5c919061296d565b60405180910390fd5b5060008385611e749190612e66565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611eb957611eb861300a565b5b604051908082528060200260200182016040528015611ee75781602001602082028036833780820191505090505b5090503081600081518110611eff57611efe612fdb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611fa157600080fd5b505afa158015611fb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd991906123f4565b81600181518110611fed57611fec612fdb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061205430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611224565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120b8959493929190612b4a565b600060405180830381600087803b1580156120d257600080fd5b505af11580156120e6573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612171573d6000803e3d6000fd5b5050565b60008083141561218857600090506121ea565b600082846121969190612e0c565b90508284826121a59190612c6a565b146121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc90612a4f565b60405180910390fd5b809150505b92915050565b600061223283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122fb565b905092915050565b6000818311612249578261224b565b815b905092915050565b60008082846122629190612c14565b9050838110156122a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229e906129ef565b60405180910390fd5b8091505092915050565b60006122f383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e1d565b905092915050565b60008083118290612342576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612339919061296d565b60405180910390fd5b50600083856123519190612c6a565b9050809150509392505050565b60008135905061236d816133a1565b92915050565b600081519050612382816133a1565b92915050565b600081519050612397816133b8565b92915050565b6000813590506123ac816133cf565b92915050565b6000815190506123c1816133cf565b92915050565b6000602082840312156123dd576123dc613039565b5b60006123eb8482850161235e565b91505092915050565b60006020828403121561240a57612409613039565b5b600061241884828501612373565b91505092915050565b6000806040838503121561243857612437613039565b5b60006124468582860161235e565b92505060206124578582860161235e565b9150509250929050565b60008060006060848603121561247a57612479613039565b5b60006124888682870161235e565b93505060206124998682870161235e565b92505060406124aa8682870161239d565b9150509250925092565b600080604083850312156124cb576124ca613039565b5b60006124d98582860161235e565b92505060206124ea8582860161239d565b9150509250929050565b60006020828403121561250a57612509613039565b5b600061251884828501612388565b91505092915050565b6000806040838503121561253857612537613039565b5b60006125468582860161239d565b92505060206125578582860161239d565b9150509250929050565b60008060006060848603121561257a57612579613039565b5b6000612588868287016123b2565b9350506020612599868287016123b2565b92505060406125aa868287016123b2565b9150509250925092565b60006125c083836125cc565b60208301905092915050565b6125d581612e9a565b82525050565b6125e481612e9a565b82525050565b60006125f582612bcf565b6125ff8185612bf2565b935061260a83612bbf565b8060005b8381101561263b57815161262288826125b4565b975061262d83612be5565b92505060018101905061260e565b5085935050505092915050565b61265181612eac565b82525050565b61266081612eef565b82525050565b600061267182612bda565b61267b8185612c03565b935061268b818560208601612f01565b6126948161303e565b840191505092915050565b60006126ac602383612c03565b91506126b78261305c565b604082019050919050565b60006126cf601983612c03565b91506126da826130ab565b602082019050919050565b60006126f2602283612c03565b91506126fd826130d4565b604082019050919050565b6000612715601b83612c03565b915061272082613123565b602082019050919050565b6000612738600d83612c03565b91506127438261314c565b602082019050919050565b600061275b604983612c03565b915061276682613175565b606082019050919050565b600061277e602183612c03565b9150612789826131ea565b604082019050919050565b60006127a1602083612c03565b91506127ac82613239565b602082019050919050565b60006127c4602983612c03565b91506127cf82613262565b604082019050919050565b60006127e7602583612c03565b91506127f2826132b1565b604082019050919050565b600061280a601a83612c03565b915061281582613300565b602082019050919050565b600061282d602483612c03565b915061283882613329565b604082019050919050565b6000612850601783612c03565b915061285b82613378565b602082019050919050565b61286f81612ed8565b82525050565b61287e81612ee2565b82525050565b600060208201905061289960008301846125db565b92915050565b60006040820190506128b460008301856125db565b6128c160208301846125db565b9392505050565b60006040820190506128dd60008301856125db565b6128ea6020830184612866565b9392505050565b600060c08201905061290660008301896125db565b6129136020830188612866565b6129206040830187612657565b61292d6060830186612657565b61293a60808301856125db565b61294760a0830184612866565b979650505050505050565b60006020820190506129676000830184612648565b92915050565b600060208201905081810360008301526129878184612666565b905092915050565b600060208201905081810360008301526129a88161269f565b9050919050565b600060208201905081810360008301526129c8816126c2565b9050919050565b600060208201905081810360008301526129e8816126e5565b9050919050565b60006020820190508181036000830152612a0881612708565b9050919050565b60006020820190508181036000830152612a288161272b565b9050919050565b60006020820190508181036000830152612a488161274e565b9050919050565b60006020820190508181036000830152612a6881612771565b9050919050565b60006020820190508181036000830152612a8881612794565b9050919050565b60006020820190508181036000830152612aa8816127b7565b9050919050565b60006020820190508181036000830152612ac8816127da565b9050919050565b60006020820190508181036000830152612ae8816127fd565b9050919050565b60006020820190508181036000830152612b0881612820565b9050919050565b60006020820190508181036000830152612b2881612843565b9050919050565b6000602082019050612b446000830184612866565b92915050565b600060a082019050612b5f6000830188612866565b612b6c6020830187612657565b8181036040830152612b7e81866125ea565b9050612b8d60608301856125db565b612b9a6080830184612866565b9695505050505050565b6000602082019050612bb96000830184612875565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612c1f82612ed8565b9150612c2a83612ed8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c5f57612c5e612f7d565b5b828201905092915050565b6000612c7582612ed8565b9150612c8083612ed8565b925082612c9057612c8f612fac565b5b828204905092915050565b6000808291508390505b6001851115612ce557808604811115612cc157612cc0612f7d565b5b6001851615612cd05780820291505b8081029050612cde8561304f565b9450612ca5565b94509492505050565b6000612cf982612ed8565b9150612d0483612ee2565b9250612d317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d39565b905092915050565b600082612d495760019050612e05565b81612d575760009050612e05565b8160018114612d6d5760028114612d7757612da6565b6001915050612e05565b60ff841115612d8957612d88612f7d565b5b8360020a915084821115612da057612d9f612f7d565b5b50612e05565b5060208310610133831016604e8410600b8410161715612ddb5782820a905083811115612dd657612dd5612f7d565b5b612e05565b612de88484846001612c9b565b92509050818404811115612dff57612dfe612f7d565b5b81810290505b9392505050565b6000612e1782612ed8565b9150612e2283612ed8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e5b57612e5a612f7d565b5b828202905092915050565b6000612e7182612ed8565b9150612e7c83612ed8565b925082821015612e8f57612e8e612f7d565b5b828203905092915050565b6000612ea582612eb8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612efa82612ed8565b9050919050565b60005b83811015612f1f578082015181840152602081019050612f04565b83811115612f2e576000848401525b50505050565b6000612f3f82612ed8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f7257612f71612f7d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6133aa81612e9a565b81146133b557600080fd5b50565b6133c181612eac565b81146133cc57600080fd5b50565b6133d881612ed8565b81146133e357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220956405abbe1dff2bd9e9ae4ad1f3407fa3a35a378f15205a565a9e6f1a211eaa64736f6c63430008060033

Deployed Bytecode Sourcemap

3590:8837:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5611:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6293:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4830:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6015:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6617:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5924:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11928:348;;;;;;;;;;;;;:::i;:::-;;5797:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2671:148;;;;;;;;;;;;;:::i;:::-;;10591:196;;;;;;;;;;;;;:::i;:::-;;4644:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2457:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4707:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5702:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6118:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4772:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3937:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10897:671;;;;;;;;;;;;;:::i;:::-;;6462:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11580:303;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12284:140;;;;;;;;;;;;;:::i;:::-;;5611:83;5648:13;5681:5;;;;;;;;;;;;;;;;;5674:12;;5611:83;:::o;6293:161::-;6368:4;6385:39;6394:12;:10;:12::i;:::-;6408:7;6417:6;6385:8;:39::i;:::-;6442:4;6435:11;;6293:161;;;;:::o;4830:54::-;;;;:::o;6015:95::-;6068:7;4564:1;4622:2;:13;;;;:::i;:::-;4607:12;:28;;;;:::i;:::-;6088:14;;6015:95;:::o;6617:313::-;6715:4;6732:36;6742:6;6750:9;6761:6;6732:9;:36::i;:::-;6779:121;6788:6;6796:12;:10;:12::i;:::-;6810:89;6848:6;6810:89;;;;;;;;;;;;;;;;;:11;:19;6822:6;6810:19;;;;;;;;;;;;;;;:33;6830:12;:10;:12::i;:::-;6810:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6779:8;:121::i;:::-;6918:4;6911:11;;6617:313;;;;;:::o;5924:83::-;5965:5;4564:1;5983:16;;5924:83;:::o;11928:348::-;11992:10;;;;;;;;;;;11978:24;;:12;:10;:12::i;:::-;:24;;;11970:33;;;;;;12014:20;12035:24;12053:4;12035:9;:24::i;:::-;12014:45;;12086:1;12073:12;:14;12070:73;;;12101:30;12118:12;12101:16;:30::i;:::-;12070:73;12153:18;12172:21;12153:40;;12218:1;12207:10;:12;12204:65;;;12233:24;12246:10;12233:12;:24::i;:::-;12204:65;11959:317;;11928:348::o;5797:119::-;5863:7;5890:9;:18;5900:7;5890:18;;;;;;;;;;;;;;;;5883:25;;5797:119;;;:::o;2671:148::-;2594:12;:10;:12::i;:::-;2584:22;;:6;;;;;;;;;;:22;;;2576:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2778:1:::1;2741:40;;2762:6;::::0;::::1;;;;;;;;2741:40;;;;;;;;;;;;2809:1;2792:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2671:148::o:0;10591:196::-;2594:12;:10;:12::i;:::-;2584:22;;:6;;;;;;;;;;:22;;;2576:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4564:1:::1;4622:2;:13;;;;:::i;:::-;4607:12;:28;;;;:::i;:::-;10644:12;:22;;;;4564:1;4622:2;:13;;;;:::i;:::-;4607:12;:28;;;;:::i;:::-;10677:14;:22;;;;10731:5;10710:20;;:26;;;;;;;;;;;;;;;;;;10752:27;4564:1;4622:2;:13;;;;:::i;:::-;4607:12;:28;;;;:::i;:::-;10752:27;;;;;;:::i;:::-;;;;;;;;10591:196::o:0;4644:56::-;;;;:::o;2457:79::-;2495:7;2522:6;;;;;;;;;;;2515:13;;2457:79;:::o;4707:58::-;;;;:::o;5702:87::-;5741:13;5774:7;;;;;;;;;;;;;;;;;5767:14;;5702:87;:::o;6118:167::-;6196:4;6213:42;6223:12;:10;:12::i;:::-;6237:9;6248:6;6213:9;:42::i;:::-;6273:4;6266:11;;6118:167;;;;:::o;4772:51::-;;;;:::o;3937:40::-;;;;;;;;;;;;;:::o;10897:671::-;2594:12;:10;:12::i;:::-;2584:22;;:6;;;;;;;;;;:22;;;2576:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10961:11:::1;;;;;;;;;;;10960:12;10952:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11047:42;11010:15;;:80;;;;;;;;;;;;;;;;;;11101:58;11118:4;11133:15;;;;;;;;;;;4564:1;4622:2;:13;;;;:::i;:::-;4607:12;:28;;;;:::i;:::-;11101:8;:58::i;:::-;11204:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11186:55;;;11250:4;11257:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11186:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11170:13;;:110;;;;;;;;;;;;;;;;;;11291:15;;;;;;;;;;;:31;;;11330:21;11361:4;11367:24;11385:4;11367:9;:24::i;:::-;11392:1;11394::::0;11396:7:::1;:5;:7::i;:::-;11404:15;11291:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11438:13;;;;;;;;;;;11431:29;;;11469:15;;;;;;;;;;;11487:14;11431:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11527:4;11513:11;;:18;;;;;;;;;;;;;;;;;;11556:4;11542:11;;:18;;;;;;;;;;;;;;;;;;10897:671::o:0;6462:143::-;6543:7;6570:11;:18;6582:5;6570:18;;;;;;;;;;;;;;;:27;6589:7;6570:27;;;;;;;;;;;;;;;;6563:34;;6462:143;;;;:::o;11580:303::-;2594:12;:10;:12::i;:::-;2584:22;;:6;;;;;;;;;;:22;;;2576:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11689:1:::1;11679:6;:11;;:27;;;;;11705:1;11694:7;:12;;11679:27;:42;;;;;11710:11;;;;;;;;;;;11679:42;11671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11767:6;11750:14;:23;;;;11802:7;11784:15;:25;;;;11835:6;11820:12;:21;;;;11868:7;11852:13;:23;;;;11580:303:::0;;:::o;12284:140::-;2594:12;:10;:12::i;:::-;2584:22;;:6;;;;;;;;;;:22;;;2576:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12341:18:::1;12360:21;12341:40;;12392:24;12405:10;12392:12;:24::i;:::-;12330:94;12284:140::o:0;212:98::-;265:7;292:10;285:17;;212:98;:::o;6938:335::-;7048:1;7031:19;;:5;:19;;;;7023:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7129:1;7110:21;;:7;:21;;;;7102:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7211:6;7181:11;:18;7193:5;7181:18;;;;;;;;;;;;;;;:27;7200:7;7181:27;;;;;;;;;;;;;;;:36;;;;7249:7;7233:32;;7242:5;7233:32;;;7258:6;7233:32;;;;;;:::i;:::-;;;;;;;;6938:335;;;:::o;7281:2700::-;7385:1;7369:18;;:4;:18;;;;7361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7462:1;7448:16;;:2;:16;;;;7440:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7532:1;7523:6;:10;7515:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7592:17;7636:7;:5;:7::i;:::-;7628:15;;:4;:15;;;;:32;;;;;7653:7;:5;:7::i;:::-;7647:13;;:2;:13;;;;7628:32;7624:2001;;;7683:20;;;;;;;;;;;7679:508;;;7744:15;;;;;;;;;;;7730:30;;:2;:30;;;;:62;;;;;7778:13;;;;;;;;;;;7764:28;;:2;:28;;;;7730:62;7726:444;;;7928:12;7855:28;:39;7884:9;7855:39;;;;;;;;;;;;;;;;:85;7819:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8136:12;8094:28;:39;8123:9;8094:39;;;;;;;;;;;;;;;:54;;;;7726:444;7679:508;8215:13;;;;;;;;;;;8207:21;;:4;:21;;;:55;;;;;8246:15;;;;;;;;;;;8232:30;;:2;:30;;;;8207:55;:83;;;;;8268:18;:22;8287:2;8268:22;;;;;;;;;;;;;;;;;;;;;;;;;8266:24;8207:83;8203:313;;;8330:12;;8320:6;:22;;8312:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8425:14;;8415:6;8399:13;8409:2;8399:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8391:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8489:9;;:11;;;;;;;;;:::i;:::-;;;;;;8203:313;8543:13;;;;;;;;;;;8537:19;;:2;:19;;;:43;;;;;8575:4;8560:20;;:4;:20;;;;8537:43;8532:471;;;8613:138;8729:3;8613:111;8654:16;;8644:9;;:26;8643:80;;8708:15;;8643:80;;;8694:13;;8643:80;8613:6;:10;;:111;;;;:::i;:::-;:115;;:138;;;;:::i;:::-;8601:150;;8532:471;;;8785:13;;;;;;;;;;;8777:21;;:4;:21;;;:43;;;;;8815:4;8802:18;;:2;:18;;;;8777:43;8773:230;;;8853:134;8965:3;8853:107;8893:15;;8883:9;;:25;8882:77;;8945:14;;8882:77;;;8932:12;;8882:77;8853:6;:10;;:107;;;;:::i;:::-;:111;;:134;;;;:::i;:::-;8841:146;;8773:230;8532:471;9019:28;9050:24;9068:4;9050:9;:24::i;:::-;9019:55;;9112:6;;;;;;;;;;;9111:7;:48;;;;;9146:13;;;;;;;;;;;9140:19;;:2;:19;;;9111:48;:81;;;;;9181:11;;;;;;;;;;;9111:81;:143;;;;;9237:17;;9214:20;:40;9111:143;:193;;;;;9286:18;;9276:9;;:28;9111:193;9089:525;;;9339:67;9356:49;9360:6;9367:37;9371:20;9392:11;;9367:3;:37::i;:::-;9356:3;:49::i;:::-;9339:16;:67::i;:::-;9425:26;9454:21;9425:50;;9518:1;9497:18;:22;9494:105;;;9544:35;9557:21;9544:12;:35::i;:::-;9494:105;9320:294;9089:525;7662:1963;7624:2001;9650:1;9640:9;:11;9637:161;;;9690:39;9719:9;9690;:24;9708:4;9690:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9665:9;:24;9683:4;9665:24;;;;;;;;;;;;;;;:64;;;;9770:4;9747:39;;9756:4;9747:39;;;9776:9;9747:39;;;;;;:::i;:::-;;;;;;;;9637:161;9824:27;9844:6;9824:9;:15;9834:4;9824:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9808:9;:15;9818:4;9808:15;;;;;;;;;;;;;;;:43;;;;9876:40;9894:21;9905:9;9894:6;:10;;:21;;;;:::i;:::-;9876:9;:13;9886:2;9876:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9862:9;:13;9872:2;9862:13;;;;;;;;;;;;;;;:54;;;;9947:2;9932:41;;9941:4;9932:41;;;9951:21;9962:9;9951:6;:10;;:21;;;;:::i;:::-;9932:41;;;;;;:::i;:::-;;;;;;;;7350:2631;7281:2700;;;:::o;1349:190::-;1435:7;1468:1;1463;:6;;1471:12;1455:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1495:9;1511:1;1507;:5;;;;:::i;:::-;1495:17;;1530:1;1523:8;;;1349:190;;;;;:::o;10097:486::-;5181:4;5172:6;;:13;;;;;;;;;;;;;;;;;;10176:21:::1;10214:1;10200:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10176:40;;10245:4;10227;10232:1;10227:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10271:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10261:4;10266:1;10261:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10304:63;10321:4;10336:15;;;;;;;;;;;10354:12;10304:8;:63::i;:::-;10378:15;;;;;;;;;;;:66;;;10459:12;10486:1;10502:4;10529;10549:15;10378:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10165:418;5217:5:::0;5208:6;;:14;;;;;;;;;;;;;;;;;;10097:486;:::o;10795:94::-;10853:10;;;;;;;;;;;:19;;:28;10873:7;10853:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10795:94;:::o;1547:246::-;1605:7;1634:1;1629;:6;1625:47;;;1659:1;1652:8;;;;1625:47;1682:9;1698:1;1694;:5;;;;:::i;:::-;1682:17;;1727:1;1722;1718;:5;;;;:::i;:::-;:10;1710:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1784:1;1777:8;;;1547:246;;;;;:::o;1801:132::-;1859:7;1886:39;1890:1;1893;1886:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1879:46;;1801:132;;;;:::o;9991:98::-;10048:7;10075:1;10073;:3;10072:9;;10080:1;10072:9;;;10078:1;10072:9;10065:16;;9991:98;;;;:::o;1018:179::-;1076:7;1096:9;1112:1;1108;:5;;;;:::i;:::-;1096:17;;1137:1;1132;:6;;1124:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1188:1;1181:8;;;1018:179;;;;:::o;1205:136::-;1263:7;1290:43;1294:1;1297;1290:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1283:50;;1205:136;;;;:::o;1941:189::-;2027:7;2059:1;2055;:5;2062:12;2047:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2086:9;2102:1;2098;:5;;;;:::i;:::-;2086:17;;2121:1;2114:8;;;1941:189;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:137::-;355:5;386:6;380:13;371:22;;402:30;426:5;402:30;:::i;:::-;361:77;;;;:::o;444:139::-;490:5;528:6;515:20;506:29;;544:33;571:5;544:33;:::i;:::-;496:87;;;;:::o;589:143::-;646:5;677:6;671:13;662:22;;693:33;720:5;693:33;:::i;:::-;652:80;;;;:::o;738:329::-;797:6;846:2;834:9;825:7;821:23;817:32;814:2;;;852:79;;:::i;:::-;814:2;972:1;997:53;1042:7;1033:6;1022:9;1018:22;997:53;:::i;:::-;987:63;;943:117;804:263;;;;:::o;1073:351::-;1143:6;1192:2;1180:9;1171:7;1167:23;1163:32;1160:2;;;1198:79;;:::i;:::-;1160:2;1318:1;1343:64;1399:7;1390:6;1379:9;1375:22;1343:64;:::i;:::-;1333:74;;1289:128;1150:274;;;;:::o;1430:474::-;1498:6;1506;1555:2;1543:9;1534:7;1530:23;1526:32;1523:2;;;1561:79;;:::i;:::-;1523:2;1681:1;1706:53;1751:7;1742:6;1731:9;1727:22;1706:53;:::i;:::-;1696:63;;1652:117;1808:2;1834:53;1879:7;1870:6;1859:9;1855:22;1834:53;:::i;:::-;1824:63;;1779:118;1513:391;;;;;:::o;1910:619::-;1987:6;1995;2003;2052:2;2040:9;2031:7;2027:23;2023:32;2020:2;;;2058:79;;:::i;:::-;2020:2;2178:1;2203:53;2248:7;2239:6;2228:9;2224:22;2203:53;:::i;:::-;2193:63;;2149:117;2305:2;2331:53;2376:7;2367:6;2356:9;2352:22;2331:53;:::i;:::-;2321:63;;2276:118;2433:2;2459:53;2504:7;2495:6;2484:9;2480:22;2459:53;:::i;:::-;2449:63;;2404:118;2010:519;;;;;:::o;2535:474::-;2603:6;2611;2660:2;2648:9;2639:7;2635:23;2631:32;2628:2;;;2666:79;;:::i;:::-;2628:2;2786:1;2811:53;2856:7;2847:6;2836:9;2832:22;2811:53;:::i;:::-;2801:63;;2757:117;2913:2;2939:53;2984:7;2975:6;2964:9;2960:22;2939:53;:::i;:::-;2929:63;;2884:118;2618:391;;;;;:::o;3015:345::-;3082:6;3131:2;3119:9;3110:7;3106:23;3102:32;3099:2;;;3137:79;;:::i;:::-;3099:2;3257:1;3282:61;3335:7;3326:6;3315:9;3311:22;3282:61;:::i;:::-;3272:71;;3228:125;3089:271;;;;:::o;3366:474::-;3434:6;3442;3491:2;3479:9;3470:7;3466:23;3462:32;3459:2;;;3497:79;;:::i;:::-;3459:2;3617:1;3642:53;3687:7;3678:6;3667:9;3663:22;3642:53;:::i;:::-;3632:63;;3588:117;3744:2;3770:53;3815:7;3806:6;3795:9;3791:22;3770:53;:::i;:::-;3760:63;;3715:118;3449:391;;;;;:::o;3846:663::-;3934:6;3942;3950;3999:2;3987:9;3978:7;3974:23;3970:32;3967:2;;;4005:79;;:::i;:::-;3967:2;4125:1;4150:64;4206:7;4197:6;4186:9;4182:22;4150:64;:::i;:::-;4140:74;;4096:128;4263:2;4289:64;4345:7;4336:6;4325:9;4321:22;4289:64;:::i;:::-;4279:74;;4234:129;4402:2;4428:64;4484:7;4475:6;4464:9;4460:22;4428:64;:::i;:::-;4418:74;;4373:129;3957:552;;;;;:::o;4515:179::-;4584:10;4605:46;4647:3;4639:6;4605:46;:::i;:::-;4683:4;4678:3;4674:14;4660:28;;4595:99;;;;:::o;4700:108::-;4777:24;4795:5;4777:24;:::i;:::-;4772:3;4765:37;4755:53;;:::o;4814:118::-;4901:24;4919:5;4901:24;:::i;:::-;4896:3;4889:37;4879:53;;:::o;4968:732::-;5087:3;5116:54;5164:5;5116:54;:::i;:::-;5186:86;5265:6;5260:3;5186:86;:::i;:::-;5179:93;;5296:56;5346:5;5296:56;:::i;:::-;5375:7;5406:1;5391:284;5416:6;5413:1;5410:13;5391:284;;;5492:6;5486:13;5519:63;5578:3;5563:13;5519:63;:::i;:::-;5512:70;;5605:60;5658:6;5605:60;:::i;:::-;5595:70;;5451:224;5438:1;5435;5431:9;5426:14;;5391:284;;;5395:14;5691:3;5684:10;;5092:608;;;;;;;:::o;5706:109::-;5787:21;5802:5;5787:21;:::i;:::-;5782:3;5775:34;5765:50;;:::o;5821:147::-;5916:45;5955:5;5916:45;:::i;:::-;5911:3;5904:58;5894:74;;:::o;5974:364::-;6062:3;6090:39;6123:5;6090:39;:::i;:::-;6145:71;6209:6;6204:3;6145:71;:::i;:::-;6138:78;;6225:52;6270:6;6265:3;6258:4;6251:5;6247:16;6225:52;:::i;:::-;6302:29;6324:6;6302:29;:::i;:::-;6297:3;6293:39;6286:46;;6066:272;;;;;:::o;6344:366::-;6486:3;6507:67;6571:2;6566:3;6507:67;:::i;:::-;6500:74;;6583:93;6672:3;6583:93;:::i;:::-;6701:2;6696:3;6692:12;6685:19;;6490:220;;;:::o;6716:366::-;6858:3;6879:67;6943:2;6938:3;6879:67;:::i;:::-;6872:74;;6955:93;7044:3;6955:93;:::i;:::-;7073:2;7068:3;7064:12;7057:19;;6862:220;;;:::o;7088:366::-;7230:3;7251:67;7315:2;7310:3;7251:67;:::i;:::-;7244:74;;7327:93;7416:3;7327:93;:::i;:::-;7445:2;7440:3;7436:12;7429:19;;7234:220;;;:::o;7460:366::-;7602:3;7623:67;7687:2;7682:3;7623:67;:::i;:::-;7616:74;;7699:93;7788:3;7699:93;:::i;:::-;7817:2;7812:3;7808:12;7801:19;;7606:220;;;:::o;7832:366::-;7974:3;7995:67;8059:2;8054:3;7995:67;:::i;:::-;7988:74;;8071:93;8160:3;8071:93;:::i;:::-;8189:2;8184:3;8180:12;8173:19;;7978:220;;;:::o;8204:366::-;8346:3;8367:67;8431:2;8426:3;8367:67;:::i;:::-;8360:74;;8443:93;8532:3;8443:93;:::i;:::-;8561:2;8556:3;8552:12;8545:19;;8350:220;;;:::o;8576:366::-;8718:3;8739:67;8803:2;8798:3;8739:67;:::i;:::-;8732:74;;8815:93;8904:3;8815:93;:::i;:::-;8933:2;8928:3;8924:12;8917:19;;8722:220;;;:::o;8948:366::-;9090:3;9111:67;9175:2;9170:3;9111:67;:::i;:::-;9104:74;;9187:93;9276:3;9187:93;:::i;:::-;9305:2;9300:3;9296:12;9289:19;;9094:220;;;:::o;9320:366::-;9462:3;9483:67;9547:2;9542:3;9483:67;:::i;:::-;9476:74;;9559:93;9648:3;9559:93;:::i;:::-;9677:2;9672:3;9668:12;9661:19;;9466:220;;;:::o;9692:366::-;9834:3;9855:67;9919:2;9914:3;9855:67;:::i;:::-;9848:74;;9931:93;10020:3;9931:93;:::i;:::-;10049:2;10044:3;10040:12;10033:19;;9838:220;;;:::o;10064:366::-;10206:3;10227:67;10291:2;10286:3;10227:67;:::i;:::-;10220:74;;10303:93;10392:3;10303:93;:::i;:::-;10421:2;10416:3;10412:12;10405:19;;10210:220;;;:::o;10436:366::-;10578:3;10599:67;10663:2;10658:3;10599:67;:::i;:::-;10592:74;;10675:93;10764:3;10675:93;:::i;:::-;10793:2;10788:3;10784:12;10777:19;;10582:220;;;:::o;10808:366::-;10950:3;10971:67;11035:2;11030:3;10971:67;:::i;:::-;10964:74;;11047:93;11136:3;11047:93;:::i;:::-;11165:2;11160:3;11156:12;11149:19;;10954:220;;;:::o;11180:118::-;11267:24;11285:5;11267:24;:::i;:::-;11262:3;11255:37;11245:53;;:::o;11304:112::-;11387:22;11403:5;11387:22;:::i;:::-;11382:3;11375:35;11365:51;;:::o;11422:222::-;11515:4;11553:2;11542:9;11538:18;11530:26;;11566:71;11634:1;11623:9;11619:17;11610:6;11566:71;:::i;:::-;11520:124;;;;:::o;11650:332::-;11771:4;11809:2;11798:9;11794:18;11786:26;;11822:71;11890:1;11879:9;11875:17;11866:6;11822:71;:::i;:::-;11903:72;11971:2;11960:9;11956:18;11947:6;11903:72;:::i;:::-;11776:206;;;;;:::o;11988:332::-;12109:4;12147:2;12136:9;12132:18;12124:26;;12160:71;12228:1;12217:9;12213:17;12204:6;12160:71;:::i;:::-;12241:72;12309:2;12298:9;12294:18;12285:6;12241:72;:::i;:::-;12114:206;;;;;:::o;12326:807::-;12575:4;12613:3;12602:9;12598:19;12590:27;;12627:71;12695:1;12684:9;12680:17;12671:6;12627:71;:::i;:::-;12708:72;12776:2;12765:9;12761:18;12752:6;12708:72;:::i;:::-;12790:80;12866:2;12855:9;12851:18;12842:6;12790:80;:::i;:::-;12880;12956:2;12945:9;12941:18;12932:6;12880:80;:::i;:::-;12970:73;13038:3;13027:9;13023:19;13014:6;12970:73;:::i;:::-;13053;13121:3;13110:9;13106:19;13097:6;13053:73;:::i;:::-;12580:553;;;;;;;;;:::o;13139:210::-;13226:4;13264:2;13253:9;13249:18;13241:26;;13277:65;13339:1;13328:9;13324:17;13315:6;13277:65;:::i;:::-;13231:118;;;;:::o;13355:313::-;13468:4;13506:2;13495:9;13491:18;13483:26;;13555:9;13549:4;13545:20;13541:1;13530:9;13526:17;13519:47;13583:78;13656:4;13647:6;13583:78;:::i;:::-;13575:86;;13473:195;;;;:::o;13674:419::-;13840:4;13878:2;13867:9;13863:18;13855:26;;13927:9;13921:4;13917:20;13913:1;13902:9;13898:17;13891:47;13955:131;14081:4;13955:131;:::i;:::-;13947:139;;13845:248;;;:::o;14099:419::-;14265:4;14303:2;14292:9;14288:18;14280:26;;14352:9;14346:4;14342:20;14338:1;14327:9;14323:17;14316:47;14380:131;14506:4;14380:131;:::i;:::-;14372:139;;14270:248;;;:::o;14524:419::-;14690:4;14728:2;14717:9;14713:18;14705:26;;14777:9;14771:4;14767:20;14763:1;14752:9;14748:17;14741:47;14805:131;14931:4;14805:131;:::i;:::-;14797:139;;14695:248;;;:::o;14949:419::-;15115:4;15153:2;15142:9;15138:18;15130:26;;15202:9;15196:4;15192:20;15188:1;15177:9;15173:17;15166:47;15230:131;15356:4;15230:131;:::i;:::-;15222:139;;15120:248;;;:::o;15374:419::-;15540:4;15578:2;15567:9;15563:18;15555:26;;15627:9;15621:4;15617:20;15613:1;15602:9;15598:17;15591:47;15655:131;15781:4;15655:131;:::i;:::-;15647:139;;15545:248;;;:::o;15799:419::-;15965:4;16003:2;15992:9;15988:18;15980:26;;16052:9;16046:4;16042:20;16038:1;16027:9;16023:17;16016:47;16080:131;16206:4;16080:131;:::i;:::-;16072:139;;15970:248;;;:::o;16224:419::-;16390:4;16428:2;16417:9;16413:18;16405:26;;16477:9;16471:4;16467:20;16463:1;16452:9;16448:17;16441:47;16505:131;16631:4;16505:131;:::i;:::-;16497:139;;16395:248;;;:::o;16649:419::-;16815:4;16853:2;16842:9;16838:18;16830:26;;16902:9;16896:4;16892:20;16888:1;16877:9;16873:17;16866:47;16930:131;17056:4;16930:131;:::i;:::-;16922:139;;16820:248;;;:::o;17074:419::-;17240:4;17278:2;17267:9;17263:18;17255:26;;17327:9;17321:4;17317:20;17313:1;17302:9;17298:17;17291:47;17355:131;17481:4;17355:131;:::i;:::-;17347:139;;17245:248;;;:::o;17499:419::-;17665:4;17703:2;17692:9;17688:18;17680:26;;17752:9;17746:4;17742:20;17738:1;17727:9;17723:17;17716:47;17780:131;17906:4;17780:131;:::i;:::-;17772:139;;17670:248;;;:::o;17924:419::-;18090:4;18128:2;18117:9;18113:18;18105:26;;18177:9;18171:4;18167:20;18163:1;18152:9;18148:17;18141:47;18205:131;18331:4;18205:131;:::i;:::-;18197:139;;18095:248;;;:::o;18349:419::-;18515:4;18553:2;18542:9;18538:18;18530:26;;18602:9;18596:4;18592:20;18588:1;18577:9;18573:17;18566:47;18630:131;18756:4;18630:131;:::i;:::-;18622:139;;18520:248;;;:::o;18774:419::-;18940:4;18978:2;18967:9;18963:18;18955:26;;19027:9;19021:4;19017:20;19013:1;19002:9;18998:17;18991:47;19055:131;19181:4;19055:131;:::i;:::-;19047:139;;18945:248;;;:::o;19199:222::-;19292:4;19330:2;19319:9;19315:18;19307:26;;19343:71;19411:1;19400:9;19396:17;19387:6;19343:71;:::i;:::-;19297:124;;;;:::o;19427:831::-;19690:4;19728:3;19717:9;19713:19;19705:27;;19742:71;19810:1;19799:9;19795:17;19786:6;19742:71;:::i;:::-;19823:80;19899:2;19888:9;19884:18;19875:6;19823:80;:::i;:::-;19950:9;19944:4;19940:20;19935:2;19924:9;19920:18;19913:48;19978:108;20081:4;20072:6;19978:108;:::i;:::-;19970:116;;20096:72;20164:2;20153:9;20149:18;20140:6;20096:72;:::i;:::-;20178:73;20246:3;20235:9;20231:19;20222:6;20178:73;:::i;:::-;19695:563;;;;;;;;:::o;20264:214::-;20353:4;20391:2;20380:9;20376:18;20368:26;;20404:67;20468:1;20457:9;20453:17;20444:6;20404:67;:::i;:::-;20358:120;;;;:::o;20565:132::-;20632:4;20655:3;20647:11;;20685:4;20680:3;20676:14;20668:22;;20637:60;;;:::o;20703:114::-;20770:6;20804:5;20798:12;20788:22;;20777:40;;;:::o;20823:99::-;20875:6;20909:5;20903:12;20893:22;;20882:40;;;:::o;20928:113::-;20998:4;21030;21025:3;21021:14;21013:22;;21003:38;;;:::o;21047:184::-;21146:11;21180:6;21175:3;21168:19;21220:4;21215:3;21211:14;21196:29;;21158:73;;;;:::o;21237:169::-;21321:11;21355:6;21350:3;21343:19;21395:4;21390:3;21386:14;21371:29;;21333:73;;;;:::o;21412:305::-;21452:3;21471:20;21489:1;21471:20;:::i;:::-;21466:25;;21505:20;21523:1;21505:20;:::i;:::-;21500:25;;21659:1;21591:66;21587:74;21584:1;21581:81;21578:2;;;21665:18;;:::i;:::-;21578:2;21709:1;21706;21702:9;21695:16;;21456:261;;;;:::o;21723:185::-;21763:1;21780:20;21798:1;21780:20;:::i;:::-;21775:25;;21814:20;21832:1;21814:20;:::i;:::-;21809:25;;21853:1;21843:2;;21858:18;;:::i;:::-;21843:2;21900:1;21897;21893:9;21888:14;;21765:143;;;;:::o;21914:848::-;21975:5;21982:4;22006:6;21997:15;;22030:5;22021:14;;22044:712;22065:1;22055:8;22052:15;22044:712;;;22160:4;22155:3;22151:14;22145:4;22142:24;22139:2;;;22169:18;;:::i;:::-;22139:2;22219:1;22209:8;22205:16;22202:2;;;22634:4;22627:5;22623:16;22614:25;;22202:2;22684:4;22678;22674:15;22666:23;;22714:32;22737:8;22714:32;:::i;:::-;22702:44;;22044:712;;;21987:775;;;;;;;:::o;22768:281::-;22826:5;22850:23;22868:4;22850:23;:::i;:::-;22842:31;;22894:25;22910:8;22894:25;:::i;:::-;22882:37;;22938:104;22975:66;22965:8;22959:4;22938:104;:::i;:::-;22929:113;;22832:217;;;;:::o;23055:1073::-;23109:5;23300:8;23290:2;;23321:1;23312:10;;23323:5;;23290:2;23349:4;23339:2;;23366:1;23357:10;;23368:5;;23339:2;23435:4;23483:1;23478:27;;;;23519:1;23514:191;;;;23428:277;;23478:27;23496:1;23487:10;;23498:5;;;23514:191;23559:3;23549:8;23546:17;23543:2;;;23566:18;;:::i;:::-;23543:2;23615:8;23612:1;23608:16;23599:25;;23650:3;23643:5;23640:14;23637:2;;;23657:18;;:::i;:::-;23637:2;23690:5;;;23428:277;;23814:2;23804:8;23801:16;23795:3;23789:4;23786:13;23782:36;23764:2;23754:8;23751:16;23746:2;23740:4;23737:12;23733:35;23717:111;23714:2;;;23870:8;23864:4;23860:19;23851:28;;23905:3;23898:5;23895:14;23892:2;;;23912:18;;:::i;:::-;23892:2;23945:5;;23714:2;23985:42;24023:3;24013:8;24007:4;24004:1;23985:42;:::i;:::-;23970:57;;;;24059:4;24054:3;24050:14;24043:5;24040:25;24037:2;;;24068:18;;:::i;:::-;24037:2;24117:4;24110:5;24106:16;24097:25;;23115:1013;;;;;;:::o;24134:348::-;24174:7;24197:20;24215:1;24197:20;:::i;:::-;24192:25;;24231:20;24249:1;24231:20;:::i;:::-;24226:25;;24419:1;24351:66;24347:74;24344:1;24341:81;24336:1;24329:9;24322:17;24318:105;24315:2;;;24426:18;;:::i;:::-;24315:2;24474:1;24471;24467:9;24456:20;;24182:300;;;;:::o;24488:191::-;24528:4;24548:20;24566:1;24548:20;:::i;:::-;24543:25;;24582:20;24600:1;24582:20;:::i;:::-;24577:25;;24621:1;24618;24615:8;24612:2;;;24626:18;;:::i;:::-;24612:2;24671:1;24668;24664:9;24656:17;;24533:146;;;;:::o;24685:96::-;24722:7;24751:24;24769:5;24751:24;:::i;:::-;24740:35;;24730:51;;;:::o;24787:90::-;24821:7;24864:5;24857:13;24850:21;24839:32;;24829:48;;;:::o;24883:126::-;24920:7;24960:42;24953:5;24949:54;24938:65;;24928:81;;;:::o;25015:77::-;25052:7;25081:5;25070:16;;25060:32;;;:::o;25098:86::-;25133:7;25173:4;25166:5;25162:16;25151:27;;25141:43;;;:::o;25190:121::-;25248:9;25281:24;25299:5;25281:24;:::i;:::-;25268:37;;25258:53;;;:::o;25317:307::-;25385:1;25395:113;25409:6;25406:1;25403:13;25395:113;;;25494:1;25489:3;25485:11;25479:18;25475:1;25470:3;25466:11;25459:39;25431:2;25428:1;25424:10;25419:15;;25395:113;;;25526:6;25523:1;25520:13;25517:2;;;25606:1;25597:6;25592:3;25588:16;25581:27;25517:2;25366:258;;;;:::o;25630:233::-;25669:3;25692:24;25710:5;25692:24;:::i;:::-;25683:33;;25738:66;25731:5;25728:77;25725:2;;;25808:18;;:::i;:::-;25725:2;25855:1;25848:5;25844:13;25837:20;;25673:190;;;:::o;25869:180::-;25917:77;25914:1;25907:88;26014:4;26011:1;26004:15;26038:4;26035:1;26028:15;26055:180;26103:77;26100:1;26093:88;26200:4;26197:1;26190:15;26224:4;26221:1;26214:15;26241:180;26289:77;26286:1;26279:88;26386:4;26383:1;26376:15;26410:4;26407:1;26400:15;26427:180;26475:77;26472:1;26465:88;26572:4;26569:1;26562:15;26596:4;26593:1;26586:15;26736:117;26845:1;26842;26835:12;26859:102;26900:6;26951:2;26947:7;26942:2;26935:5;26931:14;26927:28;26917:38;;26907:54;;;:::o;26967:102::-;27009:8;27056:5;27053:1;27049:13;27028:34;;27018:51;;;:::o;27075:222::-;27215:34;27211:1;27203:6;27199:14;27192:58;27284:5;27279:2;27271:6;27267:15;27260:30;27181:116;:::o;27303:175::-;27443:27;27439:1;27431:6;27427:14;27420:51;27409:69;:::o;27484:221::-;27624:34;27620:1;27612:6;27608:14;27601:58;27693:4;27688:2;27680:6;27676:15;27669:29;27590:115;:::o;27711:177::-;27851:29;27847:1;27839:6;27835:14;27828:53;27817:71;:::o;27894:163::-;28034:15;28030:1;28022:6;28018:14;28011:39;28000:57;:::o;28063:297::-;28203:34;28199:1;28191:6;28187:14;28180:58;28272:34;28267:2;28259:6;28255:15;28248:59;28341:11;28336:2;28328:6;28324:15;28317:36;28169:191;:::o;28366:220::-;28506:34;28502:1;28494:6;28490:14;28483:58;28575:3;28570:2;28562:6;28558:15;28551:28;28472:114;:::o;28592:182::-;28732:34;28728:1;28720:6;28716:14;28709:58;28698:76;:::o;28780:228::-;28920:34;28916:1;28908:6;28904:14;28897:58;28989:11;28984:2;28976:6;28972:15;28965:36;28886:122;:::o;29014:224::-;29154:34;29150:1;29142:6;29138:14;29131:58;29223:7;29218:2;29210:6;29206:15;29199:32;29120:118;:::o;29244:176::-;29384:28;29380:1;29372:6;29368:14;29361:52;29350:70;:::o;29426:223::-;29566:34;29562:1;29554:6;29550:14;29543:58;29635:6;29630:2;29622:6;29618:15;29611:31;29532:117;:::o;29655:173::-;29795:25;29791:1;29783:6;29779:14;29772:49;29761:67;:::o;29834:122::-;29907:24;29925:5;29907:24;:::i;:::-;29900:5;29897:35;29887:2;;29946:1;29943;29936:12;29887:2;29877:79;:::o;29962:116::-;30032:21;30047:5;30032:21;:::i;:::-;30025:5;30022:32;30012:2;;30068:1;30065;30058:12;30012:2;30002:76;:::o;30084:122::-;30157:24;30175:5;30157:24;:::i;:::-;30150:5;30147:35;30137:2;;30196:1;30193;30186:12;30137:2;30127:79;:::o

Swarm Source

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